OSDN Git Service

Fix formatting
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-10  Jan Hubicka  <jh@suse.cz>
2
3         PR middle-end/40084
4         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5         argument; rewrite.
6         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
7         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
8         * tree-inline.c (copy_bb): Set frequency correctly.
9         (fold_marked_statements): Update call to
10         cgraph_update_edges_for_call_stmt.
11
12 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
13
14         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
15         identifiers in diagnostics.
16         * config/arm/arm.c (arm_handle_fndecl_attribute,
17         arm_handle_isr_attribute): Likewise.
18         * config/avr/avr.c (avr_handle_progmem_attribute,
19         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
20         Likewise.
21         * config/bfin/bfin.c (handle_int_attribute,
22         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
23         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
24         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
25         Likewise.
26         * config/darwin.c (darwin_handle_kext_attribute,
27         darwin_handle_weak_import_attribute): Likewise.
28         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
29         h8300_handle_eightbit_data_attribute,
30         h8300_handle_tiny_data_attribute): Likewise.
31         * config/i386/i386.c (ix86_handle_cconv_attribute,
32         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
33         Likewise.
34         * config/i386/winnt.c (ix86_handle_shared_attribute,
35         ix86_handle_selectany_attribute): Likewise.
36         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
37         * config/m32c/m32c.c (function_vector_handler): Likewise.
38         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
39         m68hc11_handle_fntype_attribute): Likewise.
40         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
41         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
42         * config/mips/mips.c (mips_insert_attributes,
43         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
44         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
45         rs6000_handle_struct_attribute): Likewise.
46         * config/sh/sh.c (sh_insert_attributes,
47         sh_handle_resbank_handler_attribute,
48         sh_handle_interrupt_handler_attribute,
49         sh2a_handle_function_vector_handler_attribute,
50         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
51         Likewise.
52         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
53         * config/spu/spu.c (spu_handle_fndecl_attribute,
54         spu_handle_vector_attribute): Likewise.
55         * config/stormy16/stormy16.c
56         (xstormy16_handle_interrupt_attribute): Likewise.
57         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
58         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
59
60 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
61
62         * pretty-print.h (struct pretty_print_info): Add
63         translate_identifiers.
64         (pp_translate_identifiers): New.
65         (pp_identifier): Only conditionally translate identifier to locale
66         character set.
67         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
68         (pp_base_tree_identifier): Only conditionally translate identifier
69         to locale character set.
70         * c-pretty-print.c (M_): Define.
71         (pp_c_type_specifier, pp_c_primary_expression): Mark English
72         fragments for conditional translation with M_.
73         * tree-pretty-print.c (maybe_init_pretty_print): Disable
74         identifier translation.
75
76 2009-05-10  Richard Guenther  <rguenther@suse.de>
77
78         PR tree-optimization/40081
79         * tree-sra.c (instantiate_element): Instantiate scalar replacements
80         using the main variant of the element type.  Do not fiddle with
81         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
82
83 2009-05-09  Jan Hubicka  <jh@suse.cz>
84
85         PR middle-end/40080
86         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
87         indirect calls; verify cgraph afterwards.
88
89 2009-05-09  Jan Hubicka  <jh@suse.cz>
90
91         PR bootstrap/40082
92         * ipa.c (update_inlined_to_pointer): New function.
93         (cgraph_remove_unreachable_nodes): Use it.
94
95 2009-05-09  Jan Hubicka  <jh@suse.cz>
96
97         * tree-eh.c (struct leh_state): Remove prev_try.
98         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
99         not track prev_try.
100         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
101         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
102         remove_eh_handler_and_replace, foreach_reachable_handler,
103         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
104         * except.h (struct eh_region): Remove eh_region_u_cleanup.
105         (gen_eh_region_cleanup): Update prototype.
106
107 2009-05-09  Jan Hubicka  <jh@suse.cz>
108
109         PR middle-end/40043
110         * except.c (copy_eh_region): Always set prev_try.
111         (redirect_eh_edge_to_label): Find outer try.
112         (foreach_reachable_handler): When looking for prev try
113         handle case where previous try is not going to be taken.
114
115 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
116
117         PR tree-optimization/40049
118         * tree-vect-stmts.c (vectorizable_operation): If the machine has
119         only vector/vector shifts, convert the type of the constant to the
120         appropriate type to avoid building incorrect trees, which
121         eventually have problems with garbage collection.
122
123 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
124
125         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
126         -1 for complex floating-point types if honoring signed zeros.
127
128 2009-05-08  Jan Hubicka  <jh@suse.cz>
129
130         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
131         argument; handle correctly when profile is absent.
132         (build_cgraph_edges): Update.
133         (rebuild_cgraph_edges): Update.
134         * cgraph.c: Do not include varray.h.
135         (cgraph_set_call_stmt_including_clones): New function.
136         (cgraph_create_edge_including_clones): Likewise
137         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
138         (cgraph_update_edges_for_call_stmt): Handle clones.
139         (cgraph_remove_node): Handle clone tree.
140         (cgraph_remove_node_and_inline_clones): New function.
141         (dump_cgraph_node): Dump clone tree.
142         (cgraph_clone_node): Handle clone tree.
143         (clone_function_name): Bring here from tree-inline.c.
144         (cgraph_create_virtual_clone): New function.
145         * cgraph.h (ipa_replace_map): Move here from ipa.h.
146         (cgraph_clone_info): New function.
147         (strut cgraph_node): Add clone_info and new clone tree pointers.
148         (cgraph_remove_node_and_inline_clones,
149         cgraph_set_call_stmt_including_clones,
150         cgraph_create_edge_including_clones,
151         cgraph_create_virtual_clone): Declare.
152         (cgraph_function_versioning): Use VEC argument.
153         (compute_call_stmt_bb_frequency): Update prototype.
154         (cgraph_materialize_all_clones): New function.
155         * ipa-cp.c (ipcp_update_cloned_node): Remove.
156         (ipcp_create_replace_map): Update to VECtors.
157         (ipcp_update_callgraph): Use virtual clones.
158         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
159         (ipcp_update_profiling): Do not update local profiling.
160         (ipcp_insert_stage): Use VECtors and virtual clones.
161         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
162         (clone_of_p): New function.
163         (cgraph_preserve_function_body_p): Use clone tree.
164         (cgraph_optimize): Materialize clones.
165         (cgraph_function_versioning): Update for VECtors.
166         (save_inline_function_body): Use clone tree.
167         (cgraph_materialize_clone): New function.
168         (cgraph_materialize_all_clones): Likewise.
169         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
170         * ipa.c: Include gimple.h.
171         (cgraph_remove_unreachable_nodes): Use clone tree.
172         * ipa-prop.c (ipa_note_param_call): Update call to
173         compute_call_stmt_bb_frequencycall.
174         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
175         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
176         (copy_bb): Handle updating of clone tree; add new edge when new call
177         appears.
178         (expand_call_inline): Be strict about every call having edge.
179         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
180         (delete_unreachable_blocks_update_callgraph): New function.
181         (tree_function_versioning): Use VECtors; always remove unreachable
182         blocks and fold conditionals.
183         * tree-inline.h: Do not include varray.h.
184         (tree_function_versioning): Remove.
185         * Makefile.in (GTFILES): Remove tree-inline.c
186         * passes.c (do_per_function): Do only functions having body.
187         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
188         tree.
189
190 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
191             Andrew Morrow  <acm@google.com>
192
193         PR c/36892
194         * c-common.c (c_common_attribute_table): Permit deprecated
195         attribute to take an optional argument.
196         (handle_deprecated_attribute): If the optional argument to
197         __attribute__((deprecated)) is not a string ignore the attribute
198         and emit a warning.
199
200         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
201         * c-typeck.c (build_component_ref): Likewise.
202         (build_external_ref): Likewise.
203
204         * toplev.c (warn_deprecated_use): Add an attribute argument.
205         Emit the message associated with __attribute__((deprecated)).
206
207         * toplev.h (warn_deprecated_use): Updated.
208
209         * doc/extend.texi: Document new optional parameter to
210         __attribute__((deprecated))
211
212 2009-05-08  Michael Eager <eager@eagercon.com>
213
214         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
215         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
216
217 2009-05-08  Richard Guenther  <rguenther@suse.de>
218
219         PR tree-optimization/40062
220         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
221         Avoid exponential behavior.
222
223 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
224
225         PR rtl-optimization/33928
226         PR 26854
227         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
228         process_uses, build_single_def_use_links): New.
229         (update_df): Update use_def_ref.
230         (forward_propagate_into): Use get_def_for_use instead of use-def
231         chains.
232         (fwprop_init): Call build_single_def_use_links and let it initialize
233         dataflow.
234         (fwprop_done): Free use_def_ref.
235         (fwprop_addr): Eliminate duplicate call to df_set_flags.
236         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
237         df_rd_simulate_one_insn): New.
238         (df_rd_bb_local_compute_process_def): Update head comment.
239         (df_chain_create_bb): Use the new RD simulation functions.
240         * df.h (df_rd_simulate_artificial_defs_at_top, 
241         df_rd_simulate_one_insn): New.
242         * opts.c (decode_options): Enable fwprop at -O1.
243         * doc/invoke.texi (-fforward-propagate): Document this.
244
245 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
246
247         PR c/24581
248         * c-typeck.c (build_binary_op): Handle arithmetic between one real
249         and one complex operand specially.
250         * tree-complex.c (some_nonzerop): Do not identify a real value as
251         zero if flag_signed_zeros.
252
253 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
254
255         PR rtl-optimization/33928
256         * loop-invariant.c (record_use): Fix && vs. || mishap.
257
258 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
259
260         PR rtl-optimization/33928
261         * loop-invariant.c (struct use): Add addr_use_p.
262         (struct def): Add n_addr_uses.
263         (struct invariant): Add cheap_address.
264         (create_new_invariant): Set cheap_address.
265         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
266         (record_uses): Pass df_ref to record_use.
267         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
268         used only as such.
269
270 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
271
272         * config/sh/sh.c: Do not include c-pragma.h.
273
274 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
275
276         * config/spu/spu.c: Remove include of c-common.h.
277
278 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
279
280         PR c/39037
281         * c-common.h (mark_valid_location_for_stdc_pragma,
282         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
283         clear_float_const_decimal64, float_const_decimal64_p): New.
284         * c.opt (Wunsuffixed-float-constants): New.
285         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
286         unsuffixed float constant, handle new warning.
287         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
288         * c-decl.c (c_scope): New flag float_const_decimal64.
289         (set_float_const_decimal64, clear_float_const_decimal64,
290         float_const_decimal64_p): New.
291         (push_scope): Set new flag.
292         * c-parser.c (c_parser_translation_unit): Mark when it's valid
293         to use STDC pragmas.
294         (c_parser_external_declaration): Ditto.
295         (c_parser_compound_statement_nostart): Ditto.
296         * c-pragma.c (valid_location_for_stdc_pragma,
297         mark_valid_location_for_stdc_pragma,
298         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
299         handle_pragma_float_const_decimal64): New.
300         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
301         * cp/semantics.c (valid_location_for_stdc_pragma_p,
302         set_float_const_decimal64, clear_float_const_decimal64,
303         float_const_decimal64_p): New dummy functions.
304         * doc/extend.texi (Decimal Float): Remove statement that the
305         pragma, and suffix for double constants, are not supported.
306         * doc/invoke.texi (Warning Options): List new option.
307         (-Wunsuffixed-float-constants): New.
308
309 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
310
311         * config/i386/i386.c: Do not include c-common.h.
312
313 2009-05-07  Mark Heffernan  <meheff@google.com>
314
315         * doc/invoke.texi (Debugging Options): Document change of debugging
316         dump location.
317         * opts.c (decode_options): Make dump_base_name relative to
318         aux_base_name directory.
319
320 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
321
322         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
323         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
324
325 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
326
327         * Makefile.in (install-plugin): Simplify a bit.
328
329 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
330
331         * Makefile.in (OBJS-common): Add regcprop.o.
332         (regcprop.o): New.
333         * timevar.def (TV_CPROP_REGISTERS): New.
334         * regrename.c (regrename_optimize): Return 0.
335         (rest_of_handle_regrename): Delete.
336         (pass_rename_registers): Point to regrename_optimize.
337         (struct value_data_entry, struct value_data, 
338         kill_value_one_regno, kill_value_regno, kill_value,
339         set_value_regno, init_value_data, kill_clobbered_value,
340         kill_set_value, kill_autoinc_value, copy_value,
341         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
342         replace_oldest_value_reg, replace_oldest_value_addr,
343         replace_oldest_value_mem, copyprop_hardreg_forward_1,
344         debug_value_data, validate_value_data): Move...
345         * regcprop.c: ... here.
346         (rest_of_handle_cprop): Delete.
347         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
348
349 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
350
351         PR middle-end/40057
352         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
353         GEN_INT for 1 << bitnum.
354         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
355         build_int_cst_type.
356
357 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
358
359         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
360         Remove wrong description of "nand" operation.
361
362 2009-05-06  Richard Guenther  <rguenther@suse.de>
363             Adam Nemet  <anemet@caviumnetworks.com>
364
365         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
366         comment.  Add that if LHS is not a gimple register, then RHS1 has
367         to be a single object (GIMPLE_SINGLE_RHS).
368
369 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
370
371         * expr.c (get_def_for_expr): Move it up in the file.
372         (store_field): When expanding a bit-field store, look at the
373         defining gimple stmt for the masking conversion.
374
375 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
376
377         PR middle-end/39986
378         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
379         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
380         32-bit memcpy into long.
381
382 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
383
384         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
385         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
386         new_reg_loc_descr.
387         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
388         instead of appending DW_OP_deref*.
389
390 2009-05-06  Michael Matz  <matz@suse.de>
391
392         PR middle-end/40021
393         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
394         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
395
396 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
397
398         * Makefile.in (install-plugin): Fix srcdir handling.
399
400 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
401
402         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
403         when processing for not_regs_needed bitmap.
404         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
405         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
406         handling it for rhs. 
407
408 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
409
410         * config/i386/i386.md (unnamed inc/dec peephole): Use
411         optimize_insn_for_size_p instead of optimize_size.
412         * config/i386/predicates.md (incdec_operand): Likewise.
413         (aligned_operand): Likewise.
414         * config/i386/sse.md (divv8sf3): Likewise.
415         (sqrtv8sf2): Likewise.
416
417 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
418
419         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
420
421         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
422
423 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
424
425         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
426         ssemodesuffixf2c with avxmodesuffixf2c.
427
428 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
429
430         PR c/40032
431         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
432
433 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
434
435         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
436         (struct tree_base): Adjust spacing for 8 bit boundaries.
437         (struct tree_decl_common): Add decl_by_reference_flag bit.
438         (DECL_BY_REFERENCE): Adjust.
439         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
440         print DECL_BY_REFERENCE bit.
441         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
442         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
443         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
444         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
445         unconditionally.
446
447         PR middle-end/39666
448         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
449         range of the type, but default label is missing, add it with one
450         of the existing labels instead of adding a new label for it.
451
452 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
453
454         * dwarf.h: Remove.
455
456 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
457
458         * Makefile.in (enable_plugin, plugin_includedir): New.
459         (install): Depend on install-plugin.
460         (PLUGIN_HEADERS): New.
461         (install-plugin): New.
462         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
463
464 2009-05-05  Richard Guenther  <rguenther@suse.de>
465
466         PR tree-optimization/40022
467         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
468         the only vuse.
469         (phivn_valid_p): Fix tuplification error, simplify.
470         (phiprop_insert_phi): Add dumps.
471         (propagate_with_phi): Simplify.
472
473 2009-05-05  Richard Guenther  <rguenther@suse.de>
474
475         PR middle-end/40023
476         * builtins.c (gimplify_va_arg_expr): Properly build the address.
477
478 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
479
480         * tree.h (strip_float_extensions): Remove duplicate declaration.
481         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
482         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
483         block_ultimate_origin): Rearrange the declarations line to match the
484         comment that indicates the .c file which the functions are defined.
485         (dwarf2out_*, set_decl_rtl): Add comment.
486         (get_base_address): Adjust comment.
487         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
488         declarations line and add comment.
489         (is_builtin_name): Add blank after function name, for clarity.
490
491 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
492
493         * attribs.c (decl_attributes): Use %qE for identifiers in
494         diagnostics.
495         * cgraphunit.c (verify_cgraph_node): Translate function names to
496         locale character set in diagnostics.
497         * coverage.c (get_coverage_counts): Use %qE for identifiers in
498         diagnostics.
499         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
500         Document that functions are named in UTF-8.
501         * expr.c (expand_expr_real_1): Translate function names to locale
502         character set in diagnostics.
503         * gimplify.c (omp_notice_variable, omp_is_private,
504         gimplify_scan_omp_clauses): Use %qE for identifiers in
505         diagnostics.
506         * langhooks.c (lhd_print_error_function): Translate function names
507         to locale character set.
508         * langhooks.h (decl_printable_name): Document that return value is
509         in internal character set.
510         * stmt.c: Include pretty-print.h
511         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
512         diagnostics.
513         (resolve_operand_name_1): Translate named operand name to locale
514         character set.
515         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
516         diagnostics.
517         * toplev.c (announce_function): Translate function names to locale
518         character set.
519         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
520         (default_tree_printer): Use pp_identifier or translate identifiers
521         to locale character set.  Mark "<anonymous>" for translation.
522         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
523         for identifiers in diagnostics.
524         * tree.c (handle_dll_attribute): Use %qE for identifiers in
525         diagnostics.
526         * varasm.c (output_constructor): Use %qE for identifiers in
527         diagnostics.
528
529 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
530
531         * configure.ac: use ` ` instead of $()
532         * configure: Regenerate.
533
534 2009-05-05  Ben Elliston  <bje@au.ibm.com>
535
536         * config/pa/linux-atomic.c: Eliminate conditional include of
537         errno.h on non-LP64 systems to simplify build requirements.
538
539 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
540
541         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
542         diagnostics.
543         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
544         and pass value to identifier_to_locale.
545         (warn_variable_length_array): Make name a tree.
546         (grokdeclarator): Separate diagnostic texts for named and unnamed
547         declarators.  Use %qE for named declarators.
548         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
549         diagnostics.
550         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
551         identifiers in diagnostics.
552         * c-typeck.c (push_member_name, start_init): Pass identifiers to
553         identifier_to_locale.  Mark "anonymous" strings for translation.
554
555 2009-05-04  Michael Eager <eager@eagercon.com>
556
557         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
558         address for DImode/DFmode only if double-precision FP regs.
559
560 2009-05-04  Michael Eager <eager@eagercon.com>
561
562         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
563         TARGET_SINGLE_FLOAT check.
564
565 2009-05-04  Michael Eager <eager@eagercon.com>
566
567         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
568
569 2009-05-04  Michael Eager <eager@eagercon.com>
570
571         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
572         * config/rs6000/t-xilinx: New
573
574 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
575
576         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
577         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
578         * gcc/explow.c (memory_address): Use target hook.
579         * gcc/targhooks.c (default_legitimize_address): New.
580         * gcc/targhooks.h (default_legitimize_address): New.
581         * gcc/target.h (legitimize_address): New.
582         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
583         (TARGET_INITIALIZER): Include it.
584         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
585
586         * config/bfin/bfin-protos.h (legitimize_address): Remove.
587         * config/bfin/bfin.c (legitimize_address): Remove.
588         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
589         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
590         Remove.
591         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
592         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
593
594         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
595         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
596         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
597         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
598         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
599         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
600         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
601         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
602         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
603         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
604         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
605         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
606         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
607         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
608         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
609         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
610         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
611         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
612         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
613         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
614         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
615         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
616         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
617
618         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
619         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
620         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
621         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
622         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
623         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
624         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
625         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
626         (thumb_legitimize_address): Delete.
627         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
628         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
629         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
630         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
631         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
632         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
633         Delete.
634         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
635         Delete.
636
637         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
638         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
639         * config/m32r/m32r.c (m32r_legitimize_address): New.
640         * config/m68k/m68k.c (m68k_legitimize_address): New.
641         * config/score/score.c (score_legitimize_address): Standardize.
642         * config/score/score3.c (score3_legitimize_address): Standardize.
643         * config/score/score3.h (score3_legitimize_address): Adjust.
644         * config/score/score7.c (score7_legitimize_address): Standardize.
645         * config/score/score7.h (score7_legitimize_address): Adjust.
646         * config/sh/sh.c (sh_legitimize_address): New.
647         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
648
649         * gcc/config/s390/s390.c (legitimize_address): Rename to...
650         (s390_legitimize_address): ... this.
651         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
652         (sparc_legitimize_address): ... this.
653         * gcc/config/i386/i386.c (legitimize_address): Rename to...
654         (ix86_legitimize_address): ... this.
655         * gcc/config/avr/avr.c (legitimize_address): Rename to...
656         (avr_legitimize_address): ... this.
657         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
658         (mn10300_legitimize_address): ... this.
659         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
660         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
661         (alpha_expand_mov): Adjust call.
662
663         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
664         * config/spu/spu.c (spu_legitimize_address): Likewise.
665         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
666         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
667
668 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
669
670         * intl.c (locale_encoding, locale_utf8): New.
671         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
672         * intl.h (locale_encoding, locale_utf8): Declare.
673         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
674         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
675         New.
676         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
677         argument.
678         (pp_tree_identifier): Define to call pp_base_tree_identifier.
679         (pp_base_tree_identifier): Declare as function.
680         (identifier_to_locale): Declare.
681         * Makefile.in (pretty-print.o): Update dependencies.
682         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
683
684 2009-05-04  Richard Guenther  <rguenther@suse.de>
685
686         PR middle-end/40015
687         * builtins.c (fold_builtin_memory_op): Do not decay to element
688         type if the size matches the whole array.
689
690 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
691
692         * expmed.c (synth_mult): When trying out a shift, pass the result
693         of a signed shift.
694
695 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
696
697         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
698         (shiftsub1_cost): New.
699         (init_expmed): Compute shiftsub1_cost.
700         (synth_mult): Optimize multiplications by constants of the form
701         -(2^^m-1) for some constant positive integer m.
702
703 2009-05-03  Richard Guenther  <rguenther@suse.de>
704
705         PR c/39983
706         * c-typeck.c (array_to_pointer_conversion): Do not built
707         ADDR_EXPRs of arrays of pointer-to-element type.
708         * c-gimplify.c (c_gimplify_expr): Revert change fixing
709         up wrong ADDR_EXPRs after-the-fact.
710         * c-common.c (strict_aliasing_warning): Strip pointer
711         conversions for obtaining the original type.
712         * builtins.c (fold_builtin_memset): Handle array types.
713         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
714         and array types
715
716 2009-05-03  Richard Guenther  <rguenther@suse.de>
717
718         PR middle-end/23329
719         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
720         Do not lose casts from array types with unknown extent to array
721         types with known extent.
722         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
723         alias set compatibility.
724
725 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
726
727         * flags.h (extra_warnings): Delete.
728         * toplev.c (process_options): Handle Wuninitialized here.
729         * opts.c (extra_warnings): Delete.
730         (set_Wextra): Delete.
731         (common_handle_option): -Wextra can be handled automatically.
732         * c-opts.c (c_common_handle_option): Delete obsolete code.
733         (c_common_post_options): Simplify comment.
734         * common.opt (W): Add Var.
735         (Wextra): Add Var.
736         (Wuninitialized): Initialize to -1.
737
738 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
739             Richard Guenther  <rguenther@suse.de>
740
741         * expr.c (get_def_for_expr): New function.
742         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
743         SSA rather than trees.
744         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
745         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
746         
747 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
748
749         * c-common.c (reswords): Add _Imaginary.
750         * c-common.c (enum rid): Add RID_IMAGINARY.
751
752 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
753
754         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
755         Patch by Richard Guenther.
756
757 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
758
759         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
760         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
761         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
762         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
763         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
764         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
765         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
766         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
767         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
768         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
769         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
770         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
771         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
772         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
773         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
774         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
775         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
776         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
777
778 2009-05-02  Richard Guenther  <rguenther@suse.de>
779
780         PR tree-optimization/39940
781         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
782         doing so.
783
784 2009-05-02  Richard Guenther  <rguenther@suse.de>
785
786         PR middle-end/40001
787         * tree-ssa.c (execute_update_addresses_taken): Properly check
788         if we can mark a variable DECL_GIMPLE_REG_P.
789         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
790         back to the end of the function.
791         (is_gimple_reg_type): Remove complex type special casing.
792         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
793         if not optimizing.
794
795 2009-05-02  Ben Elliston  <bje@au.ibm.com>
796
797         * doc/collect2.texi (Collect2): Document search path behaviour
798         when configured with --with-ld.
799
800 2009-05-02  Jan Hubicka  <jh@suse.cz>
801
802         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
803         parameter; update callers.
804         (coalesce_cost_edge): EH edges are costier because they needs
805         splitting even if not critical and even more costier when there are
806         multiple EH predecestors.
807
808 2009-05-02  Jan Hubicka  <jh@suse.cz>
809
810         * except.c (remove_eh_handler_and_replace): Handle updating after
811         removing TRY blocks.
812
813 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
814
815         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
816
817 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
818
819         * varasm.c: Do not include c-pragma.h.
820         * attribs.c: Do not incude c-common.h.
821
822 2009-05-01  Michael Matz  <matz@suse.de>
823
824         * calls.c (initialize_argument_information): Handle SSA names like
825         decls with a non MEM_P DECL_RTL.
826
827 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
828
829         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
830         * ipa-utils.c: Likewise.
831         * ipa-type-escape.c: Likewise.
832         * cgraphunit.c Do not include c-common.h.
833         * ipa-pure-const.c: Likewise.
834         * tree-if-conv.c: Likewise.
835         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
836         * ipa-struct-reorg.c: Likewise.
837         * tree-nomudflap.c: Likewise.
838         * tree-ssa-structalias.c: Likewise.
839
840 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
841
842         * store-motion.c: Many cleanups to make this pass a first-class
843         citizen instead of an appendix to gcse load motion.  Add TODO list
844         to make this pass faster/cleaner/better.
845
846         (struct ls_expr): Post gcse.c-split cleanups.
847         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
848         "stores" field to "avail_stores".
849         (pre_ldst_mems): Rename to store_motion_mems.
850         (pre_ldst_table): Rename to store_motion_mems_table.
851         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
852         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
853         (ldst_entry): Rename to st_expr_entry, update users.
854         (free_ldst_entry): Rename to free_st_expr_entry, update users.
855         (free_ldst_mems): Rename to free_store_motion_mems, update users.
856         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
857         update caller.
858         (first_ls_expr): Rename to first_st_expr, update users.
859         (next_ls_expr): Rename to next_st_expr, update users.
860         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
861         fields properly for store motion instead of names inherited from load
862         motion in gcse.c.
863         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
864         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
865         are done with it.
866
867         (ae_kill): Rename to st_kill, update users.
868         (ae_gen): Rename to st_avloc, update users.
869         (transp): Rename to st_transp, update users.
870         (pre_insert_map): Rename to st_insert_map, update users.
871         (pre_delete_map): Rename to st_delete_map, update users.
872         (insert_store, build_store_vectors, free_store_memory,
873         one_store_motion_pass): Update for abovementioned changes.
874
875         (gcse_subst_count, gcse_create_count): Remove.
876         (one_store_motion_pass): New statistics counters "n_stores_deleted"
877         and "n_stores_created", local variables.
878
879         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
880         use for_each_rtx.
881
882         (regvec, compute_store_table_current_insn): Remove.
883         (reg_set_info, reg_clear_last_set): Remove.
884         (compute_store_table): Use DF caches instead of local dataflow
885         solvers.
886
887 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
888
889         * c-objc-common.c (c_tree_printer): Print identifiers with
890         pp_identifier, not pp_string.  Mark "({anonymous})" for
891         translation.
892         * c-pretty-print.c (pp_c_ws_string): New.
893         (pp_c_cv_qualifier, pp_c_type_specifier,
894         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
895         pp_c_storage_class_specifier, pp_c_function_specifier,
896         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
897         pp_c_primary_expression, pp_c_postfix_expression,
898         pp_c_unary_expression, pp_c_shift_expression,
899         pp_c_relational_expression, pp_c_equality_expression,
900         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
901         use pp_string and pp_c_ws_string in place of pp_identifier and
902         pp_c_identifier for non-identifiers.  Mark English strings for
903         translation.
904         * c-pretty-print.h (pp_c_ws_string): Declare.
905
906 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
907             Roland McGrath <roland@redhat.com>
908
909         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
910         (ENABLE_LD_BUILDID): New configuration option.
911         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
912         (LINK_BUILDID_SPEC): New macro.
913         (init_spec): If defined, prepend it between LINK_EH_SPEC and
914         link_spec.
915         * doc/install.texi: Document --enable-linker-build-id option.
916         * configure: Rebuild.
917         * config.in: Rebuild.
918
919 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
920
921         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
922         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
923         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
924         MIPS_GP_SAVE_AREA_SIZE.
925         * config/mips/mips.c (struct mips_frame_info): Update comment
926         before arg_pointer_offset and hard_frame_pointer_offset.
927         (mips_compute_frame_info): Update diagram before function: to
928         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
929         indicate the position of frame_pointer_rtx with -fstack-protector and
930         to show args_size.  Don't allocate cprestore area for leaf functions
931         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
932         cprestore_size.
933         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
934
935 2009-04-30  Michael Matz  <matz@suse.de>
936
937         PR tree-optimization/39955
938         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
939
940 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
941
942         * ira.c (setup_cover_and_important_classes):  Use safe macro
943         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
944         directly.
945         * genpreds.c (write_tm_preds_h):  Output suitable definition of
946         REG_CLASS_FOR_CONSTRAINT.
947
948 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
949
950         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
951         instead of an int.
952         * bitmap.c (bitmap_descriptor): Likewise.
953         * ggc-common.c (loc_descriptor): Likewise.
954         * varray.c (varray_descriptor): Likewise.
955         * vec.c (vec_descriptor): Likewise.
956
957 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
958
959         * Makefile.in (dce.o): Add $(EXCEPT_H).
960         * dce.c: Include except.h and delete redundant vector definitions.
961         (deletable_insn_p): Return false for non-call insns that can throw
962         if DF is running.
963
964 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
965
966         * gcse.c (ae_gen): Remove.
967         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
968         and make non-static function to make it available in store-motion.c.
969         Update call sites with search-and-replace.
970         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
971         extract_mentioned_regs, extract_mentioned_regs_helper,
972         find_moveable_store, compute_store_table, load_kills_store, find_loads,
973         store_killed_in_insn, store_killed_after, store_killed_before,
974         build_store_vectors, insert_insn_start_basic_block, insert-store,
975         remove_reachable_equiv_notes, replace_store_insn, delete_store,
976         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
977         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
978         * store-motion.c: ...new file.  Also copy data structures from gcse.c
979         and clean up to remove parts not used by store motion.
980         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
981         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
982
983 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
984
985         PR target/38571
986         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
987         when optimizing for size.
988
989 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
990
991         * gcse.c (gcse_constant_p): Fix typo in last change.
992
993 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
994
995         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
996
997 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
998
999         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1000
1001 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
1002
1003         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1004         CONST_HIGH_PART result.
1005
1006 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
1007
1008         * config/avr/avr.c (initial_elimination_offset): Rename to
1009         avr_initial_elimination_offset.
1010         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1011         change return type to bool.
1012         (avr_can_eliminate): New function.
1013         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1014         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1015         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1016         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
1017         avr_initial_elimination_offset.
1018         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1019         (avr_initial_elimination_offset): Define.
1020
1021 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
1022             Steven Bosscher  <steven@gcc.gnu.org>
1023
1024         PR rtl-optimization/39938
1025         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1026         * cfgrtl.c: Include insn-attr.h.
1027         (rest_of_pass_free_cfg): New function.
1028         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1029         * resource.c (init_resource_info): Remove call to df_analyze.
1030
1031 2009-04-29  Richard Guenther  <rguenther@suse.de>
1032
1033         PR target/39943
1034         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1035         allow conversion to signed integers.
1036
1037 2009-04-29  Richard Guenther  <rguenther@suse.de>
1038
1039         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1040         shifts of floating point vectors if the shift amount is
1041         a constant multiple of the element size.
1042
1043 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1044             Michael Matz  <matz@suse.de>
1045
1046         PR middle-end/39927
1047         PR bootstrap/39929
1048         * tree-outof-ssa.c (emit_partition_copy): New function.
1049         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1050         insert_part_to_rtx_on_edge): Perform the partition base var
1051         copy using emit_partition_copy.
1052         (insert_value_copy_on_edge): Convert constants to the right mode.
1053         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1054         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1055
1056 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1057
1058         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1059         scan backwards to try to find a constant to initialize it.
1060
1061         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1062         insn before the loop_end instruction, don't look past labels.
1063
1064 2009-04-29  Richard Guenther  <rguenther@suse.de>
1065
1066         PR middle-end/39937
1067         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1068         loose type conversions.
1069         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
1070         stmts only if there are no uses of its definition.
1071
1072 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1073
1074         * config/bfin/bfin.h (splitting_loops): Declare.
1075         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1076         Reorder bit definitions to be ascending.
1077         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1078         * config/bfin/bfin.c (splitting_loops): New variable.
1079         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1080         (struct loop_info): Remove members INIT and LOOP_INIT.
1081         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
1082         the LSETUP sequence.  Allow LC to be loaded from any register, but
1083         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
1084         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1085         set to 1.
1086         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1087         of reload_completed.
1088
1089         From Jie Zhang:
1090         * config/bfin/bfin.md (movsi_insn): Refine constraints.
1091
1092 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
1093
1094         * Makefile.in (PLUGIN_VERSION_H): New.
1095         (OBJS-common): Remove plugin-version.o.
1096         (plugin.o): Depend on (PLUGIN_VERSION_H).
1097         (plugin-version.o): Remove.
1098         * configure: Regenerate
1099         * configure.ac: Create plugin-version.h.
1100         * gcc-plugin.h (plugin_gcc_version): Remove.
1101         (plugin_default_version_check): Change signature.
1102         * plugin-version.c: Remove.
1103         * plugin.c: Include plugin-version.h.
1104         (str_plugin_gcc_version_name): Remove.
1105         (try_init_one_plugin): Pass gcc version to plugin_init.
1106         (plugin_default_version_check): Both gcc and plugin versions are now
1107         arguments.
1108
1109 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1110         
1111         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1112         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
1113         Remove special case testing for last insn of inner loops. Don't fail
1114         if the loop ends with a jump, emit an extra nop instead.
1115
1116         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1117         DREGS rather than comparing directly.  Remove code that tries to
1118         account for latencies.
1119
1120 2009-04-29  Richard Guenther  <rguenther@suse.de>
1121
1122         PR tree-optimization/39941
1123         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1124         eliminating an indirect call.
1125
1126 2009-04-29  Richard Guenther  <rguenther@suse.de>
1127
1128         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1129         parameter.  Allow invariants as base if !require_lvalue.
1130         (verify_gimple_assign_single): Adjust.
1131
1132 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1133
1134         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1135         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
1136         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1137         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
1138         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1139         a VEC_SELECT.
1140         * config/bfin/bfin.c (bfin_expand_builtin,
1141         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
1142
1143 2009-04-28  Richard Guenther  <rguenther@suse.de>
1144
1145         * tree-vect-loop.c (get_initial_def_for_induction): Use
1146         correct types for pointer increment.
1147
1148 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1149
1150         * toplev.c (print_version): Update GMP version string calculation.
1151
1152 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1153
1154         PR rtl-optimization/39938
1155         * resource.c (init_resource_info): Add call to df_analyze.
1156
1157 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1158
1159         * config/alpha/alpha.md (usegp): Cast the result of
1160         alpha_find_lo_sum_using_gp to enum attr_usegp.
1161         * config/alpha/alpha.c (override_options): Remove end-of-structure
1162         marker element from cpu_table.  Use array size of cpu_table to handle
1163         -mcpu and -mtune options.
1164         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1165
1166 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
1167
1168         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1169         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
1170         tune_32 and tune_64.
1171         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1172         support on PowerPC.
1173         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1174         * config/rs6000/option-defaults.h: ... here.  New file.
1175         (OPT_64, OPT_32): Define.
1176         (MASK_64BIT): Define to 0 if not already defined.
1177         (OPT_ARCH64, OPT_ARCH32): Define.
1178         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1179         and tune_64.
1180
1181 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1182
1183         * config/arm/arm.c (arm_override_options): Emit error on using
1184         fpa with AAPCS.
1185
1186 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1187
1188         PR rtl-optimization/39914
1189         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1190         registers for allocnos created from user-defined variables only
1191         when not optimizing.
1192
1193 2009-04-28  Richard Guenther  <rguenther@suse.de>
1194
1195         PR middle-end/39937
1196         * fold-const.c (fold_binary): Use distribute_real_division only
1197         on float types.
1198
1199 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
1200
1201         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1202         add hpux-stdint.h to tm_file.
1203         (hppa[12]*-*-hpux11*): Ditto.
1204         (ia64*-*-hpux*): Ditto.
1205         * config/hpux-stdint.h: New.
1206         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
1207         __STDC_EXT__ for all compiles.
1208         * config/pa/pa-hpux.h: Ditto.
1209         * config/pa/pa-hpux10.h: Ditto.
1210         * config/pa/pa-hpux11.h: Ditto.
1211
1212 2009-04-28  Catherine Moore  <clm@codesourcery.com>
1213
1214         * debug.h (set_name): Add comment.
1215
1216 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
1217
1218         PR target/39929
1219         * config/darwin.c (machopic_gen_offset): Check
1220         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
1221         * config/arm/arm.c (require_pic_register): Likewise.
1222
1223 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
1224
1225         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
1226         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
1227         m32c_promote_prototypes): Delete.
1228
1229 2009-04-28  Michael Matz  <matz@suse.de>
1230
1231         PR middle-end/39922
1232         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
1233         constants.
1234
1235 2009-04-28  Richard Guenther  <rguenther@suse.de>
1236
1237         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
1238
1239 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1240
1241         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
1242         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
1243         * config/arm/arm-tune.md: Regenerate.
1244
1245 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
1246
1247         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
1248         block if there are complex incoming edges.
1249         (sel_merge_blocks): Remove useless assert.
1250         (sel_redirect_edge_and_branch): Check that edge was redirected.
1251         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1252         (sel_find_rgns): Delete declaration.
1253         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1254         the region when it is not a preheader.
1255
1256 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1257
1258         PR c/39323
1259         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1260
1261 2009-04-28  Richard Guenther  <rguenther@suse.de>
1262
1263         * tree.h (SSA_NAME_VALUE): Remove.
1264         (struct tree_ssa_name): Remove value_handle member.
1265         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1266         array for jump threading.
1267         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1268         SSA_NAME_VALUEs.
1269         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1270         * tree-flow.h (threadedge_initialize_values): Declare.
1271         (threadedge_finalize_values): Likewise.
1272         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1273         (SSA_NAME_VALUE): Define.
1274         (threadedge_initialize_values): New function.
1275         (threadedge_finalize_values): Likewise.
1276         * tree-ssa-dom.c (ssa_name_values): New global variable.
1277         (SSA_NAME_VALUE): Define.
1278         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
1279
1280 2009-04-28  Ira Rosen  <irar@il.ibm.com>
1281
1282         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1283         Use REPORT_VECTORIZED_LOCATIONS instead 
1284         REPORT_VECTORIZED_LOOPS.
1285         * tree-vectorizer.c (vect_verbosity_level): Make static.
1286         (vect_loop_location): Rename to vect_location.
1287         (vect_set_verbosity_level): Update comment.
1288         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1289         and vect_location.
1290         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1291         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1292         instead REPORT_UNVECTORIZED_LOOPS.
1293         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1294         vect_loop_def to vect_external_def and vect_internal_def.
1295         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
1296         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
1297         REPORT_UNVECTORIZED_LOCATIONS.
1298         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1299         and vect_used_in_loop and to vect_unused_in_scope and 
1300         vect_used_in_scope.
1301         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1302         (vect_verbosity_level): Remove declaration.
1303         (vect_analyze_operations): Likewise.
1304         (vect_analyze_stmt): Declare.
1305         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1306         REPORT_UNVECTORIZED_LOCATIONS.
1307         (vect_get_loop_niters): Fix indentation.
1308         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1309         (vect_analyze_loop_operations): New function.
1310         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1311         vect_analyze_operations.
1312         (vect_is_simple_reduction): Use new names.
1313         (vectorizable_live_operation, vect_transform_loop): Likewise.
1314         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1315         specify whether the data references can be a part of interleaving chain.
1316         (vect_analyze_data_ref_dependence): Use new names.
1317         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1318         (vect_create_addr_base_for_vector_ref): Remove redundant code.
1319         * tree-vect-patterns.c (widened_name_p): Use new names.
1320         (vect_recog_dot_prod_pattern): Likewise.
1321         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1322         (process_use, vect_mark_stmts_to_be_vectorized, 
1323         vect_model_simple_cost, vect_model_store_cost,
1324         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1325         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1326         vectorizable_operation, vectorizable_type_demotion,
1327         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1328         vectorizable_condition): Likewise.
1329         (vect_analyze_operations): Split into vect_analyze_loop_operations
1330         and ...
1331         (vect_analyze_stmt): ... new function.
1332         (new_stmt_vec_info): Use new names.
1333         (vect_is_simple_use): Use new names and fix comment.
1334         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1335         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1336
1337 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1338
1339         PR target/39911
1340         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1341         and integer modes for x87 operands.  Do not ICE for unsupported size,
1342         generate error instead.  Generate error for unsupported operand types.
1343         ['z']: Do not handle HImode memory operands specially.  Warning
1344         for floating-point operands.  Fallthru to 'Z' for unsupported operand
1345         types.  Do not ICE for unsupported size, generate error instead.
1346         (output_387_binary_op): Use %Z to output operands.
1347         (output_fp_compare): Ditto.
1348         (output_387_reg_move): Ditto.
1349
1350 2009-04-28  Ben Elliston  <bje@au.ibm.com>
1351
1352         PR c++/35652
1353         Revert:
1354
1355         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1356
1357         * builtins.c (c_strlen): Do not warn here.
1358         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1359         * c-common.c (pointer_int_sum): Take an explicit location.
1360         Warn about offsets out of bounds.
1361         * c-common.h (pointer_int_sum): Adjust declaration.
1362
1363 2009-04-27  Ian Lance Taylor  <iant@google.com>
1364
1365         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1366         names to symkind.
1367         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1368         * df-core.c (df_set_flags): Change return type to int.  Change
1369         type of old_flags to int.
1370         (df_clear_flags): Likewise.
1371         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1372         (df_get_conditional_uses): Likewise.
1373         * df.h (df_set_flags, df_clear_flags): Update declarations.
1374         * dwarf2out.c (struct indirect_string_node): Change type of form
1375         field to enum dwarf_form.
1376         (AT_string_form): Change return type to enum dwarf_form.
1377         * fixed-value.c (fixed_compare): Add cast to enum type.
1378         * fwprop.c (update_df): Change 0 to VOIDmode.
1379         * gensupport.c: Change 0 to UNKNOWN.
1380         * gimple.h (gimple_cond_code): Add cast to enum type.
1381         * haifa-sched.c (reemit_notes): Add cast to enum type.
1382         * hooks.c (hook_int_void_no_regs): Remove function.
1383         * hooks.h (hook_int_void_no_regs): Remove declaration.
1384         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1385         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1386         * real.c (real_arithmetic): Add cast to enum type.
1387         (real_compare): Likewise.
1388         * target.h (struct gcc_target): Change return type of
1389         branch_target_register_class to enum reg_class.
1390         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1391         default_branch_target_register_class.
1392         * targhooks.c (default_branch_target_register_class): New function.
1393         * targhooks.h (default_branch_target_register_class): Declare.
1394         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1395         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1396         cast to int.
1397         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1398         ERROR_MARK.
1399         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1400         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1401         * tree-vect-stmts.c (supportable_widening_operation): Don't
1402         initialize icode1 and icode2.
1403         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1404         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1405         and to STD_C89.
1406         (cmn_err_flag_specs): Change 0 to STD_C89.
1407         (cmn_err_char_table): Likewise.
1408         * config/arm/arm.c (get_arm_condition_code): Change type of code
1409         to enum arm_cond_code.
1410         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1411         (IWMMXT_BUILTIN2): Likewise.
1412         (neon_builtin_type_bits): Don't define typedef.
1413         (neon_builtin_datum): Change type of bits field to int.
1414         (arm_expand_neon_args): Add cast to enum type.
1415         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1416         TLS_MODEL_NONE.
1417         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1418         casts to enum type.
1419         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1420         MIPS_FP_COND_f.
1421         * config/mips/mips.md (jal_macro): Return enum constant.
1422         (single_insn): Likewise.
1423         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1424         CODE_FOR_nothing.
1425         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1426         casts to enum type.
1427         * config/s390/s390.c (s390_tune_flags): Change type to int.
1428         (s390_arch_flags): Likewise.
1429         (s390_handle_arch_option): Change flags field of struct pta to int.
1430         * config/s390/s390.h (s390_tune_flags): Update declaration.
1431         (s390_arch_flags): Likewise.
1432         * config/sh/sh.c (prepare_move_operands): Compare
1433         tls_symbolic_operand result with enum constant.
1434         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1435         (sh_expand_prologue): Add cast to enum type.
1436         (sh_expand_epilogue): Likewise.
1437         (tls_symbolic_operand): Change return type to enum tls_model.
1438         (fpscr_set_from_mem): Add cast to enum type.
1439         (legitimize_pic_address): Compare tls_symbolic_operand result with
1440         enum constant.
1441         (sh_target_reg_class): Change return type to enum reg_class.
1442         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1443         PROCESSOR_xxx.
1444         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1445         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1446         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1447         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1448         (delayed_branch, tls_call_delay): Likewise.
1449         (eligible_for_sibcall_delay): Likewise.
1450         (eligible_for_return_delay): Likewise. 
1451         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1452         (spu_expand_builtin_1): Likewise.
1453
1454         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1455         for all types of conversions.
1456         (output_init_element): Issue -Wc++-compat warning if needed when
1457         initializing a bitfield with enum type.
1458         * c-parser.c (c_parser_expression): Set original_type to
1459         original_type of right hand operand of comman operator.
1460
1461 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1462
1463         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1464         grammar nits.
1465         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1466         * doc/cpp.texi (Standard Predefined Macros)
1467         (Implementation-defined behavior): Likewise.
1468         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1469         * doc/gimple.texi (GIMPLE Exception Handling)
1470         (@code{GIMPLE_ASSIGN}): Likewise.
1471         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1472         * doc/invoke.texi (Warning Options, Optimize Options)
1473         (AVR Options, Darwin Options): Likewise.
1474         (Optimize Options): Reformulate -fwhole-program description.
1475         * doc/loop.texi (Lambda): Likewise.
1476         * doc/md.texi (Output Template, Define Constraints)
1477         (Standard Names, Insn Splitting): Likewise.
1478         * doc/options.texi (Option properties): Likewise.
1479         * doc/passes.texi (Tree-SSA passes): Likewise.
1480         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1481         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1482         (File Names and DBX): Likewise.
1483         * doc/trouble.texi (Incompatibilities): Likewise.
1484
1485 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1486
1487         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1488         instruction is correct.
1489
1490 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1491
1492         Allow non-constant arguments to conversion intrinsics.
1493         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1494         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1495         * spu.c (print_operand): Handle 'v' and 'w'.
1496         (exp2_immediate_p, spu_gen_exp2): Define.
1497         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1498         spu_convtf_1): Update parameter descriptions.
1499         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1500         * constraints.md ('v', 'w'): New.
1501         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1502         Remove.
1503         (i2f, I2F): New define_mode_attr.
1504         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1505         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1506         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1507         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1508         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1509         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1510         patterns for combine.
1511
1512 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1513
1514         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1515         (cprop, hoist, pre, store_motion): New debug counters.
1516         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1517         is not an RTL pass anymore.
1518         (pass_profiling): Remove extern decl for pass removed in 2005.
1519         (pass_gcse, pass_jump_bypass): Remove.
1520         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1521         to 0 for clean state.
1522         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1523         * cse.c (gate_handle_cse_after_global_opts,
1524         rest_of_handle_cse_after_global_opts): New functions.
1525         (pass_cse_after_global_opts): New pass, does local CSE.
1526         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1527         (TV_CPROP): New timevar.
1528         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1529         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1530         (gcse_main, recompute_all_luids): Remove.
1531         (compute_hash_table_work): Call max_reg_num instead of reading
1532         max_gcse_regno.
1533         (cprop_jump): Don't set run_jump_opt_after_gcse.
1534         (constprop_register): Always allow to alter jumps.
1535         (cprop_insn): Likewise.
1536         (do_local_cprop): Likewise.
1537         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1538         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1539         (find_implicit_sets): Add note about missed optimization opportunity.
1540         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1541         pass_rtl_cprop execute function.
1542         Don't bother tracking the pass number, each pass gets its own dumpfile
1543         now anyway.
1544         Always allow to alter jumpsand bypass jumps.
1545         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1546         will just find no suitable set.
1547         (pre_edge_insert): Fix dumping, this function is for PRE only.
1548         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1549         pass_rtl_pre execute function.
1550         (hoist_code): Return non-zero if something changed.  Keep track of
1551         substitutions and insertions for statistics gathering similar to PRE.
1552         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1553         called from the pass_rtl_hoist execute function.  Show pass statistics.
1554         (compute_store_table): Use max_reg_num directly instead of using the
1555         formerly global max_gcse_regno.
1556         (build_store_vectors): Likewise.
1557         (replace_store_insn): Fix dumping.
1558         (store_motion): Rename to ...
1559         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1560         pass, called from the pass_rtl_store_motion execute function.  Keep
1561         track of substitutions and insertions for statistics gathering similar
1562         to PRE.
1563         (bypass_jumps): Remove, fold interesting bits into ...
1564         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1565         from the pass_rtl_cprop execute function.
1566         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1567         pass_jump_bypass): Remove.
1568         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1569         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1570         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1571         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1572         (gate_rtl_store_motion, execute_rtl_store_motion,
1573         pass_rtl_store_motion): New.
1574         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1575         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1576         * passes.c (init_optimization_passes): Remove pass_gcse and
1577         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1578         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1579         instead of pass_jump_bypass.
1580
1581 2009-04-27  Richard Guenther  <rguenther@suse.de>
1582
1583         PR middle-end/39928
1584         * gimplify.c (gimplify_expr): If we are required to create
1585         a temporary make sure it ends up as register.
1586
1587 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1588
1589         PR target/39903
1590         * config/i386/i386.c (construct_container): Don't call
1591         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1592         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1593
1594 2009-04-27  Michael Matz  <matz@suse.de>
1595
1596         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1597         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1598         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1599         (dump_replaceable_exprs): Take a bitmap.
1600         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1601         array.
1602         (expand_gimple_basic_block): Likewise.
1603         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1604         replaceable_expressions member a bitmap.
1605         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1606         (mark_replaceable): Likewise.
1607         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1608         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1609
1610 2009-04-27  Richard Guenther  <rguenther@suse.de>
1611
1612         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1613         (verify_stmts): Dispatch to gimple/type verification code.
1614         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1615         issue with call argument types.
1616
1617 2009-04-27  Michael Matz  <matz@suse.de>
1618
1619         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1620         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1621         to above.
1622
1623 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1624             Eric Botcazou  <ebotcazou@adacore.com>
1625
1626         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1627         a label's basic block.
1628         (mark_target_live_regs): Tidy and rework obsolete comments.
1629         Change back DF problem to LIVE.  If a label starts a basic block,
1630         assume that all registers that used to be live then still are.
1631         (init_resource_info): If a label starts a basic block, set its
1632         BLOCK_FOR_INSN accordingly.
1633         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1634
1635 2009-04-27  Richard Guenther  <rguenther@suse.de>
1636
1637         * tree-flow-inline.h (function_ann): Remove.
1638         (get_function_ann): Likewise.
1639         * tree-dfa.c (create_function_ann): Remove.
1640         * tree-flow.h (struct static_var_ann_d): Remove.
1641         (struct function_ann_d): Likewise.
1642         (union tree_ann_d): Remove fdecl member.
1643         (function_ann_t): Remove.
1644         (function_ann, get_function_ann, create_function_ann): Remove
1645         declarations.
1646
1647 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1648
1649         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1650
1651 2009-04-27  Jan Hubicka  <jh@suse.cz>
1652
1653         * ipa-pure-const.c (struct funct_state_d): New fields
1654         state_previously_known, looping_previously_known; remove
1655         state_set_in_source.
1656         (analyze_function): Use new fields.
1657         (propagate): Avoid assumption that state_set_in_source imply
1658         nonlooping.
1659
1660         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1661         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1662         * cfgloop.h (finite_loop_p): Declare.
1663
1664 2009-04-26  Michael Matz  <matz@suse.de>
1665
1666         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1667
1668 2009-04-26  Michael Matz  <matz@suse.de>
1669
1670         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1671         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1672         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1673         pass_mark_used_blocks): Remove.
1674         * tree-optimize.c (pass_free_datastructures,
1675         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1676         * passes.c (init_optimization_passes): Don't call
1677         pass_mark_used_blocks, remove dead code.
1678
1679 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1680
1681         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1682         * tree-ssa-live.h (register_ssa_partition): Likewise.
1683
1684 2009-04-26  Michael Matz  <matz@suse.de>
1685
1686         Expand from SSA.
1687         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1688         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1689         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1690         SSA names. 
1691         (compare_pairs): Swap cost comparison.
1692         (coalesce_ssa_name): Don't use change_partition_var.
1693         * tree-nrv.c (struct nrv_data): Add modified member.
1694         (finalize_nrv_r): Set it.
1695         (tree_nrv): Use it to update statements.
1696         (pass_nrv): Require PROP_ssa.
1697         * tree-mudflap.c (mf_decl_cache_locals,
1698         mf_build_check_statement_for): Use make_rename_temp.
1699         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1700         * alias.c (find_base_decl): Handle SSA names.
1701         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1702         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1703         * rtl.h (set_reg_attrs_for_parm): Declare.
1704         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1705         to "optimized", remove unused locals at finish.
1706         (execute_free_datastructures): Make global, call
1707         delete_tree_cfg_annotations.
1708         (execute_free_cfg_annotations): Don't call
1709         delete_tree_cfg_annotations.
1710
1711         * ssaexpand.h: New file.
1712         * expr.c (toplevel): Include ssaexpand.h.
1713         (expand_assignment): Handle SSA names the same as register variables.
1714         (expand_expr_real_1): Expand SSA names.
1715         * cfgexpand.c (toplevel): Include ssaexpand.h.
1716         (SA): New global variable.
1717         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1718         (SSAVAR): New macro.
1719         (set_rtl): New helper function.
1720         (add_stack_var): Deal with SSA names, use set_rtl.
1721         (expand_one_stack_var_at): Likewise.
1722         (expand_one_stack_var): Deal with SSA names.
1723         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1724         before unique numbers.
1725         (expand_stack_vars): Use set_rtl.
1726         (expand_one_var): Accept SSA names, add asserts for them, feed them
1727         to above subroutines.
1728         (expand_used_vars): Expand all partitions (without default defs),
1729         then only the local decls (ignoring those expanded already).
1730         (expand_gimple_cond): Remove edges when jumpif() expands an
1731         unconditional jump.
1732         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1733         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1734         SSA name.
1735         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1736         members of SA; deal with PARM_DECL partitions here; expand
1737         all PHI nodes, free tree datastructures and SA.  Commit instructions
1738         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1739         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1740         info and statements at start, collect garbage at finish.
1741         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1742         (VAR_ANN_PARTITION) Remove.
1743         (change_partition_var): Don't declare.
1744         (partition_to_var): Always return SSA names.
1745         (var_to_partition): Only accept SSA names.
1746         (register_ssa_partition): Only check argument.
1747         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1748         member.
1749         (delete_var_map): Don't free it.
1750         (var_union): Only accept SSA names, simplify.
1751         (partition_view_init): Mark only useful SSA names as used.
1752         (partition_view_fini): Only deal with SSA names.
1753         (change_partition_var): Remove.
1754         (dump_var_map): Use ssa_name instead of partition_to_var member.
1755         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1756         basic blocks.
1757         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1758         (struct _elim_graph): New member const_dests; nodes member vector of
1759         ints.
1760         (set_location_for_edge): New static helper.
1761         (create_temp): Remove.
1762         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1763         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1764         (new_elim_graph): Allocate const_dests member.
1765         (clean_elim_graph): Truncate const_dests member.
1766         (delete_elim_graph): Free const_dests member.
1767         (elim_graph_size): Adapt to new type of nodes member.
1768         (elim_graph_add_node): Likewise.
1769         (eliminate_name): Likewise.
1770         (eliminate_build): Don't take basic block argument, deal only with
1771         partition numbers, not variables.
1772         (get_temp_reg): New static helper.
1773         (elim_create): Use it, deal with RTL temporaries instead of trees.
1774         (eliminate_phi): Adjust all calls to new signature.
1775         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1776         (rewrite_trees): Only do checking.
1777         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1778         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1779         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1780         contains_tree_r, MAX_STMTS_IN_LATCH,
1781         process_single_block_loop_latch, analyze_edges_for_bb,
1782         perform_edge_inserts): Remove.
1783         (expand_phi_nodes): New global function.
1784         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1785         functions, initialize new parameter, remember partitions having a
1786         default def.
1787         (finish_out_of_ssa): New global function.
1788         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1789         don't reset in_ssa_p here, don't disable TER when mudflap.
1790         (pass_del_ssa): Remove.
1791         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1792         partition members.
1793         (execute_free_datastructures): Declare.
1794         * Makefile.in (SSAEXPAND_H): New variable.
1795         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1796         * basic-block.h (commit_one_edge_insertion): Declare.
1797         * passes.c (init_optimization_passes): Move pass_nrv and
1798         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1799         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1800         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1801         (redirect_branch_edge): Deal with super block when expanding, split
1802         out jump patching itself into ...
1803         (patch_jump_insn): ... here, new static helper.
1804
1805 2009-04-26  Michael Matz  <matz@suse.de>
1806
1807         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1808         beyond num_ssa_names.
1809         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1810         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1811
1812 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1813
1814         PR inline-asm/39543
1815         * fwprop.c (forward_propagate_asm): New function.
1816         (forward_propagate_and_simplify): Propagate also into __asm, if it
1817         doesn't increase the number of referenced registers.
1818
1819         PR c/39889
1820         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1821
1822 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1823
1824         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1825         note_nonlocal_vla_type for nonlocal VLAs.
1826         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1827         contains_remapped_vars, remap_vla_decls): New functions.
1828         (convert_nonlocal_reference_stmt): If not optimizing, call
1829         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1830         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1831         if it wasn't found in var_map.
1832         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1833         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1834         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1835         declare_vars.
1836         * gimplify.c (nonlocal_vlas): New variable.
1837         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1838         referenced VLAs.
1839         (gimplify_body): Create and destroy nonlocal_vlas.
1840
1841         * dwarf2out.c (loc_descr_plus_const): New function.
1842         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1843         mem_loc_descriptor, loc_descriptor_from_tree_1,
1844         descr_info_loc, gen_variable_die): Use it.
1845
1846         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1847         !TREE_STATIC VAR_DECLs.
1848         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1849         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1850         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1851         DECL_BY_REFERENCE is valid.
1852         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1853         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1854         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1855         Copy DECL_BY_REFERENCE.
1856         (struct nesting_copy_body_data): New type.
1857         (nesting_copy_decl): New function.
1858         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1859         if they have variable length.
1860
1861 2009-04-26  Michael Matz  <matz@suse.de>
1862
1863         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1864         mark new temporaries for renaming.
1865
1866 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1867
1868         PR c/39581
1869         * c-decl.c (global_bindings_p): Return negative value.
1870         (c_variable_size): New.  Based on variable_size from
1871         stor-layout.c.
1872         (grokdeclarator): Call c_variable_size not variable_size.
1873
1874 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1875
1876         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1877
1878 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1879
1880         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1881         Redefine it to just use mingw/include.
1882         (ASM_SPEC): Rules for -m32 and -m64.
1883         (LINK_SPEC): Use Likewise.
1884         (SPEC_32): New define.
1885         (SPEC_64): Likewise.
1886         (SUB_LINK_SPEC): Likewise.
1887         (MULTILIB_DEFAULTS): New define.
1888         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1889         Add multilib options.
1890         (MULTILIB_DIRNAMES): Likewise.
1891         (MULTILIB_OSDIRNAMES): Likewise.
1892         (LIBGCC): Likewise.
1893         (INSTALL_LIBGCC): Likewise.
1894
1895 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1896
1897         PR c/39556
1898         * c-tree.h (enum c_inline_static_type): New.
1899         (record_inline_static): Declare.
1900         * c-decl.c (struct c_inline_static, c_inline_statics,
1901         record_inline_static, check_inline_statics): New.
1902         (pop_file_scope): Call check_inline_statics.
1903         (start_decl): Call record_inline_static instead of pedwarning
1904         directly for static in inline function.
1905         * c-typeck.c (build_external_ref): Call record_inline_static
1906         instead of pedwarning directly for static referenced in inline
1907         function.
1908
1909 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1910
1911         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1912         not new but only being rescanned.
1913         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1914         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1915         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1916         record_set_info, compute_set, grealloc): Remove.
1917         (recompute_all_luids): New function.
1918         (gcse_main): Don't compute sets, and don't do related memory
1919         allocations/free-ing.  If something changed before the end of the
1920         pass, update LUIDs using recompute_all_luids.
1921         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1922         (free_gcse_mem): Don't free it either.
1923         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1924         Use the df insn LUIDs.
1925         (load_killed_in_block): Likewise.
1926         (compute_hash_table_work): Don't compute reg_set_in_block.
1927         (compute_transp): Use DF_REG_DEF_CHAINs.
1928         (local_cprop_pass): Don't use compute_sets and related functions.
1929         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1930         Use get_max_uid() instead of max_cuid.
1931         (insert_insn_end_basic_block, pre_insert_copy_insn,
1932         update_ld_motion_stores): Don't try to
1933         keep reg_set tables up to date.
1934         (pre_insert_copies): Use df insn LUIDs.
1935         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1936         (reg_set_info): Don't use extra bitmap argument.
1937         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1938         information to compute regs_set_in_block.
1939         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1940         (bypass_jumps): Don't use compute_sets and friends.
1941
1942 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1943
1944         PR testsuite/39710
1945         * opts.c (undocumented_msg): Do not leave blank even with
1946         ENABLE_CHECKING.
1947
1948 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1949
1950         * c-decl.c (build_enumerator): Allow values folding to integer
1951         constants but not integer constant expressions with a pedwarn if
1952         pedantic.
1953
1954 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1955
1956         PR c/39582
1957         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1958         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1959         type is an integer constant.
1960
1961 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1962
1963         PR target/39897
1964         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1965         HImode operands.
1966
1967 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1968
1969         PR c/39564
1970         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1971         with variably modified return type and no storage class
1972         specifiers, except for the case of nested functions.  Distinguish
1973         extern declarations of functions with variably modified return
1974         types from those of objects with variably modified types.
1975
1976 2009-04-25  Jan Hubicka  <jh@suse.cz>
1977
1978         * tree.c (list_equal_p): New function.
1979         * tree.h (list_equal_p): Declare.
1980         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1981         basic_block_def, basic_block, const_basic_block): New.
1982         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1983         (redirect_eh_edge): New function.
1984         (make_eh_edge_update_phi): EH edges are not abnormal.
1985         * except.c: Include tree-flow.h.
1986         (list_match): New function.
1987         (eh_region_replaceable_by_p): New function.
1988         (replace_region): New function.
1989         (hash_type_list): New function.
1990         (hash_eh_region): New function.
1991         (eh_regions_equal_p): New function.
1992         (merge_peers): New function.
1993         (remove_unreachable_regions): Verify EH tree when checking;
1994         merge peers.
1995         (copy_eh_region_1): New function.
1996         (copy_eh_region): New function.
1997         (push_reachable_handler): New function.
1998         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1999         regions without label but with live RESX.
2000         * except.h (redirect_eh_edge_to_label): New.
2001         * tree-flow.h (redirect_eh_edge): New.
2002         * coretypes.h (edge_def, edge, const_edge, basic_block_def
2003         basic_block_def, basic_block, const_basic_block): Remove.
2004         * Makefile.in (except.o): Add dependency on tree-flow.h
2005         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2006         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2007         Remove.
2008
2009 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2010
2011         PR bootstrap/39645
2012         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2013         on the destination of memcpy.
2014
2015 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
2016
2017         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2018         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2019         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2020
2021 2009-04-25  Jan Hubicka  <jh@suse.cz>
2022
2023         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2024         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2025         to be reached by different label than left.
2026         (update_eh_edges): Update comment; remove edge_to_remove if possible
2027         and return true if suceeded.
2028         (cleanup_empty_eh): Accept sharing map; handle shared regions.
2029         (cleanup_eh): Compute sharing map.
2030         * except.c (remove_eh_handler_and_replace): Add argument if we should
2031         update regions.
2032         (remove_unreachable_regions): Update for label sharing.
2033         (label_to_region_map): Likewise.
2034         (get_next_region_sharing_label): New function.
2035         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2036         prev_try pointers.
2037         (remove_eh_handler): Update.
2038         (remove_eh_region_and_replace_by_outer_of): New function.
2039         * except.h (struct eh_region): Add next_region_sharing_label.
2040         (remove_eh_region_and_replace_by_outer_of,
2041         get_next_region_sharing_label): Declare.
2042         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2043
2044 2009-04-25  Jan Hubicka  <jh@suse.cz>
2045
2046         * tree-cfg.c (split_critical_edges): Split also edges where we can't
2047         insert code even if they are not critical.
2048
2049 2009-04-25  Jan Hubicka  <jh@suse.cz>
2050
2051         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2052         (gimple_can_remove_branch_p): EH edges won't remove branch by
2053         redirection.
2054         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2055         updating of non-abnormal EH edges.
2056         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2057         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2058         (split_critical_edges): Split also edges where emitting code on them
2059         will lead to splitting later.
2060
2061 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
2062             H.J. Lu  <hongjiu.lu@intel.com>
2063
2064         PR target/39590
2065         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2066         the configured assembler supports fildq and fistpq mnemonics.
2067         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2068         * configure: Regenerated.
2069         * config.in: Ditto.
2070
2071         * config/i386/i386.c (print_operand): Handle 'Z'.
2072         ['z']: Remove handling of special fild/fist suffixes.
2073         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2074         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2075         suffix of fild insn.
2076         (*floatsi<mode>2_vector_mixed): Ditto.
2077         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2078         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2079         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2080         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2081         * config/i386/gas.h (GAS_MNEMONICS): Remove.
2082
2083 2009-04-25  Ben Elliston  <bje@au.ibm.com>
2084  
2085         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2086         the source of a set operation.
2087
2088 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
2089
2090         * target.h (struct gcc_target): Add case_values_threshold field.
2091         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2092         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2093         * targhooks.c (default_case_values_threshold): New function.
2094         * targhooks.h (default_case_values_threshold): Declare function.
2095         * stmt.c (expand_case): Use case_values_threshold target hook.
2096         * expr.h (case_values_threshold): Remove declartation.
2097         * expr.c (case_values_threshold): Remove function.
2098         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2099
2100         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2101         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2102         (avr_case_values_threshold): Declare as static.
2103         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2104
2105         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2106         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2107         (mn10300_case_values_threshold): New function.
2108
2109 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2110
2111         * ira.c (setup_cover_and_important_classes): Add enum cast.
2112
2113 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2114
2115         * genpreds.c (write_enum_constraint_num): Output definition of
2116         CONSTRAINT_NUM_DEFINED_P macro.
2117         * ira.c (setup_cover_and_important_classes): Use
2118         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2119         
2120 2009-04-24  DJ Delorie  <dj@redhat.com>
2121
2122         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2123         __SH2A_SINGLE_ONLY__ also.
2124
2125 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
2126
2127         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2128         (movdf_internal): Ditto.
2129         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2130         SFmode and DFmode constants.
2131         (ia64_print_operand): Add 'G' format for printing
2132         floating point constants.
2133
2134 2009-04-24  Richard Guenther  <rguenther@suse.de>
2135
2136         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2137         from unsigned additions.
2138
2139 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
2140
2141         * c-typeck.c (set_init_index): Allow array designators that are
2142         not integer constant expressions with a pedwarn if pedantic.
2143
2144 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2145
2146         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2147         zero if no overlap in nonzero bits between the operands.
2148
2149 2009-04-24  Ian Lance Taylor  <iant@google.com>
2150
2151         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2152         (record_dead_and_set_regs): Likewise.
2153         * df.h (struct df_mw_hardreg): Change flags field to int.
2154         (struct df_base_ref): Likewise.
2155         (struct df): Change changeable_flags field to int.
2156         * df-scan.c (df_defs_record): Change clobber_flags to int.
2157         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2158         constants rather than #define macros.
2159         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2160         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2161         (enum dwarf_calling_convention): Likewise.
2162         (enum dwarf_line_number_x_ops): Likewise.
2163         (enum dwarf_call_frame_info): Likewise.
2164         (enum dwarf_source_language): Likewise.
2165         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2166         (add_calling_convention_attribute): Likewise.
2167         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2168         (combine_comparisons): Change compcode to int.  Add cast to enum type.
2169         * genrecog.c (maybe_both_true_2): Change c to int.
2170         (write_switch): Likewise.  Add cast to enum type.
2171         * gimplify.c (gimplify_omp_for): Handle return values from
2172         gimplify_expr using MIN rather than bitwise or.
2173         (gimplify_expr): Add cast to enum type.
2174         * ipa-prop.c (update_jump_functions_after_inlining): Change
2175         IPA_BOTTOM to IPA_JF_UNKNOWN.
2176         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2177         Add casts to enum type.
2178         (setup_cover_and_important_classes): Change cl to int.  Add casts
2179         to enum type.
2180         (setup_class_translate): Change cl and mode to int.
2181         (ira_init_once): Change mode to int.
2182         (free_register_move_costs): Likewise.
2183         (setup_prohibited_mode_move_regs): Add casts to enum type.
2184         * langhooks.c (add_builtin_function_common): Rework assertion that
2185         value fits bitfield.
2186         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2187         * omega.c (omega_do_elimination): Avoid math on enum types.
2188         * optabs.c (expand_vec_shift_expr): Remove casts to int.
2189         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
2190         int local to handle integral_argment value.
2191         * regmove.c (try_auto_increment): Change PUT_MODE to
2192         PUT_REG_NOTE_KIND.
2193         * reload.c (push_secondary_reload): Add casts to enum type.
2194         (secondary_reload_class, find_valid_class): Likewise.
2195         * reload1.c (emit_input_reload_insns): Likewise.
2196         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2197         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2198         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2199         constant.
2200         * tree.c (build_common_builtin_nodes): Add casts to enum type.
2201         * tree-complex.c (complex_lattice_t): Typedef to int rather than
2202         enum type.
2203         (expand_complex_libcall): Add casts to enum type.
2204         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
2205         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
2206         with ERROR_MARK, not NUM_TREE_CODES.
2207         (vect_create_epilog_for_reduction): Likewise.
2208         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
2209         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
2210         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
2211         enum machine_mode.
2212         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
2213         vect_unused_in_loop.  Change 0 to loop_vect.
2214         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
2215         * var-tracking.c (get_init_value): Change return type to enum
2216         var_init_status.
2217         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
2218         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
2219         arm_fp_model.
2220         (arm_override_options): Add casts to enum type.
2221         (arm_emit_tls_decoration): Likewise.
2222         * config/i386/i386.c (ix86_function_specific_restore): Add casts
2223         to enum type.
2224         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
2225         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
2226         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
2227         enum type.
2228         * config/s390/s390.c (code_for_builtin_64): Change to array of
2229         enum insn_code.
2230         (code_for_builtin_31): Likewise.
2231         (s390_expand_builtin): Change code_for_builtin to enum insn_code
2232         const *.
2233         * config/sparc/sparc.c (sparc_override_options): Change value
2234         field in struct code_model to enum cmodel.  In initializer change
2235         0 to NULL and add cast to enum type.
2236
2237         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
2238         Change all callers.  Issue a -Wc++-compat warning using
2239         lhs_origtype if necessary.
2240         (convert_for_assignment): Issue -Wc++-compat warnings about
2241         invalid conversions to enum type on assignment.
2242         * c-common.h (build_modify_expr): Update declaration.
2243
2244 2009-04-24  Nick Clifton  <nickc@redhat.com>
2245
2246         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
2247         (function_arg_advance): Likewise.
2248         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
2249         5th alternative.
2250
2251 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2252
2253         * config/s390/constraints.md ('I', 'J'): Fix condition.
2254
2255 2009-04-24  Diego Novillo  <dnovillo@google.com>
2256
2257         * gengtype-parse.c (parse_error): Add newline after message.
2258
2259 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2260
2261         * config/i386/sse.md (avxmodesuffixs): Removed.
2262         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2263         (*avx_pinsr<ssevecsize>): This.
2264
2265 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2266
2267         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2268         follow chains of regs with a single definition, and allow expressions
2269         that are function_invariant_p.
2270         (simple_rhs_p): Allow expressions that are function_invariant_p.
2271
2272 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
2273
2274         PR middle-end/39867
2275         * fold-const.c (fold_cond_expr_with_comparison): When folding
2276         > and >= to MAX, make sure the MAX uses the same type as the
2277         comparison's operands.
2278
2279 2009-04-24  Nick Clifton  <nickc@redhat.com>
2280
2281         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2282         addressing for DImode accesses.
2283         (frv_print_operand_address): Handle PLUS case.
2284         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
2285
2286 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
2287
2288         PR rtl-optimization/39794
2289         * alias.c (canon_true_dependence): Add x_addr argument.
2290         * rtl.h (canon_true_dependence): Adjust prototype.
2291         * cse.c (check_dependence): Adjust canon_true_dependence callers.
2292         * cselib.c (cselib_invalidate_mem): Likewise.
2293         * gcse.c (compute_transp): Likewise.
2294         * dse.c (scan_reads_nospill): Likewise.
2295         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
2296         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2297         canon_base_addr of the group, plus optional offset.
2298         (struct group_info): Rename canon_base_mem to
2299         canon_base_addr.
2300         (get_group_info): Set canon_base_addr to canon_rtx of base, not
2301         canon_rtx of base_mem.
2302
2303 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
2304
2305         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2306         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2307
2308 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2309
2310         * config/spu/spu-builtins.h: Delete file.
2311
2312         * config/spu/spu.h (enum spu_builtin_type): Move here from
2313         spu-builtins.h.
2314         (struct spu_builtin_description): Likewise.  Add GTY marker.
2315         Do not use enum spu_function_code or enum insn_code.
2316         (spu_builtins): Add extern declaration.
2317
2318         * config/spu/spu.c: Do not include "spu-builtins.h".
2319         (enum spu_function_code, enum spu_builtin_type_index,
2320         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2321         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2322         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2323         unsigned_V2DI_type_node): Move here from spu-builtins.h.
2324         (spu_builtin_types): Make static.  Add GTY marker.
2325         (spu_builtins): Add extern declaration with GTY marker.
2326         Include "gt-spu.h".
2327
2328         * config/spu/spu-c.c: Do not include "spu-builtins.h".
2329         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2330         Check programmatically whether all parameters are scalar.
2331
2332         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2333
2334 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2335
2336         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2337         assignment from the constructor either if the target is volatile.
2338
2339 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
2340
2341         * config/arm/arm.md (insv): Do not share operands[0].
2342
2343 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2344
2345         * config/vxlib-tls.c (active_tls_threads): Delete.
2346         (delete_hook_installed): New.
2347         (tls_delete_hook): Don't delete the delete hook.
2348         (tls_destructor): Delete it here.
2349         (__gthread_set_specific): Adjust installing the delete hook.
2350         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2351         __gthread_leave_tsd_dtor_context.
2352
2353 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
2354
2355         * c-format.c (gcc_tdiag_char_table): Add support for %E.
2356
2357 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
2358
2359         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2360         enum type.
2361         (alpha_rtx_costs): Ditto.
2362         (emit_unlikely_jump): Use add_reg_note.
2363         (emit_frame_store_1): Ditto.
2364         (alpha_expand_prologue): Ditto.
2365         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2366         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2367
2368 2009-04-23  Nick Clifton  <nickc@redhat.com>
2369
2370         * config/v850/v850.md (epilogue): Remove suppressed code.
2371         (return): Rename to return_simple and remove test of frame size.
2372         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2373         to gen_return_simple.
2374
2375 2009-04-22  Jing Yu  <jingyu@google.com>
2376
2377         PR testsuite/39781
2378         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2379
2380 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2381
2382         PR C/31499
2383         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2384         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2385         value is a VECTOR_CST, the element type is the element type of the
2386         vector.
2387
2388 2009-04-22  DJ Delorie  <dj@redhat.com>
2389
2390         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2391
2392 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2393
2394         * alias.c (find_base_term): Move around LO_SUM case, so that
2395         CONST falls through into PLUS/MINUS handling.
2396
2397         PR c/39855
2398         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2399         into 0, use omit_one_operand.
2400
2401 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2402
2403         * config/rs6000/linux-unwind.h (get_regs): Remove type
2404         puns. Change the type of `pc' to an array of unsigned ints and
2405         update all users.  Constify frame24.
2406
2407 2009-04-22  DJ Delorie  <dj@redhat.com>
2408
2409         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2410         declarations before code.
2411         (current_function_special_page_vector): Likewise.
2412         (m32c_expand_insv): Silence a warning.
2413
2414 2009-04-21  Taras Glek  <tglek@mozilla.com>
2415
2416         * alias.c: Update GTY annotations to new syntax.
2417         * basic-block.h: Likewise.
2418         * bitmap.h: Likewise.
2419         * c-common.h: Likewise.
2420         * c-decl.c: Likewise.
2421         * c-parser.c: Likewise.
2422         * c-pragma.c: Likewise.
2423         * c-tree.h: Likewise.
2424         * cfgloop.h: Likewise.
2425         * cgraph.h: Likewise.
2426         * config/alpha/alpha.c: Likewise.
2427         * config/arm/arm.h: Likewise.
2428         * config/avr/avr.h: Likewise.
2429         * config/bfin/bfin.c: Likewise.
2430         * config/cris/cris.c: Likewise.
2431         * config/darwin.c: Likewise.
2432         * config/frv/frv.c: Likewise.
2433         * config/i386/i386.c: Likewise.
2434         * config/i386/i386.h: Likewise.
2435         * config/i386/winnt.c: Likewise.
2436         * config/ia64/ia64.h: Likewise.
2437         * config/iq2000/iq2000.c: Likewise.
2438         * config/mips/mips.c: Likewise.
2439         * config/mmix/mmix.h: Likewise.
2440         * config/pa/pa.c: Likewise.
2441         * config/pa/pa.h: Likewise.
2442         * config/rs6000/rs6000.c: Likewise.
2443         * config/s390/s390.c: Likewise.
2444         * config/sparc/sparc.c: Likewise.
2445         * config/xtensa/xtensa.c: Likewise.
2446         * cselib.h: Likewise.
2447         * dbxout.c: Likewise.
2448         * dwarf2out.c: Likewise.
2449         * except.c: Likewise.
2450         * except.h: Likewise.
2451         * fixed-value.h: Likewise.
2452         * function.c: Likewise.
2453         * function.h: Likewise.
2454         * gimple.h: Likewise.
2455         * integrate.c: Likewise.
2456         * optabs.c: Likewise.
2457         * output.h: Likewise.
2458         * real.h: Likewise.
2459         * rtl.h: Likewise.
2460         * stringpool.c: Likewise.
2461         * tree-data-ref.c: Likewise.
2462         * tree-flow.h: Likewise.
2463         * tree-scalar-evolution.c: Likewise.
2464         * tree-ssa-address.c: Likewise.
2465         * tree-ssa-alias.h: Likewise.
2466         * tree-ssa-operands.h: Likewise.
2467         * tree.c: Likewise.
2468         * tree.h: Likewise.
2469         * varasm.c: Likewise.
2470         * varray.h: Likewise.
2471         * vec.h: Likewise.
2472         * coretypes.h: Do not define GTY macro if it is already defined.
2473         * doc/gty.texi: Update GTY documentation to new syntax.
2474         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2475         annotations on structs.
2476         * gengtype-parse.c: Likewise.
2477
2478 2009-04-22  Mark Heffernan  <meheff@google.com>
2479
2480         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2481
2482 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2483
2484         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2485         where appropriate.
2486
2487 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2488
2489         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2490         the same as a PLUS without a shift.  Increase the cost of a
2491         CONST_INT in MULT.
2492
2493 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2494
2495         * Makefile.in: Update dependencies.
2496         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2497         * errors.h: Remove bogus comment about compatibility.
2498         (warning): Update declaration.
2499         * genautomata.c: Update all calls to warning.
2500         * gimple.c: Do not include errors.h. Include toplev.h.
2501         * tree-ssa-structalias.c: Do not include errors.h.
2502         * omega.c: Likewise.
2503         * tree-ssa-reassoc.c: Likewise.
2504         * config/spu/spu-c.c: Likewise.
2505         * config/spu/t-spu-elf: Update dependencies.
2506
2507 2009-04-22  Richard Guenther  <rguenther@suse.de>
2508
2509         PR tree-optimization/39824
2510         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2511         make sure the types are compatible.
2512
2513 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2514
2515         PR c++/14875
2516         * c-common.c (c_parse_error): Take a token_flags parameter.
2517         Use token_type for the token type instead.
2518         Pass token_flags to cpp_type2name.
2519         * c-common.h (c_parse_error): Update declaration.
2520         * c-parser.c (c_parser_error): Pass 0 as token flags.
2521
2522 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2523
2524         PR rtl-optimization/39580
2525         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2526         
2527 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2528
2529         * function.c (expand_function_end): Do not emit a jump to the "naked"
2530         return label for fall-through returns.
2531         * except.c (sjlj_emit_function_exit): Always place the call to the
2532         unregister function at the location installed by expand_function_end.
2533
2534 2009-04-22  Richard Guenther  <rguenther@suse.de>
2535
2536         PR tree-optimization/39845
2537         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2538         (gen_inbound_check): Likewise.
2539
2540 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2541
2542         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2543         padding for PPC.
2544         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2545         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2546
2547 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2548
2549         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2550         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2551         shift counts to avoid out-of-bounds array accesses.
2552
2553 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2554
2555         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2556         (Pmode): Move above.
2557
2558 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2559
2560         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2561         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2562         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2563         * config/alpha/alpha.h: Ditto.
2564         * config/alpha/alpha.md: Ditto.
2565         * config/alpha/constraints.md: Ditto.
2566         * config/alpha/predicates.md: Ditto.
2567         
2568 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2569
2570         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2571         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2572         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2573         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2574         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2575         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2576         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2577         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2578         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2579         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2580         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2581         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2582         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2583         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2584         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2585         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2586         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2587         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2588         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2589         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2590         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2591         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2592         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2593         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2594         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2595         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2596         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2597
2598 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2599
2600         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2601         references from comments.
2602         * cfgbuild.c: (count_basic_blocks): Delete.
2603         (find_basic_blocks_1): Delete.
2604         (find_basic_blocks): Delete.
2605         * except.c (finish_eh_generation): Make static.  Move comment from
2606         except.h here.  Remove find_basic_blocks references from comments.
2607         * except.h (finish_eh_generation): Delete.
2608         * basic-block.h (find_basic_blocks): Delete.
2609         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2610
2611 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2612
2613         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2614         (sdbout_parms):  Likewise.
2615
2616 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2617
2618         * config/sh/sh.c (prepare_cbranch_operands): Use
2619         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2620         (expand_cbranchdi4): Likewise.
2621         (from_compare): Add cast to enum type.
2622         (expand_cbranchsi4): Use add_reg_note.
2623         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2624         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2625         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2626         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2627         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2628         instead of CODE_FOR_nothing.
2629         (cbranchdi4): Likewise.  Fix the order of arguments for
2630         gen_rtx_fmt_ee.
2631         (push_fpscr): Use add_reg_note.
2632         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2633         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2634         
2635 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2636
2637         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2638         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2639         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2640         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2641         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2642         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2643         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2644         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2645         config/alpha/x-vms, config/arc/t-arc,
2646         config/arm/README-interworking, config/arm/arm-c.c,
2647         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2648         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2649         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2650         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2651         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2652         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2653         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2654         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2655         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2656         config/cris/t-elfmulti, config/crx/t-crx,
2657         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2658         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2659         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2660         config/h8300/t-h8300, config/i386/athlon.md,
2661         config/i386/darwin-libgcc.10.4.ver,
2662         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2663         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2664         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2665         config/i386/t-linux64, config/i386/t-nwld,
2666         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2667         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2668         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2669         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2670         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2671         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2672         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2673         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2674         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2675         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2676         config/m68k/t-uclinux, config/mcore/t-mcore,
2677         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2678         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2679         config/mips/crtn.asm, config/mips/irix-crti.asm,
2680         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2681         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2682         config/mips/mips-fixed.md, config/mips/sb1.md,
2683         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2684         config/mips/t-iris6, config/mips/t-isa3264,
2685         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2686         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2687         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2688         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2689         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2690         config/mn10300/t-linux, config/mn10300/t-mn10300,
2691         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2692         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2693         config/picochip/libgccExtras/clzsi2.asm,
2694         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2695         config/rs6000/darwin-libgcc.10.4.ver,
2696         config/rs6000/darwin-libgcc.10.5.ver,
2697         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2698         config/rs6000/t-aix43, config/rs6000/t-aix52,
2699         config/rs6000/t-darwin, config/rs6000/t-fprules,
2700         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2701         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2702         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2703         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2704         config/rs6000/t-rtems, config/rs6000/t-spe,
2705         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2706         config/score/t-score-elf, config/sh/divcost-analysis,
2707         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2708         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2709         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2710         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2711         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2712         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2713         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2714         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2715         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2716         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2717         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2718         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2719         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2720         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2721         * config/h8300/genmova.sh: Include copyright and license notices
2722         in generated output.
2723         * config/h8300/mova.md: Regenerate.
2724         * doc/install.texi2html: Include word "Copyright" in copyright
2725         notice and use name "Free Software Foundation, Inc.".
2726         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2727         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2728         ChangeLog-2007, ChangeLog-2008: Correct dates.
2729
2730 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2731
2732         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2733         NE_EXPR operations as well.
2734         * c-parser.c (c_parser_condition): Do not set location information on
2735         the condition.
2736         (c_parser_conditional_expression): Likewise.
2737         (c_parser_binary_expression): Set location information on operators.
2738         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2739         TRUTH_NOT_EXPR has been folded.
2740         * fold-const.c (fold_truth_not_expr): Copy location information from
2741         the incoming expression to the outgoing one.
2742         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2743         recursive calls on the LHS of the operator but pass that of the
2744         operator to recursive calls on the RHS of the operator.  Set it
2745         on the COND_EXPR.
2746         (shortcut_cond_expr): Set the locus of the operator on the second
2747         COND_EXPR and that of the expression on the first in degenerate cases.
2748         Pass the locus of the expression to calls to shortcut_cond_r.
2749         Set the locus of the 'then' block on the associated jump, if any.
2750         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2751         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2752         expression to call to gimplify_boolean_expr.
2753
2754 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2755
2756         * config.gcc: Add additional configuration for
2757         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2758         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2759         (CPP_SPEC): Redefine for allowing -municode option.
2760         (STARTFILE_SPEC): Likewise.
2761         * config/i386/t-mingw-w64: New.
2762         * config/i386/mingw-w64.opt: New.
2763         (municode): Add new target option.
2764         * doc/invoke.texi (municode): Add documentation for new option.
2765
2766 2009-04-21  Ian Lance Taylor  <iant@google.com>
2767
2768         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2769         Correct test for number of arguments.
2770         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2771
2772 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2773
2774         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2775         argument of emit_library_call.
2776
2777 2009-04-21  Richard Guenther  <rguenther@suse.de>
2778
2779         PR middle-end/39829
2780         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2781         inside VIEW_CONVERT_EXPRs.
2782
2783 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2784
2785         * tree-switch-conversion.c (build_constructors): Split a long line.
2786         (constructor_contains_same_values_p): New function.
2787         (build_one_array): Create assigns of constants if possible, do not
2788         call mark_sym_for_renaming, call update_stmt.
2789         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2790         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2791         update_stmt.
2792         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2793         find_new_referenced_vars, call update_stmt.
2794         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2795         instead of calling make_rename_temp.  Do not call
2796         find_new_referenced_vars or mark_symbols_for_renaming, call
2797         update_stmt.
2798
2799 2009-04-21  Richard Guenther  <rguenther@suse.de>
2800
2801         PR tree-optimization/39827
2802         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2803         (tree_ssa_phiprop): Pass the correct array size.
2804
2805 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2806
2807         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2808
2809 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2810
2811         PR 16202
2812         * c-typeck.c (lvalue_p): Move declaration ...
2813         * c-common.h (lvalue_p): ... to here.
2814         * c-common.c (candidate_equal_p): New.
2815         (add_tlist): Use it.
2816         (merge_tlist): Use it.
2817         (warn_for_collisions_1): Likewise.
2818         (warning_candidate_p): Accept more candidates.
2819         (verify_tree): A warning candidate can be an expression. Use
2820         candidate_equal_p.
2821
2822 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2823
2824         PR target/5267
2825         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2826         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2827         options.  Remove -mcall-solaris documentation.
2828
2829 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2830
2831         PR c++/13358
2832         * doc/invoke.texi (-Wlong-long): Update description.
2833         * c-lex (interpret_integer): Only warn if there was no previous
2834         overflow and -Wlong-long is enabled.
2835         * c-decl.c (declspecs_add_type): Drop redundant flags.
2836         * c.opt (Wlong-long): Init to -1.
2837         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2838         and front-end warn_long_long. Wlong-long only depends on other
2839         flags if it is uninitialized.
2840         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2841         the same for CPP and FE.
2842         (restore_extension_diagnostics): Likewise.
2843
2844 2009-04-20  Ian Lance Taylor  <iant@google.com>
2845
2846         Fix enum conversions which are invalid in C++:
2847         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2848         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2849         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2850         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2851         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2852         (dbxout_parms): Likewise.
2853         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2854         (df_clear_flags): Likewise.
2855         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2856         top_flag parameter to int.
2857         (df_chain_create_bb_process_use): Likewise.
2858         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2859         Remove cast.
2860         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2861         (df_ref_create_structure, df_def_record_1): Likewise.
2862         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2863         (df_notes_rescan): Change 0 to VOIDmode in function call.
2864         (df_get_call_refs, df_insn_refs_collect): Likewise.
2865         (df_bb_regs_collect): Likewise.
2866         (df_entry_block_defs_collect): Likewise.
2867         (df_exit_block_uses_collect): Likewise.
2868         * df.h: Update declarations.
2869         * double-int.c (double_int_divmod): Add cast to enum type.
2870         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2871         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2872         (based_loc_descr): Likewise.
2873         (loc_descriptor_from_tree_1): Change first_op and second_op to
2874         enum dwarf_location_atom.  Add cast to enum type.
2875         * expmed.c (init_expmed): Change 0 to SET in function call.
2876         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2877         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2878         (do_store_flag): Likewise.
2879         * fixed-value.h (struct fixed_value): Change mode to enum
2880         machine_mode.
2881         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2882         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2883         function call.
2884         (insert_insn_decl, insert_decl, insert_state): Likewise.
2885         (automata_list_finish): Likewise.
2886         * genrecog.c (process_define_predicate): Add cast to enum type.
2887         * gensupport.c (init_predicate_table): Add cast to enum type.
2888         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2889         function call.
2890         (gimple_build_call_1, gimple_build_label): Likewise.
2891         (gimple_build_goto, gimple_build_asm_1): Likewise.
2892         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2893         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2894         (enum fallback): Rename from enum fallback_t.
2895         (fallback_t): Typedef as int.
2896         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2897         GSI_SAME_STMT in function call.
2898         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2899         enum type.
2900         (setup_reg_class_relations): Likewise.
2901         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2902         (setup_prohibited_class_mode_regs): Add cast to enum type.
2903         (setup_prohibited_mode_move_regs): Likewise.
2904         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2905         (record_address_regs): Change i to enum reg_class.
2906         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2907         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2908         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2909         (GET_MODE_2XWIDER_MODE): Likewise.
2910         (GET_CLASS_NARROWEST_MODE): Likewise.
2911         * omp-low.c (expand_omp_for): Add cast to enum type.
2912         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2913         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2914         * postreload.c (reload_cse_simplify_operands): Change rclass local
2915         to enum reg_class.
2916         * predict.c (combine_predictions_for_insn): Change best_predictor
2917         and predictor to enum br_predictor.
2918         (combine_predictions_for_bb): Likewise.
2919         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2920         use SET_PREDICT_EXPR_OUTCOME.
2921         * real.c (real_arithmetic): Change icode to code in function call.
2922         * reginfo.c (init_move_cost): Add casts to enum type.
2923         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2924         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2925         enum reg_class.
2926         * reload.c (find_valid_class): Add casts to enum type.
2927         (push_reload): Change 0 to NO_REGS in function call.
2928         (find_reloads): Change this_alternative to array of enum
2929         reg_class.  Remove some now-unnecessary casts.
2930         (make_memloc): Change 0 to VOIDmode in function call.
2931         * reload1.c (reload): Change 0 to VOIDmode in function call.
2932         (eliminate_regs_1, elimination_effects): Likewise.
2933         (eliminate_regs_in_insn): Likewise.
2934         (emit_input_reload_insns): Add cast to enum type.
2935         (delete_output_reload): Change 0 to VOIDmode in function call.
2936         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2937         to enum type in function call.
2938         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2939         (SET_PREDICT_EXPR_OUTCOME): Define.
2940         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2941         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2942         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2943         (dump_function): Likewise.
2944         * tree-dump.h: Update declarations.
2945         * tree-pass.h: Update declarations.
2946         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2947         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2948         enum type.
2949         (arm_rtx_costs_1): Correct parenthesization.
2950         (arm_rtx_costs): Add casts to enum type.
2951         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2952         (vfp_emit_fstmd): Use add_rg_note.
2953         (emit_multi_reg_push, emit_sfm): Likewise.
2954         (thumb_set_frame_pointer): Likewise.
2955         (arm_expand_prologue): Likewise.
2956         (arm_regno_class): Change return type to enum reg_class.
2957         (thumb1_expand_prologue): Use add_reg_note.
2958         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2959         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2960         in function call.
2961         * config/arm/gentune.sh: Add cast to enum type.
2962         * config/arm/arm-tune.md: Rebuild.
2963         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2964         (ix86_split_fp_branch, predict_jump): Likewise.
2965         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2966         insn_code to enum rtx_code.
2967         (ix86_builtin_vectorized_function): Add cast to enum type.
2968         * config/i386/i386.md (truncdfsf2): Change slot to enum
2969         ix86_stack_slot.
2970         (truncxf<mode>2, isinf<mode>2): Likewise.
2971         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2972         enum type.
2973         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2974         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2975         (insert_bundle_state): Change 1 to INSERT in function call.
2976         (ia64_add_bundle_selector_before): Likewise.
2977         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2978         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2979         (restore_stack_nonlocal): Likewise.
2980         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2981         function call.
2982         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2983         function call.
2984         (mips_rtx_costs): Likewise.
2985         (mips_override_options): Add casts to enum type.
2986         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2987         in function call.
2988         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2989         (store_reg, set_reg_plus_d): Likewise.
2990         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2991         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2992         cast to enum type.
2993         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2994         function call.
2995         (emit_unlikely_jump): Use add_reg_note.
2996         (rs6000_emit_allocate_stack): Likewise.
2997         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2998         (output_toc): Change 1 to INSERT in function call.
2999         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3000         (rs6000_initialize_trampoline): Likewise.
3001         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3002         function call.
3003         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3004         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3005         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3006         (save_gprs): Use add_reg_note.
3007         (s390_emit_prologue): Likewise.
3008         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3009         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3010         (sparc_fold_builtin): Add cast to enum type.
3011         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3012         enum insn_code.
3013         (spu_expand_prologue): Use add_reg_note.
3014         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
3015
3016 2009-04-20  Ian Lance Taylor  <iant@google.com>
3017
3018         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3019         (c_parser_postfix_expression_after_primary): Get VEC for list of
3020         arguments.  Get original types of arguments.  Call
3021         build_function_call_vec.
3022         (cached_expr_list_1, cached_expr_list_2): New static variables.
3023         (c_parser_expr_list): Change return type to VEC *.  Add
3024         p_orig_types parameter.  Change all callers.
3025         (c_parser_release_expr): New static function.
3026         (c_parser_vec_to_tree_list): New static function.
3027         * c-typeck.c (build_function_call): Rewrite to build a VEC and
3028         call build_function_call_vec.
3029         (build_function_call_vec): New function, based on old
3030         build_function_call.
3031         (convert_arguments): Remove nargs and argarray parameters.  Change
3032         values to a VEC.  Add origtypes parameter.
3033         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
3034         (convert_for_assignment): Add origtype parameter.  Change all
3035         callers.  If warn_cxx_compat, check for conversion to an enum
3036         type when calling a function.
3037         (store_init_value): Add origtype parameter.  Change all callers.
3038         (digest_init): Likewise.
3039         (struct init_node): Add origtype field.
3040         (add_pending_init): Add origtype parameter.  Change all callers.
3041         (output_init_element): Likewise.
3042         (output_pending_init_elements): Pass origtype from init_node to
3043         output_init_element.
3044         (process_init_element): Pass origtype from c_expr to
3045         output_init_element.
3046         (c_finish_return): Add origtype parameter.  Change all callers.
3047         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
3048         caller.
3049         (sync_resolve_params): Likewise.
3050         (sync_resolve_return): Change params to first_param.  Change caller.
3051         (resolve_overloaded_builtins): Change params to VEC *.  Change
3052         callers.  Save first parameter around call to build_function_call_vec.
3053         * c-decl.c (finish_decl): Add origtype parameter.  Change all
3054         callers.  Call build_function_call_vec rather than
3055         build_function_call for cleanup.
3056         * c-tree.h: Update declarations.
3057         * c-common.h: Update declarations.
3058         * stub-objc.c (objc_rewrite_function_call): Change parameter from
3059         params to first_param.
3060         * target.h (struct gcc_target): Change resolve_overloaded_builtin
3061         params parameter from tree to void *.
3062         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3063         Change arglist parameter to have type void *, and to be a pointer
3064         to a VEC.
3065         * config/rs6000/rs6000-protos.h
3066         (altivec_resolve_overloaded_builtin): Update declaration.
3067         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3068         fnargs parameter to have type void *, and to be a pointer to a
3069         VEC.  Call build_function_call_vec instead of
3070         build_function_call.
3071         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
3072
3073 2009-04-20  Joey Ye  <joey.ye@intel.com>
3074             Xuepeng Guo  <xuepeng.guo@intel.com>
3075             H.J. Lu  <hongjiu.lu@intel.com>
3076
3077         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3078
3079         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3080         (IX86_LEA_PRIORITY): Likewise.
3081         (distance_non_agu_define): New function.
3082         (distance_agu_use): Likewise.
3083         (ix86_lea_for_add_ok): Likewise.
3084         (ix86_dep_by_shift_count): Likewise.
3085
3086         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3087         should split for LEA.
3088
3089         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3090         function.
3091         (ix86_dep_by_shift_count): Likewise.
3092
3093 2009-04-20  Richard Guenther  <rguenther@suse.de>
3094
3095         * expr.c (handled_component_p): Move ...
3096         * tree.h (handled_component_p): ... here.
3097         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3098         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3099         and REALPART_EXPR to be in one group.
3100
3101 2009-04-20  Richard Guenther  <rguenther@suse.de>
3102
3103         * basic-block.h (get_all_dominated_blocks): Declare.
3104         * dominance.c (get_all_dominated_blocks): New function.
3105         * tree-cfg.c (get_all_dominated_blocks): Remove.
3106         (remove_edge_and_dominated_blocks): Adjust.
3107         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3108         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
3109         instead of recursing.
3110
3111 2009-04-20  Doug Kwan  <dougkwan@google.com>
3112
3113         * cgraph.h (cgraph_node_ptr): New type for vector functions.
3114         (struct cgraph_node_set_def): New type.
3115         (cgraph_node_set) New type. Also declare vector functions.
3116         (struct cgraph_node_set_element_def): New type.
3117         (cgraph_node_set_element): Ditto.
3118         (cgraph_node_set_iterator): New iterator type.
3119         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3120         cgraph_node_set_remove, dump_cgraph_node_set,
3121         debug_cgraph_node_set): New prototypes.
3122         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3123         cgraph_node_set_size): New inlines.
3124         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3125         including cgraph.h.
3126         (struct ipa_opt_pass): Add struct cgraph_node_set_def
3127         argument to function 'write_summary'.
3128         * ipa.c: Include ggc.h.
3129         (hash_cgraph_node_set_element,
3130         eq_cgraph_node_set_element, cgraph_node_set_new,
3131         cgraph_node_set_add, cgraph_node_set_remove,
3132         cgraph_node_set_find, dump_cgraph_node_set,
3133         debug_cgraph_node_set): New functions.
3134         * Makefile.in (ipa.o): Add dependency on GGC_H.
3135
3136 2009-04-20  Ira Rosen  <irar@il.ibm.com>
3137
3138         PR tree-optimization/39675
3139         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
3140         check of the return code of vect_schedule_slp. Check that
3141         stmt_vec_info still exists for the statement, before checking its
3142         vectorization type.
3143
3144 2009-04-20  Michael Matz  <matz@suse.de>
3145
3146         * Makefile.in (generated_files): Take out $(simple_generated_c).
3147
3148 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
3149
3150         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
3151         (UINTPTR_TYPE):  Likewise.
3152
3153 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3154
3155         PR c/37481
3156         * c-typeck.c (digest_init): Check for initializing an array with a
3157         string literal.
3158
3159 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3160
3161         PR c/19771
3162         * c-semantics.c (pop_stmt_list): Propagate
3163         STATEMENT_LIST_HAS_LABEL to parent statement list.
3164
3165 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
3166
3167         * config/mips/mips.h (mips_tune_attr): New macro.
3168         * config/mips/mips.md (cpu): Use it.
3169
3170 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3171
3172         PR c/38243
3173         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3174         declaring a tag.
3175
3176 2009-04-19  Diego Novillo  <dnovillo@google.com>
3177
3178         * toplev.c (compile_file): Move call to coverage_finish ...
3179         * cgraphunit.c (ipa_passes): ... here.
3180         Call cgraph_process_new_functions.
3181         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3182         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3183
3184 2009-04-19  Jan Hubicka  <jh@suse.cz>
3185
3186         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3187         cfun.
3188         (dump_cgraph_node): Dump can throw external flag.
3189         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3190
3191 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3192
3193         PR c/32061
3194         PR c++/36954
3195         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3196         * common.opt (Wlogical-op): Move from here...
3197         * c.opt (Wlogical-op): ... to here.
3198         * c-typeck.c (parser_build_binary_op): Update call to
3199         warn_logical_operator.
3200         * c-opts.c (c_common_post_options): Enable warn_logical_op with
3201         extra_warnings.
3202         * c-common.c (warn_logical_op): Update.
3203         * c-common.h (warn_logical_op): Update declaration.
3204
3205 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3206
3207         * tree.c (protected_set_expr_location): Fix formatting.
3208
3209 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3210
3211         PR c/27676
3212         * c-typeck.c (readonly_warning): new.
3213         (build_unary_op, build_modify_expr): Use readonly_warning for
3214         storing into something readonly but not const-qualified.
3215
3216 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3217
3218         PR c/22367
3219         * c-typeck.c (build_unary_op): Check for taking address of
3220         expression of type void.
3221
3222 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3223
3224         PR c/35210
3225         * c-typeck.c (build_function_call): Check for calling a function
3226         with qualified void return types.  Call require_complete_type when
3227         generating a trap.
3228
3229 2009-04-18  Jan Hubicka  <jh@suse.cz>
3230
3231         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
3232         Set nothrow flag.
3233         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
3234         can_throw_external flag.
3235         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
3236         * ipa-pure-const.c (ignore_edge): New function.
3237         (propagate): Compute order for NOTHROW computation; set NOTHROWs
3238         only over can_throw_external edges.
3239         (local_pure_const): Add nothrow flag.
3240         * ipa-utils.c (searchc): Add ignore_edge callback.
3241         (ipa_utils_reduced_inorder): Add ignore_edge callback.
3242         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
3243         (set_nothrow_function_flags): Update cgraph.
3244         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
3245
3246 2009-04-18  Richard Guenther  <rguenther@suse.de>
3247
3248         PR middle-end/39804
3249         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
3250         (fold_stmt): ... this and ...
3251         (fold_stmt_inplace): ... this.
3252         (fold_stmt_1): Fold references in calls and asms.
3253         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
3254
3255 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3256
3257         * tree-vrp.c (ssa_name_nonzero_p): Remove.
3258         * tree.h: Remove the prototype for ssa_name_nonzero_p.
3259
3260 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3261
3262         * tree.c (function_args_count): Remove.
3263         * tree.h: Remove the prototype for function_args_count.
3264
3265 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3266
3267         * tree-iterator.c (expr_only): Remove.
3268         * tree.h: Remove the prototype for expr_only.
3269
3270 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3271
3272         * reginfo.c (cannot_change_mode_set_regs): Remove.
3273         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
3274
3275 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
3276
3277         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
3278         whether operands 0 and 1 overlaps.
3279
3280 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3281
3282         PR middle-end/36902
3283         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
3284         pointer. Use warning_at instead of warning.
3285         (search_for_addr_array): Likewise.
3286         (check_array_bounds): Likewise.
3287         (check_all_array_refs): Check that the incoming edge is not in the
3288         list of edges to be removed.
3289         (check_all_array_refs): Avoid the temporal pointer.
3290         (vrp_visit_cond_stmt): Fix typo.
3291         (simplify_switch_using_ranges): Handle the case where the switch
3292         index is an integer constant.
3293
3294 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
3295
3296         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
3297
3298 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3299
3300         * doc/extend.texi, doc/invoke.texi: Fix typos.
3301
3302 2009-04-17  Cary Coutant  <ccoutant@google.com>
3303
3304         * tree-flow-inline.h (get_lineno): Fix inverted test.
3305
3306 2009-04-17  Diego Novillo  <dnovillo@google.com>
3307
3308         * tree-ssa-pre.c (create_expression_by_pieces): Remove
3309         assertion for AVAIL_OUT.
3310
3311 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
3312
3313         PR target/38627
3314         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
3315         * config/sh/linux-atomic.asm: Likewise.
3316
3317 2009-04-17  Diego Novillo  <dnovillo@google.com>
3318
3319         * except.c (debug_eh_tree): New.
3320         (struct eh_region, struct eh_status): Move ...
3321         * except.h: ... here.
3322         (add_type_for_runtime): Declare extern.
3323         (lookup_type_for_runtime): Likewise.
3324         (debug_eh_tree): Declare.
3325         * Makefile.in (GTFILES): List except.h before except.c
3326
3327 2009-04-17  Diego Novillo  <dnovillo@google.com>
3328
3329         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
3330         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3331         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
3332         (find_vars_r): ... here.
3333         * tree-flow.h (find_referenced_vars_in): Declare.
3334         * tree-ssa-pre.c (create_expression_by_pieces): Assert
3335         that AVAIL_OUT exists for BLOCK.
3336         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
3337         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
3338         (tree-parloops.o): Likewise.
3339
3340 2009-04-17  Simon Baldwin  <simonb@google.com>
3341
3342         * toplev.c (default_tree_printer): Add handling for %E format.
3343
3344 2009-04-17  Diego Novillo  <dnovillo@google.com>
3345
3346         * tree-pretty-print.c (dump_generic_node): Add break after
3347         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
3348         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
3349         FUNCTION_TYPE together.  Call print_struct_decl when printing
3350         structures and TDF_SLIM is not given.
3351         (print_struct_decl): Fix logic for detecting recursion.
3352
3353 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3354
3355         PR 31567
3356         * gcc.c (create_at_file): New.
3357         (compile_input_file_p): New.
3358         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
3359         * main.c (main): Update call to toplev_main.
3360         * toplev.c (toplev_main): Change signature. Call expandargv.
3361         * toplev.h (toplev_main): Change signature.
3362
3363 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3364
3365         * dwarf2out.c (field_byte_offset): Use the type size as the field size
3366         if the latter is not constant.
3367
3368 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
3369
3370         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3371
3372 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3373
3374         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3375         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3376
3377 2009-04-17  Richard Guenther  <rguenther@suse.de>
3378
3379         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3380         Handle component references view-converting an invariant address.
3381
3382 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
3383
3384         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3385         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3386         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3387         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3388         Use @deftypevr rather than @deftypevar.
3389
3390 2009-04-17  Richard Guenther  <rguenther@suse.de>
3391
3392         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
3393         (get_prop_source_stmt): Likewise.
3394         (can_propagate_from): Likewise.
3395
3396 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
3397
3398         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3399         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3400         (--with-multilib-list): Add default value.
3401         * configure: Regenerate.
3402         * Makefile.in (TM_ENDIAN_CONFIG): Define.
3403         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3404         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3405         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3406         Don't add default cpu to multilib list unnecessarily, but do enable
3407         the relevant compiler option..
3408         Add support for --with-multilib-list=<blank> and
3409         --with-multilib-list=!<somelib> to supress unwanted multilibs.
3410         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3411         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3412         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3413         TM_MULTILIB_CONFIG.
3414         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3415         (MULTILIB_OSDIRNAMES): New variable.
3416         * config/sh/t-1e: Delete file.
3417         * config/sh/t-mlib-sh1: Delete file.
3418         * config/sh/t-mlib-sh2: Delete file.
3419         * config/sh/t-mlib-sh2a: Delete file.
3420         * config/sh/t-mlib-sh2a-nofpu: Delete file.
3421         * config/sh/t-mlib-sh2a-single: Delete file.
3422         * config/sh/t-mlib-sh2a-single-only: Delete file.
3423         * config/sh/t-mlib-sh2e: Delete file.
3424         * config/sh/t-mlib-sh3e: Delete file.
3425         * config/sh/t-mlib-sh4: Delete file.
3426         * config/sh/t-mlib-sh4-nofpu: Delete file.
3427         * config/sh/t-mlib-sh4-single: Delete file.
3428         * config/sh/t-mlib-sh4-single-only: Delete file.
3429         * config/sh/t-mlib-sh4a: Delete file.
3430         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3431         * config/sh/t-mlib-sh4a-single: Delete file.
3432         * config/sh/t-mlib-sh4a-single-only: Delete file.
3433         * config/sh/t-mlib-sh4al: Delete file.
3434         * config/sh/t-mlib-sh5-32media: Delete file.
3435         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3436         * config/sh/t-mlib-sh5-64media: Delete file.
3437         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3438         * config/sh/t-mlib-sh5-compact: Delete file.
3439         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3440         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3441         * doc/install.texi (Options specification): Add
3442         --with-multilib-list and --with-endian.
3443
3444 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3445
3446         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3447         REVISION_c.
3448         (OBJS-common): Add plugin-version.o.
3449         (plugin-version.o): New.
3450         * gcc-plugin.h (plugin_gcc_version): New.
3451         (plugin_default_version_check): New.
3452         (plugin_init_func, plugin_init): Add version argument.
3453         * plugin-version.c: New.
3454         * plugin.c (str_plugin_gcc_version_name): New.
3455         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3456         pass it to the init function.
3457         (plugin_default_version_check): New.
3458
3459 2009-04-17  Richard Guenther  <rguenther@suse.de>
3460
3461         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3462         for decl-vs-decl disambiguation.
3463
3464 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3465
3466         * config/s390/s390.h (s390_tune_attr): New macro definition.
3467         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3468
3469 2009-04-17  Richard Guenther  <rguenther@suse.de>
3470
3471         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3472         (fold_stmt_r): Likewise.
3473         (maybe_fold_reference): New function.
3474         (fold_gimple_assign): Handle cases fold_stmt_r did.
3475         (fold_stmt): Do not use fold_stmt_r.
3476         (fold_stmt_inplace): Likewise.
3477
3478 2009-04-17  Richard Guenther  <rguenther@suse.de>
3479
3480         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3481         (record_equivalences_from_stmt): Remove useless checks and
3482         simplifications.
3483         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3484         the type is already suitable.
3485
3486 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3487
3488         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3489
3490 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3491
3492         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3493         (CMPtype): Define as __gcc_CMPtype.
3494
3495 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3496
3497         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3498         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3499
3500 2009-04-17  Richard Guenther  <rguenther@suse.de>
3501
3502         PR tree-optimization/39746
3503         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3504         special-casing for builtins and static variable use/def.
3505         (call_may_clobber_ref_p_1): Likewise.
3506
3507 2009-04-16  Ian Lance Taylor  <iant@google.com>
3508
3509         * df.h: Include "timevar.h".
3510         (struct df_problem): Change tv_id field to timevar_id_t.
3511         * tree-pass.h: Include "timevar.h".
3512         (struct opt_pass): Change tv_id field to timevar_id_t.
3513         * timevar.h (timevar_id_t): Define TV_NONE.
3514         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3515         TV_NONE rather than tv_id != 0.
3516         (execute_one_pass): Likewise.
3517         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3518         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3519         dependencies to $(TREE_PASS_H).
3520         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3521         to TV_NONE.
3522         (pass_branch_target_load_optimize2): Likewise.
3523         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3524         (pass_outof_cfg_layout_mode): Likewise.
3525         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3526         (pass_rebuild_cgraph_edges): Likewise.
3527         (pass_remove_cgraph_callee_edges): Likewise.
3528         * df-core.c (pass_df_initialize_opt): Likewise.
3529         (pass_df_initialize_no_opt): Likewise.
3530         (pass_df_finish): Likewise.
3531         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3532         * except.c (pass_set_nothrow_function_flags): Likewise.
3533         (pass_convert_to_eh_region_ranges): Likewise.
3534         * final.c (pass_compute_alignments): Likewise.
3535         * function.c (pass_instantiate_virtual_regs): Likewise.
3536         (pass_init_function): Likewise.
3537         (pass_leaf_regs): Likewise.
3538         (pass_match_asm_constraints): Likewise.
3539         * gimple-low.c (pass_lower_cf): Likewise.
3540         (pass_mark_used_blocks): Likewise.
3541         * init-regs.c (pass_initialize_regs): Likewise.
3542         * integrate.c (pass_initial_value_sets): Likewise.
3543         * ira.c (pass_ira): Likewise.
3544         * jump.c (pass_cleanup_barriers): Likewise.
3545         * omp-low.c (pass_expand_omp): Likewise.
3546         (pass_lower_omp): Likewise.
3547         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3548         * recog.c (pass_split_all_insns): Likewise.
3549         (pass_split_after_reload): Likewise.
3550         (pass_split_before_regstack): Likewise.
3551         (pass_split_before_sched2): Likewise.
3552         (pass_split_for_shorten_branches): Likewise.
3553         * reginfo.c (pass_reginfo_init): Likewise.
3554         (pass_subregs_of_mode_init): Likewise.
3555         (pass_subregs_of_mode_finish): Likewise.
3556         * passes.c (pass_postreload): Likewise.
3557         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3558         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3559         (pass_warn_function_return): Likewise.
3560         (pass_warn_function_noreturn): Likewise.
3561         * tree-complex.c (pass_lower_complex): Likewise.
3562         (pass_lower_complex_O0): Likewise.
3563         * tree-if-conv.c (pass_if_conversion): Likewise.
3564         * tree-into-ssa.c (pass_build_ssa): Likewise.
3565         * tree-mudflap.c (pass_mudflap_1): Likewise.
3566         (pass_mudflap_2): Likewise.
3567         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3568         (pass_mudflap_2): Likewise.
3569         * tree-nrv.c (pass_return_slot): Likewise.
3570         * tree-object-size.c (pass_object_sizes): Likewise.
3571         * tree-optimize.c (pass_all_optimizations): Likewise.
3572         (pass_early_local_passes): Likewise.
3573         (pass_all_early_optimizations): Likewise.
3574         (pass_cleanup_cfg): Likewise.
3575         (pass_cleanup_cfg_post_optimizing): Likewise.
3576         (pass_free_datastructures): Likewise.
3577         (pass_free_cfg_annotations): Likewise.
3578         (pass_fixup_cfg): Likewise.
3579         (pass_init_datastructures): Likewise.
3580         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3581         (pass_late_warn_uninitialized): Likewise.
3582         (pass_update_address_taken): Likewise.
3583         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3584         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3585         (pass_cse_sincos): Likewise.
3586         (pass_convert_to_rsqrt): Likewise.
3587         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3588         * tree-stdarg.c (pass_stdarg): Likewise.
3589         * tree-tailcall.c (pass_tail_recursion): Likewise.
3590         (pass_tail_calls): Likewise.
3591         * tree-vect-generic.c (pass_lower_vector): Likewise.
3592         (pass_lower_vector_ssa): Likewise.
3593         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3594
3595 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3596
3597         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3598         XLR entry.
3599         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3600         Handle -march=xlr.
3601         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3602         logical and signext.
3603
3604 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3605
3606         PR target/39767
3607         * config/sh/predicates.md (arith_operand): Check if the operand
3608         of TRUNCATE is a REG.
3609
3610 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3611
3612         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3613         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3614
3615 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3616
3617         * tree-iterator.c (tsi_split_statement_list_after,
3618         tsi_split_statement_list_before): Remove.
3619         * tree-iterator.h: Remove the prototypes for
3620         tsi_split_statement_list_after and tsi_split_statement_list_before.
3621
3622 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3623
3624         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3625         * tree-ssa-propagate.h: Remove the prototype for
3626         stmt_makes_single_load.
3627
3628 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3629
3630         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3631         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3632
3633 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3634
3635         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3636
3637 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3638
3639         * except.c (eh_region_outer_p): Remove.
3640         * except.h: Remove the prototype for eh_region_outer_p.
3641
3642 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3643
3644         * function.c (current_function_assembler_name): Remove.
3645         * function.h: Remove the prototype for
3646         current_function_assembler_name.
3647
3648 2009-04-16  Ian Lance Taylor  <iant@google.com>
3649
3650         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3651         (add_reg_note): Call alloc_reg_note.
3652         * rtl.h (alloc_reg_note): Declare.
3653         * combine.c (try_combine): Use alloc_reg_note.
3654         (recog_for_combine, move_deaths): Likewise.
3655         (distribute_notes): Use alloc_reg_note and add_reg_note.
3656         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3657         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3658         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3659
3660 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3661
3662         PR rtl-optimization/39762
3663         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3664         ira_may_move_out_cost): Add comments about way of their usage.
3665         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3666
3667         * ira-conflicts.c (process_regs_for_copy): Use function
3668         ira_get_register_move_cost instead of global
3669         ira_register_move_cost.
3670
3671         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3672         color_pass, move_spill_restore, update_curr_costs): Ditto.
3673
3674         * ira-lives.c (process_single_reg_class_operands): Ditto.
3675
3676         * ira-emit.c (emit_move_list): Ditto.
3677
3678         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3679         (record_reg_classes): Ditto.  Use functions
3680         ira_get_register_move_cost and ira_get_may_move_cost instead of
3681         global vars ira_register_move_cost, ira_may_move_out_cost and
3682         ira_may_move_in_cost.
3683         (record_address_regs): Don't call ira_init_register_move_cost.
3684         Use function ira_get_may_move_cost instead of global
3685         ira_may_move_in_cost.
3686         (process_bb_node_for_hard_reg_moves): Use function
3687         ira_get_register_move_cost instead of global ira_register_move_cost.
3688         (ira_costs): Don't call ira_init_register_move_cost.
3689
3690 2009-04-16  Richard Guenther  <rguenther@suse.de>
3691
3692         * tree-cfg.c (verify_gimple_assign_binary):
3693         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3694         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3695         (create_general_new_stmt): Note that this function is broken.
3696
3697 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3698
3699         * common.opt (fhelp): Add Var(help_flag).
3700         * gcc-plugin.h (plugin_info): Add help.
3701         * plugin.c (plugin_name_args): Add help.
3702         (register_plugin_info): Set plugin->help.
3703         (print_help_one_plugin): New.
3704         (print_plugins_help): New.
3705         * plugin.h (print_plugins_help): New.
3706         * toplev.c (toplev_main): Call print_plugins_help if needed.
3707
3708 2009-04-16  Richard Guenther  <rguenther@suse.de>
3709
3710         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3711         (gimple_ior_addresses_taken_1): New function.
3712         (gimple_ior_addresses_taken): Likewise.
3713         * gimple.h (struct gimple_statement_with_ops_base): Remove
3714         addresses_taken member.
3715         (gimple_ior_addresses_taken): Declare.
3716         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3717         gimple_set_addresses_taken): Remove.
3718         * ipa-reference.c (mark_address): New function.
3719         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3720         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3721         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3722         (gimple_add_to_addresses_taken): Remove.
3723         (get_tmr_operands): Call mark_address_taken.
3724         (get_asm_expr_operands): Likewise.
3725         (get_expr_operands): Likewise.
3726         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3727         (free_stmt_operands): Do not free it.
3728         * tree-ssa.c (delete_tree_ssa): Likewise.
3729         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3730
3731 2009-04-16  Richard Guenther  <rguenther@suse.de>
3732
3733         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3734         (walk_stmt_load_store_ops): Likewise.
3735         * gimple.c (get_base_loadstore): New function.
3736         (walk_stmt_load_store_addr_ops): Likewise.
3737         (walk_stmt_load_store_ops): Likewise.
3738         * ipa-pure-const.c (check_op): Simplify.
3739         (check_load, check_store): New functions.
3740         (check_stmt): Use walk_stmt_load_store_ops.
3741         * ipa-reference.c (mark_load): Adjust signature.
3742         (mark_store): Likewise.
3743         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3744
3745 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3746
3747         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3748         (plugin_info): New.
3749         * opts.c (common_handle_option): Don't call print_version.
3750         * plugin.c (plugin_name_args): Add version.
3751         (register_plugin_info): New.
3752         (register_callback): Handle PLUGIN_INFO.
3753         (try_init_one_plugin): New.
3754         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3755         if failed to init.
3756         (finalize_one_plugin): New.
3757         (finalize_plugins): New.
3758         (print_one_plugin): New.
3759         (print_plugins_versions): New.
3760         * plugin.h (print_plugins_versions): New.
3761         (finalize_plugins): New.
3762         * toplev.c (compile_file): Don't call initialize_plugins.
3763         (print_version): Call print_plugins_versions.
3764         (toplev_main): Call initialize_plugins. Print version if needed.
3765         Call finalize_plugins.
3766
3767 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3768
3769         * common.opt (fversion): New.
3770         * gcc.c (print_version): New.
3771         (process_command): Don't print the version. Just set print_version.
3772         (main): Print version. Call subprocesses if print_version and
3773         verbose_flag are set.
3774         * opts.c (common_handle_option): Handle OPT_fversion.
3775
3776 2009-04-16  Richard Guenther  <rguenther@suse.de>
3777             Ira Rosen  <irar@il.ibm.com>
3778
3779         PR tree-optimization/39698
3780         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3781         type of the reduction variable.  Only generate the def if
3782         it is needed.
3783
3784         * omp-low.c (expand_omp_for_generic): When converting to a pointer
3785         make sure to first convert to an integer of the same precision.
3786         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3787         the type of the evolution correctly in computing the new
3788         induction variable base.
3789
3790 2009-04-16  Richard Guenther  <rguenther@suse.de>
3791
3792         PR middle-end/39625
3793         * tree-cfg.c (make_blocks): Split statements with to-be
3794         abnormal SSA names on the lhs.
3795
3796 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
3797
3798         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3799         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3800         * c-typeck.c (really_start_incremental_init): Likewise.
3801         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3802         (TARGET_INITIALIZER): Remove it.
3803         * target.h (struct target): Remove vector_opaque_p.
3804         * tree.c (build_opaque_vector_type): New.
3805         * tree.h (TYPE_VECTOR_OPAQUE): New.
3806         (build_opaque_vector_type): Declare.
3807         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3808         * config/rs6000/rs6000.c (build_opaque_vector_type,
3809         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3810         (rs6000_init_builtins): Use build_opaque_vector_type for
3811         opaque_V4SI_type_node.
3812
3813 2009-04-15  Catherine Moore  <clm@codesourcery.com>
3814
3815         * debug.h (set_name):  Declare.
3816         * dwarf2out.c (dwarf2out_set_name): Declare.
3817         (dwarf2_debug_hooks): Add set_name.
3818         (find_AT_string): New.
3819         (add_AT_string): Call find_AT_string.
3820         (dwarf2out_set_name): New.
3821         * cp/decl.c (grokdeclarator): Call set_name.
3822         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3823         * debug.c (do_nothing_debug_hooks):  Likewise.
3824         * dbxout.c (dbx_debug_hooks): Likewise.
3825         * sdbout.c (sdb_debug_hooks): Likewise.
3826
3827 2009-04-15  Michael Eager  <eager@eagercon.com>
3828
3829         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3830         reg for single-precision FPU.
3831         * config/rs6000/rs6000.md (movsi_internal1): Only for
3832         !TARGET_SINGLE_FPU.
3833         (movsi_internal1_single): New. Add pattern to move SI values to/from
3834         single-precision FP regs.
3835
3836 2009-04-15  Richard Guenther  <rguenther@suse.de>
3837
3838         * omp-low.c (lower_rec_input_clauses): Build correct address
3839         expressions.
3840         (expand_omp_for_generic): Fix multiplication type.
3841         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3842         (generate_memset_zero): Fix types.
3843         * tree-profile.c (prepare_instrumented_value): Correctly
3844         widen a pointer.
3845
3846 2009-04-15  Ian Lance Taylor  <iant@google.com>
3847
3848         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3849         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3850         for -Wall and for -Wc++-compat.
3851         (c_common_post_options): For C++, set warn_enum_compare if not
3852         already set.
3853         * c-tree.h (struct c_expr): Add field original_type.
3854         (build_external_ref): Update declaration.
3855         * c-parser.c (c_parser_braced_init): Set original_type.
3856         (c_parser_initelt): Likewise.
3857         (c_parser_expr_no_commas): Likewise.
3858         (c_parser_conditional_expression): Likewise.
3859         (c_parser_cast_expression): Likewise.
3860         (c_parser_unary_expression): Likewise.  Pull setting of
3861         original_code to top of function.
3862         (c_parser_sizeof_expression): Set original_type.
3863         (c_parser_alignof_expression): Likewise.
3864         (c_parser_postfix_expression): Likewise.  Pull setting of
3865         original_code to top of function.
3866         (c_parser_postfix_expression_after_paren_type): Set original_type.
3867         (c_parser_postfix_expression_after_primary): Likewise.
3868         (c_parser_expression): Likewise.
3869         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3870         callers.
3871         (c_expr_sizeof_expr): Set original_type field.
3872         (parser_build_unary_op): Likewise.
3873         (parser_build_binary_op): Likewise.  Optionally warn about
3874         comparisons of enums of different types.
3875         (digest_init): Set original_type field.
3876         (really_start_incremental_init): Likewise.
3877         (push_init_level, pop_init_level): Likewise.
3878         * doc/invoke.texi (Warning Options): -Wenum-compare now
3879         supported in C.
3880
3881 2009-04-15  Richard Guenther  <rguenther@suse.de>
3882
3883         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3884         out a necessary conversion.
3885         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3886         names we didn't value number.
3887         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3888
3889 2009-04-15  Richard Guenther  <rguenther@suse.de>
3890
3891         PR tree-optimization/39764
3892         * tree-ssa-ccp.c (get_value): Canonicalize value with
3893         canonicalize_float_value.
3894
3895 2009-04-15  Jan Hubicka  <jh@suse.cz>
3896
3897         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3898         Wrong version of patch.
3899
3900 2009-04-15  Jan Hubicka  <jh@suse.cz>
3901
3902         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3903
3904 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3905
3906         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3907         our distinct integral and vector types.
3908
3909 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3910
3911         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3912         * init.c (build_vtbl_address): Remove call to assemble_external.
3913
3914 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3915
3916         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3917         output for other floating point modes.
3918
3919 2009-04-14  Diego Novillo  <dnovillo@google.com>
3920
3921         * diagnostic.c (diagnostic_report_diagnostic): Do not
3922         warn about loaded plugins for DK_ERROR and DK_WARNING.
3923         * c-decl.c (declspecs_add_type): Move call to
3924         invoke_plugin_callbacks ...
3925         * c-parser.c (c_parser_declspecs): ... here.
3926         * plugin.c (dump_active_plugins): Tidy output.
3927
3928 2009-04-14  Diego Novillo  <dnovillo@google.com>
3929             Le-Chun Wu  <lcwu@google.com>
3930
3931         * configure.ac: Add --enable-plugin support.
3932         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3933         * Makefile.in (PLUGIN_H): Define.
3934         Export ENABLE_PLUGIN and GMPINC to site.exp.
3935         Add PLUGINLIBS to link command.
3936         Add/modify dependencies for plugin.o and files including plugin.h.
3937         (plugin.o): New.
3938         * config.in: Regenerate.
3939
3940         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3941         OPT_fplugin_arg_.
3942
3943 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3944
3945         * tree-pass.h (register_one_dump_file): Add a prototype for
3946         register_one_dump_file.
3947         * toplev.c (compile_file): Call initialize_plugins.
3948         (do_compile): Call invoke_plugin_callbacks.
3949         (toplev_main): Call invoke_plugin_callbacks.
3950         * common.opt: Add -fplugin= and -fplugin-arg-.
3951         * gcc-plugin.h: New public header file for plugins to include.
3952         * plugin.c: New source file.
3953         * plugin.h: New internal header file.
3954         * passes.c (register_one_dump_file): Make it external.
3955
3956         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3957
3958 2009-04-14  Diego Novillo  <dnovillo@google.com>
3959
3960         * doc/plugins.texi: New.
3961         * doc/gccint.texi: Add reference to Plugins chapter.
3962         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3963         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3964         loaded plugins, if any.
3965         * timevar.def (TV_PLUGIN_INIT): Define.
3966         (TV_PLUGIN_RUN): Define.
3967         * plugin.c: Include timevar.h
3968         (plugins_active_p): New.
3969         (dump_active_plugins): New.
3970         (debug_active_plugins): New.
3971
3972 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3973
3974         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3975         library paths.
3976         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3977
3978 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3979
3980         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3981         the same as a minus without a shift.
3982
3983 2009-04-14  Nick Clifton  <nickc@redhat.com>
3984
3985         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3986         comparisons with small integers will always produce a short
3987         branch.
3988
3989 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3990
3991         Merge:
3992         2008-12-19  Diego Novillo  <dnovillo@google.com>
3993
3994         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3995
3996 2009-04-14  Richard Guenther  <rguenther@suse.de>
3997
3998         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3999         verification.
4000         (verify_gimple_assign_binary): Likewise.  Handle shifts and
4001         rotates correctly.
4002         (verify_gimple_phi): Print the mismatched argument position.
4003         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4004         Fix types.
4005         (vect_update_init_of_dr): Likewise.
4006         * matrix-reorg.c (transform_access_sites): Do what the
4007         comment suggests.
4008         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4009
4010 2009-04-13  Michael Eager  <eager@eagercon.com>
4011
4012         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4013         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4014         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
4015         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
4016         remove duplicate config
4017
4018 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4019
4020         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4021         file_name:line_number type locator of the call site.
4022
4023 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4024
4025         * genautomata.c: Put blank after comma.
4026         (automaton_decls): New.
4027         (struct unit_usage): Add comments to member next.
4028         (store_alt_unit_usage): Keep the list ordered.
4029         (unit_present_on_list_p, equal_alternatives_p): New.
4030         (check_regexp_units_distribution): Check units distribution
4031         correctness correctly.
4032         (main): Don't write automata if error is found.  Return correct
4033         exit code.
4034
4035         * config/m68k/cf.md (cfv4_ds): Remove.
4036         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4037         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4038
4039         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4040         power4-load-ext, power4-store, power4-store-update,
4041         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4042         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4043         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4044         power4-sqrt, power4-isync): Modify reservation to make correct
4045         unit distribution to automata.
4046
4047         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4048         power5-store-update, power5-two, power5-three, power5-lmul,
4049         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
4050
4051 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
4052
4053         * except.c (pass_set_nothrow_function_flags): Set name and add
4054         TODO_dump_func.
4055         (set_nothrow_function_flags): Mention in the dump file when
4056         changing a function to nothrow.
4057
4058 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
4059
4060         PR/39066
4061         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4062         instead of unsigned long.
4063
4064 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4065
4066         * config/arm/arm.c (return_used_this_function): Remove.
4067         (arm_output_function_prologue): Remove use of
4068         return_used_this_function.
4069         (output_return_instruction): Replace use of
4070         return_used_this_function
4071         by cfun->machine->return_used_this_function.
4072         (arm_output_epilogue): Likewise.
4073         (arm_output_function_epilogue): Likewise.
4074         (thumb_unexpanded_epilogue): Likewise.
4075         * config/arm/arm.h (struct machine_function):
4076         New member return_used_this_function.
4077
4078 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
4079
4080         * doc/install.texi: Correct description of default directory for
4081         --with-gxx-include-dir.
4082
4083 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4084
4085         * fold-const.c (build_range_check): Properly deal with enumeral and
4086         boolean base types.
4087
4088 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
4089
4090         * doc/invoke.texi (max_gcse_passes): Remove documentation.
4091         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4092         * params.h (MAX_GCSE_PASSES): Remove.
4093         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4094         in sequence.  Remove ability to run multiple passes.
4095         (bypass_jumps): Report run as third CPROP pass.
4096
4097 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
4098
4099         PR middle-end/39651
4100         * except.c (can_throw_external): Look at each insn in a SEQUENCE
4101         when deciding whether the whole SEQUENCE can throw.
4102
4103 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
4104
4105         PR target/39740
4106         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4107         offseted label references.
4108
4109 2009-04-11  Jan Hubicka  <jh@suse.cz>
4110
4111         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4112
4113 2009-04-11  Richard Guenther  <rguenther@suse.de>
4114
4115         PR middle-end/39732
4116         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4117         return variables as TREE_ADDRESSABLE.
4118
4119 2009-04-11  Richard Guenther  <rguenther@suse.de>
4120
4121         PR tree-optimization/39713
4122         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4123         reference trees have SSA_NAME operands.
4124
4125 2009-04-11  Richard Guenther  <rguenther@suse.de>
4126
4127         PR c/39712
4128         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4129         address expressions.
4130
4131 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4132
4133         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
4134         match changes in Cygwin 1.7
4135         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4136         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
4137
4138 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4139
4140         PR tree-optimization/39701
4141         * doc/invoke.texi (Optimization Options): Document change in
4142         meaning and initialization of -fdelete-null-pointer-checks.
4143
4144 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4145
4146         PR middle-end/39701
4147         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4148
4149         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4150         here.
4151
4152         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4153
4154 2009-04-10  Chao-ying Fu  <fu@mips.com>
4155
4156         * doc/tm.texi (Instruction Output): Document
4157         TARGET_ASM_FINAL_POSTSCAN_INSN.
4158         * target.h (final_postscan_insn): New field in asm_out.
4159         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4160         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4161         * final.c (final_scan_insn): Call
4162         targetm.asm_out.final_postscan_insn after outputting
4163         an asm macro and a normal instruction.
4164
4165         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
4166         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
4167         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
4168         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
4169         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4170
4171 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4172
4173         PR middle-end/39701
4174         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
4175         variables as non-NULL even with -fdelete-null-pointer-checks.
4176
4177 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4178
4179         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
4180
4181 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
4182
4183         PR target/39678
4184         * config/i386/i386.c (classify_argument): Handle SCmode with
4185         (bit_offset % 64) != 0.
4186
4187 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
4188
4189         * doc/invoke.texi (Optimize Options): Add cross-reference to
4190         -Q --help=optimizers examples.
4191
4192 2009-04-10  Ben Elliston  <bje@au.ibm.com>
4193
4194         PR target/36800
4195         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
4196         regalign for the reg == fpr and TDmode case.
4197
4198 2009-04-09  David Ayers  <ayers@fsfe.org>
4199
4200         PR objc/29200
4201         * objc/objc-act.c (warn_with_method): Remove helper function.
4202         (check_duplicates): Call warning and inform directly.
4203         (really_start_method): Likewise.
4204
4205 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4206
4207         * expmed.c (expand_divmod): Always use a comparison for a division
4208         by a large unsigned integer.
4209
4210         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
4211         for things others than variables or functions as nonzero.
4212
4213 2009-04-09  Nick Clifton  <nickc@redhat.com>
4214
4215         * unwind-compat.c: Change copyright header to refer to version
4216         3 of the GNU General Public License with version 3.1 of the
4217         GCC Runtime Library Exception and to point readers at the
4218         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
4219         * config/alpha/crtfastmath.c: Likewise.
4220         * config/alpha/linux-unwind.h: Likewise.
4221         * config/alpha/qrnnd.asm: Likewise.
4222         * config/alpha/vms-crt0-64.c: Likewise.
4223         * config/alpha/vms-crt0.c: Likewise.
4224         * config/alpha/vms-dwarf2.asm: Likewise.
4225         * config/alpha/vms-dwarf2eh.asm: Likewise.
4226         * config/alpha/vms-psxcrt0-64.c: Likewise.
4227         * config/alpha/vms-psxcrt0.c: Likewise.
4228         * config/alpha/vms_tramp.asm: Likewise.
4229         * config/arc/initfini.c: Likewise.
4230         * config/arc/lib1funcs.asm: Likewise.
4231         * config/arm/bpabi-v6m.S: Likewise.
4232         * config/arm/bpabi.S: Likewise.
4233         * config/arm/bpabi.c: Likewise.
4234         * config/arm/crti.asm: Likewise.
4235         * config/arm/crtn.asm: Likewise.
4236         * config/arm/ieee754-df.S: Likewise.
4237         * config/arm/ieee754-sf.S: Likewise.
4238         * config/arm/lib1funcs.asm: Likewise.
4239         * config/arm/libunwind.S: Likewise.
4240         * config/arm/linux-atomic.c: Likewise.
4241         * config/arm/mmintrin.h: Likewise.
4242         * config/arm/pr-support.c: Likewise.
4243         * config/arm/unaligned-funcs.c: Likewise.
4244         * config/arm/unwind-arm.c: Likewise.
4245         * config/arm/unwind-arm.h: Likewise.
4246         * config/avr/libgcc.S: Likewise.
4247         * config/bfin/crti.s: Likewise.
4248         * config/bfin/crtlibid.s: Likewise.
4249         * config/bfin/crtn.s: Likewise.
4250         * config/bfin/lib1funcs.asm: Likewise.
4251         * config/bfin/linux-unwind.h: Likewise.
4252         * config/cris/arit.c: Likewise.
4253         * config/cris/cris_abi_symbol.c: Likewise.
4254         * config/darwin-64.c: Likewise.
4255         * config/darwin-crt2.c: Likewise.
4256         * config/darwin-crt3.c: Likewise.
4257         * config/darwin.h: Likewise.
4258         * config/dbxelf.h: Likewise.
4259         * config/dfp-bit.c: Likewise.
4260         * config/dfp-bit.h: Likewise.
4261         * config/elfos.h: Likewise.
4262         * config/fixed-bit.c: Likewise.
4263         * config/fixed-bit.h: Likewise.
4264         * config/fp-bit.c: Likewise.
4265         * config/fp-bit.h: Likewise.
4266         * config/fr30/crti.asm: Likewise.
4267         * config/fr30/crtn.asm: Likewise.
4268         * config/fr30/lib1funcs.asm: Likewise.
4269         * config/freebsd-spec.h: Likewise.
4270         * config/frv/cmovd.c: Likewise.
4271         * config/frv/cmovh.c: Likewise.
4272         * config/frv/cmovw.c: Likewise.
4273         * config/frv/frvbegin.c: Likewise.
4274         * config/frv/frvend.c: Likewise.
4275         * config/frv/lib1funcs.asm: Likewise.
4276         * config/glibc-stdint.h: Likewise.
4277         * config/h8300/clzhi2.c: Likewise.
4278         * config/h8300/crti.asm: Likewise.
4279         * config/h8300/crtn.asm: Likewise.
4280         * config/h8300/ctzhi2.c: Likewise.
4281         * config/h8300/fixunssfsi.c: Likewise.
4282         * config/h8300/lib1funcs.asm: Likewise.
4283         * config/h8300/parityhi2.c: Likewise.
4284         * config/h8300/popcounthi2.c: Likewise.
4285         * config/i386/ammintrin.h: Likewise.
4286         * config/i386/att.h: Likewise.
4287         * config/i386/avxintrin.h: Likewise.
4288         * config/i386/biarch64.h: Likewise.
4289         * config/i386/bmmintrin.h: Likewise.
4290         * config/i386/cpuid.h: Likewise.
4291         * config/i386/cross-stdarg.h: Likewise.
4292         * config/i386/crtfastmath.c: Likewise.
4293         * config/i386/crtprec.c: Likewise.
4294         * config/i386/cygming-crtbegin.c: Likewise.
4295         * config/i386/cygming-crtend.c: Likewise.
4296         * config/i386/cygwin.asm: Likewise.
4297         * config/i386/emmintrin.h: Likewise.
4298         * config/i386/gmm_malloc.h: Likewise.
4299         * config/i386/gthr-win32.c: Likewise.
4300         * config/i386/i386.h: Likewise.
4301         * config/i386/immintrin.h: Likewise.
4302         * config/i386/linux-unwind.h: Likewise.
4303         * config/i386/linux64.h: Likewise.
4304         * config/i386/mm3dnow.h: Likewise.
4305         * config/i386/mmintrin-common.h: Likewise.
4306         * config/i386/mmintrin.h: Likewise.
4307         * config/i386/nmmintrin.h: Likewise.
4308         * config/i386/pmm_malloc.h: Likewise.
4309         * config/i386/pmmintrin.h: Likewise.
4310         * config/i386/smmintrin.h: Likewise.
4311         * config/i386/sol2-c1.asm: Likewise.
4312         * config/i386/sol2-ci.asm: Likewise.
4313         * config/i386/sol2-cn.asm: Likewise.
4314         * config/i386/sol2-gc1.asm: Likewise.
4315         * config/i386/tmmintrin.h: Likewise.
4316         * config/i386/unix.h: Likewise.
4317         * config/i386/w32-unwind.h: Likewise.
4318         * config/i386/wmmintrin.h: Likewise.
4319         * config/i386/x86-64.h: Likewise.
4320         * config/i386/x86intrin.h: Likewise.
4321         * config/i386/xmmintrin.h: Likewise.
4322         * config/ia64/crtbegin.asm: Likewise.
4323         * config/ia64/crtend.asm: Likewise.
4324         * config/ia64/crtfastmath.c: Likewise.
4325         * config/ia64/crti.asm: Likewise.
4326         * config/ia64/crtn.asm: Likewise.
4327         * config/ia64/fde-glibc.c: Likewise.
4328         * config/ia64/lib1funcs.asm: Likewise.
4329         * config/ia64/linux-unwind.h: Likewise.
4330         * config/ia64/quadlib.c: Likewise.
4331         * config/ia64/unwind-ia64.c: Likewise.
4332         * config/linux.h: Likewise.
4333         * config/m32c/m32c-lib1.S: Likewise.
4334         * config/m32c/m32c-lib2-trapv.c: Likewise.
4335         * config/m32c/m32c-lib2.c: Likewise.
4336         * config/m32r/initfini.c: Likewise.
4337         * config/m68hc11/larith.asm: Likewise.
4338         * config/m68hc11/m68hc11-crt0.S: Likewise.
4339         * config/m68k/cf.md: Likewise.
4340         * config/m68k/crti.s: Likewise.
4341         * config/m68k/crtn.s: Likewise.
4342         * config/m68k/lb1sf68.asm: Likewise.
4343         * config/m68k/linux-unwind.h: Likewise.
4344         * config/mcore/crti.asm: Likewise.
4345         * config/mcore/crtn.asm: Likewise.
4346         * config/mcore/lib1.asm: Likewise.
4347         * config/mips/linux-unwind.h: Likewise.
4348         * config/mips/loongson.h: Likewise.
4349         * config/mips/mips16.S: Likewise.
4350         * config/mmix/crti.asm: Likewise.
4351         * config/mmix/crtn.asm: Likewise.
4352         * config/pa/fptr.c: Likewise.
4353         * config/pa/hpux-unwind.h: Likewise.
4354         * config/pa/lib2funcs.asm: Likewise.
4355         * config/pa/linux-atomic.c: Likewise.
4356         * config/pa/linux-unwind.h: Likewise.
4357         * config/pa/milli64.S: Likewise.
4358         * config/pa/quadlib.c: Likewise.
4359         * config/pa/stublib.c: Likewise.
4360         * config/picochip/libgccExtras/adddi3.asm: Likewise.
4361         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4362         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4363         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4364         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4365         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4366         * config/picochip/libgccExtras/divmod15.asm: Likewise.
4367         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4368         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4369         * config/picochip/libgccExtras/longjmp.asm: Likewise.
4370         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4371         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4372         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4373         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4374         * config/picochip/libgccExtras/setjmp.asm: Likewise.
4375         * config/picochip/libgccExtras/subdi3.asm: Likewise.
4376         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4377         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4378         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4379         * config/rs6000/750cl.h: Likewise.
4380         * config/rs6000/altivec.h: Likewise.
4381         * config/rs6000/biarch64.h: Likewise.
4382         * config/rs6000/crtresfpr.asm: Likewise.
4383         * config/rs6000/crtresgpr.asm: Likewise.
4384         * config/rs6000/crtresxfpr.asm: Likewise.
4385         * config/rs6000/crtresxgpr.asm: Likewise.
4386         * config/rs6000/crtsavfpr.asm: Likewise.
4387         * config/rs6000/crtsavgpr.asm: Likewise.
4388         * config/rs6000/darwin-asm.h: Likewise.
4389         * config/rs6000/darwin-fallback.c: Likewise.
4390         * config/rs6000/darwin-fpsave.asm: Likewise.
4391         * config/rs6000/darwin-ldouble.c: Likewise.
4392         * config/rs6000/darwin-tramp.asm: Likewise.
4393         * config/rs6000/darwin-unwind.h: Likewise.
4394         * config/rs6000/darwin-vecsave.asm: Likewise.
4395         * config/rs6000/darwin-world.asm: Likewise.
4396         * config/rs6000/e500crtres32gpr.asm: Likewise.
4397         * config/rs6000/e500crtres64gpr.asm: Likewise.
4398         * config/rs6000/e500crtres64gprctr.asm: Likewise.
4399         * config/rs6000/e500crtrest32gpr.asm: Likewise.
4400         * config/rs6000/e500crtrest64gpr.asm: Likewise.
4401         * config/rs6000/e500crtresx32gpr.asm: Likewise.
4402         * config/rs6000/e500crtresx64gpr.asm: Likewise.
4403         * config/rs6000/e500crtsav32gpr.asm: Likewise.
4404         * config/rs6000/e500crtsav64gpr.asm: Likewise.
4405         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4406         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4407         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4408         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4409         * config/rs6000/eabi-ci.asm: Likewise.
4410         * config/rs6000/eabi-cn.asm: Likewise.
4411         * config/rs6000/eabi.asm: Likewise.
4412         * config/rs6000/linux-unwind.h: Likewise.
4413         * config/rs6000/linux64.h: Likewise.
4414         * config/rs6000/paired.h: Likewise.
4415         * config/rs6000/paired.md: Likewise.
4416         * config/rs6000/ppc64-fp.c: Likewise.
4417         * config/rs6000/ppu_intrinsics.h: Likewise.
4418         * config/rs6000/rs6000.h: Likewise.
4419         * config/rs6000/si2vmx.h: Likewise.
4420         * config/rs6000/sol-ci.asm: Likewise.
4421         * config/rs6000/sol-cn.asm: Likewise.
4422         * config/rs6000/spe.h: Likewise.
4423         * config/rs6000/spu2vmx.h: Likewise.
4424         * config/rs6000/sysv4.h: Likewise.
4425         * config/rs6000/tramp.asm: Likewise.
4426         * config/rs6000/vec_types.h: Likewise.
4427         * config/s390/linux-unwind.h: Likewise.
4428         * config/s390/tpf-unwind.h: Likewise.
4429         * config/score/crti.asm: Likewise.
4430         * config/score/crtn.asm: Likewise.
4431         * config/sh/crt1.asm: Likewise.
4432         * config/sh/crti.asm: Likewise.
4433         * config/sh/crtn.asm: Likewise.
4434         * config/sh/divtab-sh4-300.c: Likewise.
4435         * config/sh/divtab-sh4.c: Likewise.
4436         * config/sh/divtab.c: Likewise.
4437         * config/sh/lib1funcs-4-300.asm: Likewise.
4438         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4439         * config/sh/lib1funcs.asm: Likewise.
4440         * config/sh/lib1funcs.h: Likewise.
4441         * config/sh/linux-atomic.asm: Likewise.
4442         * config/sh/linux-unwind.h: Likewise.
4443         * config/sh/shmedia.h: Likewise.
4444         * config/sh/sshmedia.h: Likewise.
4445         * config/sh/ushmedia.h: Likewise.
4446         * config/sparc/crtfastmath.c: Likewise.
4447         * config/sparc/linux-unwind.h: Likewise.
4448         * config/sparc/sol2-c1.asm: Likewise.
4449         * config/sparc/sol2-ci.asm: Likewise.
4450         * config/sparc/sol2-cn.asm: Likewise.
4451         * config/spu/divmodti4.c: Likewise.
4452         * config/spu/divv2df3.c: Likewise.
4453         * config/spu/float_disf.c: Likewise.
4454         * config/spu/float_unsdidf.c: Likewise.
4455         * config/spu/float_unsdisf.c: Likewise.
4456         * config/spu/float_unssidf.c: Likewise.
4457         * config/spu/mfc_multi_tag_release.c: Likewise.
4458         * config/spu/mfc_multi_tag_reserve.c: Likewise.
4459         * config/spu/mfc_tag_release.c: Likewise.
4460         * config/spu/mfc_tag_reserve.c: Likewise.
4461         * config/spu/mfc_tag_table.c: Likewise.
4462         * config/spu/multi3.c: Likewise.
4463         * config/spu/spu_internals.h: Likewise.
4464         * config/spu/spu_intrinsics.h: Likewise.
4465         * config/spu/spu_mfcio.h: Likewise.
4466         * config/spu/vec_types.h: Likewise.
4467         * config/spu/vmx2spu.h: Likewise.
4468         * config/stormy16/stormy16-lib2.c: Likewise.
4469         * config/svr4.h: Likewise.
4470         * config/sync.c: Likewise.
4471         * config/v850/lib1funcs.asm: Likewise.
4472         * config/vxlib-tls.c: Likewise.
4473         * config/vxlib.c: Likewise.
4474         * config/vxworks-dummy.h: Likewise.
4475         * config/xtensa/crti.asm: Likewise.
4476         * config/xtensa/crtn.asm: Likewise.
4477         * config/xtensa/ieee754-df.S: Likewise.
4478         * config/xtensa/ieee754-sf.S: Likewise.
4479         * config/xtensa/lib1funcs.asm: Likewise.
4480         * config/xtensa/lib2funcs.S: Likewise.
4481         * config/xtensa/linux-unwind.h: Likewise.
4482         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4483         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4484         * coretypes.h: Likewise.
4485         * crtstuff.c: Likewise.
4486         * defaults.h: Likewise.
4487         * dwarf2.h: Likewise.
4488         * emutls.c: Likewise.
4489         * gbl-ctors.h: Likewise.
4490         * gcov-io.h: Likewise.
4491         * ginclude/float.h: Likewise.
4492         * ginclude/iso646.h: Likewise.
4493         * ginclude/stdarg.h: Likewise.
4494         * ginclude/stdbool.h: Likewise.
4495         * ginclude/stddef.h: Likewise.
4496         * ginclude/stdfix.h: Likewise.
4497         * ginclude/stdint-gcc.h: Likewise.
4498         * ginclude/tgmath.h: Likewise.
4499         * gthr-aix.h: Likewise.
4500         * gthr-dce.h: Likewise.
4501         * gthr-gnat.c: Likewise.
4502         * gthr-gnat.h: Likewise.
4503         * gthr-lynx.h: Likewise.
4504         * gthr-mipssde.h: Likewise.
4505         * gthr-nks.h: Likewise.
4506         * gthr-posix.c: Likewise.
4507         * gthr-posix.h: Likewise.
4508         * gthr-posix95.h: Likewise.
4509         * gthr-rtems.h: Likewise.
4510         * gthr-single.h: Likewise.
4511         * gthr-solaris.h: Likewise.
4512         * gthr-tpf.h: Likewise.
4513         * gthr-vxworks.h: Likewise.
4514         * gthr-win32.h: Likewise.
4515         * gthr.h: Likewise.
4516         * libgcc2.c: Likewise.
4517         * libgcc2.h: Likewise.
4518         * libgcov.c: Likewise.
4519         * tsystem.h: Likewise.
4520         * typeclass.h: Likewise.
4521         * unwind-c.c: Likewise.
4522         * unwind-compat.h: Likewise.
4523         * unwind-dw2-fde-compat.c: Likewise.
4524         * unwind-dw2-fde-darwin.c: Likewise.
4525         * unwind-dw2-fde-glibc.c: Likewise.
4526         * unwind-dw2-fde.c: Likewise.
4527         * unwind-dw2-fde.h: Likewise.
4528         * unwind-dw2.c: Likewise.
4529         * unwind-dw2.h: Likewise.
4530         * unwind-generic.h: Likewise.
4531         * unwind-pe.h: Likewise.
4532         * unwind-sjlj.c: Likewise.
4533         * unwind.inc: Likewise.
4534         * config/arm/neon-gen.ml: Change generated copyright header to
4535         refer to version 3 of the GNU General Public License with
4536         version 3.1 of the GCC Runtime Library Exception and to point
4537         readers at the COPYING3 and COPYING3.RUNTIME files and the
4538         FSF's license web page.
4539         * config/arm/arm_neon.h: Regenerate.
4540
4541 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4542
4543         * config/cris/cris.md: Change copyright header to refer to version
4544         3 of the GNU General Public License.
4545         * doc/install.texi2html: Change copyright header to refer to version
4546         3 of the GNU General Public License and to point readers at the
4547         COPYING3 file and the FSF's license web page.
4548         * config/vax/linux.h: Likewise.
4549
4550 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4551
4552         * config/i386/i386.md (cmpcc): New.
4553         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4554         (sync_compare_and_swap_cc*): Delete.
4555
4556         * config/s390/s390.c (s390_compare_emitted): Remove.
4557         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4558         s390_compare_emitted used to be handled.  Assert that modes match.
4559         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4560         refer to sync_compare_and_swap_ccsi.
4561         * config/s390/s390.h (s390_compare_emitted): Remove.
4562         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4563         instead of s390_compare_emitted.
4564         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4565         instead of s390_compare_emitted.
4566         * config/s390/s390.md (cmpcc): New.
4567         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4568         CC_REGNUM, do not pretend it's set.
4569         (sync_compare_and_swap_cc*): Delete.
4570         * config/s390/predicates.md (cc_reg_operand): New.
4571
4572         * expr.c (sync_compare_and_swap_cc): Delete.
4573         * optabs.h (sync_compare_and_swap_cc): Delete.
4574         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4575         is being used with can_compare_p.
4576         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4577         (find_cc_set): New.
4578         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4579         look for a MODE_CC set instead.  Use emit_store_flag.
4580         (expand_compare_and_swap_loop): Likewise, with some additional
4581         complication to avoid a force_reg when useless.  Use
4582         emit_cmp_and_jump_insns.
4583         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4584         * doc/md.texi (sync_compare_and_swap_cc): Merge with
4585         sync_compare_and_swap documentation.
4586
4587 2009-04-09  Jan Hubicka  <jh@suse.cz>
4588
4589         * except.c (find_prev_try): Break out from ....
4590         (duplicate_eh_regions): ... here; properly update prev_try pointers
4591         when duplication part of tree.
4592         (dump_eh_tree): Improve dumping.
4593         (verify_eh_region): New.
4594         (verify_eh_tree): Use it.
4595
4596 2009-04-06  Richard Guenther  <rguenther@suse.de>
4597
4598         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4599         &ARRAY addresses by adjusting their types and prepending
4600         a conversion.
4601         * tree-cfg.c (verify_gimple_assign_single): Verify that
4602         addresses are correct.
4603
4604 2009-04-09  Richard Guenther  <rguenther@suse.de>
4605
4606         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4607         indices into an array reference if possible.
4608         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4609         Fold POINTER_PLUS_EXPR statements with invariant address.
4610
4611 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
4612
4613         PR target/39634
4614         * config.gcc (powerpc64-*-linux*): Always build biarch.
4615
4616 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
4617
4618         PR c/39613
4619         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4620         it and pedwarn if this results in an INTEGER_CST.
4621
4622 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4623
4624         * doc/install.texi: Update minimum GMP version.  Remove obsolete
4625         text in MPFR section.
4626
4627 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4628
4629         * dwarf2out.c (class_scope_p): New static inline.
4630         (class_or_namespace_scope_p): Use it.
4631         (gen_variable_die): Use DW_TAG_member tag for static data member
4632         declarations instead of DW_TAG_variable.
4633
4634         PR middle-end/39573
4635         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4636         variables.
4637
4638 2009-04-08  Richard Guenther  <rguenther@suse.de>
4639
4640         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4641         valueize random data.
4642
4643 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
4644
4645         * config.gcc (aix tm_file):  Add aix-stdint.h.
4646         (aix tm clause use_gcc_stdint):  Set to wrap.
4647         * config/rs6000/aix-stdint.h:  New file.
4648
4649 2009-04-08  Richard Guenther  <rguenther@suse.de>
4650
4651         PR middle-end/36291
4652         * tree-dfa.c (add_referenced_var): Do not recurse into
4653         global initializers.
4654         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4655         exposed variables.
4656         (fold_const_aggregate_ref): Likewise.
4657
4658 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4659
4660         * recog.c (ordered_comparison_operator): New.
4661         * gensupport.c (std_preds): Add it.
4662         * doc/md.texi (Machine-Independent Predicates): Document it.
4663
4664 2009-04-08  Jan Hubicka  <jh@suse.cz>
4665
4666         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4667         * function.h (rtl_eh): Remove exception_handler_label_map.
4668         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4669         remove_exception_handler_label, for_each_eh_label_1): Remove.
4670         (rtl_remove_unreachable_regions): Remove.
4671         (convert_from_eh_region_ranges): Do not remove unreachable regions.
4672         (find_exception_handler_labels): Don't build the hashtable.
4673         (maybe_remove_eh_handler): Remove.
4674         (for_each_eh_label): Rewrite to walk the tree.
4675         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4676         * except.h (maybe_remove_eh_handler): Remove.
4677         * passes.c (init_optimization_passes): Schedule second EH cleanup
4678         before out-of-ssa.
4679         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4680         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4681
4682 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4683
4684         * genoutput.c (validate_optab_operands): New.
4685         (gen_insn, gen_expand): Call it.
4686
4687         * genflags.c (gen_insn): Detect misused iterators.
4688         (main): Pass line_no to gen_insn, exit with status 1 on error.
4689
4690         * genextract.c (line_no): Make global.
4691         (VEC_safe_set_locstr): Change assertion to error message.
4692         (main): Exit with status 1 on error.
4693
4694 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
4695
4696         PR c/39614
4697         PR c/39673
4698         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4699         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4700         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4701         * c-convert.c (convert): Do not call fold on results of conversion
4702         functions when the result is a C_MAYBE_CONST_EXPR.
4703         * c-parser.c (c_parser_postfix_expression): Do not fold condition
4704         of __builtin_choose_expr.
4705         * c-typeck.c (remove_c_maybe_const_expr): New.
4706         (build_unary_op, build_conditional_expr, build_compound_expr,
4707         build_binary_op, c_objc_common_truthvalue_conversion): Call
4708         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4709         integer operands.
4710
4711 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
4712
4713         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
4714         CODE to produce a new one. Add a prototype to use fold_convert_const
4715
4716 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4717
4718         PR bootstrap/39660
4719         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4720         mix declarations and code.
4721
4722 2009-04-08  Ben Elliston  <bje@au.ibm.com>
4723
4724         * gcc.c: Replace `CC' with `GCC' throughout.
4725
4726 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4727
4728         * doc/invoke.texi: Document Atom support.
4729
4730 2009-04-07  Jason Merrill  <jason@redhat.com>
4731
4732         PR c++/25185
4733         * c-common.h, c-common.c: Add flag_pretty_templates.
4734         * c-opts.c (c_common_handle_option): Set it.
4735         * c.opt: Add -fno-pretty-templates.
4736         * doc/invoke.texi (C++ Dialect Options): Likewise.
4737
4738 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
4739
4740         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4741         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4742         (ia64_expand_builtin): Likewise.
4743
4744 2009-04-07  Martin Jambor  <mjambor@suse.cz>
4745
4746         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4747         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4748         ADDR_EXPRS are include too.
4749
4750 2009-04-07  Richard Guenther  <rguenther@suse.de>
4751
4752         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4753         decls are only used if passes as parameters or if they are
4754         local statics and the call is not to a builtin.
4755         (call_may_clobber_ref_p_1): Likewise.
4756
4757 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4758
4759         * expr.c (do_store_flag): Remove last argument.  Simplify code
4760         to avoid duplication of tests already done by can_compare_p.
4761         (expand_expr_real_1): Adjust caller.
4762
4763 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4764
4765         * optabs.c (can_compare_p): Test the predicate of a
4766         cbranch and cstore pattern.
4767
4768 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4769
4770         * expr.c (convert_move): Use emit_store_flag instead of
4771         "emulating" it.
4772
4773 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4774
4775         * config/i386/i386.c (ix86_compare_emitted): Remove.
4776         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4777         ix86_compare_op0 like ix86_compare_emitted used to be handled.
4778         * config/i386/i386.h (ix86_compare_emitted): Remove.
4779         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4780         instead of ix86_compare_emitted.
4781         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
4782
4783 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
4784
4785         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4786         Add t-sysroot-suffix to tmake_file.
4787         * config/print-sysroot-suffix.sh: New file.
4788         * config/t-sysroot-suffix: New file.
4789
4790 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4791
4792         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4793         as the latter produces a warning when the target does not support
4794         infinity.
4795
4796 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4797
4798         * dfp.c: Replace type punning assignments with memcpy throughout.
4799         * Makefile.in (dfp.o-warn): Remove.
4800
4801 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
4802
4803         PR target/39634
4804         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4805         Include soft-fp/t-softfp after rs6000/t-linux64.
4806
4807 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4808
4809         * stor-layout.c (set_sizetype): Use the full precision of their
4810         machine mode for bitsize types.
4811
4812 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
4813
4814         * config/i386/i386.md: Revert 2 accidental checkins.
4815
4816 2009-04-06  Joey Ye  <joey.ye@intel.com>
4817             Xuepeng Guo  <xuepeng.guo@intel.com>
4818             H.J. Lu  <hongjiu.lu@intel.com>
4819
4820         Atom pipeline model, tuning and insn selection.
4821         * config.gcc (atom): Add atom config options and target.
4822
4823         * config/i386/atom.md: New.
4824
4825         * config/i386/i386.c (atom_cost): New cost.
4826         (m_ATOM): New macro flag.
4827         (initial_ix86_tune_features): Set m_ATOM.
4828         (x86_accumulate_outgoing_args): Likewise.
4829         (x86_arch_always_fancy_math_387): Likewise.
4830         (processor_target): Add Atom cost.
4831         (cpu_names): Add Atom cpu name.
4832         (override_options): Set Atom ISA.
4833         (ix86_issue_rate): New case PROCESSOR_ATOM.
4834         (ix86_adjust_cost): Likewise.
4835
4836         * config/i386/i386.h (TARGET_ATOM): New target macro.
4837         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4838         (TARGET_OPT_AGU): New target option.
4839         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4840         (processor_type): Add PROCESSOR_ATOM.
4841
4842         * config/i386/i386.md (cpu): Add new value "atom".
4843         (use_carry, movu): New attr.
4844         (atom.md): Include atom.md.
4845         (adddi3_carry_rex64): Set attr "use_carry".
4846         (addqi3_carry): Likewise.
4847         (addhi3_carry): Likewise.
4848         (addsi3_carry): Likewise.
4849         (*addsi3_carry_zext): Likewise.
4850         (subdi3_carry_rex64): Likewise.
4851         (subqi3_carry): Likewise.
4852         (subhi3_carry): Likewise.
4853         (subsi3_carry): Likewise.
4854         (x86_movdicc_0_m1_rex64): Likewise.
4855         (*x86_movdicc_0_m1_se): Likewise.
4856         (x86_movsicc_0_m1): Likewise.
4857         (*x86_movsicc_0_m1_se): Likewise.
4858         (*adddi_1_rex64): Emit add insn as much as possible.
4859         (*addsi_1): Likewise.
4860         (return_internal): Set atom_unit.
4861         (return_internal_long): Likewise.
4862         (return_pop_internal): Likewise.
4863         (*rcpsf2_sse): Set atom_sse_attr attr.
4864         (*qrt<mode>2_sse): Likewise.
4865         (*prefetch_sse): Likewise.
4866
4867         * config/i386/i386-c.c (ix86_target_macros_internal): New case
4868         PROCESSOR_ATOM.
4869         (ix86_target_macros_internal): Likewise.
4870
4871         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4872         (*prefetch_sse_rex): Likewise.
4873         (sse_rcpv4sf2): Likewise.
4874         (sse_vmrcpv4sf2): Likewise.
4875         (sse_sqrtv4sf2): Likewise.
4876         (<sse>_vmsqrt<mode>2): Likewise.
4877         (sse_ldmxcsr): Likewise.
4878         (sse_stmxcsr): Likewise.
4879         (*sse_sfence): Likewise.
4880         (sse2_clflush): Likewise.
4881         (*sse2_mfence): Likewise.
4882         (*sse2_lfence): Likewise.
4883         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4884         (<sse>_movup<ssemodesuffixf2c>): Likewise.
4885         (avx_movdqu<avxmodesuffix>): Likewise.
4886         (avx_lddqu<avxmodesuffix>): Likewise.
4887         (sse2_movntv2di): Change attr "type" to "ssemov".
4888         (sse2_movntsi): Likewise.
4889         (rsqrtv8sf2): Change attr "type" to "sseadd".
4890         (sse3_addsubv2df3): Set attr "atom_unit".
4891         (sse3_h<plusminus_insn>v4sf3): Likewise.
4892         (*sse2_pmaddwd): Likewise.
4893         (*vec_extractv2di_1_rex64): Likewise.
4894         (*vec_extractv2di_1_avx): Likewise.
4895         (sse2_psadbw): Likewise.
4896         (ssse3_phaddwv8hi3): Likewise.
4897         (ssse3_phaddwv4hi3): Likewise.
4898         (ssse3_phadddv4si3): Likewise.
4899         (ssse3_phadddv2si3): Likewise.
4900         (ssse3_phaddswv8hi3): Likewise.
4901         (ssse3_phaddswv4hi3): Likewise.
4902         (ssse3_phsubwv8hi3): Likewise.
4903         (ssse3_phsubwv4hi3): Likewise.
4904         (ssse3_phsubdv4si3): Likewise.
4905         (ssse3_phsubdv2si3): Likewise.
4906         (ssse3_phsubswv8hi3): Likewise.
4907         (ssse3_phsubswv4hi3): Likewise.
4908         (ssse3_pmaddubsw128): Likewise.
4909         (sse3_pmaddubsw: Likewise.
4910         (ssse3_palignrti): Likewise.
4911         (ssse3_palignrdi): Likewise.
4912
4913 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
4914
4915         * doc/install.texi (Specific): Fix two cross-references to MinGW.
4916
4917 2009-04-06  Richard Guenther  <rguenther@suse.de>
4918
4919         PR tree-optimization/28868
4920         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4921         of which PHI results we inserted.
4922         (insert_into_preds_of_block): Record inserted PHIs.
4923         (eliminate): Eliminate redundant PHI nodes.
4924         (init_pre): Init inserted_phi_names.
4925
4926 2009-04-06  Richard Guenther  <rguenther@suse.de>
4927
4928         PR tree-optimization/39643
4929         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4930         IMAGPART_EXPRs of complex constants.
4931         (execute_fold_all_builtins): If we folded a call queue
4932         TODO_update_address_taken.
4933
4934 2009-04-06  Jan Hubicka  <jh@suse.cz>
4935
4936         PR middle-end/39659
4937         * except.c (remove_unreachable_regions): Propagate may_contain_throw
4938         flag.
4939
4940 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
4941
4942         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4943         delay slot.
4944         (ic_invalidate_array): Likewise.
4945
4946 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
4947
4948         * calls.c (emit_library_call_value_1): Fix a problem with parameter
4949         alignment for library calls.
4950
4951 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
4952
4953         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
4954         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
4955         * config/i386/mingw-stdint.h:  New file.
4956
4957 2009-04-05  Richard Guenther  <rguenther@suse.de>
4958
4959         PR tree-optimization/39648
4960         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4961         our &A vs. &A[0] IL deficiencies.
4962
4963 2009-04-04  Jan Hubicka  <jh@suse.cz>
4964
4965         * except.c (sjlj_find_directly_reachable_regions): Be ready for
4966         removed toplevel regions.
4967         (sjlj_mark_call_sites): Likewise.
4968
4969 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
4970
4971         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
4972         (cygwin tm clause use_gcc_stdint):  Set to wrap.
4973         * config/i386/cygwin-stdint.h:  New file.
4974
4975 2009-04-04  Richard Guenther  <rguenther@suse.de>
4976
4977         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4978         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4979         single-argument PHIs if we are in loop-closed SSA form.
4980         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4981         for the pre-condition.
4982         (slpeel_tree_peel_loop_to_edge): Likewise.
4983         (vect_build_loop_niters): Take an optional sequence to append stmts.
4984         (vect_generate_tmps_on_preheader): Likewise.
4985         (vect_do_peeling_for_loop_bound): Take extra guards for the
4986         pre-condition.
4987         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
4988         the cost model check.
4989         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
4990         guards if we are going to peel.  Do not apply versioning in that case.
4991         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4992         (vect_do_peeling_for_loop_bound): Likewise.
4993         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4994         loop bound only record extra pre-conditions, do not apply loop
4995         versioning.
4996
4997 2009-04-04  Richard Guenther  <rguenther@suse.de>
4998
4999         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5000         renaming code.
5001
5002 2009-04-04  Jan Hubicka  <jh@suse.cz>
5003
5004         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5005         last_basic_block for size of bb->index indexed array.
5006         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5007         compute_out, link_btr_uses, build_btr_def_use_webs,
5008         build_btr_def_use_webs, migrate_btr_defs): Likewise.
5009
5010 2009-04-04  Jan Hubicka  <jh@suse.cz>
5011
5012         * except.c (remove_eh_handler_and_replace): Break out from ...
5013         (remove_eh_handler): ... here.
5014         (bring_to_root): New function.
5015         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5016         handled ones, bring others to root of tree.
5017
5018 2009-04-04  Jan Hubicka  <jh@suse.cz>
5019
5020         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5021         (all_phis_safe_to_merge): New function.
5022         (update_info): New structure.
5023         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5024         (cleanup_empty_eh): Update SSA if possible.
5025
5026 2009-04-04  Richard Guenther  <rguenther@suse.de>
5027
5028         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5029         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5030         (append_vuse): Likewise.
5031
5032 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
5033
5034         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5035         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5036         instead of REG_UNSAVED for DW_CFA_undefined.
5037         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5038         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5039         outermost frame.
5040
5041 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
5042
5043         PR target/39501
5044         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5045         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5046         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5047
5048 2009-04-04  Richard Guenther  <rguenther@suse.de>
5049
5050         PR tree-optimization/8781
5051         PR tree-optimization/37892
5052         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5053         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5054         (valueize_refs): Call it for *& valueizations.
5055         (shared_reference_ops_from_ref): Rename to ...
5056         (valueize_shared_reference_ops_from_ref): ... this and valueize.
5057         (shared_reference_ops_from_call): Rename to ...
5058         (valueize_shared_reference_ops_from_call): ... this and valueize.
5059         (vn_reference_lookup): Update.
5060         (visit_reference_op_call): Likewise.
5061         * tree-ssa-pre.c (phi_translate_1): Fold *&.
5062         (eliminate): Value-replace the call address in call statements.
5063
5064 2009-04-04  Richard Guenther  <rguenther@suse.de>
5065
5066         PR tree-optimization/39636
5067         * tree-ssa-forwprop.c
5068         (forward_propagate_addr_into_variable_array_index): Check for
5069         GIMPLE_ASSIGN before accessing the rhs code.
5070
5071 2009-04-03  Jason Merrill  <jason@redhat.com>
5072
5073         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5074
5075 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
5076
5077         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5078         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5079         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5080         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5081         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5082         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5083         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5084         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5085         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5086         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5087         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5088         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5089         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5090         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5091         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5092         Use fr_reg_or_fp01_operand instead of fr_register_operand
5093
5094         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5095         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5096         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5097
5098 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
5099
5100         PR rtl-optimization/39607
5101         PR rtl-optimization/39631
5102
5103         Revert:
5104
5105         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5106         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5107         instead of DF_LR_OUT.
5108         * ira-lives.c (process_bb_node_lives): Ditto.
5109         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5110         instead of DF_LR_{OUT,IN}.
5111         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5112         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5113
5114 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
5115
5116         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5117         (execute_lower_omp): Always run but take the short way out if -fopenmp
5118         is not given.
5119         (gate_lower_omp): Remove, forcing the pass manager to always run the
5120         pass and always set PROP_gimple_lomp.
5121         (pass_lower_omp): Remove gate function.
5122         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5123         PROP_trees.  Instead, require it.
5124         * ipa-cp.c (pass_ipa_cp): Likewise.
5125         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5126         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5127         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5128         and PROP_gimple_leh.
5129
5130 2009-04-03  Richard Guenther  <rguenther@suse.de>
5131
5132         PR middle-end/13146
5133         PR tree-optimization/23940
5134         PR tree-optimization/33237
5135         PR middle-end/33974
5136         PR middle-end/34093
5137         PR tree-optimization/36201
5138         PR tree-optimization/36230
5139         PR tree-optimization/38049
5140         PR tree-optimization/38207
5141         PR tree-optimization/38230
5142         PR tree-optimization/38301
5143         PR tree-optimization/38585
5144         PR middle-end/38895
5145         PR tree-optimization/38985
5146         PR tree-optimization/39299
5147         * tree-ssa-structalias.h: Remove.
5148         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5149         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5150         (struct vuse_element_d): Remove.
5151         (struct vuse_vec_d): Likewise.
5152         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5153         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5154         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5155         VUSE_ELEMENT_VAR): Likewise.
5156         (struct voptype_d): Likewise.
5157         (NUM_VOP_FREE_BUCKETS): Likewise.
5158         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5159         (struct stmt_operands_d): Remove.
5160         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5161         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
5162         VDEF_NUM, VDEF_VECT): Likewise.
5163         (copy_virtual_operands): Remove.
5164         (operand_build_cmp): Likewise.
5165         (create_ssa_artificial_load_stmt): Likewise.
5166         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
5167         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
5168         vuse_index and mayuse_index members.  Pack and move done and iter_type
5169         members to the front.
5170         (SSA_OP_VMAYUSE): Remove.
5171         (SSA_OP_VIRTUAL_USES): Adjust.
5172         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
5173         (unlink_stmt_vdef): Declare.
5174         (add_to_addressable_set): Remove.
5175         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
5176         (vrp_visit_stmt): Likewise.
5177         * doc/tree-ssa.texi (Alias analysis): Update.
5178         * doc/invoke.texi (max-aliased-vops): Remove docs.
5179         (avg-aliased-vops): Likewise.
5180         * tree-into-ssa.c (syms_to_rename): Remove.
5181         (need_to_update_vops_p): Likewise.
5182         (need_to_initialize_update_ssa_p): Rename to ...
5183         (update_ssa_initialized_fn): ... this.  Track function we are
5184         initialized for.
5185         (symbol_marked_for_renaming): Simplify.
5186         (add_new_name_mapping): Do not set need_to_update_vops_p.
5187         (dump_currdefs): Use SYMS_TO_RENAME.
5188         (rewrite_update_stmt): Always walk all uses/defs.
5189         (dump_update_ssa): Adjust.
5190         (init_update_ssa): Take function argument.  Track what we are
5191         initialized for.
5192         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
5193         (create_new_def_for): Initialize for cfun, assert we are initialized
5194         for cfun.
5195         (mark_sym_for_renaming): Simplify.
5196         (mark_set_for_renaming): Do not initialize update-ssa.
5197         (need_ssa_update_p): Simplify.  Take function argument.
5198         (name_mappings_registered_p): Assert we ask for the correct function.
5199         (name_registered_for_update_p): Likewise.
5200         (ssa_names_to_replace): Likewise.
5201         (release_ssa_name_after_update_ssa): Likewise.
5202         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
5203         (dump_decl_set): Do not print a newline.
5204         (debug_decl_set): Do it here.
5205         (dump_update_ssa): And here.
5206         * tree-ssa-loop-im.c (move_computations): Adjust.
5207         (movement_possibility): Likewise.
5208         (determine_max_movement): Likewise.
5209         (gather_mem_refs_stmt): Likewise.
5210         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
5211         or NAME_MEMORY_TAG.
5212         * tree-complex.c (update_all_vops): Remove.
5213         (expand_complex_move): Adjust.
5214         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
5215         Simplify test for memory referencing statement.  Exclude
5216         non-invariant ADDR_EXPRs.
5217         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
5218         * tree-loop-distribution.c (generate_memset_zero): Adjust.
5219         (rdg_flag_uses): Likewise.
5220         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
5221         related code.
5222         (tree_optimize_tail_calls_1): Also split the
5223         edge from the entry block if we have degenerate PHI nodes in
5224         the first basic block.
5225         * tree.c (init_ttree): Remove memory-tag related code.
5226         (tree_code_size): Likewise.
5227         (tree_node_structure): Likewise.
5228         (build7_stat): Re-write to be build6_stat.
5229         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
5230         (SSA_VAR_P): Adjust.
5231         (struct tree_memory_tag): Remove.
5232         (struct tree_memory_partition_tag): Likewise.
5233         (union tree_node): Adjust.
5234         (build7): Re-write to be build6.
5235         * tree-pass.h (pass_reset_cc_flags): Remove.
5236         (TODO_update_address_taken): New flag.
5237         (pass_simple_dse): Remove.
5238         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
5239         * params.h (MAX_ALIASED_VOPS): Remove.
5240         (AVG_ALIASED_VOPS): Likewise.
5241         * omp-low.c (expand_omp_taskreg): Update SSA form.
5242         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
5243         aliases the lhs in a copy stmt.
5244         * tree-ssa-dse.c (struct address_walk_data): Remove.
5245         (memory_ssa_name_same): Likewise.
5246         (memory_address_same): Likewise.
5247         (get_kill_of_stmt_lhs): Likewise.
5248         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
5249         unused stores.  Look through PHI nodes into post-dominated regions.
5250         (dse_optimize_stmt): Simplify.  Properly remove stores.
5251         (tree_ssa_dse): Compute dominators.
5252         (execute_simple_dse): Remove.
5253         (pass_simple_dse): Likewise.
5254         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
5255         gimple_loaded_syms and gimple_stored_syms computation.
5256         * toplev.c (dump_memory_report): Dump alias and pta stats.
5257         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
5258         (vn_reference_eq): Likewise.
5259         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
5260         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
5261         valueize_vuses): Remove.
5262         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
5263         (get_def_ref_stmt_vuse): ... this.
5264         (vn_reference_lookup_2): New function.
5265         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
5266         walking equivalent vuses.  Simplify.
5267         (vn_reference_lookup): Likewise.
5268         (vn_reference_insert): Likewise.
5269         (vn_reference_insert_pieces): Likewise.
5270         (visit_reference_op_call): Simplify.
5271         (visit_reference_op_load): Likewise.
5272         (visit_reference_op_store): Likewise.
5273         (init_scc_vn): Remove shared_lookup_vuses initialization.
5274         (free_scc_vn): Remove shared_lookup_vuses freeing.
5275         (sort_vuses, sort_vuses_heap): Remove.
5276         (get_ref_from_reference_ops): Export.
5277         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
5278         vector with single vuse pointer.
5279         (vn_reference_lookup_pieces, vn_reference_lookup,
5280         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
5281         (shared_vuses_from_stmt): Remove.
5282         (get_ref_from_reference_ops): Declare.
5283         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
5284         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5285         memory-tag related code.
5286         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
5287         (likely_value): Add comment, skip static-chain of call statements.
5288         (surely_varying_stmt_p): Adjust.
5289         (gimplify_and_update_call_from_tree): Likewise.
5290         (execute_fold_all_builtins): Do not rebuild alias info.
5291         (gimplify_and_update_call_from_tree): Properly update VOPs.
5292         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
5293         (copy_ref_info): Remove memory-tag related code.
5294         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
5295         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
5296         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
5297         computation.
5298         * tree-ssa-dom.c (gimple_p): Remove typedef.
5299         (eliminate_redundant_computations): Adjust.
5300         (record_equivalences_from_stmt): Likewise.
5301         (avail_expr_hash): Likewise.
5302         (avail_expr_eq): Likewise.
5303         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5304         (stmt_makes_single_load): Likewise.
5305         (stmt_makes_single_store): Likewise.
5306         * tree-ssa-alias.c: Rewrite completely.
5307         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
5308         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
5309         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
5310         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
5311         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
5312         Remove public functions.
5313         (pass_reset_cc_flags): Remove.
5314         (pass_build_alias): Move ...
5315         * tree-ssa-structalias.c (pass_build_alias): ... here.
5316         * tree-ssa-alias.c (may_be_aliased): Move ...
5317         * tree-flow-inline.h (may_be_aliased): ... here.
5318         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
5319         count_uses_and_derefs): Move ...
5320         * gimple.c: ... here.
5321         * gimple.h (count_uses_and_derefs): Declare.
5322         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
5323         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
5324         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
5325         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
5326         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
5327         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
5328         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
5329         New functions.
5330         * tree-dfa.c (refs_may_alias_p): Move ...
5331         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
5332         * tree-ssa-alias.h: New file.
5333         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
5334         (statement_sink_location): Likewise.
5335         * opts.c (decode_options): Do not adjust max-aliased-vops or
5336         avg-aliased-vops values.
5337         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
5338         (TV_CALL_CLOBBER): Likewise.
5339         (TV_FLOW_SENSITIVE): Likewise.
5340         (TV_FLOW_INSENSITIVE): Likewise.
5341         (TV_MEMORY_PARTITIONING): Likewise.
5342         (TV_ALIAS_STMT_WALK): New timevar.
5343         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
5344         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
5345         (get_address_description): Remove memory-tag related code.
5346         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
5347         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
5348         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
5349         and immediate uses in statements.  Document.
5350         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
5351         (dump_symbols): Remove.
5352         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
5353         * alias.c (get_deref_alias_set): New function split out from ...
5354         (get_alias_set): ... here.
5355         * alias.h (get_deref_alias_set): Declare.
5356         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
5357         type parameter.  Remove restrict pointer handling.  Create a
5358         ref-all pointer in case type-based alias sets do not conflict.
5359         (vect_analyze_data_refs): Remove SMT related code.
5360         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5361         (vectorizable_load): Likewise.
5362         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5363         (DR_SYMBOL_TAG, DR_VOPS): Remove.
5364         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5365         Ignore vops and SMTs.
5366         (dr_analyze_alias): Likewise..
5367         (free_data_ref): Likewise.
5368         (create_data_ref): Likewise.
5369         (analyze_all_data_dependences): Likewise.
5370         (get_references_in_stmt): Adjust.
5371         * tree-flow-inline.h (gimple_aliases_computed_p,
5372         gimple_addressable_vars, gimple_call_clobbered_vars,
5373         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5374         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5375         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5376         gimple_mem_ref_stats): Remove.
5377         (gimple_vop): New function.
5378         (op_iter_next_use): Remove vuses and mayuses cases.
5379         (op_iter_next_def): Remove vdefs case.
5380         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5381         (clear_and_done_ssa_iter): Do not set removed fields.
5382         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
5383         Assert we are not iterating over vuses or vdefs if not also
5384         iterating over uses or defs.
5385         (op_iter_init_use): Likewise.
5386         (op_iter_init_def): Likewise.
5387         (op_iter_next_vdef): Remove.
5388         (op_iter_next_mustdef): Likewise.
5389         (op_iter_init_vdef): Likewise.
5390         (compare_ssa_operands_equal): Likewise.
5391         (link_use_stmts_after): Handle vuse operand.
5392         (is_call_used): Use is_call_clobbered.
5393         (is_call_clobbered): Global variables are always call clobbered,
5394         query the call-clobbers bitmap.
5395         (mark_call_clobbered): Ignore global variables.
5396         (clear_call_clobbered): Likewise.
5397         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5398         virtual operands sanity check.
5399         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5400         Remove.
5401         (TARGET_MEM_REF): Remove TMR_TAG operand.
5402         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5403         Remove call-clobber related code.
5404         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
5405         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5406         partitions or escape reason.
5407         (get_single_def_stmt, get_single_def_stmt_from_phi,
5408         get_single_def_stmt_with_phi): Remove.
5409         (dump_referenced_vars): Tidy.
5410         (get_ref_base_and_extent): Allow bare decls.
5411         (collect_dfa_stats): Adjust.
5412         * graphite.c (rename_variables_in_stmt): Adjust.
5413         (graphite_copy_stmts_from_block): Likewise.
5414         (translate_clast): Likewise.
5415         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5416         (EXPR_DIES): New.
5417         (translate_vuse_through_block): Use the oracle.
5418         (phi_translate_1): Adjust.
5419         (value_dies_in_block_x): Use the oracle.  Cache the outcome
5420         in EXPR_DIES.
5421         (valid_in_sets): Check if the VUSE for
5422         a REFERENCE is available.
5423         (eliminate): Do not remove stmts during elimination,
5424         instead queue and remove them afterwards.
5425         (do_pre): Do not rebuild alias info.
5426         (pass_pre): Run TODO_rebuild_alias before PRE.
5427         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5428         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5429         (mark_all_v_defs_stmt): Remove.
5430         (mark_all_v_defs_seq): Adjust.
5431         (sra_replace): Likewise.
5432         (scalarize_use): Likewise.
5433         (scalarize_copy): Likewise.
5434         (scalarize_init): Likewise.
5435         (scalarize_ldst): Likewise.
5436         (todoflags): Remove.
5437         (tree_sra): Do not rebuild alias info.
5438         (tree_sra_early): Adjust.
5439         (pass_sra): Run TODO_update_address_taken before SRA.
5440         * tree-predcom.c (set_alias_info): Remove.
5441         (prepare_initializers_chain): Do not call it.
5442         (mark_virtual_ops_for_renaming): Adjust.
5443         (mark_virtual_ops_for_renaming_list): Remove.
5444         (initialize_root_vars): Adjust.
5445         (initialize_root_vars_lm): Likewise.
5446         (prepare_initializers_chain): Likewise.
5447         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5448         (may_propagate_copy_into_stmt): Likewise.
5449         (merge_alias_info): Do nothing for now.
5450         (propagate_tree_value_into_stmt): Adjust.
5451         (stmt_may_generate_copy): Likewise.
5452         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5453         not mark symbols for renaming.
5454         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5455         with the same statement, make sure to update the new pointed-to one.
5456         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5457         call statements, do not mark symbols for renaming.
5458         (mark_operand_necessary): Dump something.
5459         (ref_may_be_aliased): New function.
5460         (mark_aliased_reaching_defs_necessary_1): New helper function.
5461         (mark_aliased_reaching_defs_necessary): Likewise.
5462         (mark_all_reaching_defs_necessary_1): Likewise.
5463         (mark_all_reaching_defs_necessary): Likewise.
5464         (propagate_necessity): Do not process virtual PHIs.  For
5465         non-aliased loads mark all reaching definitions as necessary.
5466         For aliased loads and stores mark the immediate dominating
5467         aliased clobbers as necessary.
5468         (visited): New global static.
5469         (perform_tree_ssa_dce): Free visited bitmap after propagating
5470         necessity.
5471         (remove_dead_phis): Perform simple dead virtual PHI removal.
5472         (remove_dead_stmt): Properly unlink virtual operands when
5473         removing stores.
5474         (eliminate_unnecessary_stmts): Schedule PHI removal after
5475         stmt removal.
5476         * tree-ssa-ter.c (is_replaceable_p): Adjust.
5477         (process_replaceable): Likewise.
5478         (find_replaceable_in_bb): Likewise.
5479         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5480         based on the single gimple vop.
5481         (verify_flow_insensitive_alias_info): Remove.
5482         (verify_flow_sensitive_alias_info): Likewise.
5483         (verify_call_clobbering): Likewise.
5484         (verify_memory_partitions): Likewise.
5485         (verify_alias_info): Likewise.
5486         (verify_ssa): Adjust..
5487         (execute_update_addresses_taken): Export.  Update SSA
5488         manually.  Optimize only when optimizing.  Use a local bitmap.
5489         (pass_update_address_taken): Remove TODO_update_ssa, add
5490         TODO_dump_func.
5491         (pass_update_address_taken): Just use TODO_update_address_taken.
5492         (init_tree_ssa): Do not initialize addressable_vars.
5493         (verify_ssa): Verify new VUSE / VDEF properties.
5494         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5495         Do not call verify_alias_info.
5496         (delete_tree_ssa): Clear the VUSE, VDEF operands.
5497         Do not free the loaded and stored syms bitmaps.  Reset the escaped
5498         and callused solutions.  Do not free addressable_vars.
5499         Remove memory-tag related code.
5500         (warn_uninitialized_var): Aliases are always available.
5501         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5502         * lambda-code.c (can_put_in_inner_loop): Adjust.
5503         (can_put_after_inner_loop): Likewise.
5504         (perfect_nestify): Likewise.
5505         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5506         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5507         (vectorizable_conversion): Do not mark symbols for renaming.
5508         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5509         (expand_call_inline): Unlink the calls virtual operands before
5510         replacing it.
5511         (tree_function_versioning): Do not call update_ssa if we are not
5512         updating clones.  Simplify.
5513         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5514         (propagate_with_phi): Likewise..
5515         * tree-outof-ssa.c (create_temp): Remove memory tag and call
5516         clobber code.  Assert we are not aliased or global.
5517         * tree-flow.h: Include tree-ssa-alias.h
5518         (enum escape_type): Remove.
5519         (struct mem_sym_stats_d): Likewise.
5520         (struct mem_ref_stats_d): Likewise.
5521         (struct gimple_df): Add vop member.  Remove global_var,
5522         call_clobbered_vars, call_used_vars, addressable_vars,
5523         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
5524         escaped and callused members.
5525         (struct ptr_info_def): Remove all members, add points-to solution
5526         member pt.
5527         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5528         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5529         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5530         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5531         (tree-ssa-alias.o): Likewise.
5532         (toplev.o): Add tree-ssa-alias.h
5533         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5534         * gimple.c (gimple_set_bb): Fix off-by-one error.
5535         (is_gimple_reg): Do not handle memory tags.
5536         (gimple_copy): Also copy virtual operands.
5537         Delay updating the statement.  Do not reset loaded and stored syms.
5538         (gimple_set_stored_syms): Remove.
5539         (gimple_set_loaded_syms): Likewise.
5540         (gimple_call_copy_skip_args): Copy the virtual operands
5541         and mark the new statement modified.
5542         * tree-ssa-structalias.c (may_alias_p): Remove.
5543         (set_uids_in_ptset): Take the alias set to prune with as
5544         parameter.  Fold in the alias test of may_alias_p.
5545         (compute_points_to_sets): Compute whether a ptr is dereferenced
5546         in a local sbitmap.
5547         (process_constraint): Deal with &ANYTHING on the lhs, reject all
5548         other ADDRESSOF constraints on the lhs.
5549         (get_constraint_for_component_ref): Assert that we don't get
5550         ADDRESSOF constraints from the base of the reference.
5551         Properly generate UNKNOWN_OFFSET for DEREF if needed.
5552         (struct variable_info): Remove collapsed_to member.
5553         (get_varinfo_fc): Remove.
5554         (new_var_info): Do not set collapsed_to.
5555         (dump_constraint): Do not follow cycles.
5556         (dump_constraint_graph): Likewise.
5557         (build_pred_graph): Likewise.
5558         (build_succ_graph): Likewise.
5559         (rewrite_constraints): Likewise.
5560         (do_simple_structure_copy): Remove.
5561         (do_rhs_deref_structure_copy): Remove.
5562         (do_lhs_deref_structure_copy): Remove.
5563         (collapse_rest_of_var): Remove.
5564         (do_structure_copy): Re-implement.
5565         (pta_stats): New global variable.
5566         (dump_pta_stats): New function.
5567         (struct constraint_expr): Make offset signed.
5568         (UNKNOWN_OFFSET): Define special value.
5569         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5570         (solution_set_expand): New helper function split out from ...
5571         (do_sd_constraint): ... here.
5572         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
5573         (do_ds_constraint): Likewise.
5574         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
5575         and CALLUSED = *CALLUSED.
5576         (set_union_with_increment): Make inc argument signed.
5577         (type_safe): Remove.
5578         (get_constraint_for_ptr_offset): Handle unknown and negative
5579         constant offsets.
5580         (first_vi_for_offset): Handle offsets before start.  Bail
5581         out early for offsets beyond the variable extent.
5582         (first_or_preceding_vi_for_offset): New function.
5583         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5584         Together with ESCAPED = *ESCAPED this properly computes reachability.
5585         (find_what_var_points_to): New function.
5586         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5587         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5588         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5589         pt_solutions_intersect): New functions.
5590         (compute_call_used_vars): Remove.
5591         (compute_may_aliases): New main entry into PTA computation.
5592         * gimple.h (gimple_p): New typedef.
5593         (struct gimple_statement_base): Remove references_memory_p.
5594         (struct gimple_statement_with_memory_ops_base): Remove
5595         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
5596         members.
5597         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5598         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5599         gimple_set_references_memory): Remove.
5600         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5601         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5602         New functions.
5603         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5604         (verify_expr): Allow RESULT_DECL.
5605         (gimple_duplicate_bb): Do not copy virtual operands.
5606         (gimple_duplicate_sese_region): Adjust.
5607         (gimple_duplicate_sese_tail): Likewise.
5608         (mark_virtual_ops_in_region): Remove.
5609         (move_sese_region_to_fn): Do not call it.
5610         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5611         and pass_simple_dse.
5612         (execute_function_todo): Handle TODO_update_address_taken,
5613         call execute_update_addresses_taken for TODO_rebuild_alias.
5614         (execute_todo): Adjust.
5615         (execute_one_pass): Init dump files early.
5616         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5617         call-clobbered.
5618         (create_general_new_stmt): Clear vops.
5619         * tree-ssa-reassoc.c (get_rank): Adjust.
5620         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5621         symbols for renaming.
5622         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5623         (PARAM_AVG_ALIASED_VOPS): Likewise.
5624         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5625         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
5626         * tree-ssa-operands.c: Simplify for new virtual operand representation.
5627         (operand_build_cmp, copy_virtual_operands,
5628         create_ssa_artificial_load_stmt, add_to_addressable_set,
5629         gimple_add_to_addresses_taken): Remove public functions.
5630         (unlink_stmt_vdef): New function.
5631
5632 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5633
5634         * config.gcc (powerpc-*-linux*): Merge variants.
5635
5636 2009-04-02  Chao-ying Fu  <fu@mips.com>
5637             James Grosbach  <james.grosbach@microchip.com>
5638
5639         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5640         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5641         cop0_sp_offset.
5642         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5643         keep_interrupts_masked_p, use_debug_exception_return_p.
5644         (mips_attribute_table): Add interrupt, use_shadow_register_set,
5645         keep_interrupts_masked, use_debug_exception_return.
5646         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5647         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5648         New functions.
5649         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5650         (mips_print_operand): Process COP0 registers to print $0 .. $31
5651         correctly for GAS to process.
5652         (mips_interrupt_extra_call_saved_reg_p): New function.
5653         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5654         extra registers.
5655         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5656         (mips_compute_frame_info): Add supports for interrupt context that
5657         includes doubleword accumulators and COP0 registers.
5658         (mips_for_each_saved_acc): New function.
5659         (mips_for_each_saved_gpr_and_fpr): Change the function name from
5660         mips_for_each_saved_reg.
5661         (mips_save_reg): Save accumulators.
5662         (mips_kernel_reg_p): A new for_each_rtx callback.
5663         (mips_expand_prologue): Support interrupt handlers.
5664         (mips_restore_reg): Restore accumulators.
5665         (mips_expand_epilogue): Support interrupt handlers.
5666         (mips_can_use_return_insn): Return false for interrupt handlers.
5667         (mips_epilogue_uses): New function.
5668         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5669         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5670         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5671         cop0_move): New instructions.
5672         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5673         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5674         defines.
5675         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5676         New defines.
5677         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5678         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5679         interrupt handlers, we use K0 as the temporary register.
5680         (EPILOGUE_USES): Change to a function call.
5681         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5682         handlers, we use K0 as the temporary register.
5683
5684         * doc/extend.texi (Function Attributes): Document interrupt,
5685         use_shadow_register_set, keep_interrupts_masked,
5686         use_debug_exception_return for MIPS attributes.
5687
5688 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5689
5690         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5691         Remove a number of t-files from tmake_file.
5692         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5693         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5694         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5695         target_prototype, not TARGET_PROTOTYPE.
5696         (LINK_OS_GNU_SPEC): Define.
5697         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5698         and darwin-ldoubdle.c.
5699
5700 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5701
5702         PR driver/39293
5703         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5704         (cpp_options): Ditto.
5705         (default_compilers): Ditto.
5706         (display_help): Ditto.
5707         (process_command): Ditto.
5708         (do_spec_1): Ditto.
5709         (set_input): Use lbasename instead of duplicate code.
5710         (save_temps_prefix): New static for -save-temps=obj.
5711         (save_temps_length): Ditto.
5712
5713         * doc/invoke.texi (-save-temps=obj): Document new variant to
5714         -save-temps switch.
5715
5716 2009-04-02  Jeff Law  <law@redhat.com>
5717
5718         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5719         variable.
5720
5721 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5722
5723         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5724         * configure: Regenerated.
5725
5726 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5727
5728         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5729         share the argument list.
5730
5731 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5732
5733         Merge
5734
5735         2009-02-12  Diego Novillo  <dnovillo@google.com>
5736
5737         * varpool.c (debug_varpool): New.
5738         * cgraph.h (debug_varpool): Declare.
5739
5740 2009-04-02  Jan Hubicka  <jh@suse.cz>
5741
5742         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5743         pass.
5744
5745 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5746
5747         * config/i386/i386.c (ix86_abi): Move initialization to ...
5748         (override_options): Here.
5749
5750 2009-04-02  Christian Bruel  <christian.bruel@st.com>
5751
5752         * config/sh/sh.c (sh_dwarf_register_span): New function.
5753         (TARGET_DWARF_REGISTER_SPAN): Define.
5754         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
5755
5756 2009-04-02  Ira Rosen  <irar@il.ibm.com>
5757
5758         PR tree-optimization/39595
5759         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
5760         interleaved loads group is not  greater than the SLP group size.
5761
5762 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5763
5764         * builtins.c (is_builtin_name): New.
5765         (called_as_built_in): Use is_builtin_name.
5766         * tree.h (is_builtin_name): New.
5767         * varasm.c (incorporeal_function_p): Use is_builtin_name
5768
5769 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
5770
5771         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5772
5773 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
5774
5775         PR c++/26693
5776         * c-decl.c (clone_underlying_type): Move this ...
5777         * c-common.c (set_underlying_type): ... here.
5778         Also, make sure the function properly sets TYPE_STUB_DECL() on
5779         the newly created typedef variant type.
5780         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
5781         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5782         points.
5783
5784 2009-04-02  Richard Guenther  <rguenther@suse.de>
5785
5786         PR tree-optimization/37221
5787         * tree-flow.h (degenerate_phi_result): Declare.
5788         * tree-ssa-dom.c (degenerate_phi_result): Export.
5789         * tree-scalar-evolution.c (analyze_initial_condition): If
5790         the initial condition is defined by a degenerate PHI node
5791         use the degenerate value.
5792
5793 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
5794
5795         PR rtl-optimization/39588
5796         * combine.c (merge_outer_ops): Do not set the constant when this
5797         is not necessary.
5798         (simplify_shift_const_1): Do not modify it either in this case.
5799
5800 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
5801
5802         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5803         tuning is deprecated if -mtune value is set to an Itanium1 variant.
5804
5805 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
5806
5807         PR c/29027
5808         * c-lex.c (interpret_float): Default (no suffix) is double.
5809
5810 2009-04-1  Xinliang David Li  <davidxl@google.com>
5811
5812         * config/i386/i386.c (legitimate_constant_p): Recognize
5813         all one vector constant.
5814
5815 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5816
5817         * config/vax/vax.c: Add #includes to silence warnings.
5818         Change #include order to silence two warnings.
5819
5820 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5821
5822         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
5823         (ASM_SPEC): Pass -k to the assembler for PIC code.
5824
5825 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5826
5827         * config.gcc: Add vax-*-linux* to the switch.
5828         * config/vax/linux.h: New file. (TARGET_VERSION,
5829         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5830
5831 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5832
5833         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
5834         Use predicate macros instead of GET_CODE() == foo.
5835         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
5836         ashlsi3, rotrsi3, <unnamed>): Likewise.
5837
5838 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5839
5840         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
5841         jbbccihi, jbbccisi): Remova trailing whitespace.
5842         * config/vax/constraints.md: Likewise.
5843         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5844         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5845         * config/vax/predicates.md: Likewise.
5846         * config/vax/vax.c (print_operand_address, vax_output_int_move,
5847         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
5848         * config/vax/vax.h: Likewise.
5849         * config/vax/vax.md (nonlocal_goto): Likewise.
5850
5851 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5852
5853         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
5854         (indirectable_address_p, adjacent_operands_p): Add spaces around
5855         braces.
5856         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
5857
5858 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5859
5860         * config/vax/vax.c (legitimate_constant_address_p,
5861         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5862         index_term_p, reg_plus_index_p, legitimate_address_p,
5863         vax_mode_dependent_address_p): Update comments to match functions
5864         modified by the recent int->bool conversion.
5865
5866 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5867
5868         * config/vax/builtins.md: Update copyright message.
5869         * config/vax/constraints.md: Likewise.
5870         * config/vax/netbsd-elf.h: Likewise.
5871         * config/vax/predicates.md: Likewise.
5872         * config/vax/vax-protos.h: Likewise.
5873         * config/vax/vax.c: Likewise.
5874         * config/vax/vax.h: Likewise.
5875         * config/vax/vax.md: Likewise.
5876         * config/vax/vax.opt: Likewise.
5877
5878 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5879
5880         * config/vax/builtins.md (ffssi2, ffssi2_internal,
5881         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
5882         * config/vax/constraints.md (B, R): Likewise.
5883         * config/vax/predicates.md (external_memory_operand,
5884         nonimmediate_addsub_di_operand): Likewise.
5885         * config/vax/vax.c (vax_output_int_add): Likewise.
5886         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
5887         untyped_call): Likewise.
5888
5889 2009-04-01  Matt Thomas  <matt@3am-software.com>
5890
5891         * config/vax/predicates.md: New file.
5892         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
5893         external_const_operand, nonsymbolic_operand, external_memory_operand,
5894         indirect_memory_operand, indexed_memory_operand,
5895         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5896         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5897         predicate.
5898         * config/vax/constraints.md: New file.
5899         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5900         New constraint.
5901         * config/vax/builtins.md: New file.
5902         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5903         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5904         jbbccisi): Define.
5905         * config/vax/vax.opt (mqmath): Add option.
5906         * config/vax/vax.md (isfx): Extend with DI.
5907         (VAXintQH, VAXintQHSD): Define.
5908         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5909         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5910         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5911         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5912         (movdi): Update constraints and use vax_output_int_move().
5913         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5914         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5915         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5916         nonlocal_goto): New.
5917         (mov<mode>): Extend accepted operand types.
5918         (subdi3_old): Rename from subdi3, change update constraints and use
5919         a new implementation.
5920         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
5921         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5922         MOVE_RATIO, CLEAR_RATIO): Define.
5923         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5924         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5925         (PRINT_OPERAND): Redefine using a function instead of inlined code.
5926         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5927         (split_quadword_operands): Make static and really allow variable
5928         splitting.
5929         (print_operand_address): Update for PIC generation.
5930         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5931         indexable_address_p, fixup_mathdi_operand,
5932         vax_expand_addsub_di_operands, adjacent_operands_p): New.
5933         (vax_float_literal, legitimate_constant_p,
5934         indirectable_constant_address_p, index_term_p,
5935         reg_plus_index_p): Return bool instead of int.
5936         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5937         where needed.
5938         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5939         generation.
5940         (vax_output_conditional_branch): Indent.
5941         (legitimate_constant_address_p, indirectable_constant_address_p,
5942         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5943         vax_mode_dependent_address_p): Return bool instead of int, update for
5944         PIC generation.
5945         * config/vax/vax-protos.h (legitimate_constant_address_p,
5946         legitimate_constant_p, legitimate_address_p,
5947         vax_mode_dependent_address_p): Change declaration to bool.
5948         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5949         vax_expand_addsub_di_operands, vax_output_int_subtract,
5950         vax_output_movmemsi): Declare.
5951         (split_quadword_operands, vax_float_literal): Delete declaration.
5952         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5953         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5954         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5955         ASM_OUTPUT_DWARF_PCREL): Define.
5956         (ASM_SPEC): Change definition to allow PIC generation.
5957
5958 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
5959
5960         * doc/sourcebuild.texi: Update front-end requirements.
5961
5962 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5963
5964         PR target/39226
5965         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5966         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5967         (booldi3_internal3): Use boolean_or_operator instead of
5968         boolean_operator.
5969
5970 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
5971
5972         PR c/39605
5973         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5974         declarator whose size is not an integer constant expression but
5975         folds to an integer constant, then treat it as a constant
5976         subsequently.
5977
5978 2009-04-01  Richard Guenther  <rguenther@suse.de>
5979
5980         * fold-const.c (fold_plusminus_mult_expr): Do not fold
5981         i * 4 + 2 to (i * 2 + 1) * 2.
5982
5983 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5984
5985         PR c/37772
5986         * c-parser.c (c_parser_asm_statement): Skip until close paren and
5987         return if c_parser_asm_string_literal returned NULL.
5988
5989 2009-04-01  Nick Clifton  <nickc@redhat.com>
5990
5991         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5992         already defined.
5993         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5994         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
5995         other typedefs to avoid conflicts with libgcc2.c.  Define labels
5996         to gain 16-bit bit-manipulation functions from libgcc2.c and then
5997         include it.
5998         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
5999         to gain 16-bit trapping arithmetic functions from libgcc2.c and
6000         then include it.
6001
6002 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
6003
6004         * varasm.c (default_function_rodata_section): Declare DOT as
6005         const char*.
6006
6007 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
6008             Andrey Galkin  <agalkin@hypercom.com>
6009
6010         PR/39492
6011         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6012         Make object_name unique for each process.
6013
6014 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
6015
6016         PR other/39591
6017         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6018         addressable variables in the parallel that could go out of scope while
6019         running queued tasks.
6020
6021 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
6022
6023         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6024         (CASE_VALUES_THRESHOLD): Redefine.
6025         * config/avr/avr.c (avr_override_options): Remove initialization of
6026         avr_case_values_threshold variable.
6027         (avr_case_values_threshold): Remove variable. Add new function.
6028         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6029         * config/avr/avr.opt (mno-tablejump): Remove option.
6030         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6031
6032 2009-04-01  DJ Delorie  <dj@redhat.com>
6033
6034         * varasm.c (default_function_rodata_section): Don't assume
6035         anything about where the first '.' in the section name is.
6036
6037 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
6038
6039         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6040         rs6000_emit_stack_tie.
6041
6042 2009-03-31  Ian Lance Taylor  <iant@google.com>
6043
6044         * tree-eh.c (tree_remove_unreachable_handlers): Compare
6045         gimple_code with GIMPLE_RESX, not RESX.
6046
6047 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6048
6049         * c-common.c (c_get_ident): New.
6050         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
6051
6052 2009-04-01  Ben Elliston  <bje@au.ibm.com>
6053
6054         * config/rs6000/sysv4.opt (msdata): Improve option description.
6055
6056 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
6057
6058         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6059         (divdf3_internal_lat): Remove.
6060         (divxf3_internal_lat): Remove.
6061         (divxf3_internal_thr): Remove.
6062         (divxf): Use divxf3_internal.
6063         * config/ia64/div.md (divsf3_internal_lat): New.
6064         (divdf3_internal_lat): New.
6065         (divxf3_internal): New.
6066
6067 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6068
6069         PR c/448
6070         * Makefile.in (USE_GCC_STDINT): Define.
6071         (stmp-int-hdrs): Install stdint.h if applicable.
6072         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6073         if known.
6074         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6075         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6076         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6077         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6078         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6079         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6080         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6081         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6082         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6083         (c_common_nodes_and_builtins): Initialize
6084         underlying_wchar_type_node.  Do not initialize
6085         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
6086         nodes for new types.
6087         (c_stddef_cpp_builtins): Define macros for new types.
6088         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6089         Remove.
6090         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6091         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6092         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6093         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6094         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6095         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6096         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6097         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6098         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6099         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6100         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6101         int16_type_node, int32_type_node, int64_type_node,
6102         uint8_type_node, uint16_type_node, c_uint32_type_node,
6103         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6104         int_least32_type_node, int_least64_type_node,
6105         uint_least8_type_node, uint_least16_type_node,
6106         uint_least32_type_node, uint_least64_type_node,
6107         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6108         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6109         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6110         uintptr_type_node): Define.
6111         * c-cppbuiltin.c (builtin_define_constants,
6112         builtin_define_type_minmax): New.
6113         (builtin_define_stdint_macros): Define more macros.
6114         (c_cpp_builtins): Define more limit macros.
6115         (type_suffix): New.
6116         (builtin_define_type_max): Define in terms of
6117         builtin_define_type_minmax.  Remove is_long parameter.  All
6118         callers changed.
6119         * config.gcc (use_gcc_stdint): Define.
6120         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6121         Add newlib-stdint.h for generic targets.
6122         * config/glibc-stdint.h, config/newlib-stdint.h,
6123         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6124         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6125         * config/score/score.h (UINTPTR_TYPE): Define.
6126         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6127         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6128         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6129         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6130         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6131         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6132         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6133         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6134         * config/spu/spu.h (STDINT_LONG32): Define.
6135         * configure.ac (use_gcc_stdint): Substitute.
6136         * configure: Regenerate.
6137         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6138         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6139         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6140         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6141         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6142         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6143         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6144         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6145         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6146         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6147         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6148         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6149         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6150         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6151         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6152         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6153         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6154         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6155         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6156         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6157         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6158         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6159         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6160         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6161         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6162         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6163         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6164         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6165         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
6166
6167 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
6168
6169         * loop-iv.c (suitable_set_for_replacement): Renamed from
6170         simplify_using_assignment; changed to return bool and to accept new
6171         args DEST and SRC.  Return true iff we find a source/destination pair
6172         that can be used to make a replacement, and fill SRC and DEST if so.
6173         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
6174         changed.
6175         (simplify_using_initial_values): Deal with altered regs here and track
6176         more precisely the effect they have on the validity of our expression.
6177
6178         * loop-iv.c (simplify_using_condition): A condition of the form
6179         (EQ REG CONST) can be used to simply make a substitution.
6180         (simplify_using_initial_values): Keep track of conditions we have seen
6181         and keep using them to simplify new expressions, while applying the
6182         same substitutions to them as to the expression.
6183
6184         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6185         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
6186         GEU/LTU reversed.
6187
6188         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
6189         changed.  Use this when trying to improve the upper bound.
6190         Generate the comparison by using simplify_gen_relational.
6191
6192         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
6193
6194         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
6195         functions.
6196         (simplify_using_assignment, simplify_using_initial_values): Call
6197         replace_in_expr to make replacements.  Call replace_single_def_regs
6198         once on the initial version of the expression.
6199
6200 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6201
6202         PR target/27237
6203         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
6204
6205 2009-03-31  Richard Guenther  <rguenther@suse.de>
6206
6207         PR middle-end/31029
6208         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
6209         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
6210
6211 2009-03-31  Richard Guenther  <rguenther@suse.de>
6212
6213         * tree.h (div_if_zero_remainder): Declare.
6214         * fold-const.c (div_if_zero_remainder): Export.
6215         * tree-ssa-forwprop.c
6216         (forward_propagate_addr_into_variable_array_index): Handle
6217         constant array index addition outside of the variable index.
6218
6219 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6220
6221         PR target/39592
6222         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
6223         define_splits, floatunssi<mode>2): Require x87 conversions from
6224         DImode to be permitted.
6225
6226 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6227
6228         PR preprocessor/15638
6229         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
6230
6231 2009-03-31  Richard Guenther  <rguenther@suse.de>
6232
6233         PR middle-end/23401
6234         PR middle-end/27810
6235         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
6236         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
6237         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
6238         a separate statement.
6239         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
6240         (lookup_tmp_var): Likewise.
6241         (is_gimple_formal_tmp_or_call_rhs): Remove.
6242         (is_gimple_reg_or_call_rhs): Rename to ...
6243         (is_gimple_reg_rhs_or_call): ... this.
6244         (is_gimple_mem_or_call_rhs): Rename to ...
6245         (is_gimple_mem_rhs_or_call): ... this.
6246         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
6247         DECL_GIMPLE_REG_P only if is_formal is true.
6248         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
6249         for non-proper post-modify expression gimplification.
6250         (gimplify_self_mod_expr): For post-modify expressions gimplify
6251         the lvalue to a minimal lvalue.
6252         (rhs_predicate_for): Remove formal temp case.
6253         (gimplify_modify_expr_rhs): Likewise.
6254         (gimplify_addr_expr): Use is_gimple_reg.
6255         (gimplify_expr): Remove formal temp cases.
6256         (gimple_regimplify_operands): Likewise.
6257         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
6258         and FILTER_EXPR like constants.
6259         * gimple.c (walk_gimple_op): Fix val_only initialization, use
6260         is_gimple_reg.
6261         (is_gimple_formal_tmp_rhs): Remove.
6262         (is_gimple_reg_rhs): Remove special casing.
6263         (is_gimple_mem_rhs): Fix.
6264         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
6265         (is_gimple_formal_tmp_var): Remove.
6266         (is_gimple_formal_tmp_reg): Likewise.
6267         (is_gimple_min_lval): Allow invariant component ref parts.
6268         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
6269         is_gimple_formal_tmp_reg): Remove declarations.
6270         * tree-cfg.c (verify_expr): Verify that variables with address
6271         taken do not have DECL_GIMPLE_REG_P set.
6272         * tree-mudflap.c (mf_build_check_statement_for): Use
6273         force_gimple_operand instead of gimplify_expr.
6274
6275 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
6276
6277         * modulo-sched.c (sms_schedule_by_order): Pass the actual
6278         schedulable rows to compute_split_row.
6279
6280 2009-03-31  Ben Elliston  <bje@au.ibm.com>
6281
6282         PR target/31635
6283         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
6284         OPT_mvrsave.
6285
6286 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6287
6288         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
6289         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
6290         * configure: Regenerate.
6291         * config.in: Regenerate.
6292         * config/rs6000/rs6000.opt (mtls-markers): Add.
6293         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
6294         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
6295         (tls_ld_aix, tls_ld_sysv): Likewise.
6296         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
6297         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
6298
6299 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6300
6301         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
6302
6303 2009-03-30  Jan Hubicka  <jh@suse.cz>
6304
6305         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
6306         out of RESX.
6307         (tree_remove_unreachable_handlers): Cleanup EH predecestor
6308         detection and label handling.
6309
6310 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6311
6312         * ira-int.h (ira_allocno): Rename left_conflicts_num to
6313         left_conflicts_size.
6314         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
6315         ALLOCNO_LEFT_CONFLICTS_SIZE.
6316
6317         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
6318         remove_allocno_from_bucket_and_push,
6319         allocno_spill_priority_compare, push_allocnos_to_stack,
6320         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6321         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
6322         (setup_allocno_left_conflicts_num): Ditto.  Rename to
6323         setup_allocno_left_conflicts_size.
6324         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6325         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
6326         setup_allocno_left_conflicts_size instead of
6327         setup_allocno_left_conflicts_num.
6328
6329         * ira-build.c (ira_create_allocno): Use
6330         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
6331         ALLOCNO_LEFT_CONFLICTS_NUM.
6332
6333 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6334
6335         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6336         instead of DF_LR_OUT.
6337
6338         * ira-lives.c (process_bb_node_lives): Ditto.
6339
6340         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6341         instead of DF_LR_{OUT,IN}.
6342
6343         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6344
6345         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6346
6347 2009-03-30  Jan Hubicka  <jh@suse.cz>
6348
6349         * except.c (label_to_region_map): Fix thinko.
6350
6351 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
6352
6353         PR middle-end/38237
6354         * tree.h (tree_find_value): New declaration.
6355         * tree.c (tree_find_value): New function.
6356         * varasm.c (assemble_external): Avoid duplicate entries on lists.
6357
6358 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
6359
6360         PR debug/39563
6361         * c-decl.c (struct c_binding): Add locus field.
6362         (bind): Add locus argument, set locus field from it.
6363         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6364         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6365         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6366         implicitly_declare, undeclared_variable, lookup_label,
6367         declare_label, c_make_fname_decl, c_builtin_function,
6368         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6369         bind callers.
6370
6371 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6372
6373         PR target/38781
6374         * config/i386/i386.c (classify_argument): Check total size of
6375         structure.
6376
6377 2009-03-30  Martin Jambor  <mjambor@suse.cz>
6378
6379         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6380         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6381         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6382         respectively.
6383
6384         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6385         seen_variable_array_ref while also traversing a union.
6386
6387         * tree-inline.c (optimize_inline_calls): Do not call
6388         cgraph_node_remove_callees.
6389         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6390         (pass_remove_cgraph_callee_edges): New variable.
6391         * passes.c (init_optimization_passes): Add
6392         pass_remove_cgraph_callee_edges after early inlining and before all
6393         late intraprocedural passes.
6394
6395         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6396
6397 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6398
6399         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6400         Fix typos in names.
6401
6402 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6403
6404         * combine.c (simplify_comparison): Use have_insn_for.
6405         * dojump.c (do_jump): Likewise.
6406
6407 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6408
6409         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6410         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6411         sparc_compare_op0 like sparc_compare_emitted used to be handled.
6412         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6413         instead of sparc_compare_emitted.
6414         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6415         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6416         instead of sparc_compare_emitted.
6417
6418 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6419
6420         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6421         enter/exit cfglayout mode.
6422         (pass_partition_block): Require it.
6423         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6424         (combine_instructions): Track basic blocks instead of labels.
6425         (update_cfg_for_uncondjump): New.
6426         (try_combine): Use it.  Update jumps after rescanning.
6427         (pass_combine): Require PROP_cfglayout.
6428         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6429
6430 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6431
6432         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6433         Provide/destroy PROP_cfglayout respectively.
6434         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6435         * tree-pass.h (PROP_cfglayout): New.
6436
6437 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6438
6439         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6440         fold_convert_const_fixed_from_fixed,
6441         fold_convert_const_fixed_from_int,
6442         fold_convert_const_fixed_from_real, fold_negate_const): Do not
6443         set TREE_CONSTANT_OVERFLOW.
6444         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6445         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6446
6447 2009-03-30  Ira Rosen  <irar@il.ibm.com>
6448
6449         * tree-vect-loop-manip.c: New file.
6450         * tree-vectorizer.c: Update documentation and included files.
6451         (vect_loop_location): Make extern.
6452         (rename_use_op): Move to tree-vect-loop-manip.c
6453         (rename_variables_in_bb, rename_variables_in_loop,
6454         slpeel_update_phis_for_duplicate_loop,
6455         slpeel_update_phi_nodes_for_guard1,
6456         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6457         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6458         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
6459         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
6460         find_loop_location): Likewise.
6461         (new_stmt_vec_info): Move to tree-vect-stmts.c.
6462         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6463         get_vectype_for_scalar_type, vect_is_simple_use,
6464         supportable_widening_operation, supportable_narrowing_operation):
6465         Likewise.
6466         (bb_in_loop_p): Move to tree-vect-loop.c.
6467         (new_loop_vec_info, destroy_loop_vec_info,
6468         reduction_code_for_scalar_code, report_vect_op,
6469         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6470         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6471         (vect_supportable_dr_alignment): Likewise.
6472         * tree-vectorizer.h (tree-data-ref.h): Include.
6473         (vect_loop_location): Declare.
6474         Reorganize function declarations according to the new file structure.
6475         * tree-vect-loop.c: New file.
6476         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
6477         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6478         * tree-vect-data-refs.c: New file.
6479         * tree-vect-patterns.c (timevar.h): Don't include.
6480         * tree-vect-stmts.c: New file.
6481         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
6482         tree-vect-slp.c, tree-vect-loop.c.
6483         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6484         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
6485         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6486         (tree-vect-analyze.o): Remove.
6487         (tree-vect-transform.o): Likewise.
6488         (tree-vect-data-refs.o): Add rule.
6489         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
6490         tree-vect-slp.o): Likewise.
6491         (tree-vect-patterns.o): Remove redundant dependencies.
6492         (tree-vectorizer.o): Likewise.
6493         * tree-vect-slp.c: New file.
6494
6495 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6496
6497         * optc-gen.awk: Warn if an option flag has multiple different
6498         help strings.
6499
6500 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6501
6502         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6503         -floop-block): Document dependences on PPL, CLooG and Graphite.
6504
6505 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6506
6507         PR rtl-optimization/323
6508         * c-common.c (c_fully_fold, convert_and_check,
6509         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6510         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6511         * c-common.def (EXCESS_PRECISION_EXPR): New.
6512         * c-cppbuiltin.c (builtin_define_float_constants): Define
6513         constants with enough digits for long double.
6514         * c-lex.c (interpret_float): Interpret constant with excess
6515         precision where appropriate.
6516         * c-opts.c (c_common_post_options): Set
6517         flag_excess_precision_cmdline.  Give an error for
6518         -fexcess-precision=standard for C++ for processors where the
6519         option is significant.
6520         * c-parser.c (c_parser_conditional_expression): Handle excess
6521         precision in condition.
6522         * c-typeck.c (convert_arguments): Handle arguments with excess
6523         precision.
6524         (build_unary_op): Move excess precision outside operation.
6525         (build_conditional_expr): Likewise.
6526         (build_compound_expr): Likewise.
6527         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6528         (build_modify_expr): Handle excess precision in RHS.
6529         (convert_for_assignment): Handle excess precision in converted
6530         value.
6531         (digest_init, output_init_element, process_init_element): Handle
6532         excess precision in initializer.
6533         (c_finish_return): Handle excess precision in return value.
6534         (build_binary_op): Handle excess precision in operands and add
6535         excess precision as needed for operation.
6536         * common.opt (-fexcess-precision=): New option.
6537         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6538         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6539         For standard excess precision, output explicit conversion to and
6540         truncation from XFmode.
6541         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6542         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6543         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6544         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6545         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6546         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6547         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6548         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6549         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6550         define_splits, sqrt<mode>2): Disable where appropriate for
6551         standard excess precision.
6552         * convert.c (convert_to_real): Do not shorten arithmetic to type
6553         for which excess precision would be used.
6554         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6555         * doc/invoke.texi (-fexcess-precision=): Document option.
6556         (-mfpmath=): Correct index entry.
6557         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6558         flag_excess_precision): New.
6559         * langhooks.c (lhd_post_options): Set
6560         flag_excess_precision_cmdline.
6561         * opts.c (common_handle_option): Handle -fexcess-precision=.
6562         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6563         init_excess_precision): New.
6564         (lang_dependent_init_target): Call init_excess_precision.
6565         * tree.c (excess_precision_type): New.
6566         * tree.h (excess_precision_type): Declare.
6567
6568 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6569
6570         PR c/35235
6571         * c-typeck.c (build_component_ref): Do not copy qualifiers from
6572         non-lvalue to component.
6573
6574 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6575
6576         PR preprocessor/34695
6577         * Makefile.in (c-opts.o): Depend on c-tree.h.
6578         * c-common.c: Move down include of diagnostic.h.
6579         (done_lexing, c_cpp_error): New.
6580         * c-common.h (done_lexing): Declare.
6581         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6582         (parse_in).
6583         * c-opts.c: Include c-tree.h.
6584         (c_common_init_options): Set preprocessor error callback.
6585         (c_common_handle_option): Do not set preprocessor
6586         inhibit_warnings, warnings_are_errors, warn_system_headers,
6587         pedantic_errors or inhibit_warnings flags.
6588         (c_common_post_options): Do not check cpp_errors (parse_in).
6589         (c_common_finish): Do not output dependencies if there were
6590         errors.  Do not check return value of cpp_finish.
6591         * c-ppoutput.c (pp_file_change): Set input_location.
6592         * c-tree.h (c_cpp_error): Declare.
6593         * diagnostic.c (diagnostic_set_info_translated): Also initialize
6594         override_column.
6595         (diagnostic_build_prefix): Check override_column.
6596         * diagnostic.h (diagnostic_info): Add override_column field.
6597         (diagnostic_override_column): Define.
6598
6599 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
6600
6601         * c-common.c (c_expand_expr, c_staticp): Remove.
6602         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6603         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6604         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6605         * c-gimplify.c (gimplify_compound_literal_expr,
6606         optimize_compound_literals_in_ctor): Remove.
6607         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6608         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6609         * c-semantics.c (emit_local_var): Remove.
6610
6611         * langhooks-def.h (lhd_expand_expr): Remove.
6612         * langhooks.c (lhd_expand_expr): Remove.
6613         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6614
6615         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6616         handling from c-semantics.c; don't call into langhook.
6617         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6618         * gimplify.c (gimplify_compound_literal_expr,
6619         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6620         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6621         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6622         as was done in c-gimplify.c.
6623         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6624         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6625         Move from c-common.h.
6626         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
6627
6628         * tree.c (staticp): Do not call langhook.
6629         * langhooks.c (lhd_staticp): Delete.
6630         * langhooks-def.h (lhd_staticp): Delete prototype.
6631         (LANG_HOOKS_STATICP): Delete.
6632         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6633
6634         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6635         instead of DECL_STMTs.
6636
6637 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6638
6639         PR c/456
6640         PR c/5675
6641         PR c/19976
6642         PR c/29116
6643         PR c/31871
6644         PR c/35198
6645         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6646         void_type_node.
6647         (fold_call_expr): Return a NOP_EXPR from folding rather than the
6648         contained expression.
6649         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
6650         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
6651         conditional expressions for C.
6652         (decl_constant_value_for_optimization): Move from
6653         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
6654         whether optimizing and that the expression is a VAR_DECL not of
6655         array type instead of doing such checks in the caller.  Do not
6656         check pedantic.  Call gcc_unreachable for C++.
6657         * c-common.def (C_MAYBE_CONST_EXPR): New.
6658         * c-common.h (c_fully_fold, c_save_expr,
6659         decl_constant_value_for_optimization): New prototypes.
6660         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6661         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6662         EXPR_INT_CONST_OPERANDS): Define.
6663         * c-convert.c (convert): Strip nops from expression.
6664         * c-decl.c (groktypename): Take extra parameters expr and
6665         expr_const_operands.  Update call to grokdeclarator.
6666         (start_decl): Update call to grokdeclarator.  Add statement for
6667         expressions used in type of decl.
6668         (grokparm): Update call to grokdeclarator.
6669         (push_parm_decl): Update call to grokdeclarator.
6670         (build_compound_literal): Add parameter non_const and build a
6671         C_MAYBE_COSNT_EXPR if applicable.
6672         (grokdeclarator): Take extra parameters expr and
6673         expr_const_operands.  Track expressions used in declaration
6674         specifiers and declarators.  Fold array sizes and track whether
6675         they are constant expressions and whether they are integer
6676         constant expressions.
6677         (parser_xref_tag): Set expr and expr_const_operands fields in
6678         return value.
6679         (grokfield): Update call to grokdeclarator.
6680         (start_function): Update call to grokdeclarator.
6681         (build_null_declspecs): Set expr and expr_const_operands fields in
6682         return value.
6683         (declspecs_add_type): Handle expressions in typeof specifiers.
6684         * c-parser.c (c_parser_declspecs): Set expr and
6685         expr_const_operands fields for declaration specifiers.
6686         (c_parser_enum_specifier): Likewise.
6687         (c_parser_struct_or_union_specifier): Likewise.
6688         (c_parser_typeof_specifier): Likewise.  Update call to
6689         groktypename.  Fold expression as needed.  Return expressions with
6690         type instead of adding statements.
6691         (c_parser_attributes): Update calls to c_parser_expr_list.
6692         (c_parser_statement_after_labels): Fold expression before passing
6693         to objc_build_throw_stmt.
6694         (c_parser_condition): Fold expression.
6695         (c_parser_asm_operands): Fold expression.
6696         (c_parser_conditional_expression): Use c_save_expr.  Update call
6697         to build_conditional_expr.
6698         (c_parser_alignof_expression): Update call to groktypename.
6699         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6700         original_code.  Fold expression argument of va_arg.  Create
6701         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6702         argument to va_arg.  Update calls to groktypename.  Fold array
6703         index for offsetof.  Verify that first argument to
6704         __builtin_choose_expr has integer type.
6705         (c_parser_postfix_expression_after_paren_type): Update calls to
6706         groktypename and build_compound_literal.  Handle expressions with
6707         side effects in type name.
6708         (c_parser_postfix_expression_after_primary): Update call to
6709         c_parser_expr_list.  Set original_code for calls to
6710         __builtin_constant_p.
6711         (c_parser_expr_list): Take extra parameter fold_p.  Fold
6712         expressions if requested.
6713         (c_parser_objc_type_name): Update call to groktypename.
6714         (c_parser_objc_synchronized_statement): Fold expression.
6715         (c_parser_objc_receiver): Fold expression.
6716         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6717         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6718         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6719         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6720         (struct c_typespec): Add elements expr and expr_const_operands.
6721         (struct c_declspecs): Add elements expr and expr_const_operands.
6722         (groktypename, build_conditional_expr, build_compound_literal):
6723         Update prototypes.
6724         (in_late_binary_op): Declare.
6725         * c-typeck.c (note_integer_operands): New function.
6726         (in_late_binary_op): New variable.
6727         (decl_constant_value_for_broken_optimization): Move to c-common.c
6728         and rename to decl_constant_value_for_optimization.
6729         (default_function_array_conversion): Do not strip nops.
6730         (default_conversion): Do not call
6731         decl_constant_value_for_broken_optimization.
6732         (build_array_ref): Do not fold result.
6733         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
6734         result when operand is a VLA.
6735         (c_expr_sizeof_type): Update call to groktypename.  Handle
6736         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
6737         result when operand names a VLA type.
6738         (build_function_call): Update call to build_compound_literal.
6739         Only fold result for calls to __builtin_* functions.  Strip
6740         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
6741         the function designator.
6742         (convert_arguments): Fold arguments.  Update call to
6743         convert_for_assignment.
6744         (build_unary_op): Handle increment and decrement of
6745         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
6746         decrement earlier.  Fold operand of increment and decrement.
6747         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
6748         built for integer operand.  Wrap returns that are INTEGER_CSTs
6749         without being integer constant expressions or that have integer
6750         constant operands without being INTEGER_CSTs.
6751         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6752         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
6753         result is an integer constant expression or can be used in
6754         unevaluated parts of one and avoid folding and wrap as
6755         appropriate.  Fold operands before possibly doing -Wsign-compare
6756         warnings.
6757         (build_compound_expr): Wrap result for C99 if operands can be used
6758         in integer constant expressions.
6759         (build_c_cast): Update call to digest_init.  Do not ignore
6760         overflow from casting floating-point constants to integers.  Wrap
6761         results that could be confused with integer constant expressions,
6762         null pointer constants or floating-point constants.
6763         (c_cast_expr): Update call to groktypename.  Handle expressions
6764         included in type name.
6765         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
6766         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
6767         Update calls to convert_for_assignment.
6768         (convert_for_assignment): Take new parameter
6769         null_pointer_constant.  Do not strip nops or call
6770         decl_constant_value_for_broken_optimization.  Set
6771         in_late_binary_op for conversions to boolean.
6772         (store_init_value): Update call to digest_init.
6773         (digest_init): Take new parameter null_pointer_constant.  Do not
6774         call decl_constant_value_for_broken_optimization.  pedwarn for
6775         initializers not constant expressions.  Update calls to
6776         convert_for_assignment.
6777         (constructor_nonconst): New.
6778         (struct constructor_stack): Add nonconst element.
6779         (really_start_incremental_init, push_init_level, pop_init_level):
6780         Handle constructor_nonconst and nonconst element.
6781         (set_init_index): Call constant_expression_warning for array
6782         designators.
6783         (output_init_element): Fold value.  Set constructor_nonconst as
6784         applicable.  pedwarn for initializers not constant expressions.
6785         Update call to digest_init.  Call constant_expression_warning
6786         where constant initializers are required.
6787         (process_init_element): Use c_save_expr.
6788         (c_finish_goto_ptr): Fold expression.
6789         (c_finish_return): Fold return value.  Update call to
6790         convert_for_assignment.
6791         (c_start_case): Fold switch expression.
6792         (c_process_expr_stmt): Fold expression.
6793         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
6794         ensure statement expression is not evaluated in constant expression.
6795         (build_binary_op): Track whether results are integer constant
6796         expressions or may occur in such, disable folding and wrap results
6797         as applicable.  Fold operands for -Wsign-compare warnings unless
6798         in_late_binary_op.
6799         (c_objc_common_truthvalue_conversion): Handle results folded to
6800         integer constants that are not integer constant expressions.
6801         * doc/extend.texi: Document when typeof operands are evaluated,
6802         that condition of __builtin_choose_expr is an integer constant
6803         expression, and more about use of __builtin_constant_p in
6804         initializers.
6805
6806 2009-03-29  Richard Guenther  <rguenther@suse.de>
6807
6808         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6809         propagate addresses of array references.
6810
6811 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
6812
6813         * regmove.c (perhaps_ends_bb_p): Remove.
6814         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
6815         from INSN and check that the main loop stays within that basic block.
6816         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6817         (regmove_forward_pass): Split out from regmove_optimize.  Use
6818         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6819         (regmove_backward_pass): Split out from regmove_optimize.  Use
6820         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6821         (regmove_optimize): Simplify.
6822
6823 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6824
6825         PR target/39545
6826         * config/i386/i386.c (classify_argument): Ignore flexible array
6827         member in struct and warn ABI change.
6828
6829 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6830
6831         * config/i386/i386-protos.h (ix86_agi_dependent): New.
6832
6833         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6834         (ix86_adjust_cost): Updated.
6835
6836 2009-03-29  Jan Hubicka  <jh@suse.cz>
6837
6838         PR middle-end/28850
6839         * tree-pass.h (pass_cleanup_eh): New function.
6840         (remove_unreachable_regions): Break code handling RTL
6841         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6842         that can not be reached by runtime.
6843         (can_be_reached_by_runtime): New function.
6844         (label_to_region_map): New function.
6845         (num_eh_regions): New function.
6846         (rtl_remove_unreachable_regions): New function.
6847         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6848         (remove_eh_region): New function.
6849         * except.h: Include sbitmap and vecprim.
6850         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6851         num_eh_regions): Declare.
6852         * passes.c (init_optimization_passes): Schedule cleanup_eh.
6853         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
6854         * tree-eh.c (tree_remove_unreachable_handlers): New function.
6855         (tree_empty_eh_handler_p): New function.
6856         (cleanup_empty_eh): New function.
6857         (cleanup_eh): New function.
6858         (pass_cleanup_eh): New function.
6859
6860 2009-03-29  Jan Hubicka  <jh@suse.cz>
6861
6862         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6863         for removed regions.
6864
6865 2009-03-29  Jan Hubicka  <jh@suse.cz>
6866
6867         * except.c (dump_eh_tree): Dump all datastructures.
6868
6869 2009-03-29  Jan Hubicka  <jh@suse.cz>
6870
6871         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6872         (duplicate_eh_regions_1): Likewise.
6873         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6874         vector; call EH verification.
6875         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6876         Be ready for region being removed.
6877
6878 2009-03-29  Jan Hubicka  <jh@suse.cz>
6879
6880         * bitmap.c (bitmap_last_set_bit): New function.
6881         * bitmap.h (bitmap_last_set_bit): Declare.
6882
6883 2009-03-29  David Ayers  <ayers@fsfe.org>
6884
6885         PR objc/27377
6886         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6887         by calling objc_compare_types and surpress warnings about
6888         incompatible C pointers that are compatible ObjC pointers.
6889
6890 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
6891
6892         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6893         call initialize_inline_failed.
6894         (initialize_inline_failed): Move it from here ...
6895         * cgraph.c (initialize_inline_failed): ... to here.
6896         (cgraph_create_edge): Call initialize_inline_failed rather than
6897         setting inline_failed directly.
6898
6899 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6900
6901         PR target/32542
6902         * sysv4.opt (msdata): Improve comment.
6903         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6904         * sysv4.h (SVR4_ASM_SPEC): Likewise.
6905
6906 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6907
6908         PR target/30451
6909         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6910         load and store attributes.
6911
6912 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6913
6914         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6915         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6916         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6917         * doc/extend.texi (X86 Built-in Functions): Add index entries for
6918         __builtin_infq and __builtin_huge_valq.
6919
6920 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
6921
6922         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6923         atmega8m1 devices.
6924         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6925         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6926
6927 2009-03-28  Xinliang David Li  <davidxl@google.com>
6928
6929         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
6930         (do_dbg_cnt): New function.
6931
6932 2009-03-28  Jan Hubicka  <jh@suse.cz>
6933
6934         Merge from pretty-ipa:
6935
6936         2009-03-27  Jan Hubicka  <jh@suse.cz>
6937
6938         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6939         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6940         * passes.c (function_called_by_processed_nodes_p): New.
6941         * ipa-pure-const.c (check_call): Fix handling of operands.
6942         (analyze_function): Dump debug output for skipped bodies.
6943         (local_pure_const): Use function_called_by_processed_nodes_p.
6944         * dwarf2out.c (reference_to_unused): Use output.
6945         * passes.c (do_per_function_toporder): Likewise.
6946
6947         2008-11-12  Jan Hubicka  <jh@suse.cz>
6948
6949         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6950         * ipa-pure-const.c (funct_state_d): Add can throw field; make
6951         state_set_in_source enum
6952         (check_decl): Ignore memory tags; do not set fake looping flags;
6953         dump diagnostics.
6954         (check_operand, check_tree, check_rhs_var, check_lhs_var,
6955         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6956         (check_call, analyze_function): Rewrite.
6957         (check_stmt): New.
6958         (add_new_function): Update call of analyze_function.
6959         (generate_summary): Add call of analyze_function.
6960         (propagate): Propagate can_throw; handle state_set_in_source correctly.
6961         (local_pure_const): New function.
6962         (pass_local_pure_const): New pass.
6963         * ipa-inline.c (inline_transform): Set after_inlining.
6964         * tree-eh.c (stmt_can_throw_external): New.
6965         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6966         work with aliasing built.
6967         * tree-flow.h (stmt_can_throw_external): New.
6968         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6969         and local pure/const pass in early and late optimization queue.
6970
6971 2009-03-28  Martin Jambor  <mjambor@suse.cz>
6972
6973         * fold-const.c (get_pointer_modulus_and_residue): New parameter
6974         allow_func_align.
6975         (fold_binary): Allow function decl aligment consideration is the
6976         second argument is integer constant one.
6977         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6978         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6979         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6980
6981 2009-03-28  Jan Hubicka  <jh@suse.cz>
6982
6983         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6984         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6985         * function.h (rtl_data): Add nothrow flag.
6986         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6987         set DECL_NOTHROW for AVAILABLE functions.
6988
6989 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
6990
6991         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6992         following vector keyword has expansion starting with pixel or bool
6993         keyword, expand vector to __vector and pixel or bool to __pixel or
6994         __bool.
6995
6996         PR c++/39554
6997         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6998         warn_if_disallowed_function_p): Removed.
6999         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7000         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7001         warning_if_disallowed_function_p.
7002         * flags.h (warn_if_disallowed_function_p,
7003         warn_disallowed_functions): Removed.
7004         * common.opt (Wdisallowed-function-list=): Removed.
7005         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7006
7007 2009-03-28  Richard Guenther  <rguenther@suse.de>
7008
7009         PR tree-optimization/38723
7010         * tree-ssa-pre.c (compute_avail): Add all default definitions to
7011         the entry block.
7012
7013 2009-03-28  Jan Hubicka  <jh@suse.cz>
7014
7015         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7016         test introduced by my previous patch.
7017
7018 2009-03-28  Richard Guenther  <rguenther@suse.de>
7019
7020         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7021         the PHIs value undefined.
7022
7023 2009-03-28  Jan Hubicka  <jh@suse.cz>
7024
7025         * tree-pass.h (pass_fixup_cfg): New pass.
7026         * ipa-inline.c (inline_transform): Set
7027         always_inline_functions_inlined/after_inlining.
7028         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7029         (pass_fixup_cfg): New pass.
7030         * passes.c (init_optimization_passes): Add fixup_cfg.
7031
7032 2009-03-28  Richard Guenther  <rguenther@suse.de>
7033
7034         PR tree-optimization/38458
7035         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7036         argument use the arguments copy-of value.
7037
7038 2009-03-28  Richard Guenther  <rguenther@suse.de>
7039
7040         PR tree-optimization/38180
7041         * tree-ssa-ccp.c (get_default_value): Simplify.
7042         (likely_value): Likewise.
7043         (surely_varying_stmt_p): Properly handle VOP case.
7044         (ccp_initialize): Likewise.
7045         (ccp_fold): Handle propagating through *&.
7046         (fold_const_aggregate_ref): Also handle decls.
7047
7048 2009-03-28  Jan Hubicka  <jh@suse.cz>
7049
7050         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7051         * cgraph.h (cgraph_node): Likewise.
7052         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7053         (cgraph_reset_node): Use process flag.
7054         (cgraph_mark_functions_to_output): Likewise.
7055         (cgraph_expand_function): Likewise.
7056         (cgraph_expand_all_functions): Likewise.
7057         (cgraph_output_in_order): Likewise.
7058         * dwarf2out.c (reference_to_unused): Likewise.
7059         * passes.c do_per_function_toporder): Likewise.
7060
7061 2009-03-28  Jan Hubicka  <jh@suse.cz>
7062
7063         Bring from lto-branch:
7064
7065         2008-09-03  Doug Kwan  <dougkwan@google.com>
7066
7067         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7068         enums instead of reason strings.
7069         * cgraph.c (cgraph_create_edge): Same.
7070         (cgraph_inline_failed_string): New function.
7071         * cgraph.h (cgraph_inline_failed_t): New enum type.
7072         (cgraph_inline_failed_string): New prototype.
7073         (struct cgraph_edge): Change type of INLINED_FAILED from constant
7074         char pointer to cgraph_inline_failed_t.
7075         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7076         (cgraph_default_inline_p): Ditto.
7077         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
7078         to cgraph_inline_failed_t pointer.
7079         * cif-code.def: New file.
7080         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7081         reason string.
7082         (cgraph_check_inline_limits): Change type of REASON to pointer to
7083         cgraph_inline_failed_t.  Replace reason strings with enums.
7084         (cgraph_default_inline_p): Ditto.
7085         (cgraph_recursive_inlining_p): Ditto.
7086         (update_caller_keys): Change type of FAILED_REASON to
7087         cgraph_inline_failed_t.
7088         (cgraph_set_inline_failed): Change type of REASON to pointer to
7089         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
7090         convert enums to strings for text output.
7091         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7092         to be of type cgraph_inline_failed_t.  Replace reason strings with
7093         enums.  Call cgraph_inline_failed_string to covert enums
7094         to strings for text output.
7095         (cgraph_decide_inlining): Replace reason strings with enums.
7096         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7097         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
7098         for text output.
7099         * tree-inline.c (expand_call_inline): Change type of REASON
7100         to cgraph_inline_failed_t.  Replace reason strings with enums.
7101         Call cgraph_inline_failed_string for text output.
7102         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7103         (cgraph.o): Ditto.
7104
7105 2009-03-28  Jan Hubicka  <jh@suse.cz>
7106
7107         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7108         cgraph_clone_node): Remove master clone handling.
7109         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7110         * cgraph.h (master_clone): Remove.
7111         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7112         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7113         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7114
7115 2009-03-28  Jan Hubicka  <jh@suse.cz>
7116
7117         * cgraph.c (cgraph_function_body_availability): Functions declared
7118         inline are always safe to assume that it is not going to be replaced.
7119
7120 2009-03-28  Richard Guenther  <rguenther@suse.de>
7121
7122         PR tree-optimization/38513
7123         * tree-ssa-pre.c (eliminate): Remove redundant stores.
7124         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7125         EXC_PTR_EXPR and FILTER_EXPR.
7126         (get_ref_from_reference_ops): Likewise.
7127
7128 2009-03-28  Richard Guenther  <rguenther@suse.de>
7129
7130         PR tree-optimization/38968
7131         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7132         Use FLOOR_MOD_EXPR to compute misalignment.
7133
7134 2009-03-28  Richard Guenther  <rguenther@suse.de>
7135
7136         PR tree-optimization/37795
7137         * tree.h (combine_comparisons): Declare.
7138         * fold-const.c (combine_comparisons): Export.
7139         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7140         comparisons.
7141         (ifcombine_iforif): Use combine_comparisons.
7142
7143 2009-03-28  Jan Hubicka  <jh@suse.cz>
7144
7145         * tree-eh.c (inlinable_call_p): New function.
7146         (make_eh_edges): Use it.
7147         (verify_eh_edges): Use it.
7148         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7149         * except.c (reachable_next_level): Add inlinable_function argument
7150         (sjlj_find_directly_reachable_regions): Update.
7151         (add_reachable_handler): Do not set saw_any_handlers.
7152         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7153         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7154         Add new inlinable call parameter.
7155         (can_throw_internal, can_throw_external): Update.
7156         * except.h (can_throw_internal_1, can_throw_external_1,
7157         foreach_reachable_handler): Update declaration.
7158
7159 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
7160
7161         * config/arm/t-arm-coff, config/h8300/coff.h,
7162         config/i386/i386-aout.h, config/i386/i386-coff.h,
7163         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
7164         config/pdp11/2bsd.h, config/rs6000/aix41.h,
7165         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
7166         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
7167         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
7168         sys-types.h: Remove.
7169         * Makefile.in: Remove protoize and fixproto support and references
7170         in comments.
7171         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
7172         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
7173         Remove.
7174         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
7175         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
7176         unprotoize$(exeext).
7177         (rest.encap): Don't depend on $(STMP_FIXPROTO)
7178         (.PHONY): Don't depend on proto.
7179         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
7180         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
7181         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
7182         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
7183         build/gen-protos.o, build/scan.o, xsys-protos.h,
7184         build/fix-header$(build_exeext), build/fix-header.o,
7185         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
7186         stmp-install-fixproto): Remove.
7187         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
7188         SYSCALLS.c or fixproto files.
7189         (install-common): Don't install protoize.
7190         (install-headers-tar, install-headers-cpio, install-headers-cp):
7191         Don't depend on $(STMP_FIXPROTO).
7192         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
7193         install fixproto files or write out fixproto settings.
7194         (uninstall): Don't uninstall protoize.
7195         * config.gcc (use_fixproto): Remove.
7196         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
7197         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
7198         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
7199         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
7200         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
7201         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
7202         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
7203         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
7204         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
7205         * config/t-vxworks (STMP_FIXPROTO): Remove.
7206         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
7207         STMP_FIXPROTO): Remove.
7208         * config.in, configure: Regenerate.
7209         * crtstuff.c (gid_t, uid_t): Don't undefine.
7210         * doc/install.texi: Change m68k-coff to m68k-elf in example.
7211         (arm-*-coff, arm-*-aout: Remove target entries.
7212         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
7213         Remove mention of AIX 4.1.
7214         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
7215         * doc/invoke.texi (Running Protoize): Remove.
7216         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
7217         (Protoize Caveats): Remove.
7218         * tsystem.h: Update comments on headers assumed to exist.
7219
7220 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
7221
7222         * genautomata.c: Add a new year to the copyright.  Add a new
7223         reference.
7224         (struct insn_reserv_decl): Add comments for member bypass_list.
7225         (find_bypass): Remove.
7226         (insert_bypass): New.
7227         (process_decls): Use insert_bypass.
7228         (output_internal_insn_latency_func): Output all bypasses with the
7229         same input insn in one switch case.
7230
7231         * rtl.def (define_bypass): Describe bypass choice.
7232         * doc/md.texi (define_bypass): Ditto.
7233
7234 2009-03-27  Richard Guenther  <rguenther@suse.de>
7235
7236         * gimplify.c (mark_addressable): Export.
7237         * tree-flow.h (mark_addressable): Declare.
7238         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
7239         * tree-ssa.c (verify_phi_args): Verify that address taken
7240         variables have TREE_ADDRESSABLE set.
7241
7242 2009-03-27  Richard Guenther  <rguenther@suse.de>
7243
7244         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
7245         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
7246         Do not mark decls TREE_ADDRESSABLE.
7247         (build_fold_addr_expr): Adjust.
7248         (fold_addr_expr): Remove.
7249         (fold_unary): Use build_fold_addr_expr.
7250         (fold_comparison): Likewise.
7251         (split_address_to_core_and_offset): Likewise.
7252         * coverage.c (tree_coverage_counter_addr): Mark the array decl
7253         TREE_ADDRESSABLE.
7254         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
7255         (gimplify_modify_expr_to_memcpy): Mark source and destination
7256         addressable.
7257         * omp-low.c (create_omp_child_function): Mark the object decl
7258         TREE_ADDRESSABLE.
7259         (lower_rec_input_clauses): Mark the var we take the address of
7260         TREE_ADDRESSABLE.
7261         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
7262
7263 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7264
7265         PR middle-end/39315
7266         * cfgexpand.c (expand_one_stack_var_at): Change alignment
7267         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
7268
7269 2009-03-27  Richard Guenther  <rguenther@suse.de>
7270
7271         PR tree-optimization/39120
7272         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
7273         constraints.
7274         (handle_lhs_call): Process return constraints.  Add escape
7275         constraints if necessary.
7276         (handle_const_call): Fill out return constraints.  Make nested
7277         case more precise.  Avoid consttmp if possible.
7278         (handle_pure_call): Fill out return constraints.  Avoid
7279         callused if possible.
7280         (find_func_aliases): Simplify call handling.
7281
7282 2009-03-27  Richard Guenther  <rguenther@suse.de>
7283
7284         PR tree-optimization/39120
7285         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
7286         as a representative.
7287         (solve_graph): Do propagate CALLUSED.
7288         (handle_pure_call): Use a scalar constraint from CALLUSED for
7289         the return value.
7290         (find_what_p_points_to): CALLUSED shall not appear in poins-to
7291         solutions.
7292
7293 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7294
7295         PR c/39323
7296         * c-common.c (handle_aligned_attribute): Properly check alignment
7297         overflow.  Use (1U << i) instead of (1 << i).
7298
7299         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7300
7301         * expr.h (get_mem_align_offset): Updated.
7302
7303         * tree.h (tree_decl_common): Change align to "unsigned int" and
7304         move it before pointer_alias_set.
7305
7306 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7307             Jakub Jelinek  <jakub@redhat.com>
7308
7309         PR target/38034
7310         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
7311         gr_register_operand with gr_reg_or_0_operand.
7312         (cmpxchg_rel_di): Likewise.
7313         (sync_lock_test_and_set<mode>): Likewise.
7314
7315 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7316
7317         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
7318         (true_regnum): Likewise.
7319
7320         * rtlanal.c (subreg_info): Moved to ...
7321         * rtl.h (subreg_info): Here.  New.
7322         (subreg_get_info): New.
7323
7324         * rtlanal.c (subreg_get_info): Make it extern.
7325
7326 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7327
7328         PR target/39472
7329         * config/i386/i386.c (ix86_abi): New.
7330         (override_options): Handle -mabi=.
7331         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
7332         (ix86_call_abi_override): Likewise.
7333         (init_cumulative_args): Likewise.
7334         (function_arg_advance): Likewise.
7335         (function_arg_64): Likewise.
7336         (function_arg): Likewise.
7337         (ix86_pass_by_reference): Likewise.
7338         (ix86_function_value_regno_p): Likewise.
7339         (ix86_build_builtin_va_list_abi): Likewise.
7340         (setup_incoming_varargs_64): Likewise.
7341         (is_va_list_char_pointer): Likewise.
7342         (ix86_init_machine_status): Likewise.
7343         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
7344         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
7345         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
7346         (ix86_function_abi): Make it static and return enum calling_abi.
7347         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
7348         with ix86_abi.
7349         (ix86_fn_abi_va_list): Updated.
7350
7351         * config/i386/i386.h (ix86_abi): New.
7352         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
7353         (CONDITIONAL_REGISTER_USAGE): Likewise.
7354         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
7355         (machine_function): Likewise.
7356
7357         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
7358         with ix86_abi.
7359         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
7360         (STACK_BOUNDARY): Likewise.
7361         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7362
7363         * config/i386/i386.opt (mabi=): New.
7364
7365         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7366         return enum calling_abi.
7367         (ix86_function_type_abi): Likewise.
7368         (ix86_function_abi): Removed.
7369
7370         * doc/invoke.texi: Document -mabi= option for x86.
7371
7372 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7373
7374         * builtins.c (real_dconstp): Delete.
7375         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7376
7377 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
7378             Jakub Jelinek  <jakub@redhat.com>
7379
7380         PR debug/37959
7381         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7382         (gen_subprogram_die): When a function is explicit, generate the
7383         DW_AT_explicit attribute.
7384         * langhooks.h (struct lang_hooks_for_decls): Add
7385         function_decl_explicit_p langhook.
7386         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7387         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7388
7389 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
7390
7391         * builtins.c (fold_builtin_memory_op): Optimize memmove
7392         into memcpy if we can prove source and destination don't overlap.
7393
7394         * tree-inline.c: Include gt-tree-inline.h.
7395         (clone_fn_id_num): New variable.
7396         (clone_function_name): New function.
7397         (tree_function_versioning): Use it.
7398         * Makefile.in (GTFILES): Add tree-inline.c.
7399
7400 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
7401
7402         * BASE-VER: Change to 4.5.0.
7403
7404 2009-03-27  Xinliang David Li  <davidxl@google.com>
7405
7406         PR tree-optimization/39557
7407         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7408
7409 2009-03-27  Xinliang David Li  <davidxl@google.com>
7410
7411         PR tree-optimization/39548
7412         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
7413         candidate check.
7414
7415 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7416
7417         * c-common.c (pointer_int_sum): Use %wd on return from
7418         tree_low_cst.
7419
7420 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7421
7422         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7423         on return from tree_low_cst.
7424
7425 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7426
7427         PR c++/36799
7428         * ginclude/stdarg.h (va_copy): Define also for
7429         __GXX_EXPERIMENTAL_CXX0X__.
7430
7431 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7432
7433         PR c++/35652
7434         * builtins.h (c_strlen): Do not warn here.
7435         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7436         * c-common.c (pointer_int_sum): Take an explicit location.
7437         Warn about offsets out of bounds.
7438         * c-common.h (pointer_int_sum): Adjust declaration.
7439
7440 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7441
7442         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7443         markup glitch.
7444
7445 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
7446
7447         PR c++/39554
7448         * opts.c (warn_if_disallowed_function_p): Don't assume
7449         get_callee_fndecl must return non-NULL.
7450
7451 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7452
7453         PR rtl-optimization/39522
7454         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7455         when reg_reloaded_valid is set.
7456
7457 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7458
7459         * config/spu/divv2df3.c: New file.
7460         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7461         (DPBIT_FUNCS): Filter out _div_df.
7462
7463 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7464
7465         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7466         a jump insn, count that jump in the distance to the loop start.
7467
7468 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7469
7470         PR target/39523
7471         * config/sh/sh.c (calc_live_regs): Fix condition for global
7472         registers except PIC_OFFSET_TABLE_REGNUM.
7473
7474 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
7475
7476         PR/39518
7477         * doc/invoke.texi (-mconsole): New.
7478         (-mcygwin): New.
7479         (-mno-cygwin): New.
7480         (-mdll): New.
7481         (-mnop-fun-dllimport): New.
7482         (-mthread): New.
7483         (-mwin32): New.
7484         (-mwindows): New.
7485         (sub section "i386 and x86-64 Windows Options"): New.
7486
7487 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
7488
7489         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7490         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7491
7492 2009-03-25  Richard Guenther  <rguenther@suse.de>
7493
7494         PR middle-end/39497
7495         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7496         of -Wno-error.
7497
7498 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
7499
7500         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7501         neither of haifa/selective schedulers are working.
7502
7503 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7504
7505         * doc/invoke.texi (Debugging Options): Fix description of
7506         -fno-merge-debug-strings.
7507
7508 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
7509
7510         * config/cris/libgcc.ver: New version-script.
7511         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7512
7513         * configure.ac <GAS features, nop mnemonic>: Add pattern
7514         crisv32-*-* for "nop".
7515         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
7516         * configure: Regenerate.
7517
7518 2009-03-24  Ira Rosen  <irar@il.ibm.com>
7519
7520         PR tree-optimization/39529
7521         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7522         mark_sym_for_renaming for the tag copied to the new vector
7523         pointer.
7524
7525 2009-03-24  Arthur Loiret  <aloiret@debian.org>
7526
7527         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
7528         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7529         EXTRA_SPEC_FUNCTIONS.
7530         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7531         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7532         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7533         -march and -mtune options.
7534
7535 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
7536
7537         * config/m68k/t-rtems: Add m5329 multilib.
7538
7539 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
7540             Jakub Jelinek  <jakub@redhat.com>
7541
7542         PR debug/39524
7543         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7544         nodes.
7545
7546 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7547
7548         PR c/39495
7549         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7550         instead of c_parser_expression_conv, if original_code isn't one of the
7551         4 allowed comparison codes, fail.
7552
7553 2009-03-23  Richard Guenther  <rguenther@suse.de>
7554
7555         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7556         * tree.h (struct tree_type): Likewise.
7557         * reload.h (struct insn_chain): Likewise.
7558         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7559         * function.h (struct function): Likewise.
7560         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7561
7562 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7563
7564         PR tree-optimization/39516
7565         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7566
7567 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
7568
7569         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
7570         should be set true if BITS_PER_WORD of target is bigger than 32
7571
7572 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
7573
7574         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7575         Translate -B-options to -rpath-link.  Correct existing
7576         rpath-link and conditionalize on !nostdlib.
7577
7578 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7579
7580         * doc/extend.texi (Function Attributes, Variable Attributes):
7581         Fix typos.
7582         * doc/invoke.texi (Debugging Options, Optimize Options)
7583         (i386 and x86-64 Options, MCore Options): Likewise.
7584
7585 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
7586
7587         PR debug/37890
7588         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7589         it for block local namespace aliases.
7590         (gen_decl_die): Pass context_die to gen_namespace_die.
7591
7592 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7593
7594         PR c/39495
7595         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7596         minimum or maximum value.
7597
7598 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
7599
7600         * reginfo.c (globalize_reg): Recompute derived reg sets.
7601
7602 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
7603
7604         PR target/39063
7605         * libgcc2.c (mprotect): Do not use signed arguments for
7606         VirtualProtect, use DWORD arguments.  Also fix the 'may
7607         be used uninitialized' warning for the np variable.
7608
7609 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7610
7611         PR target/39496
7612         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7613         functions using regparm calling conventions when not optimizing.
7614         (ix86_function_sseregparm): Similarly for sseregparm calling
7615         conventions.
7616
7617 2009-03-19  Li Feng  <nemokingdom@gmail.com>
7618
7619         PR middle-end/39500
7620         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7621         dependence if the first conflict is after niter iterations.
7622
7623 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
7624
7625         PR middle-end/38609
7626         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7627         functions with dynamic stack-pointer adjustments.
7628
7629 2009-03-19  Ben Elliston  <bje@au.ibm.com>
7630
7631         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7632         option; change to -msdata=data.
7633
7634 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7635
7636         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7637         and -fopenmp.
7638
7639 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
7640
7641         PR target/35180
7642         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7643
7644 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
7645
7646         * doc/invoke.texi (Code Gen Options): Expand discussion of
7647         -fno-common.
7648
7649 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
7650
7651         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7652         * matrix-reorg.c (struct matrix_info): Likewise.
7653         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7654         * rtl.h (struct mem_attrs): Likewise.
7655         * df.h (struct df): Likewise.
7656         * tree-data-ref.h (struct data_dependence_relation): Likewise.
7657         * ira-int.h (struct ira_allocno): Likewise.
7658         * df-scan.c (struct df_collection_rec): Likewise.
7659         * ira.c (struct equivalence): Likewise.
7660         * function.c (struct temp_slot): Likewise.
7661         * cfgloop.h (struct loop): Likewise.
7662
7663         PR debug/39485
7664         * function.c (use_register_for_decl): When not optimizing, disregard
7665         register keyword for variables with types containing methods.
7666
7667 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
7668
7669         PR middle-end/39447
7670         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7671         (is_simple_operand): Call contains_component_ref_p before calling data
7672         reference analysis that would fail on COMPONENT_REFs.
7673
7674         * tree-vrp.c (search_for_addr_array): Fix formatting.
7675
7676 2009-03-18  Richard Guenther  <rguenther@suse.de>
7677
7678         * tree-vect-transform.c (vect_loop_versioning): Fold the
7679         generated comparisons.
7680         * tree-vectorizer.c (set_prologue_iterations): Likewise.
7681         (slpeel_tree_peel_loop_to_edge): Likewise.
7682
7683 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7684
7685         PR middle-end/37805
7686         * opts.c (print_specific_help): In addition to `undocumented',
7687         accept `separate' and `joined' flags if passed alone.  Describe
7688         output by the first matched one of those.
7689         (common_handle_option): Skip over empty strings.
7690         * gcc.c (display_help): Fix help string for `--help='.
7691         * doc/invoke.texi (Option Summary, Overall Options): With
7692         `--help=', classes and qualifiers can both be repeated, but
7693         only the latter can be negated.  One should not pass only
7694         negated qualifiers.  Fix markup and examples.
7695
7696         Revert
7697         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
7698         PR middle-end/37805
7699         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7700         and -fhelp=separate.
7701
7702 2009-03-17  Jing Yu  <jingyu@google.com>
7703
7704         PR middle-end/39378
7705         * function.h (struct rtl_data): Move is_thunk from here...
7706         (struct function): ...to here.
7707         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
7708         * varasm.c (assemble_start_function): Change is_thunk from crtl to
7709         cfun.
7710         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7711         cfun.
7712         (alpha_does_function_need_gp, alpha_start_function): Likewise.
7713         (alpha_output_function_end_prologue): Likewise.
7714         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7715         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7716         (rs6000_output_function_epilogue): Likewise.
7717         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
7718
7719 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         PR target/39482
7722         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7723         from different units in a single alternative.
7724         (*truncdfsf_i387): Ditto.
7725         (*truncxfsf2_mixed): Ditto.
7726         (*truncxfdf2_mixed): Ditto.
7727
7728 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
7729
7730         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7731         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7732
7733         PR debug/39474
7734         * tree-ssa-live.c (remove_unused_locals): Don't remove local
7735         unused non-artificial variables when not optimizing.
7736
7737         PR debug/39471
7738         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7739         DW_TAG_imported_module even if decl is IMPORTED_DECL with
7740         NAMESPACE_DECL in its DECL_INITIAL.
7741
7742         PR middle-end/39443
7743         * optabs.c (set_user_assembler_libfunc): New function.
7744         * expr.h (set_user_assembler_libfunc): New prototype.
7745         * c-common.c: Include libfuncs.h.
7746         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7747         for memcmp, memset, memcpy, memmove and abort.
7748         * Makefile.in (c-common.o): Depend on libfuncs.h.
7749
7750         PR debug/39412
7751         * dwarf2out.c (gen_inlined_enumeration_type_die,
7752         gen_inlined_structure_type_die, gen_inlined_union_type_die,
7753         gen_tagged_type_instantiation_die): Removed.
7754         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7755         do nothing.
7756
7757 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
7758
7759         PR testsuite/38526
7760         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7761         its use.
7762         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7763         (check-parallel-%): Ditto.
7764         (check-consistency): Ditto.
7765
7766 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
7767
7768         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7769         local variable rhs by NULL_TREE.
7770
7771 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7772
7773         PR target/39477
7774         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
7775
7776 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7777
7778         PR target/39476
7779         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
7780
7781 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7782
7783         PR target/39473
7784         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7785         for ms->sysv ABI calls only in 64bit mode.
7786
7787         * config/i386/i386.md (untyped_call): Support 32bit.
7788
7789 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7790
7791         * doc/extend.texi: Replace x86_65 with x86_64.
7792
7793 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
7794
7795         PR tree-optimization/39455
7796         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7797         mismatches for POINTER_TYPE_P (type).
7798         (number_of_iterations_le): Likewise.
7799
7800 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7801
7802         * config/picochip/picochip.c: Removed profiling support.
7803         * config/picochip/picochip.md: Removed profiling instruction.
7804         * config/picochip/picochip.h: Removed profiling builtin.
7805
7806 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
7807
7808         * doc/install.texi (--with-host-libstdcxx): Document.
7809
7810 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
7811
7812         PR target/34299
7813         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7814         generate a warning if the function name does not begin with
7815         "__vector" and the function has either the 'signal' or 'interrupt'
7816         attribute, from here to ...
7817         (avr_declare_function_name): ...here. New function.
7818         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7819         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7820
7821 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
7822
7823         PR bootstrap/39454
7824         * cse.c (fold_rtx): Don't modify original const_arg1 when
7825         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7826         separate variable instead.
7827         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7828         from out of range shift counts.
7829         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7830
7831 2009-03-13  Catherine Moore  <clm@codesourcery.com>
7832
7833         * config/i386/x-mingw32 (host-mingw32.o): Replace
7834         diagnostic.h with $(DIAGNOSTIC_H).
7835
7836 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
7837
7838         PR target/39431
7839         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7840         predicate.
7841         * config/i386/sync.md (sync_compare_and_swap<mode>,
7842         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7843         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7844         into a register.
7845         (sync_double_compare_and_swapdi_pic,
7846         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7847         cmpxchg8b_pic_memory_operand instead of just memory_operand.
7848
7849 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7850
7851         PR target/39445
7852         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7853
7854 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7855
7856         PR target/39327
7857         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7858         (avx_addsubv4df3): Likewise.
7859         (*avx_addsubv4sf3): Likewise.
7860         (sse3_addsubv4sf3): Likewise.
7861
7862 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7863
7864         PR target/38824
7865         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
7866
7867 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7868
7869         PR debug/39432
7870         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7871         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7872         registers for allocnos created from user-defined variables.
7873
7874 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7875
7876         PR target/39181
7877         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7878         of non-integer mode as well.
7879
7880 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
7881
7882         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7883         for functions for which the parameter types are unknown.
7884
7885 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
7886
7887         PR target/39137
7888         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
7889         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7890         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7891         * config/i386/i386.c (ix86_local_alignment): For
7892         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7893         long long variables on the stack to avoid dynamic realignment.
7894         Allow the first argument to be a decl rather than type.
7895         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7896
7897 2009-03-11  Nick Clifton  <nickc@redhat.com>
7898
7899         PR target/5362
7900         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7901         options.
7902         Add description to mno-lsim option.
7903         * config/mcore/mcore.h: Remove comment about deprecated m4align
7904         option.
7905         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7906         * doc/invoke.texi: Add description of mno-lsim and
7907         mstack-increment options.
7908
7909         * config/fr30/fr30.opt: Document the -mno-lsim option.
7910         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7911         and -mno-lsim options.
7912
7913 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7914
7915         * fold-const.c (fold_comparison): Only call fold_inf_compare
7916         if the mode supports infinities.
7917
7918 2009-03-11  Jason Merrill  <jason@redhat.com>
7919
7920         PR debug/39086
7921         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7922         end already did.  Notice GIMPLE_CALL modifications of the result.
7923         Don't copy debug information from an ignored decl or a decl from
7924         another function.
7925
7926 2009-03-10  Richard Guenther  <rguenther@suse.de>
7927             Nathan Froyd  <froydnj@codesourcery.com>
7928
7929         PR middle-end/37850
7930         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
7931         (__divMODE3): Likewise.
7932
7933 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
7934
7935         PR tree-optimization/39394
7936         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7937         DECL_SIZE_UNIT of variable length FIELD_DECLs.
7938
7939 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7940
7941         * recog.c (verfiy_changes): Disallow renaming of hard regs in
7942         inline asms for register asm ("") declarations.
7943
7944 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7945
7946         * fold-const.c (fold_unary): Fix comment.
7947
7948 2009-03-07  Jan Hubicka  <jh@suse.cz>
7949
7950         PR target/39361
7951         * tree-inline.c (setup_one_parameter): Do replacement of const
7952         argument by constant in SSA form.
7953
7954 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7955
7956         PR middle-end/38028
7957         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7958         determine alignment passed to assign_stack_local.
7959         (assign_parms_unsplit_complex): Likewise.
7960         * except.c (sjlj_build_landing_pads): Likewise.
7961
7962 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7963
7964         PR middle-end/39360
7965         * tree-flow.h (add_referenced_var): Return bool instead of void.
7966         * tree-dfa.c (add_referenced_var): Return result of
7967         referenced_var_check_and_insert call.
7968         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7969         of referenced_var_check_and_insert.
7970
7971         PR debug/39372
7972         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
7973         (gen_variable_die): Emit DW_AT_location on abstract static variable's
7974         DIE, don't emit it if abstract origin already has it.
7975         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7976         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7977
7978 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7979
7980         * genpreds.c (needs_variable): Fix parentheses at variable name
7981         detection.
7982         (write_tm_constrs_h): Indent generated code.
7983
7984 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7985
7986         * doc/extend.texi (Function Attributes): Add documentation
7987         for isr attributes.
7988
7989 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7990
7991         PR debug/39387
7992         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7993         take locus from its DECL_SOURCE_LOCATION instead of input_location.
7994
7995 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7996
7997         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7998         the loop as bad.
7999
8000 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
8001
8002         PR debug/39379
8003         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8004         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8005
8006 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
8007
8008         * config/i386/i386.md (R8_REG, R9_REG): New constants.
8009         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8010         constants instead of magic numbers.
8011         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8012         (QI_REG_P): Ditto.
8013         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8014         (x86_64_ms_abi_int_parameter_registers): Ditto.
8015         (x86_64_int_return_registers): Ditto.
8016         (ix86_maybe_switch_abi): Ditto.
8017         (ix86_expand_call): Ditto for clobbered_registers array.
8018         (ix86_hard_regno_mode_ok): Ditto.
8019         (x86_extended_QIreg_mentioned_p): Ditto.
8020
8021 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
8022
8023         PR tree-optimization/39349
8024         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8025
8026         * combine.c (gen_lowpart_for_combine): Use omode when generating
8027         clobber.
8028
8029 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
8030
8031         PR rtl-optimization/39235
8032         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8033
8034 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
8035
8036         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8037
8038 2009-03-04  Richard Guenther  <rguenther@suse.de>
8039
8040         PR tree-optimization/39362
8041         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8042         that occur in abnormal PHIs should be varying.
8043
8044 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
8045
8046         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8047         Extend comments.
8048         (simple_iv):  Take loop as an argument instead of statement.
8049         * tree-scalar-evolution.h (simple_iv): Declaration changed.
8050         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8051         to simple_iv.
8052         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8053         Ditto.
8054         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8055         * matrix-reorg.c (analyze_transpose): Ditto.
8056         * tree-data-ref.c (dr_analyze_innermost): Ditto.
8057         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8058         * tree-predcom.c (ref_at_iteration): Ditto.
8059         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8060
8061 2009-03-04  Richard Guenther  <rguenther@suse.de>
8062
8063         PR tree-optimization/39358
8064         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8065         escaped_id and callused_id.
8066         (solve_graph): Likewise.
8067
8068 2009-03-04  Richard Guenther  <rguenther@suse.de>
8069
8070         PR tree-optimization/39339
8071         * tree-sra.c (try_instantiate_multiple_fields): Make it
8072         no longer ICE on the above.
8073
8074 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
8075
8076         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8077         that fits within Pmode.
8078
8079 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
8080
8081         PR middle-end/10109
8082         * tm.texi (LIBCALL_VALUE): Update description.
8083
8084 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
8085
8086         PR middle-end/34443
8087         * doc/extend.texi (section): Update description.
8088
8089 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
8090
8091         PR middle-end/39345
8092         * tree-inline.c (remapped_type): New.
8093         (can_be_nonlocal): Call remapped_type instead of remap_type.
8094
8095 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
8096
8097         PR fortran/39354
8098         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8099         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8100
8101 2009-03-03  Richard Guenther  <rguenther@suse.de>
8102
8103         PR middle-end/39272
8104         * tree.c (tree_nonartificial_location): New function.
8105         * tree.h (tree_nonartificial_location): Declare.
8106         * builtins.c (expand_builtin_memory_chk): Provide location
8107         of the call location for artificial function pieces.
8108         (maybe_emit_chk_warning): Likewise.
8109         (maybe_emit_sprintf_chk_warning): Likewise.
8110         (maybe_emit_free_warning): Likewise.
8111         * expr.c (expand_expr_real_1): Likewise.
8112
8113 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
8114
8115         PR tree-optimization/39343
8116         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8117         COMPONENT_REF t has ARRAY_TYPE.
8118
8119 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8120
8121         PR middle-end/39335
8122         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8123         when the type precision of the induction variable should be
8124         larger than the type precision of nit.
8125         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8126         * graphite.c (graphite_loop_normal_form): Same.
8127         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8128
8129 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8130
8131         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8132         (*call_1_rex64_ms_sysv): Use named constants instead of magic
8133         numbers to describe clobbered registers.
8134         (*call_value_0_rex64_ms_sysv): Ditto.
8135         * config/i386/mmx.md (mmx_emms): Ditto.
8136         (mmx_femms): Ditto.
8137
8138 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
8139
8140         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8141         of ABI_64.
8142
8143 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8144
8145         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8146         (spu_section_type_flags): New function.
8147
8148 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8149
8150         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8151         reg_class_contents of FLOAT_REGS into a temporary.
8152
8153 2009-03-02  Richard Guenther  <rguenther@suse.de>
8154             Ira Rosen  <irar@il.ibm.com>
8155
8156         PR tree-optimization/39318
8157         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8158         information to the vectorized statement.
8159
8160 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
8161
8162         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
8163         variable.  Use defined names instead of magic constants for REX SSE
8164         registers.
8165
8166 2009-03-01  Richard Guenther  <rguenther@suse.de>
8167
8168         PR tree-optimization/39331
8169         * omp-low.c (lower_send_shared_vars): Do not receive new
8170         values for the reference of DECL_BY_REFERENCE parms or results.
8171
8172 2009-03-01  Jan Hubicka  <jh@suse.cz>
8173
8174         PR debug/39267
8175         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
8176         BLOCK_NONLOCALIZED_VAR): New macros.
8177         (tree_block): Add nonlocalized_vars.
8178         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
8179         gen_decl_die): Add origin argument.  Allow generation of die with
8180         origin at hand only.
8181         (gen_member_die, gen_type_die_with_usage, force_decl_die,
8182         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
8183         of gen_*.
8184         (gen_block_die): Fix checking for unused blocks.
8185         (process_scope_var): Break out from .... ; work with origins only.
8186         (decls_for_scope) ... here; process nonlocalized list.
8187         (dwarf2out_ignore_block): Look for nonlocalized vars.
8188         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
8189         vars.
8190         (dump_scope_block): Dump them.
8191         * tree-inline.c (remap_decls): Handle nonlocalized vars.
8192         (remap_block): Likewise.
8193         (can_be_nonlocal): New predicate.
8194         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
8195
8196 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8197
8198         * configure: Regenerate.
8199
8200 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8201
8202         * optc-gen.awk: No need to duplicate option flags twice.
8203         Reuse help texts for duplicate options which do not have any.
8204
8205         * gcc.c (display_help): Document --version.
8206
8207         * gcc.c (main): If print_help_list and verbose_flag, ensure
8208         driver output comes before subprocess output.
8209
8210         * optc-gen.awk: Assign all remaining fields to help string,
8211         space-separated, for multi-line help in *.opt.
8212
8213         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
8214         -Wno-pedantic-ms-format is for MinGW targets only.
8215
8216         * doc/options.texi (Option file format): Fix bad indentation,
8217         restoring dropped sentence.
8218
8219 2009-02-28  Jan Hubicka  <jh@suse.cz>
8220
8221         * tree-inline.c (tree_function_versioning): Output debug info.
8222
8223 2009-02-28  Jan Hubicka  <jh@suse.cz>
8224
8225         PR debug/39267
8226         * tree-inline.c (setup_one_parameter): Do not copy propagate
8227         arguments when not optimizing.
8228
8229 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8230
8231         PR target/39327
8232         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8233         (avx_addsubv4df3): Likewise.
8234         (*avx_addsubv4sf3): Likewise.
8235         (sse3_addsubv4sf3): Likewise.
8236         (*avx_addsubv2df3): Likewise.
8237         (sse3_addsubv2df3): Likewise.
8238         (avx_unpckhps256): Correct item selectors.
8239         (avx_unpcklps256): Likewise.
8240         (avx_unpckhpd256): Likewise.
8241         (avx_unpcklpd256): Likewise.
8242
8243 2009-02-28  Jan Hubicka  <jh@suse.cz>
8244
8245         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
8246         static vars.
8247         (copy_arguments_for_versioning): If var is declared don't declare it.
8248         (tree_function_versioning): First setup substitutions and then copy
8249         args.
8250
8251 2009-02-27  Jan Hubicka  <jh@suse.cz>
8252
8253         PR debug/39267
8254         * cgraph.h (varpool_output_debug_info): Remove.
8255         * cgraphunit.c (varpool_output_debug_info): Remove.
8256         * dwarf2out.c (deferred_locations_struct): New struct
8257         (deferred_locations): New type.
8258         (deferred_locations_list): New static var.
8259         (deffer_location): New function.
8260         (gen_variable_die): Use it.
8261         (decls_for_scope): Output info on local static vars.
8262         (dwarf2out_finish): Process deferred locations.
8263         * varpool.c (varpool_output_debug_info): Remove.
8264
8265 2009-02-27  Jan Hubicka  <jh@suse.cz>
8266
8267         PR debug/39267
8268         * tree.h (TREE_PROTECTED): Fix comment.
8269         (BLOCK_HANDLER_BLOCK): Remove.
8270         (struct tree_block): Remove handler_block add body_block.
8271         (inlined_function_outer_scope_p): New.
8272         (is_body_block): Remove.
8273         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
8274         * dwarf2out.c (is_inlined_entry_point): Remove.
8275         (add_high_low_attributes): Use inlined_function_outer_scope_p.
8276         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
8277         code.
8278         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
8279         * gimplify.c (gimplify_expr): Gimplify body blocks.
8280         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
8281         block with multiple subblocks.
8282         (dump_scope_block): Prettier output; dump more flags and info.
8283         (dump_scope_blocks): New.
8284         (remove_unused_locals): Use dump_scope_blocks.
8285         * tree-flow.h (dump_scope_blocks): Declare.
8286         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
8287         * stmt.c (is_body_block): Remove.
8288         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
8289         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
8290
8291 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
8292
8293         PR middle-end/39308
8294         * graphite.c (graphite_loop_normal_form): Do not call
8295         number_of_iterations_exit from a gcc_assert.
8296
8297 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8298
8299         * config/s390/s390.c (s390_swap_cmp): Look for conditional
8300         jumps if COND is NULL.
8301         (find_cond_jump): New function.
8302         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
8303         * config/s390/s390.md: Remove z10_cobra attribute value.
8304
8305 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
8306
8307         * config/alpha/alpha.h (alpha_expand_mov): Return false if
8308         force_const_mem returns NULL_RTX.
8309
8310 2009-02-26  Jan Hubicka  <jh@suse.cz>
8311
8312         PR debug/39267
8313         * cgraph.h (varpool_output_debug_info): Remove.
8314         * cgraphunit.c (varpool_output_debug_info): Remove.
8315         * dwarf2out.c (deferred_locations_struct): New struct
8316         (deferred_locations): New type.
8317         (deferred_locations_list): New static var.
8318         (deffer_location): New function.
8319         (gen_variable_die): Use it.
8320         (decls_for_scope): Output info on local static vars.
8321         (dwarf2out_finish): Process deferred locations.
8322         * varpool.c (varpool_output_debug_info): Remove.
8323
8324 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8325
8326         PR rtl-optimization/39241
8327         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
8328         to subreg_offset_representable_p.
8329
8330 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8331
8332         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
8333         execute function prototype.  Get f and nregs from max_reg_num
8334         and get_insns.  Remove the first backward pass as it's dead,
8335         guard the forward pass by flag_expensive_optimizations.
8336         (rest_of_handle_regmove): Delete.
8337         (pass_regmove): Replace it with regmove_optimize.
8338
8339 2009-02-25  Martin Jambor  <mjambor@suse.cz>
8340
8341         PR tree-optimization/39259
8342         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
8343         calls_alloca function flags.
8344         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
8345         calls are detected.
8346
8347 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8348
8349         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
8350         flags_set_1_rtx, flags_set_1_set): Delete.
8351         (regmove_optimize): Do not call mark_flags_life_zones.
8352
8353 2009-02-24  Julian Brown  <julian@codesourcery.com>
8354
8355         PR target/35965
8356         * config/arm/arm.c (require_pic_register): Only set
8357         cfun->machine->pic_reg once per function.
8358
8359 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
8360
8361         * doc/invoke.texi (Link Options): Document an easier way to pass
8362         options that take arguments to the GNU linker using -Xlinker and -Wl.
8363
8364 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
8365
8366         PR target/33785
8367         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8368
8369 2009-02-24  Richard Guenther  <rguenther@suse.de>
8370
8371         PR debug/39285
8372         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8373
8374 2009-02-24  Richard Guenther  <rguenther@suse.de>
8375             Zdenek Dvorak  <ook@ucw.cz>
8376
8377         PR tree-optimization/39233
8378         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8379         from converting them to a generic type.
8380
8381 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
8382
8383         PR tree-optimization/39260
8384         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8385         contains a condition with a real type.
8386         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8387
8388 2009-02-23  Jason Merrill  <jason@redhat.com>
8389
8390         PR c++/38880
8391         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8392         narrowing_initializer_constant_valid_p.
8393         (narrowing_initializer_constant_valid_p): Don't return
8394         null_pointer_node for adding a pointer to itself.
8395
8396 2009-02-23  Jan Hubicka  <jh@suse.cz>
8397
8398         PR c/12245
8399         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8400         resizing.
8401
8402 2009-02-23  Jan Hubicka  <jh@suse.cz>
8403
8404         PR tree-optimization/37709
8405         * tree.c (block_ultimate_origin): Move here from dwarf2out.
8406         * tree.h (block_ultimate_origin): Declare.
8407         * dwarf2out.c (block_ultimate_origin): Move to tree.c
8408         * tree-ssa-live.c (remove_unused_scope_block_p):
8409         Eliminate blocks containig no instructions nor live variables nor
8410         nested blocks.
8411         (dump_scope_block): New function.
8412         (remove_unused_locals): Enable removal of dead blocks by default;
8413         enable dumping at TDF_DETAILS.
8414
8415 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8416
8417         * config/i386/i386.c (classify_argument): Don't allow COImode
8418         and OImode.
8419         (function_arg_advance_32): Don't allow OImode.
8420         (function_arg_32): Likewise.
8421         (function_value_32): Likewise.
8422         (return_in_memory_32): Likewise.
8423         (function_arg_64): Remove OImode comment.
8424
8425 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8426
8427         PR target/39261
8428         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8429         ix86_expand_vector_set for V4DImode in 64bit mode only.
8430         (ix86_expand_vector_init_one_var): Likewise.
8431
8432 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
8433
8434         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8435
8436 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8437
8438         PR bootstrap/39257
8439         * loop-iv.c: Revert last change.
8440         * emit-rtl.c: Likewise.
8441
8442 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8443
8444         PR target/39256
8445         * config/i386/i386.c (type_natural_mode): Remove an extra
8446         space in the warning message.
8447         (function_value_32): Handle 32-byte vector modes.
8448         (return_in_memory_32): Likewise.
8449
8450 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8451
8452         * loop-iv.c (truncate_value): New function.
8453         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8454         of lowpart_subreg.
8455         (lowpart_subreg): Move to...
8456         * emit-rtl.c: ...here.
8457
8458 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
8459
8460         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8461         accidental and undocumented change at revision 140860.
8462
8463 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
8464
8465         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8466         take gimple_seq * arguments.
8467         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8468         types_compatible_p langhook.
8469
8470 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
8471             Joseph Myers  <joseph@codesourcery.com>
8472
8473         * config/arm/arm.c (arm_builtin_va_list): New function.
8474         (arm_expand_builtin_va_start): Likewise.
8475         (arm_gimplify_va_arg_expr): Likewise.
8476         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8477         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8478         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8479         (va_list_type): New variable.
8480         (arm_mangle_type): Mangle va_list_type appropriately.
8481
8482 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8483
8484         PR middle-end/39157
8485         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8486         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8487         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8488         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8489         parameter to 1000 for -O1 by default.
8490         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8491         parameter.
8492         * loop-invariant.c: Include params.h.
8493         (move_loop_invariants): Don't call move_single_loop_invariants on
8494         very large loops.
8495
8496 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
8497
8498         * calls.c (emit_library_call_value_1): Use slot_offset instead of
8499         offset when calculating bounds for indexing stack_usage_map.  Fixes
8500         a buffer overflow with certain target setups.
8501
8502 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8503
8504         PR target/39240
8505         * calls.c (expand_call): Clear try_tail_call if caller and callee
8506         disagree in promotion of function return value.
8507
8508 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
8509
8510         PR target/39175
8511         * c-common.c (c_determine_visibility): If visibility changed and
8512         DECL_RTL has been already set, call make_decl_rtl to update symbol
8513         flags.
8514
8515 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8516
8517         PR c++/39188
8518         * varasm.c (assemble_variable): Don't check DECL_NAME when
8519         globalizing a variable.
8520
8521 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
8522
8523         PR c/38483
8524         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8525         expression before any __builtin_trap call.
8526         * c-typeck.c (build_function_call): Convert and check function
8527         arguments before generating a call to a trap.  Evaluate the
8528         function arguments before the trap.
8529
8530 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
8531
8532         PR target/39228
8533         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8534         (UNSPEC_FXAM_MEM): New unspec.
8535         (fxam<mode>2_i387_with_temp): New insn and split pattern.
8536         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
8537         memory using fxam<mode>2_i387_with_temp to remove excess precision.
8538
8539 2009-02-19  Richard Guenther  <rguenther@suse.de>
8540
8541         PR tree-optimization/39207
8542         PR tree-optimization/39074
8543         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8544         storedanything_tree): New.
8545         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
8546         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
8547         (build_succ_graph): Add edges from STOREDANYTHING to all
8548         non-direct nodes.
8549         (init_base_vars): Initialize STOREDANYTHING.
8550         (compute_points_to_sets): Free substitution info after
8551         building the succ graph.
8552         (ipa_pta_execute): Likewise.
8553
8554         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8555         field.
8556         (do_ds_constraint): Do not add to special var or non-pointer
8557         field solutions.
8558         (type_could_have_pointers): Split out from ...
8559         (could_have_pointers): ... here.  For arrays use the element type.
8560         (create_variable_info_for): Initialize may_have_pointers.
8561         (new_var_info): Likewise.
8562         (handle_lhs_call): Make the HEAP variable unknown-sized.
8563         (intra_create_variable_infos): Use a type with pointers for
8564         PARM_NOALIAS, make it unknown-sized.
8565
8566 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8567
8568         PR target/39224
8569         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
8570
8571 2009-02-18  Jason Merrill  <jason@redhat.com>
8572
8573         PR target/39179
8574         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8575         value if DECL_EXTERNAL.
8576         * tree-sra.c (sra_walk_gimple_assign): Likewise.
8577         * target.h (gcc_target::binds_local_p): Clarify "module".
8578         * tree.h (TREE_PUBLIC): Clarify "module".
8579
8580 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
8581
8582         PR target/38891
8583         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8584         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8585
8586 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8587
8588         PR target/39082
8589         * c.opt (Wabi): Support C and ObjC.
8590         (Wpsabi): New.
8591
8592         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8593
8594         * config/i386/i386.c (classify_argument): Warn once about the ABI
8595         change when passing union with long double.
8596
8597         * doc/invoke.texi: Update -Wabi for warning psABI changes.
8598
8599 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
8600
8601         PR c/35447
8602         * c-parser.c (c_parser_compound_statement): Always enter and leave
8603         a scope.
8604
8605 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8606
8607         PR target/34587
8608         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8609
8610 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
8611
8612         PR tree-optimization/36922
8613         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8614         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8615         Likewise.
8616
8617 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8618
8619         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8620         to 0 for EABI64.
8621
8622 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8623
8624         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8625
8626 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8627
8628         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8629         tree sharing.
8630
8631 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
8632             Richard Sandiford  <rdsandiford@googlemail.com>
8633
8634         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8635         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8636         (loongson_biadd): ...this.
8637
8638 2009-02-17  Richard Guenther  <rguenther@suse.de>
8639
8640         PR tree-optimization/39202
8641         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8642         a var make sure to follow existing collapses.
8643
8644 2009-02-17  Richard Guenther  <rguenther@suse.de>
8645
8646         PR middle-end/39214
8647         * langhooks.c (lhd_print_error_function): Check for NULL block.
8648
8649 2009-02-17  Richard Guenther  <rguenther@suse.de>
8650
8651         PR tree-optimization/39204
8652         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8653         of the PHI arg.
8654
8655 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
8656
8657         * config/soft-fp/double.h: Update from glibc CVS.
8658
8659 2009-02-17  Richard Guenther  <rguenther@suse.de>
8660
8661         PR tree-optimization/39207
8662         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8663         strict-aliasing warnings for pointers pointing to NULL.
8664
8665 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
8666
8667         PR c/35446
8668         * c-parser.c (c_parser_braced_init): Call pop_init_level when
8669         skipping until next close brace.
8670
8671 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
8672
8673         PR target/37049
8674         * config/i386/i386.c (ix86_expand_push): Set memory alignment
8675         to function argument boundary.
8676
8677 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8678
8679         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8680         in the lea_add. Reload eventually constraints it properly.
8681         * config/picochip/constraints.md: Remove the target constraint
8682         "b", since it is not needed anymore.
8683
8684 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
8685
8686         * gthr-dce.h: Uglify function parameter and local variable names.
8687         * gthr-gnat.h: Likewise.
8688         * gthr-mipssde.h: Likewise.
8689         * gthr-nks.h: Likewise.
8690         * gthr-posix95.h: Likewise.
8691         * gthr-posix.h: Likewise.
8692         * gthr-rtems.h: Likewise.
8693         * gthr-single.h: Likewise.
8694         * gthr-solaris.h: Likewise.
8695         * gthr-tpf.h: Likewise.
8696         * gthr-vxworks.h: Likewise.
8697         * gthr-win32.h: Likewise.
8698
8699 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8700
8701         PR target/39196
8702         * config/i386/i386.md: Restrict the new peephole2 to move
8703         between MMX/SSE registers.
8704
8705 2009-02-15  Richard Guenther  <rguenther@suse.de>
8706
8707         Revert
8708         2009-02-13  Richard Guenther  <rguenther@suse.de>
8709
8710         * configure.ac: Enable LFS.
8711         * configure: Re-generate.
8712         * config.in: Likewise.
8713
8714 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8715
8716         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8717         spu_srqwbyte, spu_srqwbytebc): Define.
8718         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8719         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8720         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8721         "shrqby_<mode>"): New insn-and-split patterns.
8722         * config/spu/spu.c (expand_builtin_args): Determine and return
8723         number of operands using spu_builtin_description data.
8724         (spu_expand_builtin_1): Use it.
8725
8726 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
8727
8728         PR target/38056
8729         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8730         TARGET_CONST_GP.
8731
8732 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8733
8734         PR target/39149
8735         * config/i386/i386.c (override_options): Correct warning
8736         messages for -malign-loops, -malign-jumps and -malign-functions.
8737
8738 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8739
8740         PR target/39152
8741         * config/i386/i386.md: Restrict the new peephole2 to move
8742         between the general purpose registers.
8743
8744 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8745
8746         PR target/39162
8747         * config/i386/i386.c (type_natural_mode): Add a new argument.
8748         Return the original mode and warn ABI change if vector size is 32byte.
8749         (function_arg_advance): Updated.
8750         (function_arg): Likewise.
8751         (ix86_function_value): Likewise.
8752         (ix86_return_in_memory): Likewise.
8753         (ix86_sol10_return_in_memory): Likewise.
8754         (ix86_gimplify_va_arg): Likewise.
8755         (function_arg_32): Don't warn ABX ABI change here.
8756         (function_arg_64): Likewise.
8757
8758 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8759
8760         * loop-iv.c (implies_p): In the final case, test that operands 0
8761         of the two comparisons match.
8762
8763         * config/bfin/bfin.c (find_prev_insn_start): New function.
8764         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8765         (find_next_insn_start): Move.
8766
8767 2009-02-13  Richard Guenther  <rguenther@suse.de>
8768
8769         * configure.ac: Enable LFS.
8770         * configure: Re-generate.
8771         * config.in: Likewise.
8772
8773 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
8774
8775         PR c/35444
8776         * c-parser.c (c_parser_parms_list_declarator): Discard pending
8777         sizes on syntax error after some arguments have been parsed.
8778
8779 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8780
8781         * doc/invoke.texi (-fira): Remove.
8782
8783 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8784
8785         * caller-save.c: Replace regclass.c with reginfo.c in comments.
8786         * recog.c: Likewise.
8787         * rtl.h: Likewise.
8788
8789 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
8790
8791         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8792         (umul_ppmm): Likewise.
8793         (count_leading_zeros): Likewise.
8794         (count_trailing_zeros): Likewise.
8795         (UMUL_TIME): Likewise.
8796
8797 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8798
8799         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8800         soft-fp/t-softfp to tmake_file.
8801
8802         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
8803         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8804         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8805         IA64_BUILTIN_INFQ]: New.
8806         (ia64_init_builtins): Initialize __builtin_infq,
8807         __builtin_fabsq and __builtin_copysignq if not HPUX.
8808         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8809         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8810
8811         * config/ia64/lib1funcs.asm (__divtf3): Define only if
8812         SHARED is defined.
8813         (__fixtfti): Likewise.
8814         (__fixunstfti): Likewise.
8815         (__floattitf): Likewise.
8816
8817         * config/ia64/libgcc-glibc.ver: New.
8818         * config/ia64/t-fprules-softfp: Likewise.
8819         * config/ia64/sfp-machine.h: Likewise.
8820
8821         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8822         (LIBGCC2_TF_CEXT): Likewise.
8823         (TF_SIZE): Likewise.
8824         (TARGET_INIT_LIBFUNCS): Likewise.
8825
8826         * config/ia64/t-glibc (SHLINB_MAPFILES):
8827         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8828
8829 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8830
8831         * config/i386/i386.c (construct_container): Rewrite processing
8832         BLKmode with X86_64_SSE_CLASS.
8833
8834 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
8835
8836         PR target/39152
8837         * config/i386/i386.md: Replace simplify_replace_rtx with
8838         replace_rtx in the new peephole2.
8839
8840 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8841
8842         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8843         loop unrolling do not happen at -O2.
8844
8845 2009-02-12  Michael Matz  <matz@suse.de>
8846
8847         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8848
8849 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8850
8851         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8852         for -g3.
8853
8854 2009-02-12  Ben Elliston  <bje@au.ibm.com>
8855
8856         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8857         patterns when updating the back chain.  Missed in the 2009-02-10
8858         change.
8859
8860 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
8861
8862         * doc/extend.texi (Decimal Floating Types): Update identifier of
8863         draft TR and list of missing support.
8864
8865 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8866
8867         PR middle-end/39154
8868         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8869         bit to variable length decl's flags, add it also to its
8870         pointer replacement variable.
8871
8872 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
8873             Jakub Jelinek  <jakub@redhat.com>
8874
8875         PR target/39118
8876         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8877         (memory_blockage): New expander.
8878         (*memory_blockage): New insn pattern.
8879         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8880         instead of general blockage at the end of function prologue when
8881         frame pointer is used to access red zone area.  Do not emit blockage
8882         when profiling, it is emitted in generic code.
8883         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8884         function epilogue when frame pointer is used to access red zone area.
8885
8886 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
8887
8888         PR target/38824
8889         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8890         by arithmetic with memory operands.
8891         * config/i386/predicates.md (commutative_operator): New.
8892
8893 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
8894
8895         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8896         bulleted lists.
8897
8898 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8899
8900         * alias.h (record_alias_subset): Declare.
8901         * alias.c (record_alias_subset): Make global.
8902
8903 2009-02-10  Nick Clifton  <nickc@redhat.com>
8904
8905         * tree-parloops.c: Change license to GPLv3.
8906         * ipa-struct-reorg.c: Change license to GPLv3.
8907         * ipa-struct-reorg.h: Change license to GPLv3.
8908
8909 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
8910
8911         PR c/39084
8912         * c-decl.c (start_struct): Return NULL on error.
8913
8914 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
8915
8916         PR middle-end/39124
8917         * cfgloopmanip.c (remove_path): Call remove_bbs after
8918         cancel_loop_tree, not before it.
8919
8920         PR target/39139
8921         * function.h (struct function): Add has_local_explicit_reg_vars bit.
8922         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8923         VAR_DECLs were seen.
8924         * tree-ssa-live.c (remove_unused_locals): Recompute
8925         cfun->has_local_explicit_reg_vars.
8926         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8927         copies or clearings if cfun->has_local_explicit_reg_vars.
8928
8929 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
8930
8931         PR target/39118
8932         * config/i386/i386.c (expand_prologue): Emit blockage at the end
8933         of function prologue when frame pointer is used to access
8934         red zone area.
8935
8936 2009-02-10  Richard Guenther  <rguenther@suse.de>
8937
8938         PR middle-end/39127
8939         * gimplify.c (gimple_regimplify_operands): Always look if
8940         we need to create a temporary.
8941
8942 2009-02-10  Richard Guenther  <rguenther@suse.de>
8943
8944         PR tree-optimization/39132
8945         * tree-loop-distribution.c (todo): New global var.
8946         (generate_memset_zero): Trigger TODO_rebuild_alias.
8947         (tree_loop_distribution): Return todo.
8948
8949 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
8950
8951         PR target/39119
8952         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8953         (x86_64_reg_class_name): Removed.
8954         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
8955         first one isn't X86_64_SSE_CLASS or any other ones aren't
8956         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
8957         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8958         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
8959         and 3 X86_64_SSEUP_CLASS.
8960         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
8961         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8962
8963 2009-02-10  Ben Elliston  <bje@au.ibm.com>
8964
8965         * config/rs6000/rs6000.md (allocate_stack): Always use an update
8966         form instruction to update the stack back chain word, even if the
8967         user has disabled the generation of update instructions.
8968         (movdi_<mode>_update_stack): New.
8969         (movsi_update_stack): Likewise.
8970         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8971         always use an update form instruction to update the stack back
8972         chain word.
8973
8974 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
8975
8976         PR middle-end/38953
8977         * graphite.c (if_region_set_false_region): After moving a region in
8978         the false branch of a condition, remove the empty dummy basic block.
8979         (gloog): Remove wrong fix for PR38953.
8980
8981 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8982
8983         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8984         generation due to implicit sign extension.
8985
8986 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8987
8988         PR middle-end/38981
8989         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8990         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8991
8992 2009-02-09  Richard Guenther  <rguenther@suse.de>
8993
8994         PR middle-end/35202
8995         * convert.c (convert_to_real): Disable (float)fn((double)x)
8996         to fnf(x) conversion if errno differences may occur and
8997         -fmath-errno is set.
8998
8999 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
9000
9001         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9002         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9003         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9004
9005 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
9006
9007         PR c/35434
9008         * c-common.c (handle_alias_attribute): Disallow attribute for
9009         anything not a FUNCTION_DECL or VAR_DECL.
9010
9011 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
9012
9013         PR c/39035
9014         * real.c (do_compare): Special-case compare of zero against
9015         decimal float value.
9016
9017 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
9018
9019         PR c/36432
9020         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9021         as indicating flexible array members unless the field itself is
9022         being declarared as the incomplete array.
9023
9024 2009-02-06  Jan Hubicka  <jh@suse.cz>
9025
9026         PR tree-optimization/38844
9027         * ipa-inline.c (try_inline): Stop inlining recursion when edge
9028         is already inlined.
9029
9030 2009-02-06  Richard Guenther  <rguenther@suse.de>
9031
9032         PR middle-end/38977
9033         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9034         fork because we may expand it as __gcov_fork.
9035
9036 2009-02-06  Nick Clifton  <nickc@redhat.com>
9037
9038         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
9039
9040 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
9041
9042         PR tree-optimization/35659
9043         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9044         vn_phi_eq): Shortcut if hashcode does not match.
9045         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9046         NULL operands.
9047         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9048         and avoid iterative_hash_expr.
9049         (FOR_EACH_VALUE_ID_IN_SET): New.
9050         (value_id_compare): Remove.
9051         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9052         sort expressions by value id.
9053
9054 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9055
9056         PR target/38991
9057         * config/sh/predicates.md (general_movsrc_operand): Don't check
9058         the subreg of system registers here.
9059
9060 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
9061
9062         PR c++/39106
9063         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9064         on the copied decl.
9065
9066 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
9067
9068         PR rtl-optimization/39110
9069         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9070         addresses, not aligned ones.
9071
9072 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
9073             Richard Guenther  <rguenther@suse.de>
9074
9075         PR tree-optimization/39100
9076         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9077         comment says and add edges.
9078
9079 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
9080
9081         PR c/35435
9082         * c-common.c (handle_tls_model_attribute): Ignore attribute for
9083         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9084
9085 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
9086
9087         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9088         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9089         register_bb_in_sese, new_sese, free_sese): Moved.
9090         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9091         outermost_loop_in_scop, build_scop_iteration_domain,
9092         expand_scalar_variables_ssa_name, get_vdef_before_scop,
9093         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9094         Use loop_in_sese_p instead of loop_in_scop_p.
9095         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9096         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9097         (scopdet_basic_block_info): Fix bug in scop detection.
9098         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9099         eq_loop_to_cloog_loop): Remove.
9100         (nb_loops_around_loop_in_scop, nb_loop
9101         ref_nb_loops): Moved here...
9102         * graphite.h (ref_nb_loops): ... from here.
9103         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9104         (loop_domain_dim, loop_iteration_vector_dim): Remove.
9105         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9106         * testsuite/gcc.dg/graphite/scop-19.c: New
9107
9108 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
9109             Hans-Peter Nilsson  <hp@axis.com>
9110
9111         PR rtl-optimization/37889
9112         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9113         Move offset handling from PLUS to before the switch.  Use new
9114         arguments when considering SYMBOL_REFs too.
9115         (rtx_addr_can_trap_p): Pass dummy offset and size.
9116         (enum may_trap_p_flags): Remove.
9117         (may_trap_p_1): Pass size from MEM_SIZE.
9118
9119         PR rtl-optimization/38921
9120         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9121         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9122         * rtlanal.c (may_trap_after_code_motion_p): Delete.
9123         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9124
9125 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
9126
9127         AVX Programming Reference (January, 2009)
9128         * config/i386/sse.md (*vpclmulqdq): New.
9129
9130 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
9131
9132         PR tree-optimization/38977
9133         PR gcov-profile/38292
9134         * calls.c (special_function_p): Disregard __builtin_ prefix.
9135
9136 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
9137
9138         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9139         non-indexable addresses even before reload.
9140
9141 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9142
9143         PR c/29129
9144         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9145         as having variable size.  Do not give an error for unnamed
9146         parameters with [*] declarators.  Give a warning for type names
9147         with [*] declarators and mark them as variable size.
9148         * c-parser.c (c_parser_sizeof_expression): Do not give an error
9149         for sizeof applied to [*] type names.
9150
9151 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9152
9153         PR C++/36607
9154         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9155
9156 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9157
9158         * gcc.c (process_command): Update copyright notice dates.
9159         * gcov.c (print_version): Likewise.
9160         * gcov-dump.c (print_version): Likewise.
9161         * mips-tfile.c (main): Likewise.
9162         * mips-tdump.c (main): Likewise.
9163
9164 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9165
9166         PR c/35433
9167         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
9168         for composite type involving a zero-length array type.
9169
9170 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9171
9172         PR target/35318
9173         * function.c (match_asm_constraints_1): Skip over
9174         initial optional % in the constraint.
9175
9176         PR inline-asm/39059
9177         * c-parser.c (c_parser_postfix_expression): If fixed point is not
9178         supported, don't accept FIXED_CSTs.
9179         * c-decl.c (finish_declspecs): Error if fixed point is not supported
9180         and _Sat is used without _Fract/_Accum.  Set specs->type to
9181         integer_type_node for cts_fract/cts_accum if fixed point is not
9182         supported.
9183
9184 2009-02-02  Catherine Moore  <clm@codesourcery.com>
9185
9186         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
9187
9188 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9189
9190         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
9191         (ABI_HAS_64BIT_SYMBOLS): Use it.
9192         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
9193
9194 2009-02-02  Paul Brook  <paul@codesourcery.com>
9195
9196         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
9197
9198 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
9199
9200         PR inline-asm/39058
9201         * recog.h (asm_operand_ok): Add constraints argument.
9202         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
9203         recurse on matching constraint.
9204         (check_asm_operands): Pass constraints as 3rd argument to
9205         asm_operand_ok.  Don't look up matching constraint here.
9206         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
9207         to asm_operand_ok.
9208
9209 2009-02-02  Ben Elliston  <bje@au.ibm.com>
9210
9211         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
9212         TARGET_NARROW_VOLATILE_BITFIELD macro names.
9213
9214 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9215
9216         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
9217         information.  Remove some obsolete information.  Reorganize.
9218
9219         * config/pa/fptr.c: Revert license to GPL 2.
9220         * config/pa/milli64.S: Likewise.
9221
9222 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9223
9224         PR target/38904
9225         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
9226         LIBRARY name in, instead of hard-coding it.
9227         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
9228         extra target make frag to tmake_files according to EH model.
9229         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
9230         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
9231         frags that define makefile variable EH_MODEL appropriately.
9232         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
9233         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
9234         to "-sjlj" according to type of EH configured.
9235         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9236         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
9237         to "_sjlj" according to type of EH configured.
9238         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9239         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
9240         (SHLIB_LINK):  Add missing semicolon to if-else construct.
9241         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9242         string value of "pe_dll" command-line option.
9243         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
9244         (SHLIB_SONAME):  Use it when overriding t-cygming default.
9245         (SHLIB_IMPLIB):  Override t-cygming default.
9246         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9247         string value of "pe_dll" command-line option.
9248
9249 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9250
9251         PR target/38952
9252         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
9253         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
9254
9255 2009-01-31  Richard Guenther  <rguenther@suse.de>
9256
9257         PR tree-optimization/38937
9258         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
9259         computing the transitive closure.
9260
9261 2009-01-30  Richard Guenther  <rguenther@suse.de>
9262
9263         PR tree-optimization/39041
9264         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9265         Propagate variable indices only if the types match for this stmt.
9266
9267 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
9268
9269         PR target/39013
9270         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
9271         inline but never defined.
9272
9273 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
9274
9275         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
9276         (*insv_h_di_reg_extimm): New insn.
9277         (*insv_l<mode>_reg_extimm): New insn.
9278
9279 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9280
9281         * config/picochip/picochip.c (flag_conserve_stack): set
9282         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
9283         fconserve-stack. Reduce call-overhead used by inliner.
9284
9285 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9286
9287         PR/38157
9288         * common.opt (flag_conserve_stack): Initialised to zero.
9289
9290 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
9291
9292         PR/39002
9293         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
9294         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
9295         method.
9296
9297 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9298
9299         * ira-color.c (allocno_reload_assign): Update comments.
9300         * regmove.c (regmove_optimize): Likewise.
9301
9302         * ra.h: Removed.
9303
9304 2009-01-29  Robert Millan  <rmh@aybabtu.com>
9305
9306         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
9307         * config/i386/kopensolaris-gnu.h: New file.  Undefine
9308         `MD_UNWIND_SUPPORT'.
9309         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
9310
9311 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
9312
9313         PR tree-optimization/39007
9314         * tree-loop-distribution.c (generate_builtin): Use
9315         recompute_dominator to compute the immediate dominator of the
9316         basic block just after the loop.
9317
9318 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9319
9320         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
9321         (ASM_OUTPUT_DWARF_PCREL): Define.
9322
9323 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9324
9325         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
9326         * doc/passes.texi: Remove entries about regclass, local-alloc, and
9327         global.  Modify entries about regmove and IRA.
9328
9329         * ra-conflict.c: Remove the file.
9330
9331         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
9332
9333         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
9334         (pass_regclass_init): Rename to pass_reginfo_init.
9335
9336         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
9337
9338         * toplev.h (flag_ira): Remove.
9339
9340         * caller-save.c (setup_save_areas): Remove flag_ira.
9341
9342         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
9343
9344         * global.c: Remove the file.
9345
9346         * opts.c (decode_options): Remove flag_ira.
9347
9348         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
9349
9350         * regmove.c: Modify file description.
9351         (find_use_as_address, try_auto_increment): Define them only if
9352         AUTO_INC_DEC is defined.
9353         (replacement_quality, replace_in_call_usage, fixup_match_1,
9354         stable_and_no_regs_but_for_p): Remove.
9355         (reg_set_in_bb): Make it static.
9356         (regmove_optimize): Remove flag_ira and code which worked for
9357         !flag_ira.
9358
9359         * local-alloc.c: Remove the file.
9360
9361         * common.opt (fira): Remove.
9362
9363         * ira.c: Include except.h.
9364         (eliminable_regset): Move from global.c.
9365         (mark_elimination): Ditto.  Remove flag_ira.
9366         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9367         equiv_mem_modified, validate_equiv_mem_from_store,
9368         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9369         contains_replace_regs, memref_referenced_p, memref_used_between_p,
9370         no_equiv, recorded_label_ref): Move from local-alloc.c.
9371         (update_equiv_regs): Ditto.  Make it static.
9372         (print_insn_chain, print_insn_chains): Move it from global.c.
9373         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
9374         (build_insn_chain): Ditto.  Make it static.
9375         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
9376         Rename to init_live_subregs.
9377         (gate_ira): Remove flag_ira.
9378
9379         * regclass.c: Rename reginfo.c.  Change file description.
9380         (FORBIDDEN_INC_DEC_CLASSES): Remove.
9381         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
9382         (init_reg_sets_1): Remove code for evaluation of
9383         reg_class_superclasses and losing_caller_save_reg_set.
9384         (init_regs): Remove init_reg_autoinc.
9385         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9386         ok_for_base_p_nonstrict): Remove.
9387         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
9388         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
9389         corresponding entries.
9390         (dump_regclass, record_operand_costs, scan_one_insn,
9391         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9392         record_address_regs, auto_inc_dec_reg_p): Remove.
9393         (gt-regclass.h): Rename to gt-reginfo.h.
9394
9395         * rtl.h (dump_global_regs, retry_global_alloc,
9396         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
9397
9398         * Makefile.in (RA_H): Remove.
9399         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9400         Rename regclass.o to reginfo.o.
9401         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
9402         gt-reginfo.h.
9403         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9404         (GTFILES): Rename regclass.c to reginfo.c.
9405
9406         * passes.c (init_optimization_passes): Remove pass_local_alloc and
9407         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
9408
9409         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9410         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9411         Remove flag_ira.
9412         (finish_spills): Ditto.  Remove code for !flag_ira.
9413
9414 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
9415
9416         PR middle-end/35854
9417         * doc/invoke.texi (rtl debug options): Complete rewrite.
9418         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9419         to auto_inc_dec".
9420         * mode-switching.c (pass_mode_switching): Rename pass from
9421         "mode-sw" to "mode_sw".
9422         * except.c (pass_convert_to_eh_ranges): Rename pass from
9423         "eh-ranges" to "eh_ranges".
9424         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9425         to "subreg1".
9426
9427
9428 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
9429             Alexander Monakov  <amonakov@ispras.ru>
9430
9431         PR middle-end/38857
9432         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9433         register.
9434         (move_exprs_to_boundary): Change return type and pass through
9435         should_move from move_op.  Relax assert.  Update usage ...
9436         (schedule_expr_on_boundary): ... here.  Use should_move instead of
9437         cant_move.
9438         (move_op_orig_expr_found): Indicate that insn was disconnected from
9439         stream.
9440         (code_motion_process_successors): Do not call after_merge_succs
9441         callback if original expression was not found when traversing any of
9442         the branches.
9443         (code_motion_path_driver): Change return type.  Update prototype.
9444         (move_op): Update comment.  Add a new parameter (should_move).  Update
9445         prototype.  Set *should_move based on indication provided by
9446         move_op_orig_expr_found.
9447
9448 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9449
9450         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9451         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9452         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9453         * config/rs6000/rs6000.c (rs6000_override_options): Default
9454         avoid-indexed-addresses on for Power6, off for everything else.
9455         (avoiding_indexed_address_p): New function.
9456         (rs6000_legitimize_address): Use it.
9457         (rs6000_legitimate_address): Likewise.
9458         * config/rs6000/rs6000.md (movXX_updateX): Likewise
9459
9460 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
9461
9462         PR tree-optimization/38997
9463         * tree-loop-distribution.c (generate_memset_zero): Use
9464         POINTER_PLUS_EXPR for a pointer addition.
9465
9466 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9467
9468         * config/s390/s390.md (bswap<mode>2): New pattern added.
9469
9470 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9471
9472         * config/s390/s390.md (*tls_load_31): Added type attribute.
9473
9474 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9475
9476         * config/s390/s390.md: Fix a few comments.
9477
9478 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9479
9480         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9481         (*tm<mode>_full): Fixed z10prop attribute.
9482         (*tst<mode>_extimm): Fixed z10prop attribute.
9483         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9484         (*tstqiCCT_cconly): Fixed z10prop attribute.
9485         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9486         (*movsi_larl): Fixed z10prop attribute.
9487         (*movsi_zarch): Fixed z10prop attribute.
9488         (*movsi_eas): Fixed z10prop attribute.
9489         (*movhi): Fixed z10prop attribute.
9490         (*movqi): Fixed z10prop attribute.
9491         (*movstrictqi): Fixed z10prop attribute.
9492         (*mov<mode>): Fixed z10prop attribute.
9493         (*movcc): Fixed z10prop attribute.
9494         (*sethighpartdi_64): Fixed z10prop attribute.
9495         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9496         (*negdi2_sign_cc): Fixed z10prop attribute.
9497         (*negdi2_sign): Fixed z10prop attribute.
9498         (*absdi2_sign_cc): Fixed z10prop attribute.
9499         (*absdi2_sign): Fixed z10prop attribute.
9500         (*negabsdi2_sign_cc): Fixed z10prop attribute.
9501         (*negabsdi2_sign): Fixed z10prop attribute.
9502         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9503         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9504         (doloop_si64): Fixed z10prop attribute.
9505         (doloop_si31): Fixed z10prop attribute.
9506         (doloop_long): Fixed z10prop attribute.
9507         (indirect_jump): Fixed z10prop attribute.
9508         (nop): Fixed z10prop attribute.
9509         (main_base_64): Fixed z10prop attribute.
9510         (reload_base_64): Fixed z10prop attribute.
9511
9512 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9513
9514         PR rtl-optimization/38740
9515         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9516         if !optimize.
9517         * config/mips/mips.c (mips_reorg): Likewise.
9518
9519 2009-01-28  Richard Guenther  <rguenther@suse.de>
9520
9521         PR tree-optimization/38926
9522         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9523         with the correct value id to a value.
9524         (do_regular_insertion): Use the value number of edoubleprime
9525         for the value number of the expr.
9526
9527         Revert
9528         2008-08-21  Richard Guenther  <rguenther@suse.de>
9529
9530         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9531         a PHI ask VN if it is already available.
9532         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9533         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9534
9535 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9536
9537         PR middle-end/38934
9538         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9539         set to varying whenever max has TREE_OVERFLOW set, similarly
9540         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9541
9542 2009-01-28  Richard Guenther  <rguenther@suse.de>
9543
9544         PR middle-end/38908
9545         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9546         uninitialized aggregate uses in call arguments.
9547
9548 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
9549
9550         PR tree-optimization/38984
9551         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9552         the nothing_id variable if -fno-delete-null-pointer-checks.
9553
9554 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
9555
9556         PR target/38988
9557         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9558         (set_got_offset_rex64): Ditto.
9559
9560 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9561
9562         PR target/38941
9563         * doc/extend.texi: Improve local variable with asm reg.
9564
9565 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
9566
9567         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9568         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9569         was not supplied then set warn_packed_bitfield_compat to the
9570         default value of 1.
9571         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9572         against 1.
9573
9574 2009-01-27  Richard Guenther  <rguenther@suse.de>
9575
9576         PR tree-optimization/38503
9577         * cfgexpand.c (expand_gimple_basic_block): Ignore
9578         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9579         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9580         variables that cannot have TBAA applied.
9581         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9582         statements.
9583
9584 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
9585
9586         PR middle-end/38969
9587         * calls.c (initialize_argument_information): Do not wrap complex
9588         arguments in SAVE_EXPR.
9589
9590 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
9591
9592         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
9593         (INSTALL_LIBGCC): Revert typo commit.
9594
9595 2009-01-26  Richard Guenther  <rguenther@suse.de>
9596
9597         PR tree-optimization/38745
9598         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9599         from special handling.
9600
9601 2009-01-26  Richard Guenther  <rguenther@suse.de>
9602
9603         PR tree-optimization/38745
9604         * tree-ssa.c (execute_update_addresses_taken): Do not include
9605         variables that cannot possibly be a register in not_reg_needs.
9606         Do not clear TREE_ADDRESSABLE on vars that may not become
9607         registers.
9608         * tree-ssa.c (update_alias_info_1): Include those in the set
9609         of addressable vars.
9610
9611 2009-01-26  Richard Guenther  <rguenther@suse.de>
9612
9613         PR middle-end/38851
9614         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9615         * tree-ssa-dse.c: Include langhooks.h
9616         (execute_simple_dse): Remove stores with zero size.
9617
9618 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR c/38957
9621         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9622         as PLUS_EXPR.
9623
9624 2009-01-24  Julian Brown  <julian@codesourcery.com>
9625
9626         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9627         config/arm/linux-atomic.c.
9628         * config/arm/linux-atomic.c: New.
9629
9630 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9631
9632         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9633         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9634         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9635
9636 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9637
9638         PR c/38938
9639         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
9640         properly.
9641
9642 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
9643
9644         PR tree-optimization/38953
9645         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9646         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9647         (gloog): Split the exit of the scop when the scop exit is a loop exit.
9648         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9649         changed the CFG.
9650
9651 2009-01-24  Paul Brook  <paul@codesourcery.com>
9652
9653         * config/arm/neon.md (neon_type): Move to arm.md.
9654         (neon_mov<VSTRUCT>): Add neon_type attribute.
9655         * config/arm/arm.md (neon_type): Move to here.
9656         (conds): Add "unconditioal" and use as default for NEON insns.
9657
9658 2009-01-24  Ben Elliston  <bje@au.ibm.com>
9659
9660         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9661         void *' warning from -Wc++-compat.
9662         * Makefile.in (dominance.o-warn): Remove.
9663
9664 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
9665
9666         PR tree-optimization/38932
9667         * fold-const.c (fold_unary_ignore_overflow): New.
9668         * tree.h (fold_unary_ignore_overflow): Declare.
9669         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9670         * tree-ssa-sccvn.c (visit_reference_op_load,
9671         simplify_unary_expression): Likewise.
9672
9673 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
9674
9675         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9676         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
9677         regardless of their type.
9678         * c-common.c (handle_packed_attribute): Don't ignore packed on
9679         bitfields.
9680         * c.opt (Wpacked-bitfield-compat): New warning option.
9681         * stor-layout.c (place_field): Warn if offset of a field changed.
9682         * doc/extend.texi (packed): Mention the ABI change.
9683         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9684         (Warning Options): Add it to the list.
9685
9686 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9687
9688         * c-opts.c (c_common_post_options): Fix a typo in comments.
9689
9690 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
9691
9692         PR middle-end/38615
9693         * gimplify.c (gimplify_init_constructor): Fix promotion of const
9694         variables to static.
9695         * doc/invoke.texi (-fmerge-all-constants): Update description.
9696
9697 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
9698
9699         PR target/38931
9700         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9701         (*movdi_1_rex64): Use type "mmx" for alternative 5.
9702
9703 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
9704
9705         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9706         a word boundary.
9707         (LOCAL_ALIGNMENT): Similarly.
9708
9709 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9710             Joseph Myers  <joseph@codesourcery.com>
9711
9712         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9713         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9714         * config/arm/arm-tune.md: Regenerate.
9715         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9716         -march=iwmmxt2.
9717
9718 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9719
9720         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9721         version number to five.
9722
9723 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
9724
9725         PR c++/38930
9726         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
9727         * c-common.c (set_underlying_type): Likewise.
9728         (is_typedef_decl ): Likewise
9729         * tree.h: Likewise
9730         (set_underlying_type): Likewise.
9731         (is_typedef_type): Likewise.
9732
9733 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9734
9735         PR middle-end/38587
9736         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9737         crossing setjmps.
9738
9739 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9740
9741         PR bootstrap/37660
9742         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
9743         (LIBGCC_SPEC):  Don't define.
9744         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
9745
9746 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
9747
9748         PR rtl-optimization/38879
9749         * alias.c (base_alias_check): Unaligned access via AND address can
9750         alias all surrounding object types except those with sizes equal
9751         or wider than the size of unaligned access.
9752
9753 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
9754
9755         PR c++/26693
9756         * c-decl.c (clone_underlying_type): Move this ...
9757         * c-common.c (set_underlying_type): ... here.
9758         Also, make sure the function properly sets TYPE_STUB_DECL() on
9759         the newly created typedef variant type.
9760         (is_typedef_decl ): New entry point.
9761         * tree.h: Added a new member member_types_needing_access_check to
9762         struct tree_decl_non_common.
9763         (set_underlying_type): New entry point.
9764         (is_typedef_type): Likewise.
9765
9766 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
9767
9768         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9769         Check whether two instructions have memory references that
9770         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
9771         are helper functions for traversing.
9772         * alias.h (insn_alias_sets_confilict_p): New prototypes.
9773         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9774         not to draw dependency edge for instructions with non-conflicting
9775         alias sets.
9776
9777 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
9778
9779         PR other/38758
9780         * longlong.h: Update copyright years.  Use soft-fp license notice.
9781         Sync __clz_tab declaration with glibc.
9782
9783 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
9784
9785         PR target/30687
9786         * doc/extend.texi (syscall_linkage): New.
9787         (version_id): Modify.
9788
9789 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9790             Richard Guenther  <rguenther@suse.de>
9791
9792         PR tree-optimization/38747
9793         PR tree-optimization/38748
9794         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9795         conversion if the base address is an indirect reference and the
9796         aliasing sets could cause issues.
9797
9798 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9799
9800         * common.opt (fgraphite, fgraphite-identity): Add comment for
9801         explaining why these options are not documented.
9802
9803 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9804
9805         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9806         gimple_call_lhs is NULL.
9807
9808 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
9809
9810         PR target/38868
9811         * emit-rtl.c (adjust_address_1): Make sure memref is never
9812         overwritten.
9813
9814 2009-01-20  Ben Elliston  <bje@au.ibm.com>
9815
9816         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9817         const qualifier from arg parameter. Remove unnecessary cast to char *.
9818         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9819         const qualifier from arg 2.
9820
9821 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9822
9823         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
9824
9825 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
9826
9827         PR c/38869
9828         * rtl.h (reinit_regs): New prototype.
9829         * regclass.c: Include ira.h.
9830         (reinit_regs): New.
9831         * Makefile.in (regclass.o): Add ira.h.
9832         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9833
9834 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9835
9836         PR target/38736
9837         * c-common.c (handle_aligned_attribute): Use
9838         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9839         default alignment value.
9840
9841         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9842
9843         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9844         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9845
9846         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
9847         __BIGGEST_ALIGNMENT__.
9848
9849         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9850
9851 2009-01-18  Richard Guenther  <rguenther@suse.de>
9852
9853         PR tree-optimization/38819
9854         * tree-flow.h (operation_could_trap_helper_p): Declare.
9855         * tree-eh.c (operation_could_trap_helper_p): Export.
9856         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9857         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9858         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9859         are about to insert a possibly trapping instruction and fail
9860         in this case.
9861
9862 2009-01-18  Andreas Schwab  <schwab@suse.de>
9863
9864         * doc/install.texi (Configuration): Remove obsolete paragraph
9865         about use of --with-gnu-ld with --with-gnu-as.
9866
9867 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
9868
9869         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9870         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9871         Follow spelling conventions.
9872
9873 2009-01-18  Ben Elliston  <bje@au.ibm.com>
9874
9875         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9876         C++ warning about implicit conversion from void * to struct
9877         bitmap_head_def *.
9878         (bitmap_obstack_free): Likewise for bitmap_element *.
9879         * Makefile.in (bitmap.o-warn): Remove.
9880
9881 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9882
9883         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
9884
9885 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
9886             Tobias Grosser  <tobi.grosser@amd.com>
9887
9888         * graphite.c (graphite_trans_scop_block): Do not block single
9889         nested loops.
9890
9891 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
9892
9893         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9894         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9895         test with assertion.
9896
9897 2009-01-16  Richard Guenther  <rguenther@suse.de>
9898
9899         PR tree-optimization/38835
9900         PR middle-end/36227
9901         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9902         and INT + PTR -> (INT)(PTR p+ INT) folding.
9903         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9904
9905 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
9906
9907         PR target/38554
9908         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9909         the subreg from a lowpart subreg if it is also casting the value.
9910
9911 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9912             Tobias Grosser  <tobi.grosser@amd.com>
9913
9914         * graphite.c (compare_prefix_loops): New.
9915         (build_scop_canonical_schedules): Rewritten.
9916         (graphite_transform_loops): Move build_scop_canonical_schedules
9917         after build_scop_iteration_domain.
9918
9919 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9920             Tobias Grosser  <tobi.grosser@amd.com>
9921
9922         * graphite.c (add_conditions_to_domain): Add the loops to
9923         the dimension of the iteration domain.  Do copy the domain
9924         only when it exists.
9925         (build_scop_conditions_1): Do not call add_conditions_to_domain.
9926         (add_conditions_to_constraints): New.
9927         (can_generate_code_stmt, can_generate_code): Removed.
9928         (gloog): Do not call can_generate_code.
9929         (graphite_transform_loops): Call add_conditions_to_constraints
9930         after building the iteration domain.
9931
9932 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
9933
9934         PR tree-optimization/38789
9935         * tree-ssa-threadedge.c
9936         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9937         __builtin_constant_p.
9938
9939 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
9940
9941         * dce.c (delete_unmarked_insns): Reversed the order that insns are
9942         examined before deleting them.
9943
9944 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
9945
9946         * function.c (aggregate_value_p): Correctly extract the function
9947         type from CALL_EXPR_FN lookup.
9948
9949 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9950
9951         * config/picochip/picochip.c (picochip_override_options): Revert
9952         CFI asm flag disable commited previously.
9953
9954 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9955             Tobias Grosser  <tobi.grosser@amd.com>
9956             Jan Sjodin  <jan.sjodin@amd.com>
9957
9958         * graphite.c (scan_tree_for_params): On substractions negate
9959         all the coefficients of the term.
9960         (clast_to_gcc_expression_red): New.  Handle reduction expressions
9961         of more than two operands.
9962         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9963         (get_vdef_before_scop): Handle also the case of default definitions.
9964
9965 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
9966
9967         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9968         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9969         Also use them when walking CALL_INSN_FUNCTION_USAGE.
9970
9971 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
9972             Joey Ye  <joey.ye@intel.com>
9973
9974         PR middle-end/37843
9975         * cfgexpand.c (expand_stack_alignment): Don't update stack
9976         boundary nor check incoming stack boundary here.
9977         (gimple_expand_cfg): Update stack boundary and check incoming
9978         stack boundary here.
9979
9980 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
9981
9982         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
9983
9984 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
9985
9986         PR rtl-optimization/38245
9987         * calls.c (expand_call): Add stack arguments to
9988         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9989         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9990         in regs and partially in memory or BLKmode arguments.
9991         (emit_library_call_value_1): Add stack arguments to
9992         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9993         ACCUMULATE_OUTGOING_ARGS).
9994         * dce.c: Include tm_p.h.
9995         (find_call_stack_args): New function.
9996         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
9997         argument.
9998         (mark_insn): Call find_call_stack_args for CALL_Ps.
9999         (prescan_insns_for_dce): Walk insns backwards in bb rather than
10000         forwards.  Allocate and free arg_stores bitmap if needed, pass it
10001         down to deletable_insn_p, don't mark stores set in arg_stores
10002         bitmap, clear the bitmap at the beginning of each bb.
10003         * Makefile.in (dce.o): Depend on $(TM_P_H).
10004
10005 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
10006
10007         PR target/22599
10008         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10009         to make sure the insn is a conditional test (bug 22599).  Reformat a
10010         few long lines.
10011
10012 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
10013
10014         PR middle-end/38431
10015         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10016         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10017         (gloog): Do not call cleanup_tree_cfg.
10018         (graphite_transform_loops): Call cleanup_tree_cfg after all
10019         scops have been code generated.
10020
10021 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
10022         * doc/gty.texi (Invoking the garbage collector): Added new node
10023         and section documenting ggc_collect.
10024
10025 2009-01-14  Richard Guenther  <rguenther@suse.de>
10026
10027         PR tree-optimization/38826
10028         PR middle-end/38477
10029         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10030         initialization notes only if we actually emitted a warning.
10031         (intra_create_variable_infos): Add constraints for a result decl
10032         that is passed by hidden reference.
10033         (build_pred_graph): Mark all related variables non-direct on
10034         address-taking.
10035
10036 2009-01-14  Nick Clifton  <nickc@redhat.com>
10037
10038         * ira-conflicts.c: Include addresses.h for the definition of
10039         base_reg_class.
10040         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10041         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
10042
10043 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
10044
10045         PR target/38811
10046         * Makefile.in (ira-lives.o): Add except.h.
10047
10048         * ira-lives.c: Include except.h.
10049         (process_bb_node_lives): Process can_throw_internal.
10050
10051 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
10052
10053         PR rtl-optimization/38774
10054         * combine.c (simplify_set): When undoing cc_use change, don't do
10055         PUT_CODE on the newly created comparison, but instead put back the
10056         old comparison.
10057
10058 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
10059
10060         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10061         values.  Remove duplicate arm8 entry.
10062
10063 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
10064
10065         PR tree-optimization/38786
10066         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10067         the SSA_NAME case of expand_scalar_variables_expr.
10068         Set the type of an expression to the type of its assign statement.
10069         (expand_scalar_variables_expr): Also gather the scalar computation
10070         used to index the memory access.  Do not pass loop_p.
10071         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
10072         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
10073         the gimple_stmt_iterator where it inserts new code.
10074         Do not pass loop_p.
10075         (copy_bb_and_scalar_dependences): Do not pass loop_p.
10076         (translate_clast): Update call to copy_bb_and_scalar_dependences.
10077
10078 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
10079
10080         * graphite.h (debug_value): Removed.
10081         * graphite.c (debug_value): Removed.
10082
10083 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
10084
10085         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10086         ldrd/strd with two 32-bit instructions.
10087
10088 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
10089
10090         * config/arm/arm.c (struct processors): Pass for speed down into
10091         cost helper functions.
10092         (const_ok_for_op): Handle COMPARE and inequality nodes.
10093         (arm_rtx_costs_1): Rewrite.
10094         (arm_size_rtx_costs): Update prototype.
10095         (arm_rtx_costs): Pass speed down to helper functions.
10096         (arm_slowmul_rtx_costs): Rework cost calculations.
10097         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10098         (arm_9e_rtx_costs): Likewise.
10099
10100 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
10101
10102         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
10103         relocations of local symbols wider than UNITS_PER_WORD are not valid.
10104         (alpha_legitimize_address): Do not split local symbols wider than
10105         UNITS_PER_WORD into HIGH/LO_SUM parts.
10106
10107 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
10108
10109         PR bootstrap/38580
10110         * gcc.c (process_command): Replace call to execvp with calls
10111         to pex_one and exit.
10112
10113 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
10114
10115         PR target/29141
10116         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10117         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10118         variant for devices with 3-byte PC.
10119         (__tablejump_elpm__): New.
10120
10121 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10122
10123         PR c/32041
10124         * c-parser.c (c_parser_postfix_expression): Allow `->' in
10125         offsetof member-designator, handle it as `[0].'.
10126
10127 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10128
10129         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10130         function when not using named sections on targets with named sections
10131         if branch distance is less than 262132.
10132
10133 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
10134
10135         * combine.c (combine_instructions):  Recompute
10136         optimize_this_for_speed_p  for each BB in the main combine loop.
10137
10138 2009-01-12  Tomas Bily  <tbily@suse.cz>
10139
10140         PR middlend/38385
10141         * tree-loop-distribution.c (prop_phis): New function.
10142         (generate_builtin): Call prop_phis.
10143         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
10144
10145 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10146
10147         PR tree-optimization/38807
10148         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10149         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10150
10151 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
10152
10153         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10154         subreg of op0 to the original op0.
10155
10156 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
10157
10158         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
10159
10160 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
10161
10162         PR debug/7055
10163         * mips-tfile.c (parse_def): Fix parsing of def strings
10164         starting with digits.
10165
10166 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
10167
10168         PR target/38695
10169         * config/arm/arm.c (arm_is_long_call_p): Don't call
10170         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
10171
10172 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
10173
10174         * regrename.c (regrename_optimize): Fix dumping.
10175         (find_oldest_value_reg): Preserve REG_POINTER.
10176         (copy_hardreg_forward_1): Likewise.
10177
10178 2009-01-09  Diego Novillo  <dnovillo@google.com>
10179
10180         * gimple.h (struct gimple_statement_base) <uid>: Document
10181         the restrictions on its use.
10182         (gimple_uid): Tidy.
10183         (gimple_set_uid): Tidy.
10184
10185 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10186
10187         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
10188         zero guard even if align_bytes != 0 and count is smaller than
10189         size_needed.
10190
10191 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
10192
10193         PR rtl-optimization/38495
10194         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
10195         (add_range_and_copies_from_move_list): Print all added ranges.
10196         Add ranges to memory optimized destination.
10197
10198 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10199
10200         PR target/38686
10201         PR target/38708
10202         * config/i386/i386.c (override_options): Reject
10203         -mstringop-strategy=rep_8byte with -m32.
10204         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
10205         to 1.  Do count comparison against epilogue_size_needed at compile
10206         time even when count_exp was constant forced into register.  For
10207         size_needed don't jump to epilogue, instead just avoid aligning
10208         and invoke the body algorithm.  If need_zero_guard, add zero guard
10209         even if count is non-zero, but smaller than size_needed + number of
10210         bytes that could be stored for alignment.
10211         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
10212         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
10213         but smaller than size_needed + number of bytes that could be stored
10214         for alignment.  Compare size_needed with epilogue_size_needed instead
10215         of desired_align - align, don't adjust size_needed, pass
10216         epilogue_size_needed to the epilogue expanders.
10217
10218         PR c/35742
10219         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
10220
10221 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10222
10223         * pa.c (last_address): Change to unsigned.
10224         (update_total_code_bytes): Change argument to unsigned.  Don't
10225         check if insn addresses are set.
10226         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
10227         addresses are not set.
10228         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
10229
10230 2009-01-09  Nick Clifton  <nickc@redhat.com>
10231
10232         * config/sh/symbian.c: Replace uses of DECL_INLINE with
10233         DECL_DECLARED_INLINE_P.
10234
10235 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10236
10237         PR middle-end/38347
10238         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
10239         GET_MODE (op0) in operand_subword_force calls.
10240
10241         PR middle-end/38771
10242         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
10243         fold_convert arg0 operands to TREE_TYPE (op0) first.
10244
10245 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
10246
10247         * params.def (ira-max-conflict-table-size): Decrease default value
10248         to 1000.
10249
10250 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
10251
10252         PR tree-optimization/37031
10253         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
10254         on parameter_set.
10255         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
10256         allocate it using gc instead of heap, use VEC_quick_push instead of
10257         VEC_safe_push.
10258         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
10259         instead of heap, use VEC_quick_push instead of VEC_safe_push.
10260         * tree-data-ref.h (struct access_matrix): Change matrix to gc
10261         allocated vector from heap allocated.
10262         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
10263         * tree-loop-linear.c (linear_transform_loops): Allocate nest
10264         vector only after perfect_loop_nest_depth call.
10265
10266 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
10267             Jan Sjodin  <jan.sjodin@amd.com>
10268
10269         PR tree-optimization/38559
10270         * graphite.c (debug_value, copy_constraint,
10271         swap_constraint_variables, scale_constraint_variable, ): New.
10272         (get_lower_bound, get_upper_bound): Removed.
10273         (graphite_trans_bb_strip_mine): Clean up this code that works
10274         only for constant number of iterations.  Fully copy upper and
10275         lower bound constraints, not only the constant part of them.
10276         * graphite.h (debug_value): Declared.
10277
10278 2009-01-08  Ira Rosen  <irar@il.ibm.com>
10279
10280         PR tree-optimization/37194
10281         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
10282         Don't add the cost of cost model guard in prologue to scalar
10283         outside cost in case of known number of iterations.
10284
10285 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10286             Alan Modra  <amodra@bigpond.net.au>
10287
10288         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
10289         non-word-aligned REG+CONST addressing.
10290
10291 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10292
10293         PR target/38706
10294         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
10295         free_after_compilation when outputting a thunk.
10296         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
10297         Do not call free_after_compilation here.
10298
10299 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10300
10301         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
10302         (ix86_valid_target_attribute_inner_p): Ditto.
10303
10304 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
10305
10306         PR tree-optimization/38492
10307         PR tree-optimization/38498
10308         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
10309         * tree-chrec.h (scev_is_linear_expression): Declared.
10310         * graphite.c (graphite_cannot_represent_loop_niter): New.
10311         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
10312         (graphite_loop_normal_form): Use gcc_assert.
10313         (scan_tree_for_params): Use CASE_CONVERT.
10314         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
10315         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
10316         Use gcc_assert.  Discard scops that contain unhandled cases.
10317         (build_scop_conditions): Return a boolean status for unhandled cases.
10318         (strip_mine_profitable_p): Print the loop number, not its depth.
10319         (is_interchange_valid): Pass the depth of the loop nest, don't
10320         recompute it wrongly.
10321         (graphite_trans_bb_block): Same.
10322         (graphite_trans_bb_block): Print tentative of loop blocking.
10323         (graphite_trans_scop_block): Do not print that the loop has been
10324         blocked.
10325         (graphite_transform_loops): Do not handle scops that contain condition
10326         scalar phi nodes.
10327
10328 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10329
10330         AVX Programming Reference (December, 2008)
10331         * config/i386/avxintrin.h (_mm256_stream_si256): New.
10332         (_mm256_stream_pd): Likewise.
10333         (_mm256_stream_ps): Likewise.
10334
10335         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
10336         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
10337         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
10338         (bdesc_special_args): Add __builtin_ia32_movntdq256,
10339         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
10340         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
10341         (ix86_expand_special_args_builtin): Likewise.
10342
10343         * config/i386/sse.md (AVXMODEDI): New.
10344         (avx_movnt<mode>): Likewise.
10345         (avx_movnt<mode>): Likewise.
10346         (<sse>_movnt<mode>): Remove AVX support.
10347         (sse2_movntv2di): Likewise.
10348
10349 2009-01-07  Richard Guenther  <rguenther@suse.de>
10350
10351         PR middle-end/38751
10352         * fold-const.c (extract_muldiv): Remove obsolete comment.
10353         (fold_plusminus_mult_expr): Undo MINUS_EXPR
10354         to PLUS_EXPR canonicalization for the canonicalization.
10355
10356 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
10357
10358         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
10359         hosted cross-compilers generating less efficient code.
10360
10361 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10362
10363         * function.h (rtl_data): Add a dbr_scheduled_p field.
10364         * reorg.c (dbr_schedule): Set it.
10365         (gate_handle_delay_slots): Check it.
10366         * config/mips/mips.c (mips_base_delayed_branch): Delete.
10367         (mips_reorg): Check flag_delayed_branch instead of
10368         mips_base_delayed_branch.
10369         (mips_override_options): Don't set mips_base_delayed_branch
10370         or flag_delayed_branch.
10371
10372 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10373
10374         PR rtl-optimization/38426.
10375         * ira.c (ira): Set current_function_is_leaf earlier.
10376
10377 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
10378
10379         PR rtl-optimization/38722
10380         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10381         too early, only set a flag and modify after last possible
10382         undo_all point.
10383
10384 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
10385
10386         PR c/34252
10387         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10388         * real.c (decimal_single_format): Correct values of emin and emax.
10389         (decimal_double_format): Ditto.
10390         (decimal_quad_format): Ditto.
10391         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10392         computation of DECnn_MIN and DECnn_MAX for corrected values of
10393         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
10394         __DECnn_MIN__, and adjust its computation for the corrected value
10395         of emin.
10396
10397 2009-01-06  Jan Hubicka  <jh@suse.cz>
10398
10399         PR target/38744
10400         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
10401
10402 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10403
10404         * doc/contrib.texi (Contributors): Slightly adjust the end note.
10405         Add Robert Clark to the list of testers.
10406
10407 2009-01-06  Jan Hubicka  <jh@suse.cz>
10408             Kai Tietz  <kai.tietz@onevision.com>
10409
10410         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10411         * config/i386/i386.c (ix86_expand_call): Add clobbers.
10412
10413 2009-01-06  Jan Hubicka  <jh@suse.cz>
10414             Kai Tietz  <kai.tietz@onevision.com>
10415
10416         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10417         for w64 ABI.
10418         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
10419         (ix86_nsaved_regs): Count only general purpose regs.
10420         (ix86_nsaved_sseregs): New.
10421         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10422         to 16 for w64; compute padding and size of sse reg save area.
10423         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10424         general purpose regs.
10425         (ix86_emit_save_sse_regs_using_mov): New.
10426         (ix86_expand_prologue): Save SSE regs if needed.
10427         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10428         (ix86_emit_restore_sse_regs_using_mov): New.
10429         (ix86_expand_epilogue): Save SSE regs if needed.
10430
10431 2009-01-06  Jan Hubicka  <jh@suse.cz>
10432             Kai Tietz  <kai.tietz@onevision.com>
10433
10434         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10435         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10436         functions when accumulate outgoing args is off.
10437
10438 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10439
10440         PR bootstrap/38742
10441         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10442         before using pseudos_have_intersected_live_ranges_p.
10443
10444         * ira-int.h (ira_assert): Always define.
10445
10446 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10447
10448         AVX Programming Reference (December, 2008)
10449         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10450         (_mm256_permute2_pd): Likewise.
10451         (_mm_permute2_ps): Likewise.
10452         (_mm256_permute2_ps): Likewise.
10453         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10454         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10455
10456         * config/i386/i386.c (ix86_builtins): Remove
10457         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10458         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10459         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10460         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10461         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10462         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10463         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10464         __builtin_ia32_vpermil2ps256.
10465         (ix86_init_mmx_sse_builtins): Updated.
10466         (ix86_expand_args_builtin): Likewise.
10467
10468 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10469
10470         * pa.c (output_call): Relocate non-jump insns in the delay slot of
10471         long absolute calls when generating PA 2.0 code.
10472
10473 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
10474
10475         PR rtl-optimization/38583
10476         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10477
10478         * params.def (ira-max-conflict-table-size): New.
10479
10480         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
10481
10482         * ira.h (ira_conflicts_p): New external definition.
10483
10484         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10485         table.  Report this.  Return result of building.
10486         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
10487         building conflict table.
10488
10489         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
10490         (ira_color): Use ira_conflicts_p.
10491
10492         * global.c: Include ira.h.
10493         (pseudo_for_reload_consideration_p, build_insn_chain): Use
10494         ira_conflicts_p.
10495
10496         * Makefile.in (global.o): Add ira.h.
10497
10498         * ira-build.c (mark_all_loops_for_removal,
10499         propagate_some_info_from_allocno): New.
10500         (remove_unnecessary_allocnos): Call
10501         propagate_some_info_from_allocno.
10502         (remove_low_level_allocnos): New.
10503         (remove_unnecessary_regions): Add parameter.  Call
10504         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
10505         parameter to remove_unnecessary_regions.
10506         (ira_build): Remove all regions but root if the conflict table was
10507         not built.  Update conflict hard regs for allocnos crossing calls.
10508
10509         * ira.c (ira_conflicts_p): New global.
10510         (ira): Define and use ira_conflicts_p.
10511
10512         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10513         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
10514         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
10515
10516 2009-01-06  Ben Elliston  <bje@au.ibm.com>
10517
10518         * gengtype-lex.l (YY_NO_INPUT): Define.
10519
10520 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10521
10522         PR c/34911
10523         * c-common.c (handle_vector_size_attribute): Also reject
10524         BOOLEAN_TYPE types.
10525
10526 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
10527
10528         PR tree-optimization/38492
10529         * graphite.c (rename_map_elt, debug_rename_elt,
10530         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10531         rename_map_elt_info, eq_rename_map_elts,
10532         get_new_name_from_old_name, bb_in_sese_p): Moved around.
10533         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10534         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10535         (sese_build_livein_liveouts): New.
10536         (new_sese, free_sese): New.
10537         (new_scop): Call new_sese.
10538         (free_scop): Call free_sese.
10539         (rename_variables_from_edge, rename_phis_end_scop): Removed.
10540         (register_old_new_names): Renamed register_old_and_new_names.
10541         (register_scop_liveout_renames, add_loop_exit_phis,
10542         insert_loop_close_phis, struct igp,
10543         default_liveout_before_guard, add_guard_exit_phis,
10544         insert_guard_phis, copy_renames): New.
10545         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10546         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10547         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10548         (scop_adjust_phis_for_liveouts): New.
10549         (gloog): Call scop_adjust_phis_for_liveouts.
10550
10551         * graphite.h (struct sese): Documented.  Added fields liveout,
10552         num_ver and livein.
10553         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10554         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10555         (struct scop): Added field liveout_renames.
10556         (SCOP_LIVEOUT_RENAMES): New.
10557
10558 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10559
10560         PR tree-optimization/38510
10561         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10562         (translate_clast): Call recompute_all_dominators before
10563         graphite_verify.
10564         (gloog): Call recompute_all_dominators before graphite_verify.
10565
10566 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10567             Jan Sjodin  <jan.sjodin@amd.com>
10568
10569         PR tree-optimization/38500
10570         * graphite.c (create_sese_edges): Call fix_loop_structure after
10571         splitting blocks.
10572
10573 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10574
10575         * config.gcc: Add m32r*-*-rtems*.
10576         * config/m32r/rtems.h: New file.
10577
10578 2009-01-05  Ben Elliston  <bje@au.ibm.com>
10579
10580         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10581         (.po.pox): Likewise.
10582         (po/gcc.pot): Likewise.
10583
10584 2009-01-04  David S. Miller  <davem@davemloft.net>
10585
10586         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10587         (STARTING_FRAME_OFFSET): Always set to zero.
10588
10589 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10590
10591         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10592         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10593         fixed-point types, and vectors of the same.
10594
10595 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10596
10597         * config/mips/sync.md (*mb_barrier): Rename to...
10598         (*memory_barrier): ...this.
10599
10600 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10601
10602         * doc/extend.texi (Function Attributes): Move @cindex after @item
10603         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
10604         and put in alphabetical order. Fix 'target' name and put in order.
10605         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10606         typos.
10607
10608 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
10609
10610         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10611         (memory_barrier): Expand as unspec instead of unspec_volatile.
10612         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10613         (*memory_barrier): Define as unspec instead of unspec_volatile.
10614         Use (match_dup 0) as input operand.
10615
10616         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10617         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10618         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
10619         scratch register.  Remove operand 1.
10620         (*stbar): Define as unspec instead of unspec_volatile.
10621         Use (match_dup 0) as input operand, remove (const_int 8).
10622         (*membar): Define as unspec instead of unspec_volatile.
10623         Use (match_dup 0) as input operand, remove input operand 2.
10624
10625         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10626         (memory_barrier): Expand as unspec instead of unspec_volatile.
10627         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10628         (*memory_barrier): Define as unspec instead of unspec_volatile.
10629         Use (match_dup 0) as input operand.
10630
10631         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10632         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10633         Set volatile flag on operand 0.
10634         (*memory_barrier): New insn pattern.
10635
10636         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10637         insn operands.
10638         (*memory_barrier): Use (match_dup 0) as input operand.
10639
10640         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10641         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10642         Set volatile flag on operand 0.
10643         (*mb_internal): New insn pattern.
10644
10645         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10646
10647 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10648
10649         PR middle-end/38586
10650         * function.c (struct temp_slot): Move to the section of the file
10651         that deals with temp slots.  Remove field 'address'.
10652         (temp_slot_address_table): New hash table of address -> temp slot.
10653         (struct temp_slot_address_entry): New struct, items for the table.
10654         (temp_slot_address_compute_hash, temp_slot_address_hash,
10655         temp_slot_address_eq, insert_temp_slot_address): Support functions
10656         for the new table.
10657         (find_temp_slot_from_address): Rewrite to use the new hash table.
10658         (remove_unused_temp_slot_addresses): Remove addresses of temp
10659         slots that have been made available.
10660         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10661         worker function for remove_unused_temp_slot_addresses.
10662         (assign_stack_temp_for_type): Don't clear the temp slot address list.
10663         Add the temp slot address to the address -> temp slot map.
10664         (update_temp_slot_address): Update via insert_temp_slot_address.
10665         (free_temp_slots): Call remove_unused_temp_slot_addresses.
10666         (pop_temp_slots): Likewise.
10667         (init_temp_slots): Allocate the address -> temp slot map, or empty
10668         the map if it is already allocated.
10669         (prepare_function_start): Initialize temp slot processing.
10670
10671 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10672
10673         PR middle-end/38584
10674         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10675         Calculate the size of all stack vars assuming no packing of stack
10676         vars will happen, replacing a quadratic algorithm with a linear one.
10677
10678 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10679
10680         PR target/38707
10681         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10682         can't be used.
10683
10684 2009-01-03  Diego Novillo  <dnovillo@google.com>
10685
10686         * doc/contrib.texi: Update contributions.
10687
10688 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10689
10690         PR c++/38705
10691         * builtins.c (fold_builtin_memory_op): Give up if either operand
10692         is volatile.  Set srctype or desttype to non-qualified version
10693         of the other type.
10694
10695         PR c/38700
10696         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10697         and FUNCTION_DECLs.
10698
10699 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
10700
10701         PR rtl-optimization/35805
10702         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10703         problem if fast dce is able to remove any instructions.
10704         * dce.c (dce_process_block): Fix dump message.
10705
10706 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
10707
10708         PR 33649
10709         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10710
10711 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
10712
10713         PR middle-end/38690
10714         * tree-flow.h (op_code_prio, op_prio): New prototypes.
10715         * tree-pretty-print.c (op_code_prio): New function.
10716         (op_prio): No longer static.  Use op_code_prio.
10717         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10718         Use op_prio and op_code_prio to determine if () should be
10719         printed around operand(s) or not.
10720
10721         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10722         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10723         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10724         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10725         pp_character instead of pp_string for single letter printing.
10726
10727 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10728
10729         * doc/extend.texi: Fix '#pragma GCC option' typo.
10730
10731 2009-01-02  Richard Guenther  <rguenther@suse.de>
10732
10733         * doc/install.texi (--enable-checking): Mention different
10734         default for stage1.
10735         (--enable-stage1-checking): Document.
10736
10737 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
10738
10739         PR middle-end/30142
10740         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
10741         case to be an error.
10742
10743 2009-01-02  Ben Elliston  <bje@au.ibm.com>
10744
10745         * config/fp-bit.h (pack_d): Constify argument.
10746         * config/fp-bit.c (makenan): Constify return type. Remove casts.
10747         (isnan): Constify argument.
10748         (isinf): Likewise.
10749         (iszero): Likewise.
10750         (pack_d): Likewise.
10751         (_fpadd_parts): Constify return type.
10752         (_fpmul_parts): Likewise.
10753         (_fpdiv_parts): Likewise.
10754
10755 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
10756
10757         PR c/36489
10758         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
10759         warn about overwriting initializer with side-effects or
10760         -Woverride-init if !IMPLICIT.
10761         (output_init_element): Likewise.  Pass IMPLICIT down to
10762         add_pending_init.
10763         (process_init_element): Add IMPLICIT argument.  Pass it down
10764         to output_init_element.
10765         (push_init_element, pop_init_level, set_designator): Adjust
10766         process_init_element callers.
10767         (set_nonincremental_init, set_nonincremental_init_from_string):
10768         Adjust add_pending_init callers.
10769         (output_pending_init_elements): Adjust output_init_element callers.
10770         * c-tree.h (process_init_element): Adjust prototype.
10771         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10772         process_init_element callers.
10773
10774 \f
10775 Copyright (C) 2009 Free Software Foundation, Inc.
10776
10777 Copying and distribution of this file, with or without modification,
10778 are permitted in any medium without royalty provided the copyright
10779 notice and this notice are preserved.