OSDN Git Service

* g++.dg/eh/nested-try.C: New test.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-09  Jan Hubicka  <jh@suse.cz>
2
3         PR middle-end/40043
4         * except.c (copy_eh_region): Always set prev_try.
5         (redirect_eh_edge_to_label): Find outer try.
6         (foreach_reachable_handler): When looking for prev try
7         handle case where previous try is not going to be taken.
8
9 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
10
11         PR tree-optimization/40049
12         * tree-vect-stmts.c (vectorizable_operation): If the machine has
13         only vector/vector shifts, convert the type of the constant to the
14         appropriate type to avoid building incorrect trees, which
15         eventually have problems with garbage collection.
16
17 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
18
19         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
20         -1 for complex floating-point types if honoring signed zeros.
21
22 2009-05-08  Jan Hubicka  <jh@suse.cz>
23
24         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
25         argument; handle correctly when profile is absent.
26         (build_cgraph_edges): Update.
27         (rebuild_cgraph_edges): Update.
28         * cgraph.c: Do not include varray.h.
29         (cgraph_set_call_stmt_including_clones): New function.
30         (cgraph_create_edge_including_clones): Likewise
31         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
32         (cgraph_update_edges_for_call_stmt): Handle clones.
33         (cgraph_remove_node): Handle clone tree.
34         (cgraph_remove_node_and_inline_clones): New function.
35         (dump_cgraph_node): Dump clone tree.
36         (cgraph_clone_node): Handle clone tree.
37         (clone_function_name): Bring here from tree-inline.c.
38         (cgraph_create_virtual_clone): New function.
39         * cgraph.h (ipa_replace_map): Move here from ipa.h.
40         (cgraph_clone_info): New function.
41         (strut cgraph_node): Add clone_info and new clone tree pointers.
42         (cgraph_remove_node_and_inline_clones,
43         cgraph_set_call_stmt_including_clones,
44         cgraph_create_edge_including_clones,
45         cgraph_create_virtual_clone): Declare.
46         (cgraph_function_versioning): Use VEC argument.
47         (compute_call_stmt_bb_frequency): Update prototype.
48         (cgraph_materialize_all_clones): New function.
49         * ipa-cp.c (ipcp_update_cloned_node): Remove.
50         (ipcp_create_replace_map): Update to VECtors.
51         (ipcp_update_callgraph): Use virtual clones.
52         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
53         (ipcp_update_profiling): Do not update local profiling.
54         (ipcp_insert_stage): Use VECtors and virtual clones.
55         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
56         (clone_of_p): New function.
57         (cgraph_preserve_function_body_p): Use clone tree.
58         (cgraph_optimize): Materialize clones.
59         (cgraph_function_versioning): Update for VECtors.
60         (save_inline_function_body): Use clone tree.
61         (cgraph_materialize_clone): New function.
62         (cgraph_materialize_all_clones): Likewise.
63         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
64         * ipa.c: Include gimple.h.
65         (cgraph_remove_unreachable_nodes): Use clone tree.
66         * ipa-prop.c (ipa_note_param_call): Update call to
67         compute_call_stmt_bb_frequencycall.
68         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
69         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
70         (copy_bb): Handle updating of clone tree; add new edge when new call
71         appears.
72         (expand_call_inline): Be strict about every call having edge.
73         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
74         (delete_unreachable_blocks_update_callgraph): New function.
75         (tree_function_versioning): Use VECtors; always remove unreachable
76         blocks and fold conditionals.
77         * tree-inline.h: Do not include varray.h.
78         (tree_function_versioning): Remove.
79         * Makefile.in (GTFILES): Remove tree-inline.c
80         * passes.c (do_per_function): Do only functions having body.
81         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
82         tree.
83
84 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
85             Andrew Morrow  <acm@google.com>
86
87         PR c/36892
88         * c-common.c (c_common_attribute_table): Permit deprecated
89         attribute to take an optional argument.
90         (handle_deprecated_attribute): If the optional argument to
91         __attribute__((deprecated)) is not a string ignore the attribute
92         and emit a warning.
93
94         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
95         * c-typeck.c (build_component_ref): Likewise.
96         (build_external_ref): Likewise.
97
98         * toplev.c (warn_deprecated_use): Add an attribute argument.
99         Emit the message associated with __attribute__((deprecated)).
100
101         * toplev.h (warn_deprecated_use): Updated.
102
103         * doc/extend.texi: Document new optional parameter to
104         __attribute__((deprecated))
105
106 2009-05-08  Michael Eager <eager@eagercon.com>
107
108         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
109         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
110
111 2009-05-08  Richard Guenther  <rguenther@suse.de>
112
113         PR tree-optimization/40062
114         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
115         Avoid exponential behavior.
116
117 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
118
119         PR rtl-optimization/33928
120         PR 26854
121         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
122         process_uses, build_single_def_use_links): New.
123         (update_df): Update use_def_ref.
124         (forward_propagate_into): Use get_def_for_use instead of use-def
125         chains.
126         (fwprop_init): Call build_single_def_use_links and let it initialize
127         dataflow.
128         (fwprop_done): Free use_def_ref.
129         (fwprop_addr): Eliminate duplicate call to df_set_flags.
130         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
131         df_rd_simulate_one_insn): New.
132         (df_rd_bb_local_compute_process_def): Update head comment.
133         (df_chain_create_bb): Use the new RD simulation functions.
134         * df.h (df_rd_simulate_artificial_defs_at_top, 
135         df_rd_simulate_one_insn): New.
136         * opts.c (decode_options): Enable fwprop at -O1.
137         * doc/invoke.texi (-fforward-propagate): Document this.
138
139 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
140
141         PR c/24581
142         * c-typeck.c (build_binary_op): Handle arithmetic between one real
143         and one complex operand specially.
144         * tree-complex.c (some_nonzerop): Do not identify a real value as
145         zero if flag_signed_zeros.
146
147 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
148
149         PR rtl-optimization/33928
150         * loop-invariant.c (record_use): Fix && vs. || mishap.
151
152 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
153
154         PR rtl-optimization/33928
155         * loop-invariant.c (struct use): Add addr_use_p.
156         (struct def): Add n_addr_uses.
157         (struct invariant): Add cheap_address.
158         (create_new_invariant): Set cheap_address.
159         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
160         (record_uses): Pass df_ref to record_use.
161         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
162         used only as such.
163
164 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
165
166         * config/sh/sh.c: Do not include c-pragma.h.
167
168 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
169
170         * config/spu/spu.c: Remove include of c-common.h.
171
172 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
173
174         PR c/39037
175         * c-common.h (mark_valid_location_for_stdc_pragma,
176         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
177         clear_float_const_decimal64, float_const_decimal64_p): New.
178         * c.opt (Wunsuffixed-float-constants): New.
179         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
180         unsuffixed float constant, handle new warning.
181         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
182         * c-decl.c (c_scope): New flag float_const_decimal64.
183         (set_float_const_decimal64, clear_float_const_decimal64,
184         float_const_decimal64_p): New.
185         (push_scope): Set new flag.
186         * c-parser.c (c_parser_translation_unit): Mark when it's valid
187         to use STDC pragmas.
188         (c_parser_external_declaration): Ditto.
189         (c_parser_compound_statement_nostart): Ditto.
190         * c-pragma.c (valid_location_for_stdc_pragma,
191         mark_valid_location_for_stdc_pragma,
192         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
193         handle_pragma_float_const_decimal64): New.
194         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
195         * cp/semantics.c (valid_location_for_stdc_pragma_p,
196         set_float_const_decimal64, clear_float_const_decimal64,
197         float_const_decimal64_p): New dummy functions.
198         * doc/extend.texi (Decimal Float): Remove statement that the
199         pragma, and suffix for double constants, are not supported.
200         * doc/invoke.texi (Warning Options): List new option.
201         (-Wunsuffixed-float-constants): New.
202
203 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
204
205         * config/i386/i386.c: Do not include c-common.h.
206
207 2009-05-07  Mark Heffernan  <meheff@google.com>
208
209         * doc/invoke.texi (Debugging Options): Document change of debugging
210         dump location.
211         * opts.c (decode_options): Make dump_base_name relative to
212         aux_base_name directory.
213
214 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
215
216         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
217         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
218
219 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
220
221         * Makefile.in (install-plugin): Simplify a bit.
222
223 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
224
225         * Makefile.in (OBJS-common): Add regcprop.o.
226         (regcprop.o): New.
227         * timevar.def (TV_CPROP_REGISTERS): New.
228         * regrename.c (regrename_optimize): Return 0.
229         (rest_of_handle_regrename): Delete.
230         (pass_rename_registers): Point to regrename_optimize.
231         (struct value_data_entry, struct value_data, 
232         kill_value_one_regno, kill_value_regno, kill_value,
233         set_value_regno, init_value_data, kill_clobbered_value,
234         kill_set_value, kill_autoinc_value, copy_value,
235         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
236         replace_oldest_value_reg, replace_oldest_value_addr,
237         replace_oldest_value_mem, copyprop_hardreg_forward_1,
238         debug_value_data, validate_value_data): Move...
239         * regcprop.c: ... here.
240         (rest_of_handle_cprop): Delete.
241         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
242
243 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
244
245         PR middle-end/40057
246         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
247         GEN_INT for 1 << bitnum.
248         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
249         build_int_cst_type.
250
251 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
252
253         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
254         Remove wrong description of "nand" operation.
255
256 2009-05-06  Richard Guenther  <rguenther@suse.de>
257             Adam Nemet  <anemet@caviumnetworks.com>
258
259         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
260         comment.  Add that if LHS is not a gimple register, then RHS1 has
261         to be a single object (GIMPLE_SINGLE_RHS).
262
263 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
264
265         * expr.c (get_def_for_expr): Move it up in the file.
266         (store_field): When expanding a bit-field store, look at the
267         defining gimple stmt for the masking conversion.
268
269 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
270
271         PR middle-end/39986
272         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
273         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
274         32-bit memcpy into long.
275
276 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
277
278         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
279         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
280         new_reg_loc_descr.
281         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
282         instead of appending DW_OP_deref*.
283
284 2009-05-06  Michael Matz  <matz@suse.de>
285
286         PR middle-end/40021
287         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
288         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
289
290 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
291
292         * Makefile.in (install-plugin): Fix srcdir handling.
293
294 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
295
296         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
297         when processing for not_regs_needed bitmap.
298         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
299         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
300         handling it for rhs. 
301
302 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
303
304         * config/i386/i386.md (unnamed inc/dec peephole): Use
305         optimize_insn_for_size_p instead of optimize_size.
306         * config/i386/predicates.md (incdec_operand): Likewise.
307         (aligned_operand): Likewise.
308         * config/i386/sse.md (divv8sf3): Likewise.
309         (sqrtv8sf2): Likewise.
310
311 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
312
313         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
314
315         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
316
317 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
318
319         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
320         ssemodesuffixf2c with avxmodesuffixf2c.
321
322 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
323
324         PR c/40032
325         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
326
327 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
328
329         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
330         (struct tree_base): Adjust spacing for 8 bit boundaries.
331         (struct tree_decl_common): Add decl_by_reference_flag bit.
332         (DECL_BY_REFERENCE): Adjust.
333         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
334         print DECL_BY_REFERENCE bit.
335         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
336         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
337         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
338         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
339         unconditionally.
340
341         PR middle-end/39666
342         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
343         range of the type, but default label is missing, add it with one
344         of the existing labels instead of adding a new label for it.
345
346 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
347
348         * dwarf.h: Remove.
349
350 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
351
352         * Makefile.in (enable_plugin, plugin_includedir): New.
353         (install): Depend on install-plugin.
354         (PLUGIN_HEADERS): New.
355         (install-plugin): New.
356         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
357
358 2009-05-05  Richard Guenther  <rguenther@suse.de>
359
360         PR tree-optimization/40022
361         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
362         the only vuse.
363         (phivn_valid_p): Fix tuplification error, simplify.
364         (phiprop_insert_phi): Add dumps.
365         (propagate_with_phi): Simplify.
366
367 2009-05-05  Richard Guenther  <rguenther@suse.de>
368
369         PR middle-end/40023
370         * builtins.c (gimplify_va_arg_expr): Properly build the address.
371
372 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
373
374         * tree.h (strip_float_extensions): Remove duplicate declaration.
375         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
376         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
377         block_ultimate_origin): Rearrange the declarations line to match the
378         comment that indicates the .c file which the functions are defined.
379         (dwarf2out_*, set_decl_rtl): Add comment.
380         (get_base_address): Adjust comment.
381         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
382         declarations line and add comment.
383         (is_builtin_name): Add blank after function name, for clarity.
384
385 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
386
387         * attribs.c (decl_attributes): Use %qE for identifiers in
388         diagnostics.
389         * cgraphunit.c (verify_cgraph_node): Translate function names to
390         locale character set in diagnostics.
391         * coverage.c (get_coverage_counts): Use %qE for identifiers in
392         diagnostics.
393         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
394         Document that functions are named in UTF-8.
395         * expr.c (expand_expr_real_1): Translate function names to locale
396         character set in diagnostics.
397         * gimplify.c (omp_notice_variable, omp_is_private,
398         gimplify_scan_omp_clauses): Use %qE for identifiers in
399         diagnostics.
400         * langhooks.c (lhd_print_error_function): Translate function names
401         to locale character set.
402         * langhooks.h (decl_printable_name): Document that return value is
403         in internal character set.
404         * stmt.c: Include pretty-print.h
405         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
406         diagnostics.
407         (resolve_operand_name_1): Translate named operand name to locale
408         character set.
409         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
410         diagnostics.
411         * toplev.c (announce_function): Translate function names to locale
412         character set.
413         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
414         (default_tree_printer): Use pp_identifier or translate identifiers
415         to locale character set.  Mark "<anonymous>" for translation.
416         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
417         for identifiers in diagnostics.
418         * tree.c (handle_dll_attribute): Use %qE for identifiers in
419         diagnostics.
420         * varasm.c (output_constructor): Use %qE for identifiers in
421         diagnostics.
422
423 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
424
425         * configure.ac: use ` ` instead of $()
426         * configure: Regenerate.
427
428 2009-05-05  Ben Elliston  <bje@au.ibm.com>
429
430         * config/pa/linux-atomic.c: Eliminate conditional include of
431         errno.h on non-LP64 systems to simplify build requirements.
432
433 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
434
435         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
436         diagnostics.
437         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
438         and pass value to identifier_to_locale.
439         (warn_variable_length_array): Make name a tree.
440         (grokdeclarator): Separate diagnostic texts for named and unnamed
441         declarators.  Use %qE for named declarators.
442         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
443         diagnostics.
444         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
445         identifiers in diagnostics.
446         * c-typeck.c (push_member_name, start_init): Pass identifiers to
447         identifier_to_locale.  Mark "anonymous" strings for translation.
448
449 2009-05-04  Michael Eager <eager@eagercon.com>
450
451         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
452         address for DImode/DFmode only if double-precision FP regs.
453
454 2009-05-04  Michael Eager <eager@eagercon.com>
455
456         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
457         TARGET_SINGLE_FLOAT check.
458
459 2009-05-04  Michael Eager <eager@eagercon.com>
460
461         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
462
463 2009-05-04  Michael Eager <eager@eagercon.com>
464
465         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
466         * config/rs6000/t-xilinx: New
467
468 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
469
470         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
471         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
472         * gcc/explow.c (memory_address): Use target hook.
473         * gcc/targhooks.c (default_legitimize_address): New.
474         * gcc/targhooks.h (default_legitimize_address): New.
475         * gcc/target.h (legitimize_address): New.
476         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
477         (TARGET_INITIALIZER): Include it.
478         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
479
480         * config/bfin/bfin-protos.h (legitimize_address): Remove.
481         * config/bfin/bfin.c (legitimize_address): Remove.
482         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
483         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
484         Remove.
485         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
486         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
487
488         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
489         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
490         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
491         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
492         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
493         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
494         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
495         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
496         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
497         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
498         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
499         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
500         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
501         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
502         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
503         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
504         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
505         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
506         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
507         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
508         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
509         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
510         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
511
512         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
513         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
514         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
515         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
516         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
517         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
518         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
519         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
520         (thumb_legitimize_address): Delete.
521         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
522         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
523         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
524         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
525         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
526         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
527         Delete.
528         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
529         Delete.
530
531         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
532         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
533         * config/m32r/m32r.c (m32r_legitimize_address): New.
534         * config/m68k/m68k.c (m68k_legitimize_address): New.
535         * config/score/score.c (score_legitimize_address): Standardize.
536         * config/score/score3.c (score3_legitimize_address): Standardize.
537         * config/score/score3.h (score3_legitimize_address): Adjust.
538         * config/score/score7.c (score7_legitimize_address): Standardize.
539         * config/score/score7.h (score7_legitimize_address): Adjust.
540         * config/sh/sh.c (sh_legitimize_address): New.
541         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
542
543         * gcc/config/s390/s390.c (legitimize_address): Rename to...
544         (s390_legitimize_address): ... this.
545         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
546         (sparc_legitimize_address): ... this.
547         * gcc/config/i386/i386.c (legitimize_address): Rename to...
548         (ix86_legitimize_address): ... this.
549         * gcc/config/avr/avr.c (legitimize_address): Rename to...
550         (avr_legitimize_address): ... this.
551         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
552         (mn10300_legitimize_address): ... this.
553         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
554         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
555         (alpha_expand_mov): Adjust call.
556
557         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
558         * config/spu/spu.c (spu_legitimize_address): Likewise.
559         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
560         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
561
562 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
563
564         * intl.c (locale_encoding, locale_utf8): New.
565         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
566         * intl.h (locale_encoding, locale_utf8): Declare.
567         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
568         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
569         New.
570         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
571         argument.
572         (pp_tree_identifier): Define to call pp_base_tree_identifier.
573         (pp_base_tree_identifier): Declare as function.
574         (identifier_to_locale): Declare.
575         * Makefile.in (pretty-print.o): Update dependencies.
576         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
577
578 2009-05-04  Richard Guenther  <rguenther@suse.de>
579
580         PR middle-end/40015
581         * builtins.c (fold_builtin_memory_op): Do not decay to element
582         type if the size matches the whole array.
583
584 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
585
586         * expmed.c (synth_mult): When trying out a shift, pass the result
587         of a signed shift.
588
589 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
590
591         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
592         (shiftsub1_cost): New.
593         (init_expmed): Compute shiftsub1_cost.
594         (synth_mult): Optimize multiplications by constants of the form
595         -(2^^m-1) for some constant positive integer m.
596
597 2009-05-03  Richard Guenther  <rguenther@suse.de>
598
599         PR c/39983
600         * c-typeck.c (array_to_pointer_conversion): Do not built
601         ADDR_EXPRs of arrays of pointer-to-element type.
602         * c-gimplify.c (c_gimplify_expr): Revert change fixing
603         up wrong ADDR_EXPRs after-the-fact.
604         * c-common.c (strict_aliasing_warning): Strip pointer
605         conversions for obtaining the original type.
606         * builtins.c (fold_builtin_memset): Handle array types.
607         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
608         and array types
609
610 2009-05-03  Richard Guenther  <rguenther@suse.de>
611
612         PR middle-end/23329
613         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
614         Do not lose casts from array types with unknown extent to array
615         types with known extent.
616         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
617         alias set compatibility.
618
619 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
620
621         * flags.h (extra_warnings): Delete.
622         * toplev.c (process_options): Handle Wuninitialized here.
623         * opts.c (extra_warnings): Delete.
624         (set_Wextra): Delete.
625         (common_handle_option): -Wextra can be handled automatically.
626         * c-opts.c (c_common_handle_option): Delete obsolete code.
627         (c_common_post_options): Simplify comment.
628         * common.opt (W): Add Var.
629         (Wextra): Add Var.
630         (Wuninitialized): Initialize to -1.
631
632 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
633             Richard Guenther  <rguenther@suse.de>
634
635         * expr.c (get_def_for_expr): New function.
636         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
637         SSA rather than trees.
638         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
639         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
640         
641 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
642
643         * c-common.c (reswords): Add _Imaginary.
644         * c-common.c (enum rid): Add RID_IMAGINARY.
645
646 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
647
648         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
649         Patch by Richard Guenther.
650
651 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
652
653         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
654         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
655         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
656         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
657         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
658         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
659         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
660         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
661         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
662         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
663         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
664         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
665         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
666         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
667         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
668         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
669         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
670         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
671
672 2009-05-02  Richard Guenther  <rguenther@suse.de>
673
674         PR tree-optimization/39940
675         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
676         doing so.
677
678 2009-05-02  Richard Guenther  <rguenther@suse.de>
679
680         PR middle-end/40001
681         * tree-ssa.c (execute_update_addresses_taken): Properly check
682         if we can mark a variable DECL_GIMPLE_REG_P.
683         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
684         back to the end of the function.
685         (is_gimple_reg_type): Remove complex type special casing.
686         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
687         if not optimizing.
688
689 2009-05-02  Ben Elliston  <bje@au.ibm.com>
690
691         * doc/collect2.texi (Collect2): Document search path behaviour
692         when configured with --with-ld.
693
694 2009-05-02  Jan Hubicka  <jh@suse.cz>
695
696         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
697         parameter; update callers.
698         (coalesce_cost_edge): EH edges are costier because they needs
699         splitting even if not critical and even more costier when there are
700         multiple EH predecestors.
701
702 2009-05-02  Jan Hubicka  <jh@suse.cz>
703
704         * except.c (remove_eh_handler_and_replace): Handle updating after
705         removing TRY blocks.
706
707 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
708
709         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
710
711 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
712
713         * varasm.c: Do not include c-pragma.h.
714         * attribs.c: Do not incude c-common.h.
715
716 2009-05-01  Michael Matz  <matz@suse.de>
717
718         * calls.c (initialize_argument_information): Handle SSA names like
719         decls with a non MEM_P DECL_RTL.
720
721 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
722
723         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
724         * ipa-utils.c: Likewise.
725         * ipa-type-escape.c: Likewise.
726         * cgraphunit.c Do not include c-common.h.
727         * ipa-pure-const.c: Likewise.
728         * tree-if-conv.c: Likewise.
729         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
730         * ipa-struct-reorg.c: Likewise.
731         * tree-nomudflap.c: Likewise.
732         * tree-ssa-structalias.c: Likewise.
733
734 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
735
736         * store-motion.c: Many cleanups to make this pass a first-class
737         citizen instead of an appendix to gcse load motion.  Add TODO list
738         to make this pass faster/cleaner/better.
739
740         (struct ls_expr): Post gcse.c-split cleanups.
741         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
742         "stores" field to "avail_stores".
743         (pre_ldst_mems): Rename to store_motion_mems.
744         (pre_ldst_table): Rename to store_motion_mems_table.
745         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
746         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
747         (ldst_entry): Rename to st_expr_entry, update users.
748         (free_ldst_entry): Rename to free_st_expr_entry, update users.
749         (free_ldst_mems): Rename to free_store_motion_mems, update users.
750         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
751         update caller.
752         (first_ls_expr): Rename to first_st_expr, update users.
753         (next_ls_expr): Rename to next_st_expr, update users.
754         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
755         fields properly for store motion instead of names inherited from load
756         motion in gcse.c.
757         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
758         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
759         are done with it.
760
761         (ae_kill): Rename to st_kill, update users.
762         (ae_gen): Rename to st_avloc, update users.
763         (transp): Rename to st_transp, update users.
764         (pre_insert_map): Rename to st_insert_map, update users.
765         (pre_delete_map): Rename to st_delete_map, update users.
766         (insert_store, build_store_vectors, free_store_memory,
767         one_store_motion_pass): Update for abovementioned changes.
768
769         (gcse_subst_count, gcse_create_count): Remove.
770         (one_store_motion_pass): New statistics counters "n_stores_deleted"
771         and "n_stores_created", local variables.
772
773         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
774         use for_each_rtx.
775
776         (regvec, compute_store_table_current_insn): Remove.
777         (reg_set_info, reg_clear_last_set): Remove.
778         (compute_store_table): Use DF caches instead of local dataflow
779         solvers.
780
781 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
782
783         * c-objc-common.c (c_tree_printer): Print identifiers with
784         pp_identifier, not pp_string.  Mark "({anonymous})" for
785         translation.
786         * c-pretty-print.c (pp_c_ws_string): New.
787         (pp_c_cv_qualifier, pp_c_type_specifier,
788         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
789         pp_c_storage_class_specifier, pp_c_function_specifier,
790         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
791         pp_c_primary_expression, pp_c_postfix_expression,
792         pp_c_unary_expression, pp_c_shift_expression,
793         pp_c_relational_expression, pp_c_equality_expression,
794         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
795         use pp_string and pp_c_ws_string in place of pp_identifier and
796         pp_c_identifier for non-identifiers.  Mark English strings for
797         translation.
798         * c-pretty-print.h (pp_c_ws_string): Declare.
799
800 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
801             Roland McGrath <roland@redhat.com>
802
803         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
804         (ENABLE_LD_BUILDID): New configuration option.
805         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
806         (LINK_BUILDID_SPEC): New macro.
807         (init_spec): If defined, prepend it between LINK_EH_SPEC and
808         link_spec.
809         * doc/install.texi: Document --enable-linker-build-id option.
810         * configure: Rebuild.
811         * config.in: Rebuild.
812
813 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
814
815         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
816         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
817         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
818         MIPS_GP_SAVE_AREA_SIZE.
819         * config/mips/mips.c (struct mips_frame_info): Update comment
820         before arg_pointer_offset and hard_frame_pointer_offset.
821         (mips_compute_frame_info): Update diagram before function: to
822         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
823         indicate the position of frame_pointer_rtx with -fstack-protector and
824         to show args_size.  Don't allocate cprestore area for leaf functions
825         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
826         cprestore_size.
827         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
828
829 2009-04-30  Michael Matz  <matz@suse.de>
830
831         PR tree-optimization/39955
832         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
833
834 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
835
836         * ira.c (setup_cover_and_important_classes):  Use safe macro
837         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
838         directly.
839         * genpreds.c (write_tm_preds_h):  Output suitable definition of
840         REG_CLASS_FOR_CONSTRAINT.
841
842 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
843
844         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
845         instead of an int.
846         * bitmap.c (bitmap_descriptor): Likewise.
847         * ggc-common.c (loc_descriptor): Likewise.
848         * varray.c (varray_descriptor): Likewise.
849         * vec.c (vec_descriptor): Likewise.
850
851 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
852
853         * Makefile.in (dce.o): Add $(EXCEPT_H).
854         * dce.c: Include except.h and delete redundant vector definitions.
855         (deletable_insn_p): Return false for non-call insns that can throw
856         if DF is running.
857
858 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
859
860         * gcse.c (ae_gen): Remove.
861         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
862         and make non-static function to make it available in store-motion.c.
863         Update call sites with search-and-replace.
864         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
865         extract_mentioned_regs, extract_mentioned_regs_helper,
866         find_moveable_store, compute_store_table, load_kills_store, find_loads,
867         store_killed_in_insn, store_killed_after, store_killed_before,
868         build_store_vectors, insert_insn_start_basic_block, insert-store,
869         remove_reachable_equiv_notes, replace_store_insn, delete_store,
870         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
871         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
872         * store-motion.c: ...new file.  Also copy data structures from gcse.c
873         and clean up to remove parts not used by store motion.
874         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
875         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
876
877 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
878
879         PR target/38571
880         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
881         when optimizing for size.
882
883 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
884
885         * gcse.c (gcse_constant_p): Fix typo in last change.
886
887 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
888
889         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
890
891 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
892
893         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
894
895 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
896
897         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
898         CONST_HIGH_PART result.
899
900 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
901
902         * config/avr/avr.c (initial_elimination_offset): Rename to
903         avr_initial_elimination_offset.
904         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
905         change return type to bool.
906         (avr_can_eliminate): New function.
907         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
908         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
909         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
910         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
911         avr_initial_elimination_offset.
912         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
913         (avr_initial_elimination_offset): Define.
914
915 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
916             Steven Bosscher  <steven@gcc.gnu.org>
917
918         PR rtl-optimization/39938
919         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
920         * cfgrtl.c: Include insn-attr.h.
921         (rest_of_pass_free_cfg): New function.
922         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
923         * resource.c (init_resource_info): Remove call to df_analyze.
924
925 2009-04-29  Richard Guenther  <rguenther@suse.de>
926
927         PR target/39943
928         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
929         allow conversion to signed integers.
930
931 2009-04-29  Richard Guenther  <rguenther@suse.de>
932
933         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
934         shifts of floating point vectors if the shift amount is
935         a constant multiple of the element size.
936
937 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
938             Michael Matz  <matz@suse.de>
939
940         PR middle-end/39927
941         PR bootstrap/39929
942         * tree-outof-ssa.c (emit_partition_copy): New function.
943         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
944         insert_part_to_rtx_on_edge): Perform the partition base var
945         copy using emit_partition_copy.
946         (insert_value_copy_on_edge): Convert constants to the right mode.
947         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
948         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
949
950 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
951
952         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
953         scan backwards to try to find a constant to initialize it.
954
955         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
956         insn before the loop_end instruction, don't look past labels.
957
958 2009-04-29  Richard Guenther  <rguenther@suse.de>
959
960         PR middle-end/39937
961         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
962         loose type conversions.
963         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
964         stmts only if there are no uses of its definition.
965
966 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
967
968         * config/bfin/bfin.h (splitting_loops): Declare.
969         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
970         Reorder bit definitions to be ascending.
971         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
972         * config/bfin/bfin.c (splitting_loops): New variable.
973         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
974         (struct loop_info): Remove members INIT and LOOP_INIT.
975         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
976         the LSETUP sequence.  Allow LC to be loaded from any register, but
977         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
978         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
979         set to 1.
980         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
981         of reload_completed.
982
983         From Jie Zhang:
984         * config/bfin/bfin.md (movsi_insn): Refine constraints.
985
986 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
987
988         * Makefile.in (PLUGIN_VERSION_H): New.
989         (OBJS-common): Remove plugin-version.o.
990         (plugin.o): Depend on (PLUGIN_VERSION_H).
991         (plugin-version.o): Remove.
992         * configure: Regenerate
993         * configure.ac: Create plugin-version.h.
994         * gcc-plugin.h (plugin_gcc_version): Remove.
995         (plugin_default_version_check): Change signature.
996         * plugin-version.c: Remove.
997         * plugin.c: Include plugin-version.h.
998         (str_plugin_gcc_version_name): Remove.
999         (try_init_one_plugin): Pass gcc version to plugin_init.
1000         (plugin_default_version_check): Both gcc and plugin versions are now
1001         arguments.
1002
1003 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1004         
1005         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1006         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
1007         Remove special case testing for last insn of inner loops. Don't fail
1008         if the loop ends with a jump, emit an extra nop instead.
1009
1010         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1011         DREGS rather than comparing directly.  Remove code that tries to
1012         account for latencies.
1013
1014 2009-04-29  Richard Guenther  <rguenther@suse.de>
1015
1016         PR tree-optimization/39941
1017         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1018         eliminating an indirect call.
1019
1020 2009-04-29  Richard Guenther  <rguenther@suse.de>
1021
1022         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1023         parameter.  Allow invariants as base if !require_lvalue.
1024         (verify_gimple_assign_single): Adjust.
1025
1026 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1027
1028         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1029         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
1030         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1031         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
1032         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1033         a VEC_SELECT.
1034         * config/bfin/bfin.c (bfin_expand_builtin,
1035         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
1036
1037 2009-04-28  Richard Guenther  <rguenther@suse.de>
1038
1039         * tree-vect-loop.c (get_initial_def_for_induction): Use
1040         correct types for pointer increment.
1041
1042 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1043
1044         * toplev.c (print_version): Update GMP version string calculation.
1045
1046 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1047
1048         PR rtl-optimization/39938
1049         * resource.c (init_resource_info): Add call to df_analyze.
1050
1051 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1052
1053         * config/alpha/alpha.md (usegp): Cast the result of
1054         alpha_find_lo_sum_using_gp to enum attr_usegp.
1055         * config/alpha/alpha.c (override_options): Remove end-of-structure
1056         marker element from cpu_table.  Use array size of cpu_table to handle
1057         -mcpu and -mtune options.
1058         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1059
1060 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
1061
1062         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1063         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
1064         tune_32 and tune_64.
1065         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1066         support on PowerPC.
1067         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1068         * config/rs6000/option-defaults.h: ... here.  New file.
1069         (OPT_64, OPT_32): Define.
1070         (MASK_64BIT): Define to 0 if not already defined.
1071         (OPT_ARCH64, OPT_ARCH32): Define.
1072         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1073         and tune_64.
1074
1075 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1076
1077         * config/arm/arm.c (arm_override_options): Emit error on using
1078         fpa with AAPCS.
1079
1080 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1081
1082         PR rtl-optimization/39914
1083         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1084         registers for allocnos created from user-defined variables only
1085         when not optimizing.
1086
1087 2009-04-28  Richard Guenther  <rguenther@suse.de>
1088
1089         PR middle-end/39937
1090         * fold-const.c (fold_binary): Use distribute_real_division only
1091         on float types.
1092
1093 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
1094
1095         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1096         add hpux-stdint.h to tm_file.
1097         (hppa[12]*-*-hpux11*): Ditto.
1098         (ia64*-*-hpux*): Ditto.
1099         * config/hpux-stdint.h: New.
1100         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
1101         __STDC_EXT__ for all compiles.
1102         * config/pa/pa-hpux.h: Ditto.
1103         * config/pa/pa-hpux10.h: Ditto.
1104         * config/pa/pa-hpux11.h: Ditto.
1105
1106 2009-04-28  Catherine Moore  <clm@codesourcery.com>
1107
1108         * debug.h (set_name): Add comment.
1109
1110 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
1111
1112         PR target/39929
1113         * config/darwin.c (machopic_gen_offset): Check
1114         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
1115         * config/arm/arm.c (require_pic_register): Likewise.
1116
1117 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
1118
1119         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
1120         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
1121         m32c_promote_prototypes): Delete.
1122
1123 2009-04-28  Michael Matz  <matz@suse.de>
1124
1125         PR middle-end/39922
1126         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
1127         constants.
1128
1129 2009-04-28  Richard Guenther  <rguenther@suse.de>
1130
1131         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
1132
1133 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1134
1135         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
1136         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
1137         * config/arm/arm-tune.md: Regenerate.
1138
1139 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
1140
1141         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
1142         block if there are complex incoming edges.
1143         (sel_merge_blocks): Remove useless assert.
1144         (sel_redirect_edge_and_branch): Check that edge was redirected.
1145         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1146         (sel_find_rgns): Delete declaration.
1147         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1148         the region when it is not a preheader.
1149
1150 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1151
1152         PR c/39323
1153         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1154
1155 2009-04-28  Richard Guenther  <rguenther@suse.de>
1156
1157         * tree.h (SSA_NAME_VALUE): Remove.
1158         (struct tree_ssa_name): Remove value_handle member.
1159         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1160         array for jump threading.
1161         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1162         SSA_NAME_VALUEs.
1163         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1164         * tree-flow.h (threadedge_initialize_values): Declare.
1165         (threadedge_finalize_values): Likewise.
1166         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1167         (SSA_NAME_VALUE): Define.
1168         (threadedge_initialize_values): New function.
1169         (threadedge_finalize_values): Likewise.
1170         * tree-ssa-dom.c (ssa_name_values): New global variable.
1171         (SSA_NAME_VALUE): Define.
1172         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
1173
1174 2009-04-28  Ira Rosen  <irar@il.ibm.com>
1175
1176         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1177         Use REPORT_VECTORIZED_LOCATIONS instead 
1178         REPORT_VECTORIZED_LOOPS.
1179         * tree-vectorizer.c (vect_verbosity_level): Make static.
1180         (vect_loop_location): Rename to vect_location.
1181         (vect_set_verbosity_level): Update comment.
1182         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1183         and vect_location.
1184         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1185         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1186         instead REPORT_UNVECTORIZED_LOOPS.
1187         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1188         vect_loop_def to vect_external_def and vect_internal_def.
1189         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
1190         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
1191         REPORT_UNVECTORIZED_LOCATIONS.
1192         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1193         and vect_used_in_loop and to vect_unused_in_scope and 
1194         vect_used_in_scope.
1195         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1196         (vect_verbosity_level): Remove declaration.
1197         (vect_analyze_operations): Likewise.
1198         (vect_analyze_stmt): Declare.
1199         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1200         REPORT_UNVECTORIZED_LOCATIONS.
1201         (vect_get_loop_niters): Fix indentation.
1202         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1203         (vect_analyze_loop_operations): New function.
1204         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1205         vect_analyze_operations.
1206         (vect_is_simple_reduction): Use new names.
1207         (vectorizable_live_operation, vect_transform_loop): Likewise.
1208         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1209         specify whether the data references can be a part of interleaving chain.
1210         (vect_analyze_data_ref_dependence): Use new names.
1211         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1212         (vect_create_addr_base_for_vector_ref): Remove redundant code.
1213         * tree-vect-patterns.c (widened_name_p): Use new names.
1214         (vect_recog_dot_prod_pattern): Likewise.
1215         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1216         (process_use, vect_mark_stmts_to_be_vectorized, 
1217         vect_model_simple_cost, vect_model_store_cost,
1218         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1219         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1220         vectorizable_operation, vectorizable_type_demotion,
1221         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1222         vectorizable_condition): Likewise.
1223         (vect_analyze_operations): Split into vect_analyze_loop_operations
1224         and ...
1225         (vect_analyze_stmt): ... new function.
1226         (new_stmt_vec_info): Use new names.
1227         (vect_is_simple_use): Use new names and fix comment.
1228         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1229         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1230
1231 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1232
1233         PR target/39911
1234         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1235         and integer modes for x87 operands.  Do not ICE for unsupported size,
1236         generate error instead.  Generate error for unsupported operand types.
1237         ['z']: Do not handle HImode memory operands specially.  Warning
1238         for floating-point operands.  Fallthru to 'Z' for unsupported operand
1239         types.  Do not ICE for unsupported size, generate error instead.
1240         (output_387_binary_op): Use %Z to output operands.
1241         (output_fp_compare): Ditto.
1242         (output_387_reg_move): Ditto.
1243
1244 2009-04-28  Ben Elliston  <bje@au.ibm.com>
1245
1246         PR c++/35652
1247         Revert:
1248
1249         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1250
1251         * builtins.c (c_strlen): Do not warn here.
1252         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1253         * c-common.c (pointer_int_sum): Take an explicit location.
1254         Warn about offsets out of bounds.
1255         * c-common.h (pointer_int_sum): Adjust declaration.
1256
1257 2009-04-27  Ian Lance Taylor  <iant@google.com>
1258
1259         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1260         names to symkind.
1261         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1262         * df-core.c (df_set_flags): Change return type to int.  Change
1263         type of old_flags to int.
1264         (df_clear_flags): Likewise.
1265         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1266         (df_get_conditional_uses): Likewise.
1267         * df.h (df_set_flags, df_clear_flags): Update declarations.
1268         * dwarf2out.c (struct indirect_string_node): Change type of form
1269         field to enum dwarf_form.
1270         (AT_string_form): Change return type to enum dwarf_form.
1271         * fixed-value.c (fixed_compare): Add cast to enum type.
1272         * fwprop.c (update_df): Change 0 to VOIDmode.
1273         * gensupport.c: Change 0 to UNKNOWN.
1274         * gimple.h (gimple_cond_code): Add cast to enum type.
1275         * haifa-sched.c (reemit_notes): Add cast to enum type.
1276         * hooks.c (hook_int_void_no_regs): Remove function.
1277         * hooks.h (hook_int_void_no_regs): Remove declaration.
1278         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1279         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1280         * real.c (real_arithmetic): Add cast to enum type.
1281         (real_compare): Likewise.
1282         * target.h (struct gcc_target): Change return type of
1283         branch_target_register_class to enum reg_class.
1284         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1285         default_branch_target_register_class.
1286         * targhooks.c (default_branch_target_register_class): New function.
1287         * targhooks.h (default_branch_target_register_class): Declare.
1288         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1289         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1290         cast to int.
1291         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1292         ERROR_MARK.
1293         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1294         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1295         * tree-vect-stmts.c (supportable_widening_operation): Don't
1296         initialize icode1 and icode2.
1297         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1298         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1299         and to STD_C89.
1300         (cmn_err_flag_specs): Change 0 to STD_C89.
1301         (cmn_err_char_table): Likewise.
1302         * config/arm/arm.c (get_arm_condition_code): Change type of code
1303         to enum arm_cond_code.
1304         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1305         (IWMMXT_BUILTIN2): Likewise.
1306         (neon_builtin_type_bits): Don't define typedef.
1307         (neon_builtin_datum): Change type of bits field to int.
1308         (arm_expand_neon_args): Add cast to enum type.
1309         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1310         TLS_MODEL_NONE.
1311         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1312         casts to enum type.
1313         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1314         MIPS_FP_COND_f.
1315         * config/mips/mips.md (jal_macro): Return enum constant.
1316         (single_insn): Likewise.
1317         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1318         CODE_FOR_nothing.
1319         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1320         casts to enum type.
1321         * config/s390/s390.c (s390_tune_flags): Change type to int.
1322         (s390_arch_flags): Likewise.
1323         (s390_handle_arch_option): Change flags field of struct pta to int.
1324         * config/s390/s390.h (s390_tune_flags): Update declaration.
1325         (s390_arch_flags): Likewise.
1326         * config/sh/sh.c (prepare_move_operands): Compare
1327         tls_symbolic_operand result with enum constant.
1328         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1329         (sh_expand_prologue): Add cast to enum type.
1330         (sh_expand_epilogue): Likewise.
1331         (tls_symbolic_operand): Change return type to enum tls_model.
1332         (fpscr_set_from_mem): Add cast to enum type.
1333         (legitimize_pic_address): Compare tls_symbolic_operand result with
1334         enum constant.
1335         (sh_target_reg_class): Change return type to enum reg_class.
1336         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1337         PROCESSOR_xxx.
1338         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1339         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1340         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1341         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1342         (delayed_branch, tls_call_delay): Likewise.
1343         (eligible_for_sibcall_delay): Likewise.
1344         (eligible_for_return_delay): Likewise. 
1345         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1346         (spu_expand_builtin_1): Likewise.
1347
1348         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1349         for all types of conversions.
1350         (output_init_element): Issue -Wc++-compat warning if needed when
1351         initializing a bitfield with enum type.
1352         * c-parser.c (c_parser_expression): Set original_type to
1353         original_type of right hand operand of comman operator.
1354
1355 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1356
1357         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1358         grammar nits.
1359         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1360         * doc/cpp.texi (Standard Predefined Macros)
1361         (Implementation-defined behavior): Likewise.
1362         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1363         * doc/gimple.texi (GIMPLE Exception Handling)
1364         (@code{GIMPLE_ASSIGN}): Likewise.
1365         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1366         * doc/invoke.texi (Warning Options, Optimize Options)
1367         (AVR Options, Darwin Options): Likewise.
1368         (Optimize Options): Reformulate -fwhole-program description.
1369         * doc/loop.texi (Lambda): Likewise.
1370         * doc/md.texi (Output Template, Define Constraints)
1371         (Standard Names, Insn Splitting): Likewise.
1372         * doc/options.texi (Option properties): Likewise.
1373         * doc/passes.texi (Tree-SSA passes): Likewise.
1374         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1375         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1376         (File Names and DBX): Likewise.
1377         * doc/trouble.texi (Incompatibilities): Likewise.
1378
1379 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1380
1381         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1382         instruction is correct.
1383
1384 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1385
1386         Allow non-constant arguments to conversion intrinsics.
1387         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1388         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1389         * spu.c (print_operand): Handle 'v' and 'w'.
1390         (exp2_immediate_p, spu_gen_exp2): Define.
1391         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1392         spu_convtf_1): Update parameter descriptions.
1393         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1394         * constraints.md ('v', 'w'): New.
1395         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1396         Remove.
1397         (i2f, I2F): New define_mode_attr.
1398         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1399         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1400         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1401         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1402         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1403         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1404         patterns for combine.
1405
1406 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1407
1408         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1409         (cprop, hoist, pre, store_motion): New debug counters.
1410         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1411         is not an RTL pass anymore.
1412         (pass_profiling): Remove extern decl for pass removed in 2005.
1413         (pass_gcse, pass_jump_bypass): Remove.
1414         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1415         to 0 for clean state.
1416         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1417         * cse.c (gate_handle_cse_after_global_opts,
1418         rest_of_handle_cse_after_global_opts): New functions.
1419         (pass_cse_after_global_opts): New pass, does local CSE.
1420         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1421         (TV_CPROP): New timevar.
1422         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1423         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1424         (gcse_main, recompute_all_luids): Remove.
1425         (compute_hash_table_work): Call max_reg_num instead of reading
1426         max_gcse_regno.
1427         (cprop_jump): Don't set run_jump_opt_after_gcse.
1428         (constprop_register): Always allow to alter jumps.
1429         (cprop_insn): Likewise.
1430         (do_local_cprop): Likewise.
1431         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1432         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1433         (find_implicit_sets): Add note about missed optimization opportunity.
1434         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1435         pass_rtl_cprop execute function.
1436         Don't bother tracking the pass number, each pass gets its own dumpfile
1437         now anyway.
1438         Always allow to alter jumpsand bypass jumps.
1439         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1440         will just find no suitable set.
1441         (pre_edge_insert): Fix dumping, this function is for PRE only.
1442         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1443         pass_rtl_pre execute function.
1444         (hoist_code): Return non-zero if something changed.  Keep track of
1445         substitutions and insertions for statistics gathering similar to PRE.
1446         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1447         called from the pass_rtl_hoist execute function.  Show pass statistics.
1448         (compute_store_table): Use max_reg_num directly instead of using the
1449         formerly global max_gcse_regno.
1450         (build_store_vectors): Likewise.
1451         (replace_store_insn): Fix dumping.
1452         (store_motion): Rename to ...
1453         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1454         pass, called from the pass_rtl_store_motion execute function.  Keep
1455         track of substitutions and insertions for statistics gathering similar
1456         to PRE.
1457         (bypass_jumps): Remove, fold interesting bits into ...
1458         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1459         from the pass_rtl_cprop execute function.
1460         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1461         pass_jump_bypass): Remove.
1462         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1463         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1464         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1465         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1466         (gate_rtl_store_motion, execute_rtl_store_motion,
1467         pass_rtl_store_motion): New.
1468         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1469         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1470         * passes.c (init_optimization_passes): Remove pass_gcse and
1471         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1472         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1473         instead of pass_jump_bypass.
1474
1475 2009-04-27  Richard Guenther  <rguenther@suse.de>
1476
1477         PR middle-end/39928
1478         * gimplify.c (gimplify_expr): If we are required to create
1479         a temporary make sure it ends up as register.
1480
1481 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1482
1483         PR target/39903
1484         * config/i386/i386.c (construct_container): Don't call
1485         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1486         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1487
1488 2009-04-27  Michael Matz  <matz@suse.de>
1489
1490         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1491         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1492         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1493         (dump_replaceable_exprs): Take a bitmap.
1494         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1495         array.
1496         (expand_gimple_basic_block): Likewise.
1497         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1498         replaceable_expressions member a bitmap.
1499         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1500         (mark_replaceable): Likewise.
1501         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1502         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1503
1504 2009-04-27  Richard Guenther  <rguenther@suse.de>
1505
1506         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1507         (verify_stmts): Dispatch to gimple/type verification code.
1508         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1509         issue with call argument types.
1510
1511 2009-04-27  Michael Matz  <matz@suse.de>
1512
1513         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1514         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1515         to above.
1516
1517 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1518             Eric Botcazou  <ebotcazou@adacore.com>
1519
1520         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1521         a label's basic block.
1522         (mark_target_live_regs): Tidy and rework obsolete comments.
1523         Change back DF problem to LIVE.  If a label starts a basic block,
1524         assume that all registers that used to be live then still are.
1525         (init_resource_info): If a label starts a basic block, set its
1526         BLOCK_FOR_INSN accordingly.
1527         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1528
1529 2009-04-27  Richard Guenther  <rguenther@suse.de>
1530
1531         * tree-flow-inline.h (function_ann): Remove.
1532         (get_function_ann): Likewise.
1533         * tree-dfa.c (create_function_ann): Remove.
1534         * tree-flow.h (struct static_var_ann_d): Remove.
1535         (struct function_ann_d): Likewise.
1536         (union tree_ann_d): Remove fdecl member.
1537         (function_ann_t): Remove.
1538         (function_ann, get_function_ann, create_function_ann): Remove
1539         declarations.
1540
1541 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1542
1543         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1544
1545 2009-04-27  Jan Hubicka  <jh@suse.cz>
1546
1547         * ipa-pure-const.c (struct funct_state_d): New fields
1548         state_previously_known, looping_previously_known; remove
1549         state_set_in_source.
1550         (analyze_function): Use new fields.
1551         (propagate): Avoid assumption that state_set_in_source imply
1552         nonlooping.
1553
1554         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1555         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1556         * cfgloop.h (finite_loop_p): Declare.
1557
1558 2009-04-26  Michael Matz  <matz@suse.de>
1559
1560         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1561
1562 2009-04-26  Michael Matz  <matz@suse.de>
1563
1564         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1565         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1566         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1567         pass_mark_used_blocks): Remove.
1568         * tree-optimize.c (pass_free_datastructures,
1569         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1570         * passes.c (init_optimization_passes): Don't call
1571         pass_mark_used_blocks, remove dead code.
1572
1573 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1574
1575         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1576         * tree-ssa-live.h (register_ssa_partition): Likewise.
1577
1578 2009-04-26  Michael Matz  <matz@suse.de>
1579
1580         Expand from SSA.
1581         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1582         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1583         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1584         SSA names. 
1585         (compare_pairs): Swap cost comparison.
1586         (coalesce_ssa_name): Don't use change_partition_var.
1587         * tree-nrv.c (struct nrv_data): Add modified member.
1588         (finalize_nrv_r): Set it.
1589         (tree_nrv): Use it to update statements.
1590         (pass_nrv): Require PROP_ssa.
1591         * tree-mudflap.c (mf_decl_cache_locals,
1592         mf_build_check_statement_for): Use make_rename_temp.
1593         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1594         * alias.c (find_base_decl): Handle SSA names.
1595         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1596         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1597         * rtl.h (set_reg_attrs_for_parm): Declare.
1598         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1599         to "optimized", remove unused locals at finish.
1600         (execute_free_datastructures): Make global, call
1601         delete_tree_cfg_annotations.
1602         (execute_free_cfg_annotations): Don't call
1603         delete_tree_cfg_annotations.
1604
1605         * ssaexpand.h: New file.
1606         * expr.c (toplevel): Include ssaexpand.h.
1607         (expand_assignment): Handle SSA names the same as register variables.
1608         (expand_expr_real_1): Expand SSA names.
1609         * cfgexpand.c (toplevel): Include ssaexpand.h.
1610         (SA): New global variable.
1611         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1612         (SSAVAR): New macro.
1613         (set_rtl): New helper function.
1614         (add_stack_var): Deal with SSA names, use set_rtl.
1615         (expand_one_stack_var_at): Likewise.
1616         (expand_one_stack_var): Deal with SSA names.
1617         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1618         before unique numbers.
1619         (expand_stack_vars): Use set_rtl.
1620         (expand_one_var): Accept SSA names, add asserts for them, feed them
1621         to above subroutines.
1622         (expand_used_vars): Expand all partitions (without default defs),
1623         then only the local decls (ignoring those expanded already).
1624         (expand_gimple_cond): Remove edges when jumpif() expands an
1625         unconditional jump.
1626         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1627         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1628         SSA name.
1629         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1630         members of SA; deal with PARM_DECL partitions here; expand
1631         all PHI nodes, free tree datastructures and SA.  Commit instructions
1632         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1633         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1634         info and statements at start, collect garbage at finish.
1635         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1636         (VAR_ANN_PARTITION) Remove.
1637         (change_partition_var): Don't declare.
1638         (partition_to_var): Always return SSA names.
1639         (var_to_partition): Only accept SSA names.
1640         (register_ssa_partition): Only check argument.
1641         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1642         member.
1643         (delete_var_map): Don't free it.
1644         (var_union): Only accept SSA names, simplify.
1645         (partition_view_init): Mark only useful SSA names as used.
1646         (partition_view_fini): Only deal with SSA names.
1647         (change_partition_var): Remove.
1648         (dump_var_map): Use ssa_name instead of partition_to_var member.
1649         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1650         basic blocks.
1651         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1652         (struct _elim_graph): New member const_dests; nodes member vector of
1653         ints.
1654         (set_location_for_edge): New static helper.
1655         (create_temp): Remove.
1656         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1657         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1658         (new_elim_graph): Allocate const_dests member.
1659         (clean_elim_graph): Truncate const_dests member.
1660         (delete_elim_graph): Free const_dests member.
1661         (elim_graph_size): Adapt to new type of nodes member.
1662         (elim_graph_add_node): Likewise.
1663         (eliminate_name): Likewise.
1664         (eliminate_build): Don't take basic block argument, deal only with
1665         partition numbers, not variables.
1666         (get_temp_reg): New static helper.
1667         (elim_create): Use it, deal with RTL temporaries instead of trees.
1668         (eliminate_phi): Adjust all calls to new signature.
1669         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1670         (rewrite_trees): Only do checking.
1671         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1672         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1673         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1674         contains_tree_r, MAX_STMTS_IN_LATCH,
1675         process_single_block_loop_latch, analyze_edges_for_bb,
1676         perform_edge_inserts): Remove.
1677         (expand_phi_nodes): New global function.
1678         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1679         functions, initialize new parameter, remember partitions having a
1680         default def.
1681         (finish_out_of_ssa): New global function.
1682         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1683         don't reset in_ssa_p here, don't disable TER when mudflap.
1684         (pass_del_ssa): Remove.
1685         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1686         partition members.
1687         (execute_free_datastructures): Declare.
1688         * Makefile.in (SSAEXPAND_H): New variable.
1689         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1690         * basic-block.h (commit_one_edge_insertion): Declare.
1691         * passes.c (init_optimization_passes): Move pass_nrv and
1692         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1693         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1694         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1695         (redirect_branch_edge): Deal with super block when expanding, split
1696         out jump patching itself into ...
1697         (patch_jump_insn): ... here, new static helper.
1698
1699 2009-04-26  Michael Matz  <matz@suse.de>
1700
1701         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1702         beyond num_ssa_names.
1703         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1704         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1705
1706 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1707
1708         PR inline-asm/39543
1709         * fwprop.c (forward_propagate_asm): New function.
1710         (forward_propagate_and_simplify): Propagate also into __asm, if it
1711         doesn't increase the number of referenced registers.
1712
1713         PR c/39889
1714         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1715
1716 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1717
1718         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1719         note_nonlocal_vla_type for nonlocal VLAs.
1720         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1721         contains_remapped_vars, remap_vla_decls): New functions.
1722         (convert_nonlocal_reference_stmt): If not optimizing, call
1723         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1724         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1725         if it wasn't found in var_map.
1726         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1727         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1728         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1729         declare_vars.
1730         * gimplify.c (nonlocal_vlas): New variable.
1731         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1732         referenced VLAs.
1733         (gimplify_body): Create and destroy nonlocal_vlas.
1734
1735         * dwarf2out.c (loc_descr_plus_const): New function.
1736         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1737         mem_loc_descriptor, loc_descriptor_from_tree_1,
1738         descr_info_loc, gen_variable_die): Use it.
1739
1740         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1741         !TREE_STATIC VAR_DECLs.
1742         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1743         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1744         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1745         DECL_BY_REFERENCE is valid.
1746         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1747         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1748         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1749         Copy DECL_BY_REFERENCE.
1750         (struct nesting_copy_body_data): New type.
1751         (nesting_copy_decl): New function.
1752         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1753         if they have variable length.
1754
1755 2009-04-26  Michael Matz  <matz@suse.de>
1756
1757         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1758         mark new temporaries for renaming.
1759
1760 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1761
1762         PR c/39581
1763         * c-decl.c (global_bindings_p): Return negative value.
1764         (c_variable_size): New.  Based on variable_size from
1765         stor-layout.c.
1766         (grokdeclarator): Call c_variable_size not variable_size.
1767
1768 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1769
1770         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1771
1772 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1773
1774         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1775         Redefine it to just use mingw/include.
1776         (ASM_SPEC): Rules for -m32 and -m64.
1777         (LINK_SPEC): Use Likewise.
1778         (SPEC_32): New define.
1779         (SPEC_64): Likewise.
1780         (SUB_LINK_SPEC): Likewise.
1781         (MULTILIB_DEFAULTS): New define.
1782         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1783         Add multilib options.
1784         (MULTILIB_DIRNAMES): Likewise.
1785         (MULTILIB_OSDIRNAMES): Likewise.
1786         (LIBGCC): Likewise.
1787         (INSTALL_LIBGCC): Likewise.
1788
1789 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1790
1791         PR c/39556
1792         * c-tree.h (enum c_inline_static_type): New.
1793         (record_inline_static): Declare.
1794         * c-decl.c (struct c_inline_static, c_inline_statics,
1795         record_inline_static, check_inline_statics): New.
1796         (pop_file_scope): Call check_inline_statics.
1797         (start_decl): Call record_inline_static instead of pedwarning
1798         directly for static in inline function.
1799         * c-typeck.c (build_external_ref): Call record_inline_static
1800         instead of pedwarning directly for static referenced in inline
1801         function.
1802
1803 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1804
1805         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1806         not new but only being rescanned.
1807         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1808         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1809         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1810         record_set_info, compute_set, grealloc): Remove.
1811         (recompute_all_luids): New function.
1812         (gcse_main): Don't compute sets, and don't do related memory
1813         allocations/free-ing.  If something changed before the end of the
1814         pass, update LUIDs using recompute_all_luids.
1815         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1816         (free_gcse_mem): Don't free it either.
1817         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1818         Use the df insn LUIDs.
1819         (load_killed_in_block): Likewise.
1820         (compute_hash_table_work): Don't compute reg_set_in_block.
1821         (compute_transp): Use DF_REG_DEF_CHAINs.
1822         (local_cprop_pass): Don't use compute_sets and related functions.
1823         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1824         Use get_max_uid() instead of max_cuid.
1825         (insert_insn_end_basic_block, pre_insert_copy_insn,
1826         update_ld_motion_stores): Don't try to
1827         keep reg_set tables up to date.
1828         (pre_insert_copies): Use df insn LUIDs.
1829         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1830         (reg_set_info): Don't use extra bitmap argument.
1831         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1832         information to compute regs_set_in_block.
1833         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1834         (bypass_jumps): Don't use compute_sets and friends.
1835
1836 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1837
1838         PR testsuite/39710
1839         * opts.c (undocumented_msg): Do not leave blank even with
1840         ENABLE_CHECKING.
1841
1842 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1843
1844         * c-decl.c (build_enumerator): Allow values folding to integer
1845         constants but not integer constant expressions with a pedwarn if
1846         pedantic.
1847
1848 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1849
1850         PR c/39582
1851         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1852         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1853         type is an integer constant.
1854
1855 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1856
1857         PR target/39897
1858         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1859         HImode operands.
1860
1861 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1862
1863         PR c/39564
1864         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1865         with variably modified return type and no storage class
1866         specifiers, except for the case of nested functions.  Distinguish
1867         extern declarations of functions with variably modified return
1868         types from those of objects with variably modified types.
1869
1870 2009-04-25  Jan Hubicka  <jh@suse.cz>
1871
1872         * tree.c (list_equal_p): New function.
1873         * tree.h (list_equal_p): Declare.
1874         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1875         basic_block_def, basic_block, const_basic_block): New.
1876         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1877         (redirect_eh_edge): New function.
1878         (make_eh_edge_update_phi): EH edges are not abnormal.
1879         * except.c: Include tree-flow.h.
1880         (list_match): New function.
1881         (eh_region_replaceable_by_p): New function.
1882         (replace_region): New function.
1883         (hash_type_list): New function.
1884         (hash_eh_region): New function.
1885         (eh_regions_equal_p): New function.
1886         (merge_peers): New function.
1887         (remove_unreachable_regions): Verify EH tree when checking;
1888         merge peers.
1889         (copy_eh_region_1): New function.
1890         (copy_eh_region): New function.
1891         (push_reachable_handler): New function.
1892         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1893         regions without label but with live RESX.
1894         * except.h (redirect_eh_edge_to_label): New.
1895         * tree-flow.h (redirect_eh_edge): New.
1896         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1897         basic_block_def, basic_block, const_basic_block): Remove.
1898         * Makefile.in (except.o): Add dependency on tree-flow.h
1899         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1900         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1901         Remove.
1902
1903 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1904
1905         PR bootstrap/39645
1906         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1907         on the destination of memcpy.
1908
1909 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1910
1911         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1912         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1913         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1914
1915 2009-04-25  Jan Hubicka  <jh@suse.cz>
1916
1917         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1918         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1919         to be reached by different label than left.
1920         (update_eh_edges): Update comment; remove edge_to_remove if possible
1921         and return true if suceeded.
1922         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1923         (cleanup_eh): Compute sharing map.
1924         * except.c (remove_eh_handler_and_replace): Add argument if we should
1925         update regions.
1926         (remove_unreachable_regions): Update for label sharing.
1927         (label_to_region_map): Likewise.
1928         (get_next_region_sharing_label): New function.
1929         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1930         prev_try pointers.
1931         (remove_eh_handler): Update.
1932         (remove_eh_region_and_replace_by_outer_of): New function.
1933         * except.h (struct eh_region): Add next_region_sharing_label.
1934         (remove_eh_region_and_replace_by_outer_of,
1935         get_next_region_sharing_label): Declare.
1936         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1937
1938 2009-04-25  Jan Hubicka  <jh@suse.cz>
1939
1940         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1941         insert code even if they are not critical.
1942
1943 2009-04-25  Jan Hubicka  <jh@suse.cz>
1944
1945         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1946         (gimple_can_remove_branch_p): EH edges won't remove branch by
1947         redirection.
1948         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1949         updating of non-abnormal EH edges.
1950         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1951         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1952         (split_critical_edges): Split also edges where emitting code on them
1953         will lead to splitting later.
1954
1955 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1956             H.J. Lu  <hongjiu.lu@intel.com>
1957
1958         PR target/39590
1959         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1960         the configured assembler supports fildq and fistpq mnemonics.
1961         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1962         * configure: Regenerated.
1963         * config.in: Ditto.
1964
1965         * config/i386/i386.c (print_operand): Handle 'Z'.
1966         ['z']: Remove handling of special fild/fist suffixes.
1967         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1968         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1969         suffix of fild insn.
1970         (*floatsi<mode>2_vector_mixed): Ditto.
1971         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1972         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1973         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1974         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1975         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1976
1977 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1978  
1979         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1980         the source of a set operation.
1981
1982 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1983
1984         * target.h (struct gcc_target): Add case_values_threshold field.
1985         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1986         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1987         * targhooks.c (default_case_values_threshold): New function.
1988         * targhooks.h (default_case_values_threshold): Declare function.
1989         * stmt.c (expand_case): Use case_values_threshold target hook.
1990         * expr.h (case_values_threshold): Remove declartation.
1991         * expr.c (case_values_threshold): Remove function.
1992         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1993
1994         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1995         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1996         (avr_case_values_threshold): Declare as static.
1997         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1998
1999         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2000         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2001         (mn10300_case_values_threshold): New function.
2002
2003 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2004
2005         * ira.c (setup_cover_and_important_classes): Add enum cast.
2006
2007 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2008
2009         * genpreds.c (write_enum_constraint_num): Output definition of
2010         CONSTRAINT_NUM_DEFINED_P macro.
2011         * ira.c (setup_cover_and_important_classes): Use
2012         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2013         
2014 2009-04-24  DJ Delorie  <dj@redhat.com>
2015
2016         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2017         __SH2A_SINGLE_ONLY__ also.
2018
2019 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
2020
2021         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2022         (movdf_internal): Ditto.
2023         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2024         SFmode and DFmode constants.
2025         (ia64_print_operand): Add 'G' format for printing
2026         floating point constants.
2027
2028 2009-04-24  Richard Guenther  <rguenther@suse.de>
2029
2030         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2031         from unsigned additions.
2032
2033 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
2034
2035         * c-typeck.c (set_init_index): Allow array designators that are
2036         not integer constant expressions with a pedwarn if pedantic.
2037
2038 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2039
2040         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2041         zero if no overlap in nonzero bits between the operands.
2042
2043 2009-04-24  Ian Lance Taylor  <iant@google.com>
2044
2045         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2046         (record_dead_and_set_regs): Likewise.
2047         * df.h (struct df_mw_hardreg): Change flags field to int.
2048         (struct df_base_ref): Likewise.
2049         (struct df): Change changeable_flags field to int.
2050         * df-scan.c (df_defs_record): Change clobber_flags to int.
2051         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2052         constants rather than #define macros.
2053         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2054         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2055         (enum dwarf_calling_convention): Likewise.
2056         (enum dwarf_line_number_x_ops): Likewise.
2057         (enum dwarf_call_frame_info): Likewise.
2058         (enum dwarf_source_language): Likewise.
2059         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2060         (add_calling_convention_attribute): Likewise.
2061         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2062         (combine_comparisons): Change compcode to int.  Add cast to enum type.
2063         * genrecog.c (maybe_both_true_2): Change c to int.
2064         (write_switch): Likewise.  Add cast to enum type.
2065         * gimplify.c (gimplify_omp_for): Handle return values from
2066         gimplify_expr using MIN rather than bitwise or.
2067         (gimplify_expr): Add cast to enum type.
2068         * ipa-prop.c (update_jump_functions_after_inlining): Change
2069         IPA_BOTTOM to IPA_JF_UNKNOWN.
2070         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2071         Add casts to enum type.
2072         (setup_cover_and_important_classes): Change cl to int.  Add casts
2073         to enum type.
2074         (setup_class_translate): Change cl and mode to int.
2075         (ira_init_once): Change mode to int.
2076         (free_register_move_costs): Likewise.
2077         (setup_prohibited_mode_move_regs): Add casts to enum type.
2078         * langhooks.c (add_builtin_function_common): Rework assertion that
2079         value fits bitfield.
2080         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2081         * omega.c (omega_do_elimination): Avoid math on enum types.
2082         * optabs.c (expand_vec_shift_expr): Remove casts to int.
2083         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
2084         int local to handle integral_argment value.
2085         * regmove.c (try_auto_increment): Change PUT_MODE to
2086         PUT_REG_NOTE_KIND.
2087         * reload.c (push_secondary_reload): Add casts to enum type.
2088         (secondary_reload_class, find_valid_class): Likewise.
2089         * reload1.c (emit_input_reload_insns): Likewise.
2090         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2091         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2092         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2093         constant.
2094         * tree.c (build_common_builtin_nodes): Add casts to enum type.
2095         * tree-complex.c (complex_lattice_t): Typedef to int rather than
2096         enum type.
2097         (expand_complex_libcall): Add casts to enum type.
2098         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
2099         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
2100         with ERROR_MARK, not NUM_TREE_CODES.
2101         (vect_create_epilog_for_reduction): Likewise.
2102         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
2103         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
2104         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
2105         enum machine_mode.
2106         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
2107         vect_unused_in_loop.  Change 0 to loop_vect.
2108         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
2109         * var-tracking.c (get_init_value): Change return type to enum
2110         var_init_status.
2111         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
2112         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
2113         arm_fp_model.
2114         (arm_override_options): Add casts to enum type.
2115         (arm_emit_tls_decoration): Likewise.
2116         * config/i386/i386.c (ix86_function_specific_restore): Add casts
2117         to enum type.
2118         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
2119         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
2120         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
2121         enum type.
2122         * config/s390/s390.c (code_for_builtin_64): Change to array of
2123         enum insn_code.
2124         (code_for_builtin_31): Likewise.
2125         (s390_expand_builtin): Change code_for_builtin to enum insn_code
2126         const *.
2127         * config/sparc/sparc.c (sparc_override_options): Change value
2128         field in struct code_model to enum cmodel.  In initializer change
2129         0 to NULL and add cast to enum type.
2130
2131         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
2132         Change all callers.  Issue a -Wc++-compat warning using
2133         lhs_origtype if necessary.
2134         (convert_for_assignment): Issue -Wc++-compat warnings about
2135         invalid conversions to enum type on assignment.
2136         * c-common.h (build_modify_expr): Update declaration.
2137
2138 2009-04-24  Nick Clifton  <nickc@redhat.com>
2139
2140         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
2141         (function_arg_advance): Likewise.
2142         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
2143         5th alternative.
2144
2145 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2146
2147         * config/s390/constraints.md ('I', 'J'): Fix condition.
2148
2149 2009-04-24  Diego Novillo  <dnovillo@google.com>
2150
2151         * gengtype-parse.c (parse_error): Add newline after message.
2152
2153 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2154
2155         * config/i386/sse.md (avxmodesuffixs): Removed.
2156         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2157         (*avx_pinsr<ssevecsize>): This.
2158
2159 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2160
2161         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2162         follow chains of regs with a single definition, and allow expressions
2163         that are function_invariant_p.
2164         (simple_rhs_p): Allow expressions that are function_invariant_p.
2165
2166 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
2167
2168         PR middle-end/39867
2169         * fold-const.c (fold_cond_expr_with_comparison): When folding
2170         > and >= to MAX, make sure the MAX uses the same type as the
2171         comparison's operands.
2172
2173 2009-04-24  Nick Clifton  <nickc@redhat.com>
2174
2175         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2176         addressing for DImode accesses.
2177         (frv_print_operand_address): Handle PLUS case.
2178         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
2179
2180 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
2181
2182         PR rtl-optimization/39794
2183         * alias.c (canon_true_dependence): Add x_addr argument.
2184         * rtl.h (canon_true_dependence): Adjust prototype.
2185         * cse.c (check_dependence): Adjust canon_true_dependence callers.
2186         * cselib.c (cselib_invalidate_mem): Likewise.
2187         * gcse.c (compute_transp): Likewise.
2188         * dse.c (scan_reads_nospill): Likewise.
2189         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
2190         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2191         canon_base_addr of the group, plus optional offset.
2192         (struct group_info): Rename canon_base_mem to
2193         canon_base_addr.
2194         (get_group_info): Set canon_base_addr to canon_rtx of base, not
2195         canon_rtx of base_mem.
2196
2197 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
2198
2199         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2200         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2201
2202 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2203
2204         * config/spu/spu-builtins.h: Delete file.
2205
2206         * config/spu/spu.h (enum spu_builtin_type): Move here from
2207         spu-builtins.h.
2208         (struct spu_builtin_description): Likewise.  Add GTY marker.
2209         Do not use enum spu_function_code or enum insn_code.
2210         (spu_builtins): Add extern declaration.
2211
2212         * config/spu/spu.c: Do not include "spu-builtins.h".
2213         (enum spu_function_code, enum spu_builtin_type_index,
2214         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2215         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2216         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2217         unsigned_V2DI_type_node): Move here from spu-builtins.h.
2218         (spu_builtin_types): Make static.  Add GTY marker.
2219         (spu_builtins): Add extern declaration with GTY marker.
2220         Include "gt-spu.h".
2221
2222         * config/spu/spu-c.c: Do not include "spu-builtins.h".
2223         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2224         Check programmatically whether all parameters are scalar.
2225
2226         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2227
2228 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2229
2230         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2231         assignment from the constructor either if the target is volatile.
2232
2233 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
2234
2235         * config/arm/arm.md (insv): Do not share operands[0].
2236
2237 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2238
2239         * config/vxlib-tls.c (active_tls_threads): Delete.
2240         (delete_hook_installed): New.
2241         (tls_delete_hook): Don't delete the delete hook.
2242         (tls_destructor): Delete it here.
2243         (__gthread_set_specific): Adjust installing the delete hook.
2244         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2245         __gthread_leave_tsd_dtor_context.
2246
2247 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
2248
2249         * c-format.c (gcc_tdiag_char_table): Add support for %E.
2250
2251 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
2252
2253         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2254         enum type.
2255         (alpha_rtx_costs): Ditto.
2256         (emit_unlikely_jump): Use add_reg_note.
2257         (emit_frame_store_1): Ditto.
2258         (alpha_expand_prologue): Ditto.
2259         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2260         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2261
2262 2009-04-23  Nick Clifton  <nickc@redhat.com>
2263
2264         * config/v850/v850.md (epilogue): Remove suppressed code.
2265         (return): Rename to return_simple and remove test of frame size.
2266         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2267         to gen_return_simple.
2268
2269 2009-04-22  Jing Yu  <jingyu@google.com>
2270
2271         PR testsuite/39781
2272         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2273
2274 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2275
2276         PR C/31499
2277         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2278         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2279         value is a VECTOR_CST, the element type is the element type of the
2280         vector.
2281
2282 2009-04-22  DJ Delorie  <dj@redhat.com>
2283
2284         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2285
2286 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2287
2288         * alias.c (find_base_term): Move around LO_SUM case, so that
2289         CONST falls through into PLUS/MINUS handling.
2290
2291         PR c/39855
2292         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2293         into 0, use omit_one_operand.
2294
2295 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2296
2297         * config/rs6000/linux-unwind.h (get_regs): Remove type
2298         puns. Change the type of `pc' to an array of unsigned ints and
2299         update all users.  Constify frame24.
2300
2301 2009-04-22  DJ Delorie  <dj@redhat.com>
2302
2303         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2304         declarations before code.
2305         (current_function_special_page_vector): Likewise.
2306         (m32c_expand_insv): Silence a warning.
2307
2308 2009-04-21  Taras Glek  <tglek@mozilla.com>
2309
2310         * alias.c: Update GTY annotations to new syntax.
2311         * basic-block.h: Likewise.
2312         * bitmap.h: Likewise.
2313         * c-common.h: Likewise.
2314         * c-decl.c: Likewise.
2315         * c-parser.c: Likewise.
2316         * c-pragma.c: Likewise.
2317         * c-tree.h: Likewise.
2318         * cfgloop.h: Likewise.
2319         * cgraph.h: Likewise.
2320         * config/alpha/alpha.c: Likewise.
2321         * config/arm/arm.h: Likewise.
2322         * config/avr/avr.h: Likewise.
2323         * config/bfin/bfin.c: Likewise.
2324         * config/cris/cris.c: Likewise.
2325         * config/darwin.c: Likewise.
2326         * config/frv/frv.c: Likewise.
2327         * config/i386/i386.c: Likewise.
2328         * config/i386/i386.h: Likewise.
2329         * config/i386/winnt.c: Likewise.
2330         * config/ia64/ia64.h: Likewise.
2331         * config/iq2000/iq2000.c: Likewise.
2332         * config/mips/mips.c: Likewise.
2333         * config/mmix/mmix.h: Likewise.
2334         * config/pa/pa.c: Likewise.
2335         * config/pa/pa.h: Likewise.
2336         * config/rs6000/rs6000.c: Likewise.
2337         * config/s390/s390.c: Likewise.
2338         * config/sparc/sparc.c: Likewise.
2339         * config/xtensa/xtensa.c: Likewise.
2340         * cselib.h: Likewise.
2341         * dbxout.c: Likewise.
2342         * dwarf2out.c: Likewise.
2343         * except.c: Likewise.
2344         * except.h: Likewise.
2345         * fixed-value.h: Likewise.
2346         * function.c: Likewise.
2347         * function.h: Likewise.
2348         * gimple.h: Likewise.
2349         * integrate.c: Likewise.
2350         * optabs.c: Likewise.
2351         * output.h: Likewise.
2352         * real.h: Likewise.
2353         * rtl.h: Likewise.
2354         * stringpool.c: Likewise.
2355         * tree-data-ref.c: Likewise.
2356         * tree-flow.h: Likewise.
2357         * tree-scalar-evolution.c: Likewise.
2358         * tree-ssa-address.c: Likewise.
2359         * tree-ssa-alias.h: Likewise.
2360         * tree-ssa-operands.h: Likewise.
2361         * tree.c: Likewise.
2362         * tree.h: Likewise.
2363         * varasm.c: Likewise.
2364         * varray.h: Likewise.
2365         * vec.h: Likewise.
2366         * coretypes.h: Do not define GTY macro if it is already defined.
2367         * doc/gty.texi: Update GTY documentation to new syntax.
2368         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2369         annotations on structs.
2370         * gengtype-parse.c: Likewise.
2371
2372 2009-04-22  Mark Heffernan  <meheff@google.com>
2373
2374         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2375
2376 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2377
2378         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2379         where appropriate.
2380
2381 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2382
2383         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2384         the same as a PLUS without a shift.  Increase the cost of a
2385         CONST_INT in MULT.
2386
2387 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2388
2389         * Makefile.in: Update dependencies.
2390         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2391         * errors.h: Remove bogus comment about compatibility.
2392         (warning): Update declaration.
2393         * genautomata.c: Update all calls to warning.
2394         * gimple.c: Do not include errors.h. Include toplev.h.
2395         * tree-ssa-structalias.c: Do not include errors.h.
2396         * omega.c: Likewise.
2397         * tree-ssa-reassoc.c: Likewise.
2398         * config/spu/spu-c.c: Likewise.
2399         * config/spu/t-spu-elf: Update dependencies.
2400
2401 2009-04-22  Richard Guenther  <rguenther@suse.de>
2402
2403         PR tree-optimization/39824
2404         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2405         make sure the types are compatible.
2406
2407 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2408
2409         PR c++/14875
2410         * c-common.c (c_parse_error): Take a token_flags parameter.
2411         Use token_type for the token type instead.
2412         Pass token_flags to cpp_type2name.
2413         * c-common.h (c_parse_error): Update declaration.
2414         * c-parser.c (c_parser_error): Pass 0 as token flags.
2415
2416 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2417
2418         PR rtl-optimization/39580
2419         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2420         
2421 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2422
2423         * function.c (expand_function_end): Do not emit a jump to the "naked"
2424         return label for fall-through returns.
2425         * except.c (sjlj_emit_function_exit): Always place the call to the
2426         unregister function at the location installed by expand_function_end.
2427
2428 2009-04-22  Richard Guenther  <rguenther@suse.de>
2429
2430         PR tree-optimization/39845
2431         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2432         (gen_inbound_check): Likewise.
2433
2434 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2435
2436         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2437         padding for PPC.
2438         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2439         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2440
2441 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2442
2443         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2444         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2445         shift counts to avoid out-of-bounds array accesses.
2446
2447 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2448
2449         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2450         (Pmode): Move above.
2451
2452 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2455         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2456         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2457         * config/alpha/alpha.h: Ditto.
2458         * config/alpha/alpha.md: Ditto.
2459         * config/alpha/constraints.md: Ditto.
2460         * config/alpha/predicates.md: Ditto.
2461         
2462 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2463
2464         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2465         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2466         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2467         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2468         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2469         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2470         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2471         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2472         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2473         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2474         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2475         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2476         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2477         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2478         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2479         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2480         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2481         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2482         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2483         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2484         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2485         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2486         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2487         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2488         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2489         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2490         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2491
2492 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2493
2494         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2495         references from comments.
2496         * cfgbuild.c: (count_basic_blocks): Delete.
2497         (find_basic_blocks_1): Delete.
2498         (find_basic_blocks): Delete.
2499         * except.c (finish_eh_generation): Make static.  Move comment from
2500         except.h here.  Remove find_basic_blocks references from comments.
2501         * except.h (finish_eh_generation): Delete.
2502         * basic-block.h (find_basic_blocks): Delete.
2503         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2504
2505 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2506
2507         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2508         (sdbout_parms):  Likewise.
2509
2510 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2511
2512         * config/sh/sh.c (prepare_cbranch_operands): Use
2513         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2514         (expand_cbranchdi4): Likewise.
2515         (from_compare): Add cast to enum type.
2516         (expand_cbranchsi4): Use add_reg_note.
2517         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2518         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2519         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2520         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2521         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2522         instead of CODE_FOR_nothing.
2523         (cbranchdi4): Likewise.  Fix the order of arguments for
2524         gen_rtx_fmt_ee.
2525         (push_fpscr): Use add_reg_note.
2526         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2527         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2528         
2529 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2530
2531         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2532         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2533         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2534         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2535         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2536         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2537         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2538         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2539         config/alpha/x-vms, config/arc/t-arc,
2540         config/arm/README-interworking, config/arm/arm-c.c,
2541         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2542         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2543         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2544         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2545         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2546         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2547         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2548         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2549         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2550         config/cris/t-elfmulti, config/crx/t-crx,
2551         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2552         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2553         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2554         config/h8300/t-h8300, config/i386/athlon.md,
2555         config/i386/darwin-libgcc.10.4.ver,
2556         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2557         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2558         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2559         config/i386/t-linux64, config/i386/t-nwld,
2560         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2561         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2562         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2563         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2564         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2565         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2566         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2567         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2568         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2569         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2570         config/m68k/t-uclinux, config/mcore/t-mcore,
2571         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2572         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2573         config/mips/crtn.asm, config/mips/irix-crti.asm,
2574         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2575         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2576         config/mips/mips-fixed.md, config/mips/sb1.md,
2577         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2578         config/mips/t-iris6, config/mips/t-isa3264,
2579         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2580         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2581         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2582         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2583         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2584         config/mn10300/t-linux, config/mn10300/t-mn10300,
2585         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2586         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2587         config/picochip/libgccExtras/clzsi2.asm,
2588         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2589         config/rs6000/darwin-libgcc.10.4.ver,
2590         config/rs6000/darwin-libgcc.10.5.ver,
2591         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2592         config/rs6000/t-aix43, config/rs6000/t-aix52,
2593         config/rs6000/t-darwin, config/rs6000/t-fprules,
2594         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2595         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2596         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2597         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2598         config/rs6000/t-rtems, config/rs6000/t-spe,
2599         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2600         config/score/t-score-elf, config/sh/divcost-analysis,
2601         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2602         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2603         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2604         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2605         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2606         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2607         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2608         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2609         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2610         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2611         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2612         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2613         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2614         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2615         * config/h8300/genmova.sh: Include copyright and license notices
2616         in generated output.
2617         * config/h8300/mova.md: Regenerate.
2618         * doc/install.texi2html: Include word "Copyright" in copyright
2619         notice and use name "Free Software Foundation, Inc.".
2620         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2621         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2622         ChangeLog-2007, ChangeLog-2008: Correct dates.
2623
2624 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2625
2626         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2627         NE_EXPR operations as well.
2628         * c-parser.c (c_parser_condition): Do not set location information on
2629         the condition.
2630         (c_parser_conditional_expression): Likewise.
2631         (c_parser_binary_expression): Set location information on operators.
2632         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2633         TRUTH_NOT_EXPR has been folded.
2634         * fold-const.c (fold_truth_not_expr): Copy location information from
2635         the incoming expression to the outgoing one.
2636         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2637         recursive calls on the LHS of the operator but pass that of the
2638         operator to recursive calls on the RHS of the operator.  Set it
2639         on the COND_EXPR.
2640         (shortcut_cond_expr): Set the locus of the operator on the second
2641         COND_EXPR and that of the expression on the first in degenerate cases.
2642         Pass the locus of the expression to calls to shortcut_cond_r.
2643         Set the locus of the 'then' block on the associated jump, if any.
2644         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2645         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2646         expression to call to gimplify_boolean_expr.
2647
2648 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2649
2650         * config.gcc: Add additional configuration for
2651         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2652         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2653         (CPP_SPEC): Redefine for allowing -municode option.
2654         (STARTFILE_SPEC): Likewise.
2655         * config/i386/t-mingw-w64: New.
2656         * config/i386/mingw-w64.opt: New.
2657         (municode): Add new target option.
2658         * doc/invoke.texi (municode): Add documentation for new option.
2659
2660 2009-04-21  Ian Lance Taylor  <iant@google.com>
2661
2662         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2663         Correct test for number of arguments.
2664         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2665
2666 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2667
2668         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2669         argument of emit_library_call.
2670
2671 2009-04-21  Richard Guenther  <rguenther@suse.de>
2672
2673         PR middle-end/39829
2674         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2675         inside VIEW_CONVERT_EXPRs.
2676
2677 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2678
2679         * tree-switch-conversion.c (build_constructors): Split a long line.
2680         (constructor_contains_same_values_p): New function.
2681         (build_one_array): Create assigns of constants if possible, do not
2682         call mark_sym_for_renaming, call update_stmt.
2683         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2684         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2685         update_stmt.
2686         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2687         find_new_referenced_vars, call update_stmt.
2688         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2689         instead of calling make_rename_temp.  Do not call
2690         find_new_referenced_vars or mark_symbols_for_renaming, call
2691         update_stmt.
2692
2693 2009-04-21  Richard Guenther  <rguenther@suse.de>
2694
2695         PR tree-optimization/39827
2696         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2697         (tree_ssa_phiprop): Pass the correct array size.
2698
2699 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2702
2703 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2704
2705         PR 16202
2706         * c-typeck.c (lvalue_p): Move declaration ...
2707         * c-common.h (lvalue_p): ... to here.
2708         * c-common.c (candidate_equal_p): New.
2709         (add_tlist): Use it.
2710         (merge_tlist): Use it.
2711         (warn_for_collisions_1): Likewise.
2712         (warning_candidate_p): Accept more candidates.
2713         (verify_tree): A warning candidate can be an expression. Use
2714         candidate_equal_p.
2715
2716 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2717
2718         PR target/5267
2719         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2720         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2721         options.  Remove -mcall-solaris documentation.
2722
2723 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2724
2725         PR c++/13358
2726         * doc/invoke.texi (-Wlong-long): Update description.
2727         * c-lex (interpret_integer): Only warn if there was no previous
2728         overflow and -Wlong-long is enabled.
2729         * c-decl.c (declspecs_add_type): Drop redundant flags.
2730         * c.opt (Wlong-long): Init to -1.
2731         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2732         and front-end warn_long_long. Wlong-long only depends on other
2733         flags if it is uninitialized.
2734         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2735         the same for CPP and FE.
2736         (restore_extension_diagnostics): Likewise.
2737
2738 2009-04-20  Ian Lance Taylor  <iant@google.com>
2739
2740         Fix enum conversions which are invalid in C++:
2741         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2742         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2743         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2744         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2745         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2746         (dbxout_parms): Likewise.
2747         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2748         (df_clear_flags): Likewise.
2749         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2750         top_flag parameter to int.
2751         (df_chain_create_bb_process_use): Likewise.
2752         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2753         Remove cast.
2754         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2755         (df_ref_create_structure, df_def_record_1): Likewise.
2756         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2757         (df_notes_rescan): Change 0 to VOIDmode in function call.
2758         (df_get_call_refs, df_insn_refs_collect): Likewise.
2759         (df_bb_regs_collect): Likewise.
2760         (df_entry_block_defs_collect): Likewise.
2761         (df_exit_block_uses_collect): Likewise.
2762         * df.h: Update declarations.
2763         * double-int.c (double_int_divmod): Add cast to enum type.
2764         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2765         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2766         (based_loc_descr): Likewise.
2767         (loc_descriptor_from_tree_1): Change first_op and second_op to
2768         enum dwarf_location_atom.  Add cast to enum type.
2769         * expmed.c (init_expmed): Change 0 to SET in function call.
2770         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2771         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2772         (do_store_flag): Likewise.
2773         * fixed-value.h (struct fixed_value): Change mode to enum
2774         machine_mode.
2775         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2776         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2777         function call.
2778         (insert_insn_decl, insert_decl, insert_state): Likewise.
2779         (automata_list_finish): Likewise.
2780         * genrecog.c (process_define_predicate): Add cast to enum type.
2781         * gensupport.c (init_predicate_table): Add cast to enum type.
2782         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2783         function call.
2784         (gimple_build_call_1, gimple_build_label): Likewise.
2785         (gimple_build_goto, gimple_build_asm_1): Likewise.
2786         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2787         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2788         (enum fallback): Rename from enum fallback_t.
2789         (fallback_t): Typedef as int.
2790         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2791         GSI_SAME_STMT in function call.
2792         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2793         enum type.
2794         (setup_reg_class_relations): Likewise.
2795         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2796         (setup_prohibited_class_mode_regs): Add cast to enum type.
2797         (setup_prohibited_mode_move_regs): Likewise.
2798         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2799         (record_address_regs): Change i to enum reg_class.
2800         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2801         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2802         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2803         (GET_MODE_2XWIDER_MODE): Likewise.
2804         (GET_CLASS_NARROWEST_MODE): Likewise.
2805         * omp-low.c (expand_omp_for): Add cast to enum type.
2806         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2807         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2808         * postreload.c (reload_cse_simplify_operands): Change rclass local
2809         to enum reg_class.
2810         * predict.c (combine_predictions_for_insn): Change best_predictor
2811         and predictor to enum br_predictor.
2812         (combine_predictions_for_bb): Likewise.
2813         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2814         use SET_PREDICT_EXPR_OUTCOME.
2815         * real.c (real_arithmetic): Change icode to code in function call.
2816         * reginfo.c (init_move_cost): Add casts to enum type.
2817         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2818         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2819         enum reg_class.
2820         * reload.c (find_valid_class): Add casts to enum type.
2821         (push_reload): Change 0 to NO_REGS in function call.
2822         (find_reloads): Change this_alternative to array of enum
2823         reg_class.  Remove some now-unnecessary casts.
2824         (make_memloc): Change 0 to VOIDmode in function call.
2825         * reload1.c (reload): Change 0 to VOIDmode in function call.
2826         (eliminate_regs_1, elimination_effects): Likewise.
2827         (eliminate_regs_in_insn): Likewise.
2828         (emit_input_reload_insns): Add cast to enum type.
2829         (delete_output_reload): Change 0 to VOIDmode in function call.
2830         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2831         to enum type in function call.
2832         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2833         (SET_PREDICT_EXPR_OUTCOME): Define.
2834         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2835         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2836         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2837         (dump_function): Likewise.
2838         * tree-dump.h: Update declarations.
2839         * tree-pass.h: Update declarations.
2840         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2841         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2842         enum type.
2843         (arm_rtx_costs_1): Correct parenthesization.
2844         (arm_rtx_costs): Add casts to enum type.
2845         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2846         (vfp_emit_fstmd): Use add_rg_note.
2847         (emit_multi_reg_push, emit_sfm): Likewise.
2848         (thumb_set_frame_pointer): Likewise.
2849         (arm_expand_prologue): Likewise.
2850         (arm_regno_class): Change return type to enum reg_class.
2851         (thumb1_expand_prologue): Use add_reg_note.
2852         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2853         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2854         in function call.
2855         * config/arm/gentune.sh: Add cast to enum type.
2856         * config/arm/arm-tune.md: Rebuild.
2857         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2858         (ix86_split_fp_branch, predict_jump): Likewise.
2859         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2860         insn_code to enum rtx_code.
2861         (ix86_builtin_vectorized_function): Add cast to enum type.
2862         * config/i386/i386.md (truncdfsf2): Change slot to enum
2863         ix86_stack_slot.
2864         (truncxf<mode>2, isinf<mode>2): Likewise.
2865         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2866         enum type.
2867         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2868         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2869         (insert_bundle_state): Change 1 to INSERT in function call.
2870         (ia64_add_bundle_selector_before): Likewise.
2871         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2872         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2873         (restore_stack_nonlocal): Likewise.
2874         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2875         function call.
2876         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2877         function call.
2878         (mips_rtx_costs): Likewise.
2879         (mips_override_options): Add casts to enum type.
2880         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2881         in function call.
2882         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2883         (store_reg, set_reg_plus_d): Likewise.
2884         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2885         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2886         cast to enum type.
2887         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2888         function call.
2889         (emit_unlikely_jump): Use add_reg_note.
2890         (rs6000_emit_allocate_stack): Likewise.
2891         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2892         (output_toc): Change 1 to INSERT in function call.
2893         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2894         (rs6000_initialize_trampoline): Likewise.
2895         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2896         function call.
2897         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2898         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2899         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2900         (save_gprs): Use add_reg_note.
2901         (s390_emit_prologue): Likewise.
2902         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2903         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2904         (sparc_fold_builtin): Add cast to enum type.
2905         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2906         enum insn_code.
2907         (spu_expand_prologue): Use add_reg_note.
2908         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2909
2910 2009-04-20  Ian Lance Taylor  <iant@google.com>
2911
2912         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2913         (c_parser_postfix_expression_after_primary): Get VEC for list of
2914         arguments.  Get original types of arguments.  Call
2915         build_function_call_vec.
2916         (cached_expr_list_1, cached_expr_list_2): New static variables.
2917         (c_parser_expr_list): Change return type to VEC *.  Add
2918         p_orig_types parameter.  Change all callers.
2919         (c_parser_release_expr): New static function.
2920         (c_parser_vec_to_tree_list): New static function.
2921         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2922         call build_function_call_vec.
2923         (build_function_call_vec): New function, based on old
2924         build_function_call.
2925         (convert_arguments): Remove nargs and argarray parameters.  Change
2926         values to a VEC.  Add origtypes parameter.
2927         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2928         (convert_for_assignment): Add origtype parameter.  Change all
2929         callers.  If warn_cxx_compat, check for conversion to an enum
2930         type when calling a function.
2931         (store_init_value): Add origtype parameter.  Change all callers.
2932         (digest_init): Likewise.
2933         (struct init_node): Add origtype field.
2934         (add_pending_init): Add origtype parameter.  Change all callers.
2935         (output_init_element): Likewise.
2936         (output_pending_init_elements): Pass origtype from init_node to
2937         output_init_element.
2938         (process_init_element): Pass origtype from c_expr to
2939         output_init_element.
2940         (c_finish_return): Add origtype parameter.  Change all callers.
2941         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2942         caller.
2943         (sync_resolve_params): Likewise.
2944         (sync_resolve_return): Change params to first_param.  Change caller.
2945         (resolve_overloaded_builtins): Change params to VEC *.  Change
2946         callers.  Save first parameter around call to build_function_call_vec.
2947         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2948         callers.  Call build_function_call_vec rather than
2949         build_function_call for cleanup.
2950         * c-tree.h: Update declarations.
2951         * c-common.h: Update declarations.
2952         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2953         params to first_param.
2954         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2955         params parameter from tree to void *.
2956         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2957         Change arglist parameter to have type void *, and to be a pointer
2958         to a VEC.
2959         * config/rs6000/rs6000-protos.h
2960         (altivec_resolve_overloaded_builtin): Update declaration.
2961         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2962         fnargs parameter to have type void *, and to be a pointer to a
2963         VEC.  Call build_function_call_vec instead of
2964         build_function_call.
2965         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2966
2967 2009-04-20  Joey Ye  <joey.ye@intel.com>
2968             Xuepeng Guo  <xuepeng.guo@intel.com>
2969             H.J. Lu  <hongjiu.lu@intel.com>
2970
2971         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2972
2973         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2974         (IX86_LEA_PRIORITY): Likewise.
2975         (distance_non_agu_define): New function.
2976         (distance_agu_use): Likewise.
2977         (ix86_lea_for_add_ok): Likewise.
2978         (ix86_dep_by_shift_count): Likewise.
2979
2980         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2981         should split for LEA.
2982
2983         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2984         function.
2985         (ix86_dep_by_shift_count): Likewise.
2986
2987 2009-04-20  Richard Guenther  <rguenther@suse.de>
2988
2989         * expr.c (handled_component_p): Move ...
2990         * tree.h (handled_component_p): ... here.
2991         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2992         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2993         and REALPART_EXPR to be in one group.
2994
2995 2009-04-20  Richard Guenther  <rguenther@suse.de>
2996
2997         * basic-block.h (get_all_dominated_blocks): Declare.
2998         * dominance.c (get_all_dominated_blocks): New function.
2999         * tree-cfg.c (get_all_dominated_blocks): Remove.
3000         (remove_edge_and_dominated_blocks): Adjust.
3001         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3002         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
3003         instead of recursing.
3004
3005 2009-04-20  Doug Kwan  <dougkwan@google.com>
3006
3007         * cgraph.h (cgraph_node_ptr): New type for vector functions.
3008         (struct cgraph_node_set_def): New type.
3009         (cgraph_node_set) New type. Also declare vector functions.
3010         (struct cgraph_node_set_element_def): New type.
3011         (cgraph_node_set_element): Ditto.
3012         (cgraph_node_set_iterator): New iterator type.
3013         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3014         cgraph_node_set_remove, dump_cgraph_node_set,
3015         debug_cgraph_node_set): New prototypes.
3016         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3017         cgraph_node_set_size): New inlines.
3018         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3019         including cgraph.h.
3020         (struct ipa_opt_pass): Add struct cgraph_node_set_def
3021         argument to function 'write_summary'.
3022         * ipa.c: Include ggc.h.
3023         (hash_cgraph_node_set_element,
3024         eq_cgraph_node_set_element, cgraph_node_set_new,
3025         cgraph_node_set_add, cgraph_node_set_remove,
3026         cgraph_node_set_find, dump_cgraph_node_set,
3027         debug_cgraph_node_set): New functions.
3028         * Makefile.in (ipa.o): Add dependency on GGC_H.
3029
3030 2009-04-20  Ira Rosen  <irar@il.ibm.com>
3031
3032         PR tree-optimization/39675
3033         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
3034         check of the return code of vect_schedule_slp. Check that
3035         stmt_vec_info still exists for the statement, before checking its
3036         vectorization type.
3037
3038 2009-04-20  Michael Matz  <matz@suse.de>
3039
3040         * Makefile.in (generated_files): Take out $(simple_generated_c).
3041
3042 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
3043
3044         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
3045         (UINTPTR_TYPE):  Likewise.
3046
3047 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3048
3049         PR c/37481
3050         * c-typeck.c (digest_init): Check for initializing an array with a
3051         string literal.
3052
3053 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3054
3055         PR c/19771
3056         * c-semantics.c (pop_stmt_list): Propagate
3057         STATEMENT_LIST_HAS_LABEL to parent statement list.
3058
3059 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
3060
3061         * config/mips/mips.h (mips_tune_attr): New macro.
3062         * config/mips/mips.md (cpu): Use it.
3063
3064 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3065
3066         PR c/38243
3067         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3068         declaring a tag.
3069
3070 2009-04-19  Diego Novillo  <dnovillo@google.com>
3071
3072         * toplev.c (compile_file): Move call to coverage_finish ...
3073         * cgraphunit.c (ipa_passes): ... here.
3074         Call cgraph_process_new_functions.
3075         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3076         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3077
3078 2009-04-19  Jan Hubicka  <jh@suse.cz>
3079
3080         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3081         cfun.
3082         (dump_cgraph_node): Dump can throw external flag.
3083         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3084
3085 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3086
3087         PR c/32061
3088         PR c++/36954
3089         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3090         * common.opt (Wlogical-op): Move from here...
3091         * c.opt (Wlogical-op): ... to here.
3092         * c-typeck.c (parser_build_binary_op): Update call to
3093         warn_logical_operator.
3094         * c-opts.c (c_common_post_options): Enable warn_logical_op with
3095         extra_warnings.
3096         * c-common.c (warn_logical_op): Update.
3097         * c-common.h (warn_logical_op): Update declaration.
3098
3099 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3100
3101         * tree.c (protected_set_expr_location): Fix formatting.
3102
3103 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3104
3105         PR c/27676
3106         * c-typeck.c (readonly_warning): new.
3107         (build_unary_op, build_modify_expr): Use readonly_warning for
3108         storing into something readonly but not const-qualified.
3109
3110 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3111
3112         PR c/22367
3113         * c-typeck.c (build_unary_op): Check for taking address of
3114         expression of type void.
3115
3116 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3117
3118         PR c/35210
3119         * c-typeck.c (build_function_call): Check for calling a function
3120         with qualified void return types.  Call require_complete_type when
3121         generating a trap.
3122
3123 2009-04-18  Jan Hubicka  <jh@suse.cz>
3124
3125         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
3126         Set nothrow flag.
3127         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
3128         can_throw_external flag.
3129         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
3130         * ipa-pure-const.c (ignore_edge): New function.
3131         (propagate): Compute order for NOTHROW computation; set NOTHROWs
3132         only over can_throw_external edges.
3133         (local_pure_const): Add nothrow flag.
3134         * ipa-utils.c (searchc): Add ignore_edge callback.
3135         (ipa_utils_reduced_inorder): Add ignore_edge callback.
3136         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
3137         (set_nothrow_function_flags): Update cgraph.
3138         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
3139
3140 2009-04-18  Richard Guenther  <rguenther@suse.de>
3141
3142         PR middle-end/39804
3143         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
3144         (fold_stmt): ... this and ...
3145         (fold_stmt_inplace): ... this.
3146         (fold_stmt_1): Fold references in calls and asms.
3147         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
3148
3149 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3150
3151         * tree-vrp.c (ssa_name_nonzero_p): Remove.
3152         * tree.h: Remove the prototype for ssa_name_nonzero_p.
3153
3154 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3155
3156         * tree.c (function_args_count): Remove.
3157         * tree.h: Remove the prototype for function_args_count.
3158
3159 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3160
3161         * tree-iterator.c (expr_only): Remove.
3162         * tree.h: Remove the prototype for expr_only.
3163
3164 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3165
3166         * reginfo.c (cannot_change_mode_set_regs): Remove.
3167         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
3168
3169 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
3170
3171         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
3172         whether operands 0 and 1 overlaps.
3173
3174 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3175
3176         PR middle-end/36902
3177         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
3178         pointer. Use warning_at instead of warning.
3179         (search_for_addr_array): Likewise.
3180         (check_array_bounds): Likewise.
3181         (check_all_array_refs): Check that the incoming edge is not in the
3182         list of edges to be removed.
3183         (check_all_array_refs): Avoid the temporal pointer.
3184         (vrp_visit_cond_stmt): Fix typo.
3185         (simplify_switch_using_ranges): Handle the case where the switch
3186         index is an integer constant.
3187
3188 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
3189
3190         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
3191
3192 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3193
3194         * doc/extend.texi, doc/invoke.texi: Fix typos.
3195
3196 2009-04-17  Cary Coutant  <ccoutant@google.com>
3197
3198         * tree-flow-inline.h (get_lineno): Fix inverted test.
3199
3200 2009-04-17  Diego Novillo  <dnovillo@google.com>
3201
3202         * tree-ssa-pre.c (create_expression_by_pieces): Remove
3203         assertion for AVAIL_OUT.
3204
3205 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
3206
3207         PR target/38627
3208         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
3209         * config/sh/linux-atomic.asm: Likewise.
3210
3211 2009-04-17  Diego Novillo  <dnovillo@google.com>
3212
3213         * except.c (debug_eh_tree): New.
3214         (struct eh_region, struct eh_status): Move ...
3215         * except.h: ... here.
3216         (add_type_for_runtime): Declare extern.
3217         (lookup_type_for_runtime): Likewise.
3218         (debug_eh_tree): Declare.
3219         * Makefile.in (GTFILES): List except.h before except.c
3220
3221 2009-04-17  Diego Novillo  <dnovillo@google.com>
3222
3223         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
3224         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3225         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
3226         (find_vars_r): ... here.
3227         * tree-flow.h (find_referenced_vars_in): Declare.
3228         * tree-ssa-pre.c (create_expression_by_pieces): Assert
3229         that AVAIL_OUT exists for BLOCK.
3230         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
3231         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
3232         (tree-parloops.o): Likewise.
3233
3234 2009-04-17  Simon Baldwin  <simonb@google.com>
3235
3236         * toplev.c (default_tree_printer): Add handling for %E format.
3237
3238 2009-04-17  Diego Novillo  <dnovillo@google.com>
3239
3240         * tree-pretty-print.c (dump_generic_node): Add break after
3241         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
3242         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
3243         FUNCTION_TYPE together.  Call print_struct_decl when printing
3244         structures and TDF_SLIM is not given.
3245         (print_struct_decl): Fix logic for detecting recursion.
3246
3247 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3248
3249         PR 31567
3250         * gcc.c (create_at_file): New.
3251         (compile_input_file_p): New.
3252         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
3253         * main.c (main): Update call to toplev_main.
3254         * toplev.c (toplev_main): Change signature. Call expandargv.
3255         * toplev.h (toplev_main): Change signature.
3256
3257 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3258
3259         * dwarf2out.c (field_byte_offset): Use the type size as the field size
3260         if the latter is not constant.
3261
3262 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
3263
3264         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3265
3266 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3267
3268         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3269         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3270
3271 2009-04-17  Richard Guenther  <rguenther@suse.de>
3272
3273         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3274         Handle component references view-converting an invariant address.
3275
3276 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
3277
3278         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3279         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3280         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3281         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3282         Use @deftypevr rather than @deftypevar.
3283
3284 2009-04-17  Richard Guenther  <rguenther@suse.de>
3285
3286         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
3287         (get_prop_source_stmt): Likewise.
3288         (can_propagate_from): Likewise.
3289
3290 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
3291
3292         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3293         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3294         (--with-multilib-list): Add default value.
3295         * configure: Regenerate.
3296         * Makefile.in (TM_ENDIAN_CONFIG): Define.
3297         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3298         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3299         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3300         Don't add default cpu to multilib list unnecessarily, but do enable
3301         the relevant compiler option..
3302         Add support for --with-multilib-list=<blank> and
3303         --with-multilib-list=!<somelib> to supress unwanted multilibs.
3304         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3305         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3306         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3307         TM_MULTILIB_CONFIG.
3308         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3309         (MULTILIB_OSDIRNAMES): New variable.
3310         * config/sh/t-1e: Delete file.
3311         * config/sh/t-mlib-sh1: Delete file.
3312         * config/sh/t-mlib-sh2: Delete file.
3313         * config/sh/t-mlib-sh2a: Delete file.
3314         * config/sh/t-mlib-sh2a-nofpu: Delete file.
3315         * config/sh/t-mlib-sh2a-single: Delete file.
3316         * config/sh/t-mlib-sh2a-single-only: Delete file.
3317         * config/sh/t-mlib-sh2e: Delete file.
3318         * config/sh/t-mlib-sh3e: Delete file.
3319         * config/sh/t-mlib-sh4: Delete file.
3320         * config/sh/t-mlib-sh4-nofpu: Delete file.
3321         * config/sh/t-mlib-sh4-single: Delete file.
3322         * config/sh/t-mlib-sh4-single-only: Delete file.
3323         * config/sh/t-mlib-sh4a: Delete file.
3324         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3325         * config/sh/t-mlib-sh4a-single: Delete file.
3326         * config/sh/t-mlib-sh4a-single-only: Delete file.
3327         * config/sh/t-mlib-sh4al: Delete file.
3328         * config/sh/t-mlib-sh5-32media: Delete file.
3329         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3330         * config/sh/t-mlib-sh5-64media: Delete file.
3331         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3332         * config/sh/t-mlib-sh5-compact: Delete file.
3333         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3334         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3335         * doc/install.texi (Options specification): Add
3336         --with-multilib-list and --with-endian.
3337
3338 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3339
3340         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3341         REVISION_c.
3342         (OBJS-common): Add plugin-version.o.
3343         (plugin-version.o): New.
3344         * gcc-plugin.h (plugin_gcc_version): New.
3345         (plugin_default_version_check): New.
3346         (plugin_init_func, plugin_init): Add version argument.
3347         * plugin-version.c: New.
3348         * plugin.c (str_plugin_gcc_version_name): New.
3349         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3350         pass it to the init function.
3351         (plugin_default_version_check): New.
3352
3353 2009-04-17  Richard Guenther  <rguenther@suse.de>
3354
3355         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3356         for decl-vs-decl disambiguation.
3357
3358 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3359
3360         * config/s390/s390.h (s390_tune_attr): New macro definition.
3361         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3362
3363 2009-04-17  Richard Guenther  <rguenther@suse.de>
3364
3365         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3366         (fold_stmt_r): Likewise.
3367         (maybe_fold_reference): New function.
3368         (fold_gimple_assign): Handle cases fold_stmt_r did.
3369         (fold_stmt): Do not use fold_stmt_r.
3370         (fold_stmt_inplace): Likewise.
3371
3372 2009-04-17  Richard Guenther  <rguenther@suse.de>
3373
3374         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3375         (record_equivalences_from_stmt): Remove useless checks and
3376         simplifications.
3377         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3378         the type is already suitable.
3379
3380 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3381
3382         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3383
3384 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3385
3386         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3387         (CMPtype): Define as __gcc_CMPtype.
3388
3389 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3390
3391         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3392         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3393
3394 2009-04-17  Richard Guenther  <rguenther@suse.de>
3395
3396         PR tree-optimization/39746
3397         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3398         special-casing for builtins and static variable use/def.
3399         (call_may_clobber_ref_p_1): Likewise.
3400
3401 2009-04-16  Ian Lance Taylor  <iant@google.com>
3402
3403         * df.h: Include "timevar.h".
3404         (struct df_problem): Change tv_id field to timevar_id_t.
3405         * tree-pass.h: Include "timevar.h".
3406         (struct opt_pass): Change tv_id field to timevar_id_t.
3407         * timevar.h (timevar_id_t): Define TV_NONE.
3408         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3409         TV_NONE rather than tv_id != 0.
3410         (execute_one_pass): Likewise.
3411         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3412         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3413         dependencies to $(TREE_PASS_H).
3414         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3415         to TV_NONE.
3416         (pass_branch_target_load_optimize2): Likewise.
3417         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3418         (pass_outof_cfg_layout_mode): Likewise.
3419         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3420         (pass_rebuild_cgraph_edges): Likewise.
3421         (pass_remove_cgraph_callee_edges): Likewise.
3422         * df-core.c (pass_df_initialize_opt): Likewise.
3423         (pass_df_initialize_no_opt): Likewise.
3424         (pass_df_finish): Likewise.
3425         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3426         * except.c (pass_set_nothrow_function_flags): Likewise.
3427         (pass_convert_to_eh_region_ranges): Likewise.
3428         * final.c (pass_compute_alignments): Likewise.
3429         * function.c (pass_instantiate_virtual_regs): Likewise.
3430         (pass_init_function): Likewise.
3431         (pass_leaf_regs): Likewise.
3432         (pass_match_asm_constraints): Likewise.
3433         * gimple-low.c (pass_lower_cf): Likewise.
3434         (pass_mark_used_blocks): Likewise.
3435         * init-regs.c (pass_initialize_regs): Likewise.
3436         * integrate.c (pass_initial_value_sets): Likewise.
3437         * ira.c (pass_ira): Likewise.
3438         * jump.c (pass_cleanup_barriers): Likewise.
3439         * omp-low.c (pass_expand_omp): Likewise.
3440         (pass_lower_omp): Likewise.
3441         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3442         * recog.c (pass_split_all_insns): Likewise.
3443         (pass_split_after_reload): Likewise.
3444         (pass_split_before_regstack): Likewise.
3445         (pass_split_before_sched2): Likewise.
3446         (pass_split_for_shorten_branches): Likewise.
3447         * reginfo.c (pass_reginfo_init): Likewise.
3448         (pass_subregs_of_mode_init): Likewise.
3449         (pass_subregs_of_mode_finish): Likewise.
3450         * passes.c (pass_postreload): Likewise.
3451         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3452         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3453         (pass_warn_function_return): Likewise.
3454         (pass_warn_function_noreturn): Likewise.
3455         * tree-complex.c (pass_lower_complex): Likewise.
3456         (pass_lower_complex_O0): Likewise.
3457         * tree-if-conv.c (pass_if_conversion): Likewise.
3458         * tree-into-ssa.c (pass_build_ssa): Likewise.
3459         * tree-mudflap.c (pass_mudflap_1): Likewise.
3460         (pass_mudflap_2): Likewise.
3461         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3462         (pass_mudflap_2): Likewise.
3463         * tree-nrv.c (pass_return_slot): Likewise.
3464         * tree-object-size.c (pass_object_sizes): Likewise.
3465         * tree-optimize.c (pass_all_optimizations): Likewise.
3466         (pass_early_local_passes): Likewise.
3467         (pass_all_early_optimizations): Likewise.
3468         (pass_cleanup_cfg): Likewise.
3469         (pass_cleanup_cfg_post_optimizing): Likewise.
3470         (pass_free_datastructures): Likewise.
3471         (pass_free_cfg_annotations): Likewise.
3472         (pass_fixup_cfg): Likewise.
3473         (pass_init_datastructures): Likewise.
3474         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3475         (pass_late_warn_uninitialized): Likewise.
3476         (pass_update_address_taken): Likewise.
3477         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3478         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3479         (pass_cse_sincos): Likewise.
3480         (pass_convert_to_rsqrt): Likewise.
3481         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3482         * tree-stdarg.c (pass_stdarg): Likewise.
3483         * tree-tailcall.c (pass_tail_recursion): Likewise.
3484         (pass_tail_calls): Likewise.
3485         * tree-vect-generic.c (pass_lower_vector): Likewise.
3486         (pass_lower_vector_ssa): Likewise.
3487         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3488
3489 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3490
3491         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3492         XLR entry.
3493         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3494         Handle -march=xlr.
3495         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3496         logical and signext.
3497
3498 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3499
3500         PR target/39767
3501         * config/sh/predicates.md (arith_operand): Check if the operand
3502         of TRUNCATE is a REG.
3503
3504 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3505
3506         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3507         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3508
3509 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3510
3511         * tree-iterator.c (tsi_split_statement_list_after,
3512         tsi_split_statement_list_before): Remove.
3513         * tree-iterator.h: Remove the prototypes for
3514         tsi_split_statement_list_after and tsi_split_statement_list_before.
3515
3516 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3517
3518         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3519         * tree-ssa-propagate.h: Remove the prototype for
3520         stmt_makes_single_load.
3521
3522 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3523
3524         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3525         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3526
3527 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3528
3529         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3530
3531 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3532
3533         * except.c (eh_region_outer_p): Remove.
3534         * except.h: Remove the prototype for eh_region_outer_p.
3535
3536 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3537
3538         * function.c (current_function_assembler_name): Remove.
3539         * function.h: Remove the prototype for
3540         current_function_assembler_name.
3541
3542 2009-04-16  Ian Lance Taylor  <iant@google.com>
3543
3544         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3545         (add_reg_note): Call alloc_reg_note.
3546         * rtl.h (alloc_reg_note): Declare.
3547         * combine.c (try_combine): Use alloc_reg_note.
3548         (recog_for_combine, move_deaths): Likewise.
3549         (distribute_notes): Use alloc_reg_note and add_reg_note.
3550         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3551         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3552         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3553
3554 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3555
3556         PR rtl-optimization/39762
3557         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3558         ira_may_move_out_cost): Add comments about way of their usage.
3559         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3560
3561         * ira-conflicts.c (process_regs_for_copy): Use function
3562         ira_get_register_move_cost instead of global
3563         ira_register_move_cost.
3564
3565         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3566         color_pass, move_spill_restore, update_curr_costs): Ditto.
3567
3568         * ira-lives.c (process_single_reg_class_operands): Ditto.
3569
3570         * ira-emit.c (emit_move_list): Ditto.
3571
3572         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3573         (record_reg_classes): Ditto.  Use functions
3574         ira_get_register_move_cost and ira_get_may_move_cost instead of
3575         global vars ira_register_move_cost, ira_may_move_out_cost and
3576         ira_may_move_in_cost.
3577         (record_address_regs): Don't call ira_init_register_move_cost.
3578         Use function ira_get_may_move_cost instead of global
3579         ira_may_move_in_cost.
3580         (process_bb_node_for_hard_reg_moves): Use function
3581         ira_get_register_move_cost instead of global ira_register_move_cost.
3582         (ira_costs): Don't call ira_init_register_move_cost.
3583
3584 2009-04-16  Richard Guenther  <rguenther@suse.de>
3585
3586         * tree-cfg.c (verify_gimple_assign_binary):
3587         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3588         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3589         (create_general_new_stmt): Note that this function is broken.
3590
3591 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3592
3593         * common.opt (fhelp): Add Var(help_flag).
3594         * gcc-plugin.h (plugin_info): Add help.
3595         * plugin.c (plugin_name_args): Add help.
3596         (register_plugin_info): Set plugin->help.
3597         (print_help_one_plugin): New.
3598         (print_plugins_help): New.
3599         * plugin.h (print_plugins_help): New.
3600         * toplev.c (toplev_main): Call print_plugins_help if needed.
3601
3602 2009-04-16  Richard Guenther  <rguenther@suse.de>
3603
3604         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3605         (gimple_ior_addresses_taken_1): New function.
3606         (gimple_ior_addresses_taken): Likewise.
3607         * gimple.h (struct gimple_statement_with_ops_base): Remove
3608         addresses_taken member.
3609         (gimple_ior_addresses_taken): Declare.
3610         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3611         gimple_set_addresses_taken): Remove.
3612         * ipa-reference.c (mark_address): New function.
3613         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3614         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3615         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3616         (gimple_add_to_addresses_taken): Remove.
3617         (get_tmr_operands): Call mark_address_taken.
3618         (get_asm_expr_operands): Likewise.
3619         (get_expr_operands): Likewise.
3620         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3621         (free_stmt_operands): Do not free it.
3622         * tree-ssa.c (delete_tree_ssa): Likewise.
3623         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3624
3625 2009-04-16  Richard Guenther  <rguenther@suse.de>
3626
3627         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3628         (walk_stmt_load_store_ops): Likewise.
3629         * gimple.c (get_base_loadstore): New function.
3630         (walk_stmt_load_store_addr_ops): Likewise.
3631         (walk_stmt_load_store_ops): Likewise.
3632         * ipa-pure-const.c (check_op): Simplify.
3633         (check_load, check_store): New functions.
3634         (check_stmt): Use walk_stmt_load_store_ops.
3635         * ipa-reference.c (mark_load): Adjust signature.
3636         (mark_store): Likewise.
3637         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3638
3639 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3640
3641         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3642         (plugin_info): New.
3643         * opts.c (common_handle_option): Don't call print_version.
3644         * plugin.c (plugin_name_args): Add version.
3645         (register_plugin_info): New.
3646         (register_callback): Handle PLUGIN_INFO.
3647         (try_init_one_plugin): New.
3648         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3649         if failed to init.
3650         (finalize_one_plugin): New.
3651         (finalize_plugins): New.
3652         (print_one_plugin): New.
3653         (print_plugins_versions): New.
3654         * plugin.h (print_plugins_versions): New.
3655         (finalize_plugins): New.
3656         * toplev.c (compile_file): Don't call initialize_plugins.
3657         (print_version): Call print_plugins_versions.
3658         (toplev_main): Call initialize_plugins. Print version if needed.
3659         Call finalize_plugins.
3660
3661 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3662
3663         * common.opt (fversion): New.
3664         * gcc.c (print_version): New.
3665         (process_command): Don't print the version. Just set print_version.
3666         (main): Print version. Call subprocesses if print_version and
3667         verbose_flag are set.
3668         * opts.c (common_handle_option): Handle OPT_fversion.
3669
3670 2009-04-16  Richard Guenther  <rguenther@suse.de>
3671             Ira Rosen  <irar@il.ibm.com>
3672
3673         PR tree-optimization/39698
3674         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3675         type of the reduction variable.  Only generate the def if
3676         it is needed.
3677
3678         * omp-low.c (expand_omp_for_generic): When converting to a pointer
3679         make sure to first convert to an integer of the same precision.
3680         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3681         the type of the evolution correctly in computing the new
3682         induction variable base.
3683
3684 2009-04-16  Richard Guenther  <rguenther@suse.de>
3685
3686         PR middle-end/39625
3687         * tree-cfg.c (make_blocks): Split statements with to-be
3688         abnormal SSA names on the lhs.
3689
3690 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
3691
3692         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3693         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3694         * c-typeck.c (really_start_incremental_init): Likewise.
3695         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3696         (TARGET_INITIALIZER): Remove it.
3697         * target.h (struct target): Remove vector_opaque_p.
3698         * tree.c (build_opaque_vector_type): New.
3699         * tree.h (TYPE_VECTOR_OPAQUE): New.
3700         (build_opaque_vector_type): Declare.
3701         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3702         * config/rs6000/rs6000.c (build_opaque_vector_type,
3703         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3704         (rs6000_init_builtins): Use build_opaque_vector_type for
3705         opaque_V4SI_type_node.
3706
3707 2009-04-15  Catherine Moore  <clm@codesourcery.com>
3708
3709         * debug.h (set_name):  Declare.
3710         * dwarf2out.c (dwarf2out_set_name): Declare.
3711         (dwarf2_debug_hooks): Add set_name.
3712         (find_AT_string): New.
3713         (add_AT_string): Call find_AT_string.
3714         (dwarf2out_set_name): New.
3715         * cp/decl.c (grokdeclarator): Call set_name.
3716         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3717         * debug.c (do_nothing_debug_hooks):  Likewise.
3718         * dbxout.c (dbx_debug_hooks): Likewise.
3719         * sdbout.c (sdb_debug_hooks): Likewise.
3720
3721 2009-04-15  Michael Eager  <eager@eagercon.com>
3722
3723         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3724         reg for single-precision FPU.
3725         * config/rs6000/rs6000.md (movsi_internal1): Only for
3726         !TARGET_SINGLE_FPU.
3727         (movsi_internal1_single): New. Add pattern to move SI values to/from
3728         single-precision FP regs.
3729
3730 2009-04-15  Richard Guenther  <rguenther@suse.de>
3731
3732         * omp-low.c (lower_rec_input_clauses): Build correct address
3733         expressions.
3734         (expand_omp_for_generic): Fix multiplication type.
3735         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3736         (generate_memset_zero): Fix types.
3737         * tree-profile.c (prepare_instrumented_value): Correctly
3738         widen a pointer.
3739
3740 2009-04-15  Ian Lance Taylor  <iant@google.com>
3741
3742         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3743         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3744         for -Wall and for -Wc++-compat.
3745         (c_common_post_options): For C++, set warn_enum_compare if not
3746         already set.
3747         * c-tree.h (struct c_expr): Add field original_type.
3748         (build_external_ref): Update declaration.
3749         * c-parser.c (c_parser_braced_init): Set original_type.
3750         (c_parser_initelt): Likewise.
3751         (c_parser_expr_no_commas): Likewise.
3752         (c_parser_conditional_expression): Likewise.
3753         (c_parser_cast_expression): Likewise.
3754         (c_parser_unary_expression): Likewise.  Pull setting of
3755         original_code to top of function.
3756         (c_parser_sizeof_expression): Set original_type.
3757         (c_parser_alignof_expression): Likewise.
3758         (c_parser_postfix_expression): Likewise.  Pull setting of
3759         original_code to top of function.
3760         (c_parser_postfix_expression_after_paren_type): Set original_type.
3761         (c_parser_postfix_expression_after_primary): Likewise.
3762         (c_parser_expression): Likewise.
3763         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3764         callers.
3765         (c_expr_sizeof_expr): Set original_type field.
3766         (parser_build_unary_op): Likewise.
3767         (parser_build_binary_op): Likewise.  Optionally warn about
3768         comparisons of enums of different types.
3769         (digest_init): Set original_type field.
3770         (really_start_incremental_init): Likewise.
3771         (push_init_level, pop_init_level): Likewise.
3772         * doc/invoke.texi (Warning Options): -Wenum-compare now
3773         supported in C.
3774
3775 2009-04-15  Richard Guenther  <rguenther@suse.de>
3776
3777         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3778         out a necessary conversion.
3779         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3780         names we didn't value number.
3781         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3782
3783 2009-04-15  Richard Guenther  <rguenther@suse.de>
3784
3785         PR tree-optimization/39764
3786         * tree-ssa-ccp.c (get_value): Canonicalize value with
3787         canonicalize_float_value.
3788
3789 2009-04-15  Jan Hubicka  <jh@suse.cz>
3790
3791         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3792         Wrong version of patch.
3793
3794 2009-04-15  Jan Hubicka  <jh@suse.cz>
3795
3796         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3797
3798 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3799
3800         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3801         our distinct integral and vector types.
3802
3803 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3804
3805         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3806         * init.c (build_vtbl_address): Remove call to assemble_external.
3807
3808 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3809
3810         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3811         output for other floating point modes.
3812
3813 2009-04-14  Diego Novillo  <dnovillo@google.com>
3814
3815         * diagnostic.c (diagnostic_report_diagnostic): Do not
3816         warn about loaded plugins for DK_ERROR and DK_WARNING.
3817         * c-decl.c (declspecs_add_type): Move call to
3818         invoke_plugin_callbacks ...
3819         * c-parser.c (c_parser_declspecs): ... here.
3820         * plugin.c (dump_active_plugins): Tidy output.
3821
3822 2009-04-14  Diego Novillo  <dnovillo@google.com>
3823             Le-Chun Wu  <lcwu@google.com>
3824
3825         * configure.ac: Add --enable-plugin support.
3826         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3827         * Makefile.in (PLUGIN_H): Define.
3828         Export ENABLE_PLUGIN and GMPINC to site.exp.
3829         Add PLUGINLIBS to link command.
3830         Add/modify dependencies for plugin.o and files including plugin.h.
3831         (plugin.o): New.
3832         * config.in: Regenerate.
3833
3834         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3835         OPT_fplugin_arg_.
3836
3837 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3838
3839         * tree-pass.h (register_one_dump_file): Add a prototype for
3840         register_one_dump_file.
3841         * toplev.c (compile_file): Call initialize_plugins.
3842         (do_compile): Call invoke_plugin_callbacks.
3843         (toplev_main): Call invoke_plugin_callbacks.
3844         * common.opt: Add -fplugin= and -fplugin-arg-.
3845         * gcc-plugin.h: New public header file for plugins to include.
3846         * plugin.c: New source file.
3847         * plugin.h: New internal header file.
3848         * passes.c (register_one_dump_file): Make it external.
3849
3850         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3851
3852 2009-04-14  Diego Novillo  <dnovillo@google.com>
3853
3854         * doc/plugins.texi: New.
3855         * doc/gccint.texi: Add reference to Plugins chapter.
3856         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3857         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3858         loaded plugins, if any.
3859         * timevar.def (TV_PLUGIN_INIT): Define.
3860         (TV_PLUGIN_RUN): Define.
3861         * plugin.c: Include timevar.h
3862         (plugins_active_p): New.
3863         (dump_active_plugins): New.
3864         (debug_active_plugins): New.
3865
3866 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3867
3868         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3869         library paths.
3870         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3871
3872 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3873
3874         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3875         the same as a minus without a shift.
3876
3877 2009-04-14  Nick Clifton  <nickc@redhat.com>
3878
3879         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3880         comparisons with small integers will always produce a short
3881         branch.
3882
3883 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3884
3885         Merge:
3886         2008-12-19  Diego Novillo  <dnovillo@google.com>
3887
3888         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3889
3890 2009-04-14  Richard Guenther  <rguenther@suse.de>
3891
3892         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3893         verification.
3894         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3895         rotates correctly.
3896         (verify_gimple_phi): Print the mismatched argument position.
3897         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3898         Fix types.
3899         (vect_update_init_of_dr): Likewise.
3900         * matrix-reorg.c (transform_access_sites): Do what the
3901         comment suggests.
3902         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3903
3904 2009-04-13  Michael Eager  <eager@eagercon.com>
3905
3906         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3907         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3908         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3909         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3910         remove duplicate config
3911
3912 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3913
3914         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3915         file_name:line_number type locator of the call site.
3916
3917 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3918
3919         * genautomata.c: Put blank after comma.
3920         (automaton_decls): New.
3921         (struct unit_usage): Add comments to member next.
3922         (store_alt_unit_usage): Keep the list ordered.
3923         (unit_present_on_list_p, equal_alternatives_p): New.
3924         (check_regexp_units_distribution): Check units distribution
3925         correctness correctly.
3926         (main): Don't write automata if error is found.  Return correct
3927         exit code.
3928
3929         * config/m68k/cf.md (cfv4_ds): Remove.
3930         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3931         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3932
3933         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3934         power4-load-ext, power4-store, power4-store-update,
3935         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3936         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3937         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3938         power4-sqrt, power4-isync): Modify reservation to make correct
3939         unit distribution to automata.
3940
3941         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3942         power5-store-update, power5-two, power5-three, power5-lmul,
3943         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3944
3945 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3946
3947         * except.c (pass_set_nothrow_function_flags): Set name and add
3948         TODO_dump_func.
3949         (set_nothrow_function_flags): Mention in the dump file when
3950         changing a function to nothrow.
3951
3952 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3953
3954         PR/39066
3955         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3956         instead of unsigned long.
3957
3958 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3959
3960         * config/arm/arm.c (return_used_this_function): Remove.
3961         (arm_output_function_prologue): Remove use of
3962         return_used_this_function.
3963         (output_return_instruction): Replace use of
3964         return_used_this_function
3965         by cfun->machine->return_used_this_function.
3966         (arm_output_epilogue): Likewise.
3967         (arm_output_function_epilogue): Likewise.
3968         (thumb_unexpanded_epilogue): Likewise.
3969         * config/arm/arm.h (struct machine_function):
3970         New member return_used_this_function.
3971
3972 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3973
3974         * doc/install.texi: Correct description of default directory for
3975         --with-gxx-include-dir.
3976
3977 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3978
3979         * fold-const.c (build_range_check): Properly deal with enumeral and
3980         boolean base types.
3981
3982 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3983
3984         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3985         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3986         * params.h (MAX_GCSE_PASSES): Remove.
3987         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3988         in sequence.  Remove ability to run multiple passes.
3989         (bypass_jumps): Report run as third CPROP pass.
3990
3991 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3992
3993         PR middle-end/39651
3994         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3995         when deciding whether the whole SEQUENCE can throw.
3996
3997 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3998
3999         PR target/39740
4000         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4001         offseted label references.
4002
4003 2009-04-11  Jan Hubicka  <jh@suse.cz>
4004
4005         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4006
4007 2009-04-11  Richard Guenther  <rguenther@suse.de>
4008
4009         PR middle-end/39732
4010         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4011         return variables as TREE_ADDRESSABLE.
4012
4013 2009-04-11  Richard Guenther  <rguenther@suse.de>
4014
4015         PR tree-optimization/39713
4016         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4017         reference trees have SSA_NAME operands.
4018
4019 2009-04-11  Richard Guenther  <rguenther@suse.de>
4020
4021         PR c/39712
4022         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4023         address expressions.
4024
4025 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4026
4027         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
4028         match changes in Cygwin 1.7
4029         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4030         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
4031
4032 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4033
4034         PR tree-optimization/39701
4035         * doc/invoke.texi (Optimization Options): Document change in
4036         meaning and initialization of -fdelete-null-pointer-checks.
4037
4038 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4039
4040         PR middle-end/39701
4041         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4042
4043         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4044         here.
4045
4046         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4047
4048 2009-04-10  Chao-ying Fu  <fu@mips.com>
4049
4050         * doc/tm.texi (Instruction Output): Document
4051         TARGET_ASM_FINAL_POSTSCAN_INSN.
4052         * target.h (final_postscan_insn): New field in asm_out.
4053         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4054         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4055         * final.c (final_scan_insn): Call
4056         targetm.asm_out.final_postscan_insn after outputting
4057         an asm macro and a normal instruction.
4058
4059         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
4060         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
4061         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
4062         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
4063         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4064
4065 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4066
4067         PR middle-end/39701
4068         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
4069         variables as non-NULL even with -fdelete-null-pointer-checks.
4070
4071 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4072
4073         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
4074
4075 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
4076
4077         PR target/39678
4078         * config/i386/i386.c (classify_argument): Handle SCmode with
4079         (bit_offset % 64) != 0.
4080
4081 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
4082
4083         * doc/invoke.texi (Optimize Options): Add cross-reference to
4084         -Q --help=optimizers examples.
4085
4086 2009-04-10  Ben Elliston  <bje@au.ibm.com>
4087
4088         PR target/36800
4089         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
4090         regalign for the reg == fpr and TDmode case.
4091
4092 2009-04-09  David Ayers  <ayers@fsfe.org>
4093
4094         PR objc/29200
4095         * objc/objc-act.c (warn_with_method): Remove helper function.
4096         (check_duplicates): Call warning and inform directly.
4097         (really_start_method): Likewise.
4098
4099 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4100
4101         * expmed.c (expand_divmod): Always use a comparison for a division
4102         by a large unsigned integer.
4103
4104         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
4105         for things others than variables or functions as nonzero.
4106
4107 2009-04-09  Nick Clifton  <nickc@redhat.com>
4108
4109         * unwind-compat.c: Change copyright header to refer to version
4110         3 of the GNU General Public License with version 3.1 of the
4111         GCC Runtime Library Exception and to point readers at the
4112         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
4113         * config/alpha/crtfastmath.c: Likewise.
4114         * config/alpha/linux-unwind.h: Likewise.
4115         * config/alpha/qrnnd.asm: Likewise.
4116         * config/alpha/vms-crt0-64.c: Likewise.
4117         * config/alpha/vms-crt0.c: Likewise.
4118         * config/alpha/vms-dwarf2.asm: Likewise.
4119         * config/alpha/vms-dwarf2eh.asm: Likewise.
4120         * config/alpha/vms-psxcrt0-64.c: Likewise.
4121         * config/alpha/vms-psxcrt0.c: Likewise.
4122         * config/alpha/vms_tramp.asm: Likewise.
4123         * config/arc/initfini.c: Likewise.
4124         * config/arc/lib1funcs.asm: Likewise.
4125         * config/arm/bpabi-v6m.S: Likewise.
4126         * config/arm/bpabi.S: Likewise.
4127         * config/arm/bpabi.c: Likewise.
4128         * config/arm/crti.asm: Likewise.
4129         * config/arm/crtn.asm: Likewise.
4130         * config/arm/ieee754-df.S: Likewise.
4131         * config/arm/ieee754-sf.S: Likewise.
4132         * config/arm/lib1funcs.asm: Likewise.
4133         * config/arm/libunwind.S: Likewise.
4134         * config/arm/linux-atomic.c: Likewise.
4135         * config/arm/mmintrin.h: Likewise.
4136         * config/arm/pr-support.c: Likewise.
4137         * config/arm/unaligned-funcs.c: Likewise.
4138         * config/arm/unwind-arm.c: Likewise.
4139         * config/arm/unwind-arm.h: Likewise.
4140         * config/avr/libgcc.S: Likewise.
4141         * config/bfin/crti.s: Likewise.
4142         * config/bfin/crtlibid.s: Likewise.
4143         * config/bfin/crtn.s: Likewise.
4144         * config/bfin/lib1funcs.asm: Likewise.
4145         * config/bfin/linux-unwind.h: Likewise.
4146         * config/cris/arit.c: Likewise.
4147         * config/cris/cris_abi_symbol.c: Likewise.
4148         * config/darwin-64.c: Likewise.
4149         * config/darwin-crt2.c: Likewise.
4150         * config/darwin-crt3.c: Likewise.
4151         * config/darwin.h: Likewise.
4152         * config/dbxelf.h: Likewise.
4153         * config/dfp-bit.c: Likewise.
4154         * config/dfp-bit.h: Likewise.
4155         * config/elfos.h: Likewise.
4156         * config/fixed-bit.c: Likewise.
4157         * config/fixed-bit.h: Likewise.
4158         * config/fp-bit.c: Likewise.
4159         * config/fp-bit.h: Likewise.
4160         * config/fr30/crti.asm: Likewise.
4161         * config/fr30/crtn.asm: Likewise.
4162         * config/fr30/lib1funcs.asm: Likewise.
4163         * config/freebsd-spec.h: Likewise.
4164         * config/frv/cmovd.c: Likewise.
4165         * config/frv/cmovh.c: Likewise.
4166         * config/frv/cmovw.c: Likewise.
4167         * config/frv/frvbegin.c: Likewise.
4168         * config/frv/frvend.c: Likewise.
4169         * config/frv/lib1funcs.asm: Likewise.
4170         * config/glibc-stdint.h: Likewise.
4171         * config/h8300/clzhi2.c: Likewise.
4172         * config/h8300/crti.asm: Likewise.
4173         * config/h8300/crtn.asm: Likewise.
4174         * config/h8300/ctzhi2.c: Likewise.
4175         * config/h8300/fixunssfsi.c: Likewise.
4176         * config/h8300/lib1funcs.asm: Likewise.
4177         * config/h8300/parityhi2.c: Likewise.
4178         * config/h8300/popcounthi2.c: Likewise.
4179         * config/i386/ammintrin.h: Likewise.
4180         * config/i386/att.h: Likewise.
4181         * config/i386/avxintrin.h: Likewise.
4182         * config/i386/biarch64.h: Likewise.
4183         * config/i386/bmmintrin.h: Likewise.
4184         * config/i386/cpuid.h: Likewise.
4185         * config/i386/cross-stdarg.h: Likewise.
4186         * config/i386/crtfastmath.c: Likewise.
4187         * config/i386/crtprec.c: Likewise.
4188         * config/i386/cygming-crtbegin.c: Likewise.
4189         * config/i386/cygming-crtend.c: Likewise.
4190         * config/i386/cygwin.asm: Likewise.
4191         * config/i386/emmintrin.h: Likewise.
4192         * config/i386/gmm_malloc.h: Likewise.
4193         * config/i386/gthr-win32.c: Likewise.
4194         * config/i386/i386.h: Likewise.
4195         * config/i386/immintrin.h: Likewise.
4196         * config/i386/linux-unwind.h: Likewise.
4197         * config/i386/linux64.h: Likewise.
4198         * config/i386/mm3dnow.h: Likewise.
4199         * config/i386/mmintrin-common.h: Likewise.
4200         * config/i386/mmintrin.h: Likewise.
4201         * config/i386/nmmintrin.h: Likewise.
4202         * config/i386/pmm_malloc.h: Likewise.
4203         * config/i386/pmmintrin.h: Likewise.
4204         * config/i386/smmintrin.h: Likewise.
4205         * config/i386/sol2-c1.asm: Likewise.
4206         * config/i386/sol2-ci.asm: Likewise.
4207         * config/i386/sol2-cn.asm: Likewise.
4208         * config/i386/sol2-gc1.asm: Likewise.
4209         * config/i386/tmmintrin.h: Likewise.
4210         * config/i386/unix.h: Likewise.
4211         * config/i386/w32-unwind.h: Likewise.
4212         * config/i386/wmmintrin.h: Likewise.
4213         * config/i386/x86-64.h: Likewise.
4214         * config/i386/x86intrin.h: Likewise.
4215         * config/i386/xmmintrin.h: Likewise.
4216         * config/ia64/crtbegin.asm: Likewise.
4217         * config/ia64/crtend.asm: Likewise.
4218         * config/ia64/crtfastmath.c: Likewise.
4219         * config/ia64/crti.asm: Likewise.
4220         * config/ia64/crtn.asm: Likewise.
4221         * config/ia64/fde-glibc.c: Likewise.
4222         * config/ia64/lib1funcs.asm: Likewise.
4223         * config/ia64/linux-unwind.h: Likewise.
4224         * config/ia64/quadlib.c: Likewise.
4225         * config/ia64/unwind-ia64.c: Likewise.
4226         * config/linux.h: Likewise.
4227         * config/m32c/m32c-lib1.S: Likewise.
4228         * config/m32c/m32c-lib2-trapv.c: Likewise.
4229         * config/m32c/m32c-lib2.c: Likewise.
4230         * config/m32r/initfini.c: Likewise.
4231         * config/m68hc11/larith.asm: Likewise.
4232         * config/m68hc11/m68hc11-crt0.S: Likewise.
4233         * config/m68k/cf.md: Likewise.
4234         * config/m68k/crti.s: Likewise.
4235         * config/m68k/crtn.s: Likewise.
4236         * config/m68k/lb1sf68.asm: Likewise.
4237         * config/m68k/linux-unwind.h: Likewise.
4238         * config/mcore/crti.asm: Likewise.
4239         * config/mcore/crtn.asm: Likewise.
4240         * config/mcore/lib1.asm: Likewise.
4241         * config/mips/linux-unwind.h: Likewise.
4242         * config/mips/loongson.h: Likewise.
4243         * config/mips/mips16.S: Likewise.
4244         * config/mmix/crti.asm: Likewise.
4245         * config/mmix/crtn.asm: Likewise.
4246         * config/pa/fptr.c: Likewise.
4247         * config/pa/hpux-unwind.h: Likewise.
4248         * config/pa/lib2funcs.asm: Likewise.
4249         * config/pa/linux-atomic.c: Likewise.
4250         * config/pa/linux-unwind.h: Likewise.
4251         * config/pa/milli64.S: Likewise.
4252         * config/pa/quadlib.c: Likewise.
4253         * config/pa/stublib.c: Likewise.
4254         * config/picochip/libgccExtras/adddi3.asm: Likewise.
4255         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4256         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4257         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4258         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4259         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4260         * config/picochip/libgccExtras/divmod15.asm: Likewise.
4261         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4262         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4263         * config/picochip/libgccExtras/longjmp.asm: Likewise.
4264         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4265         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4266         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4267         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4268         * config/picochip/libgccExtras/setjmp.asm: Likewise.
4269         * config/picochip/libgccExtras/subdi3.asm: Likewise.
4270         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4271         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4272         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4273         * config/rs6000/750cl.h: Likewise.
4274         * config/rs6000/altivec.h: Likewise.
4275         * config/rs6000/biarch64.h: Likewise.
4276         * config/rs6000/crtresfpr.asm: Likewise.
4277         * config/rs6000/crtresgpr.asm: Likewise.
4278         * config/rs6000/crtresxfpr.asm: Likewise.
4279         * config/rs6000/crtresxgpr.asm: Likewise.
4280         * config/rs6000/crtsavfpr.asm: Likewise.
4281         * config/rs6000/crtsavgpr.asm: Likewise.
4282         * config/rs6000/darwin-asm.h: Likewise.
4283         * config/rs6000/darwin-fallback.c: Likewise.
4284         * config/rs6000/darwin-fpsave.asm: Likewise.
4285         * config/rs6000/darwin-ldouble.c: Likewise.
4286         * config/rs6000/darwin-tramp.asm: Likewise.
4287         * config/rs6000/darwin-unwind.h: Likewise.
4288         * config/rs6000/darwin-vecsave.asm: Likewise.
4289         * config/rs6000/darwin-world.asm: Likewise.
4290         * config/rs6000/e500crtres32gpr.asm: Likewise.
4291         * config/rs6000/e500crtres64gpr.asm: Likewise.
4292         * config/rs6000/e500crtres64gprctr.asm: Likewise.
4293         * config/rs6000/e500crtrest32gpr.asm: Likewise.
4294         * config/rs6000/e500crtrest64gpr.asm: Likewise.
4295         * config/rs6000/e500crtresx32gpr.asm: Likewise.
4296         * config/rs6000/e500crtresx64gpr.asm: Likewise.
4297         * config/rs6000/e500crtsav32gpr.asm: Likewise.
4298         * config/rs6000/e500crtsav64gpr.asm: Likewise.
4299         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4300         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4301         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4302         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4303         * config/rs6000/eabi-ci.asm: Likewise.
4304         * config/rs6000/eabi-cn.asm: Likewise.
4305         * config/rs6000/eabi.asm: Likewise.
4306         * config/rs6000/linux-unwind.h: Likewise.
4307         * config/rs6000/linux64.h: Likewise.
4308         * config/rs6000/paired.h: Likewise.
4309         * config/rs6000/paired.md: Likewise.
4310         * config/rs6000/ppc64-fp.c: Likewise.
4311         * config/rs6000/ppu_intrinsics.h: Likewise.
4312         * config/rs6000/rs6000.h: Likewise.
4313         * config/rs6000/si2vmx.h: Likewise.
4314         * config/rs6000/sol-ci.asm: Likewise.
4315         * config/rs6000/sol-cn.asm: Likewise.
4316         * config/rs6000/spe.h: Likewise.
4317         * config/rs6000/spu2vmx.h: Likewise.
4318         * config/rs6000/sysv4.h: Likewise.
4319         * config/rs6000/tramp.asm: Likewise.
4320         * config/rs6000/vec_types.h: Likewise.
4321         * config/s390/linux-unwind.h: Likewise.
4322         * config/s390/tpf-unwind.h: Likewise.
4323         * config/score/crti.asm: Likewise.
4324         * config/score/crtn.asm: Likewise.
4325         * config/sh/crt1.asm: Likewise.
4326         * config/sh/crti.asm: Likewise.
4327         * config/sh/crtn.asm: Likewise.
4328         * config/sh/divtab-sh4-300.c: Likewise.
4329         * config/sh/divtab-sh4.c: Likewise.
4330         * config/sh/divtab.c: Likewise.
4331         * config/sh/lib1funcs-4-300.asm: Likewise.
4332         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4333         * config/sh/lib1funcs.asm: Likewise.
4334         * config/sh/lib1funcs.h: Likewise.
4335         * config/sh/linux-atomic.asm: Likewise.
4336         * config/sh/linux-unwind.h: Likewise.
4337         * config/sh/shmedia.h: Likewise.
4338         * config/sh/sshmedia.h: Likewise.
4339         * config/sh/ushmedia.h: Likewise.
4340         * config/sparc/crtfastmath.c: Likewise.
4341         * config/sparc/linux-unwind.h: Likewise.
4342         * config/sparc/sol2-c1.asm: Likewise.
4343         * config/sparc/sol2-ci.asm: Likewise.
4344         * config/sparc/sol2-cn.asm: Likewise.
4345         * config/spu/divmodti4.c: Likewise.
4346         * config/spu/divv2df3.c: Likewise.
4347         * config/spu/float_disf.c: Likewise.
4348         * config/spu/float_unsdidf.c: Likewise.
4349         * config/spu/float_unsdisf.c: Likewise.
4350         * config/spu/float_unssidf.c: Likewise.
4351         * config/spu/mfc_multi_tag_release.c: Likewise.
4352         * config/spu/mfc_multi_tag_reserve.c: Likewise.
4353         * config/spu/mfc_tag_release.c: Likewise.
4354         * config/spu/mfc_tag_reserve.c: Likewise.
4355         * config/spu/mfc_tag_table.c: Likewise.
4356         * config/spu/multi3.c: Likewise.
4357         * config/spu/spu_internals.h: Likewise.
4358         * config/spu/spu_intrinsics.h: Likewise.
4359         * config/spu/spu_mfcio.h: Likewise.
4360         * config/spu/vec_types.h: Likewise.
4361         * config/spu/vmx2spu.h: Likewise.
4362         * config/stormy16/stormy16-lib2.c: Likewise.
4363         * config/svr4.h: Likewise.
4364         * config/sync.c: Likewise.
4365         * config/v850/lib1funcs.asm: Likewise.
4366         * config/vxlib-tls.c: Likewise.
4367         * config/vxlib.c: Likewise.
4368         * config/vxworks-dummy.h: Likewise.
4369         * config/xtensa/crti.asm: Likewise.
4370         * config/xtensa/crtn.asm: Likewise.
4371         * config/xtensa/ieee754-df.S: Likewise.
4372         * config/xtensa/ieee754-sf.S: Likewise.
4373         * config/xtensa/lib1funcs.asm: Likewise.
4374         * config/xtensa/lib2funcs.S: Likewise.
4375         * config/xtensa/linux-unwind.h: Likewise.
4376         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4377         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4378         * coretypes.h: Likewise.
4379         * crtstuff.c: Likewise.
4380         * defaults.h: Likewise.
4381         * dwarf2.h: Likewise.
4382         * emutls.c: Likewise.
4383         * gbl-ctors.h: Likewise.
4384         * gcov-io.h: Likewise.
4385         * ginclude/float.h: Likewise.
4386         * ginclude/iso646.h: Likewise.
4387         * ginclude/stdarg.h: Likewise.
4388         * ginclude/stdbool.h: Likewise.
4389         * ginclude/stddef.h: Likewise.
4390         * ginclude/stdfix.h: Likewise.
4391         * ginclude/stdint-gcc.h: Likewise.
4392         * ginclude/tgmath.h: Likewise.
4393         * gthr-aix.h: Likewise.
4394         * gthr-dce.h: Likewise.
4395         * gthr-gnat.c: Likewise.
4396         * gthr-gnat.h: Likewise.
4397         * gthr-lynx.h: Likewise.
4398         * gthr-mipssde.h: Likewise.
4399         * gthr-nks.h: Likewise.
4400         * gthr-posix.c: Likewise.
4401         * gthr-posix.h: Likewise.
4402         * gthr-posix95.h: Likewise.
4403         * gthr-rtems.h: Likewise.
4404         * gthr-single.h: Likewise.
4405         * gthr-solaris.h: Likewise.
4406         * gthr-tpf.h: Likewise.
4407         * gthr-vxworks.h: Likewise.
4408         * gthr-win32.h: Likewise.
4409         * gthr.h: Likewise.
4410         * libgcc2.c: Likewise.
4411         * libgcc2.h: Likewise.
4412         * libgcov.c: Likewise.
4413         * tsystem.h: Likewise.
4414         * typeclass.h: Likewise.
4415         * unwind-c.c: Likewise.
4416         * unwind-compat.h: Likewise.
4417         * unwind-dw2-fde-compat.c: Likewise.
4418         * unwind-dw2-fde-darwin.c: Likewise.
4419         * unwind-dw2-fde-glibc.c: Likewise.
4420         * unwind-dw2-fde.c: Likewise.
4421         * unwind-dw2-fde.h: Likewise.
4422         * unwind-dw2.c: Likewise.
4423         * unwind-dw2.h: Likewise.
4424         * unwind-generic.h: Likewise.
4425         * unwind-pe.h: Likewise.
4426         * unwind-sjlj.c: Likewise.
4427         * unwind.inc: Likewise.
4428         * config/arm/neon-gen.ml: Change generated copyright header to
4429         refer to version 3 of the GNU General Public License with
4430         version 3.1 of the GCC Runtime Library Exception and to point
4431         readers at the COPYING3 and COPYING3.RUNTIME files and the
4432         FSF's license web page.
4433         * config/arm/arm_neon.h: Regenerate.
4434
4435 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4436
4437         * config/cris/cris.md: Change copyright header to refer to version
4438         3 of the GNU General Public License.
4439         * doc/install.texi2html: Change copyright header to refer to version
4440         3 of the GNU General Public License and to point readers at the
4441         COPYING3 file and the FSF's license web page.
4442         * config/vax/linux.h: Likewise.
4443
4444 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4445
4446         * config/i386/i386.md (cmpcc): New.
4447         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4448         (sync_compare_and_swap_cc*): Delete.
4449
4450         * config/s390/s390.c (s390_compare_emitted): Remove.
4451         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4452         s390_compare_emitted used to be handled.  Assert that modes match.
4453         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4454         refer to sync_compare_and_swap_ccsi.
4455         * config/s390/s390.h (s390_compare_emitted): Remove.
4456         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4457         instead of s390_compare_emitted.
4458         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4459         instead of s390_compare_emitted.
4460         * config/s390/s390.md (cmpcc): New.
4461         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4462         CC_REGNUM, do not pretend it's set.
4463         (sync_compare_and_swap_cc*): Delete.
4464         * config/s390/predicates.md (cc_reg_operand): New.
4465
4466         * expr.c (sync_compare_and_swap_cc): Delete.
4467         * optabs.h (sync_compare_and_swap_cc): Delete.
4468         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4469         is being used with can_compare_p.
4470         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4471         (find_cc_set): New.
4472         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4473         look for a MODE_CC set instead.  Use emit_store_flag.
4474         (expand_compare_and_swap_loop): Likewise, with some additional
4475         complication to avoid a force_reg when useless.  Use
4476         emit_cmp_and_jump_insns.
4477         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4478         * doc/md.texi (sync_compare_and_swap_cc): Merge with
4479         sync_compare_and_swap documentation.
4480
4481 2009-04-09  Jan Hubicka  <jh@suse.cz>
4482
4483         * except.c (find_prev_try): Break out from ....
4484         (duplicate_eh_regions): ... here; properly update prev_try pointers
4485         when duplication part of tree.
4486         (dump_eh_tree): Improve dumping.
4487         (verify_eh_region): New.
4488         (verify_eh_tree): Use it.
4489
4490 2009-04-06  Richard Guenther  <rguenther@suse.de>
4491
4492         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4493         &ARRAY addresses by adjusting their types and prepending
4494         a conversion.
4495         * tree-cfg.c (verify_gimple_assign_single): Verify that
4496         addresses are correct.
4497
4498 2009-04-09  Richard Guenther  <rguenther@suse.de>
4499
4500         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4501         indices into an array reference if possible.
4502         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4503         Fold POINTER_PLUS_EXPR statements with invariant address.
4504
4505 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
4506
4507         PR target/39634
4508         * config.gcc (powerpc64-*-linux*): Always build biarch.
4509
4510 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
4511
4512         PR c/39613
4513         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4514         it and pedwarn if this results in an INTEGER_CST.
4515
4516 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4517
4518         * doc/install.texi: Update minimum GMP version.  Remove obsolete
4519         text in MPFR section.
4520
4521 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4522
4523         * dwarf2out.c (class_scope_p): New static inline.
4524         (class_or_namespace_scope_p): Use it.
4525         (gen_variable_die): Use DW_TAG_member tag for static data member
4526         declarations instead of DW_TAG_variable.
4527
4528         PR middle-end/39573
4529         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4530         variables.
4531
4532 2009-04-08  Richard Guenther  <rguenther@suse.de>
4533
4534         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4535         valueize random data.
4536
4537 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
4538
4539         * config.gcc (aix tm_file):  Add aix-stdint.h.
4540         (aix tm clause use_gcc_stdint):  Set to wrap.
4541         * config/rs6000/aix-stdint.h:  New file.
4542
4543 2009-04-08  Richard Guenther  <rguenther@suse.de>
4544
4545         PR middle-end/36291
4546         * tree-dfa.c (add_referenced_var): Do not recurse into
4547         global initializers.
4548         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4549         exposed variables.
4550         (fold_const_aggregate_ref): Likewise.
4551
4552 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4553
4554         * recog.c (ordered_comparison_operator): New.
4555         * gensupport.c (std_preds): Add it.
4556         * doc/md.texi (Machine-Independent Predicates): Document it.
4557
4558 2009-04-08  Jan Hubicka  <jh@suse.cz>
4559
4560         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4561         * function.h (rtl_eh): Remove exception_handler_label_map.
4562         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4563         remove_exception_handler_label, for_each_eh_label_1): Remove.
4564         (rtl_remove_unreachable_regions): Remove.
4565         (convert_from_eh_region_ranges): Do not remove unreachable regions.
4566         (find_exception_handler_labels): Don't build the hashtable.
4567         (maybe_remove_eh_handler): Remove.
4568         (for_each_eh_label): Rewrite to walk the tree.
4569         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4570         * except.h (maybe_remove_eh_handler): Remove.
4571         * passes.c (init_optimization_passes): Schedule second EH cleanup
4572         before out-of-ssa.
4573         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4574         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4575
4576 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4577
4578         * genoutput.c (validate_optab_operands): New.
4579         (gen_insn, gen_expand): Call it.
4580
4581         * genflags.c (gen_insn): Detect misused iterators.
4582         (main): Pass line_no to gen_insn, exit with status 1 on error.
4583
4584         * genextract.c (line_no): Make global.
4585         (VEC_safe_set_locstr): Change assertion to error message.
4586         (main): Exit with status 1 on error.
4587
4588 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
4589
4590         PR c/39614
4591         PR c/39673
4592         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4593         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4594         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4595         * c-convert.c (convert): Do not call fold on results of conversion
4596         functions when the result is a C_MAYBE_CONST_EXPR.
4597         * c-parser.c (c_parser_postfix_expression): Do not fold condition
4598         of __builtin_choose_expr.
4599         * c-typeck.c (remove_c_maybe_const_expr): New.
4600         (build_unary_op, build_conditional_expr, build_compound_expr,
4601         build_binary_op, c_objc_common_truthvalue_conversion): Call
4602         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4603         integer operands.
4604
4605 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
4606
4607         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
4608         CODE to produce a new one. Add a prototype to use fold_convert_const
4609
4610 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4611
4612         PR bootstrap/39660
4613         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4614         mix declarations and code.
4615
4616 2009-04-08  Ben Elliston  <bje@au.ibm.com>
4617
4618         * gcc.c: Replace `CC' with `GCC' throughout.
4619
4620 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4621
4622         * doc/invoke.texi: Document Atom support.
4623
4624 2009-04-07  Jason Merrill  <jason@redhat.com>
4625
4626         PR c++/25185
4627         * c-common.h, c-common.c: Add flag_pretty_templates.
4628         * c-opts.c (c_common_handle_option): Set it.
4629         * c.opt: Add -fno-pretty-templates.
4630         * doc/invoke.texi (C++ Dialect Options): Likewise.
4631
4632 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
4633
4634         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4635         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4636         (ia64_expand_builtin): Likewise.
4637
4638 2009-04-07  Martin Jambor  <mjambor@suse.cz>
4639
4640         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4641         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4642         ADDR_EXPRS are include too.
4643
4644 2009-04-07  Richard Guenther  <rguenther@suse.de>
4645
4646         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4647         decls are only used if passes as parameters or if they are
4648         local statics and the call is not to a builtin.
4649         (call_may_clobber_ref_p_1): Likewise.
4650
4651 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4652
4653         * expr.c (do_store_flag): Remove last argument.  Simplify code
4654         to avoid duplication of tests already done by can_compare_p.
4655         (expand_expr_real_1): Adjust caller.
4656
4657 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4658
4659         * optabs.c (can_compare_p): Test the predicate of a
4660         cbranch and cstore pattern.
4661
4662 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4663
4664         * expr.c (convert_move): Use emit_store_flag instead of
4665         "emulating" it.
4666
4667 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4668
4669         * config/i386/i386.c (ix86_compare_emitted): Remove.
4670         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4671         ix86_compare_op0 like ix86_compare_emitted used to be handled.
4672         * config/i386/i386.h (ix86_compare_emitted): Remove.
4673         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4674         instead of ix86_compare_emitted.
4675         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
4676
4677 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
4678
4679         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4680         Add t-sysroot-suffix to tmake_file.
4681         * config/print-sysroot-suffix.sh: New file.
4682         * config/t-sysroot-suffix: New file.
4683
4684 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4685
4686         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4687         as the latter produces a warning when the target does not support
4688         infinity.
4689
4690 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4691
4692         * dfp.c: Replace type punning assignments with memcpy throughout.
4693         * Makefile.in (dfp.o-warn): Remove.
4694
4695 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
4696
4697         PR target/39634
4698         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4699         Include soft-fp/t-softfp after rs6000/t-linux64.
4700
4701 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4702
4703         * stor-layout.c (set_sizetype): Use the full precision of their
4704         machine mode for bitsize types.
4705
4706 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
4707
4708         * config/i386/i386.md: Revert 2 accidental checkins.
4709
4710 2009-04-06  Joey Ye  <joey.ye@intel.com>
4711             Xuepeng Guo  <xuepeng.guo@intel.com>
4712             H.J. Lu  <hongjiu.lu@intel.com>
4713
4714         Atom pipeline model, tuning and insn selection.
4715         * config.gcc (atom): Add atom config options and target.
4716
4717         * config/i386/atom.md: New.
4718
4719         * config/i386/i386.c (atom_cost): New cost.
4720         (m_ATOM): New macro flag.
4721         (initial_ix86_tune_features): Set m_ATOM.
4722         (x86_accumulate_outgoing_args): Likewise.
4723         (x86_arch_always_fancy_math_387): Likewise.
4724         (processor_target): Add Atom cost.
4725         (cpu_names): Add Atom cpu name.
4726         (override_options): Set Atom ISA.
4727         (ix86_issue_rate): New case PROCESSOR_ATOM.
4728         (ix86_adjust_cost): Likewise.
4729
4730         * config/i386/i386.h (TARGET_ATOM): New target macro.
4731         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4732         (TARGET_OPT_AGU): New target option.
4733         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4734         (processor_type): Add PROCESSOR_ATOM.
4735
4736         * config/i386/i386.md (cpu): Add new value "atom".
4737         (use_carry, movu): New attr.
4738         (atom.md): Include atom.md.
4739         (adddi3_carry_rex64): Set attr "use_carry".
4740         (addqi3_carry): Likewise.
4741         (addhi3_carry): Likewise.
4742         (addsi3_carry): Likewise.
4743         (*addsi3_carry_zext): Likewise.
4744         (subdi3_carry_rex64): Likewise.
4745         (subqi3_carry): Likewise.
4746         (subhi3_carry): Likewise.
4747         (subsi3_carry): Likewise.
4748         (x86_movdicc_0_m1_rex64): Likewise.
4749         (*x86_movdicc_0_m1_se): Likewise.
4750         (x86_movsicc_0_m1): Likewise.
4751         (*x86_movsicc_0_m1_se): Likewise.
4752         (*adddi_1_rex64): Emit add insn as much as possible.
4753         (*addsi_1): Likewise.
4754         (return_internal): Set atom_unit.
4755         (return_internal_long): Likewise.
4756         (return_pop_internal): Likewise.
4757         (*rcpsf2_sse): Set atom_sse_attr attr.
4758         (*qrt<mode>2_sse): Likewise.
4759         (*prefetch_sse): Likewise.
4760
4761         * config/i386/i386-c.c (ix86_target_macros_internal): New case
4762         PROCESSOR_ATOM.
4763         (ix86_target_macros_internal): Likewise.
4764
4765         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4766         (*prefetch_sse_rex): Likewise.
4767         (sse_rcpv4sf2): Likewise.
4768         (sse_vmrcpv4sf2): Likewise.
4769         (sse_sqrtv4sf2): Likewise.
4770         (<sse>_vmsqrt<mode>2): Likewise.
4771         (sse_ldmxcsr): Likewise.
4772         (sse_stmxcsr): Likewise.
4773         (*sse_sfence): Likewise.
4774         (sse2_clflush): Likewise.
4775         (*sse2_mfence): Likewise.
4776         (*sse2_lfence): Likewise.
4777         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4778         (<sse>_movup<ssemodesuffixf2c>): Likewise.
4779         (avx_movdqu<avxmodesuffix>): Likewise.
4780         (avx_lddqu<avxmodesuffix>): Likewise.
4781         (sse2_movntv2di): Change attr "type" to "ssemov".
4782         (sse2_movntsi): Likewise.
4783         (rsqrtv8sf2): Change attr "type" to "sseadd".
4784         (sse3_addsubv2df3): Set attr "atom_unit".
4785         (sse3_h<plusminus_insn>v4sf3): Likewise.
4786         (*sse2_pmaddwd): Likewise.
4787         (*vec_extractv2di_1_rex64): Likewise.
4788         (*vec_extractv2di_1_avx): Likewise.
4789         (sse2_psadbw): Likewise.
4790         (ssse3_phaddwv8hi3): Likewise.
4791         (ssse3_phaddwv4hi3): Likewise.
4792         (ssse3_phadddv4si3): Likewise.
4793         (ssse3_phadddv2si3): Likewise.
4794         (ssse3_phaddswv8hi3): Likewise.
4795         (ssse3_phaddswv4hi3): Likewise.
4796         (ssse3_phsubwv8hi3): Likewise.
4797         (ssse3_phsubwv4hi3): Likewise.
4798         (ssse3_phsubdv4si3): Likewise.
4799         (ssse3_phsubdv2si3): Likewise.
4800         (ssse3_phsubswv8hi3): Likewise.
4801         (ssse3_phsubswv4hi3): Likewise.
4802         (ssse3_pmaddubsw128): Likewise.
4803         (sse3_pmaddubsw: Likewise.
4804         (ssse3_palignrti): Likewise.
4805         (ssse3_palignrdi): Likewise.
4806
4807 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
4808
4809         * doc/install.texi (Specific): Fix two cross-references to MinGW.
4810
4811 2009-04-06  Richard Guenther  <rguenther@suse.de>
4812
4813         PR tree-optimization/28868
4814         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4815         of which PHI results we inserted.
4816         (insert_into_preds_of_block): Record inserted PHIs.
4817         (eliminate): Eliminate redundant PHI nodes.
4818         (init_pre): Init inserted_phi_names.
4819
4820 2009-04-06  Richard Guenther  <rguenther@suse.de>
4821
4822         PR tree-optimization/39643
4823         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4824         IMAGPART_EXPRs of complex constants.
4825         (execute_fold_all_builtins): If we folded a call queue
4826         TODO_update_address_taken.
4827
4828 2009-04-06  Jan Hubicka  <jh@suse.cz>
4829
4830         PR middle-end/39659
4831         * except.c (remove_unreachable_regions): Propagate may_contain_throw
4832         flag.
4833
4834 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
4835
4836         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4837         delay slot.
4838         (ic_invalidate_array): Likewise.
4839
4840 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
4841
4842         * calls.c (emit_library_call_value_1): Fix a problem with parameter
4843         alignment for library calls.
4844
4845 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
4846
4847         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
4848         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
4849         * config/i386/mingw-stdint.h:  New file.
4850
4851 2009-04-05  Richard Guenther  <rguenther@suse.de>
4852
4853         PR tree-optimization/39648
4854         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4855         our &A vs. &A[0] IL deficiencies.
4856
4857 2009-04-04  Jan Hubicka  <jh@suse.cz>
4858
4859         * except.c (sjlj_find_directly_reachable_regions): Be ready for
4860         removed toplevel regions.
4861         (sjlj_mark_call_sites): Likewise.
4862
4863 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
4864
4865         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
4866         (cygwin tm clause use_gcc_stdint):  Set to wrap.
4867         * config/i386/cygwin-stdint.h:  New file.
4868
4869 2009-04-04  Richard Guenther  <rguenther@suse.de>
4870
4871         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4872         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4873         single-argument PHIs if we are in loop-closed SSA form.
4874         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4875         for the pre-condition.
4876         (slpeel_tree_peel_loop_to_edge): Likewise.
4877         (vect_build_loop_niters): Take an optional sequence to append stmts.
4878         (vect_generate_tmps_on_preheader): Likewise.
4879         (vect_do_peeling_for_loop_bound): Take extra guards for the
4880         pre-condition.
4881         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
4882         the cost model check.
4883         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
4884         guards if we are going to peel.  Do not apply versioning in that case.
4885         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4886         (vect_do_peeling_for_loop_bound): Likewise.
4887         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4888         loop bound only record extra pre-conditions, do not apply loop
4889         versioning.
4890
4891 2009-04-04  Richard Guenther  <rguenther@suse.de>
4892
4893         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4894         renaming code.
4895
4896 2009-04-04  Jan Hubicka  <jh@suse.cz>
4897
4898         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4899         last_basic_block for size of bb->index indexed array.
4900         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4901         compute_out, link_btr_uses, build_btr_def_use_webs,
4902         build_btr_def_use_webs, migrate_btr_defs): Likewise.
4903
4904 2009-04-04  Jan Hubicka  <jh@suse.cz>
4905
4906         * except.c (remove_eh_handler_and_replace): Break out from ...
4907         (remove_eh_handler): ... here.
4908         (bring_to_root): New function.
4909         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4910         handled ones, bring others to root of tree.
4911
4912 2009-04-04  Jan Hubicka  <jh@suse.cz>
4913
4914         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4915         (all_phis_safe_to_merge): New function.
4916         (update_info): New structure.
4917         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4918         (cleanup_empty_eh): Update SSA if possible.
4919
4920 2009-04-04  Richard Guenther  <rguenther@suse.de>
4921
4922         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4923         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4924         (append_vuse): Likewise.
4925
4926 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
4927
4928         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4929         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4930         instead of REG_UNSAVED for DW_CFA_undefined.
4931         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4932         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4933         outermost frame.
4934
4935 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
4936
4937         PR target/39501
4938         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4939         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4940         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4941
4942 2009-04-04  Richard Guenther  <rguenther@suse.de>
4943
4944         PR tree-optimization/8781
4945         PR tree-optimization/37892
4946         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4947         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4948         (valueize_refs): Call it for *& valueizations.
4949         (shared_reference_ops_from_ref): Rename to ...
4950         (valueize_shared_reference_ops_from_ref): ... this and valueize.
4951         (shared_reference_ops_from_call): Rename to ...
4952         (valueize_shared_reference_ops_from_call): ... this and valueize.
4953         (vn_reference_lookup): Update.
4954         (visit_reference_op_call): Likewise.
4955         * tree-ssa-pre.c (phi_translate_1): Fold *&.
4956         (eliminate): Value-replace the call address in call statements.
4957
4958 2009-04-04  Richard Guenther  <rguenther@suse.de>
4959
4960         PR tree-optimization/39636
4961         * tree-ssa-forwprop.c
4962         (forward_propagate_addr_into_variable_array_index): Check for
4963         GIMPLE_ASSIGN before accessing the rhs code.
4964
4965 2009-04-03  Jason Merrill  <jason@redhat.com>
4966
4967         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4968
4969 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
4970
4971         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4972         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4973         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4974         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4975         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4976         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4977         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4978         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4979         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4980         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4981         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4982         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4983         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4984         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4985         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4986         Use fr_reg_or_fp01_operand instead of fr_register_operand
4987
4988         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4989         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4990         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4991
4992 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
4993
4994         PR rtl-optimization/39607
4995         PR rtl-optimization/39631
4996
4997         Revert:
4998
4999         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5000         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5001         instead of DF_LR_OUT.
5002         * ira-lives.c (process_bb_node_lives): Ditto.
5003         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5004         instead of DF_LR_{OUT,IN}.
5005         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5006         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5007
5008 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
5009
5010         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5011         (execute_lower_omp): Always run but take the short way out if -fopenmp
5012         is not given.
5013         (gate_lower_omp): Remove, forcing the pass manager to always run the
5014         pass and always set PROP_gimple_lomp.
5015         (pass_lower_omp): Remove gate function.
5016         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5017         PROP_trees.  Instead, require it.
5018         * ipa-cp.c (pass_ipa_cp): Likewise.
5019         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5020         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5021         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5022         and PROP_gimple_leh.
5023
5024 2009-04-03  Richard Guenther  <rguenther@suse.de>
5025
5026         PR middle-end/13146
5027         PR tree-optimization/23940
5028         PR tree-optimization/33237
5029         PR middle-end/33974
5030         PR middle-end/34093
5031         PR tree-optimization/36201
5032         PR tree-optimization/36230
5033         PR tree-optimization/38049
5034         PR tree-optimization/38207
5035         PR tree-optimization/38230
5036         PR tree-optimization/38301
5037         PR tree-optimization/38585
5038         PR middle-end/38895
5039         PR tree-optimization/38985
5040         PR tree-optimization/39299
5041         * tree-ssa-structalias.h: Remove.
5042         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5043         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5044         (struct vuse_element_d): Remove.
5045         (struct vuse_vec_d): Likewise.
5046         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5047         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5048         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5049         VUSE_ELEMENT_VAR): Likewise.
5050         (struct voptype_d): Likewise.
5051         (NUM_VOP_FREE_BUCKETS): Likewise.
5052         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5053         (struct stmt_operands_d): Remove.
5054         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5055         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
5056         VDEF_NUM, VDEF_VECT): Likewise.
5057         (copy_virtual_operands): Remove.
5058         (operand_build_cmp): Likewise.
5059         (create_ssa_artificial_load_stmt): Likewise.
5060         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
5061         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
5062         vuse_index and mayuse_index members.  Pack and move done and iter_type
5063         members to the front.
5064         (SSA_OP_VMAYUSE): Remove.
5065         (SSA_OP_VIRTUAL_USES): Adjust.
5066         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
5067         (unlink_stmt_vdef): Declare.
5068         (add_to_addressable_set): Remove.
5069         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
5070         (vrp_visit_stmt): Likewise.
5071         * doc/tree-ssa.texi (Alias analysis): Update.
5072         * doc/invoke.texi (max-aliased-vops): Remove docs.
5073         (avg-aliased-vops): Likewise.
5074         * tree-into-ssa.c (syms_to_rename): Remove.
5075         (need_to_update_vops_p): Likewise.
5076         (need_to_initialize_update_ssa_p): Rename to ...
5077         (update_ssa_initialized_fn): ... this.  Track function we are
5078         initialized for.
5079         (symbol_marked_for_renaming): Simplify.
5080         (add_new_name_mapping): Do not set need_to_update_vops_p.
5081         (dump_currdefs): Use SYMS_TO_RENAME.
5082         (rewrite_update_stmt): Always walk all uses/defs.
5083         (dump_update_ssa): Adjust.
5084         (init_update_ssa): Take function argument.  Track what we are
5085         initialized for.
5086         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
5087         (create_new_def_for): Initialize for cfun, assert we are initialized
5088         for cfun.
5089         (mark_sym_for_renaming): Simplify.
5090         (mark_set_for_renaming): Do not initialize update-ssa.
5091         (need_ssa_update_p): Simplify.  Take function argument.
5092         (name_mappings_registered_p): Assert we ask for the correct function.
5093         (name_registered_for_update_p): Likewise.
5094         (ssa_names_to_replace): Likewise.
5095         (release_ssa_name_after_update_ssa): Likewise.
5096         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
5097         (dump_decl_set): Do not print a newline.
5098         (debug_decl_set): Do it here.
5099         (dump_update_ssa): And here.
5100         * tree-ssa-loop-im.c (move_computations): Adjust.
5101         (movement_possibility): Likewise.
5102         (determine_max_movement): Likewise.
5103         (gather_mem_refs_stmt): Likewise.
5104         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
5105         or NAME_MEMORY_TAG.
5106         * tree-complex.c (update_all_vops): Remove.
5107         (expand_complex_move): Adjust.
5108         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
5109         Simplify test for memory referencing statement.  Exclude
5110         non-invariant ADDR_EXPRs.
5111         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
5112         * tree-loop-distribution.c (generate_memset_zero): Adjust.
5113         (rdg_flag_uses): Likewise.
5114         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
5115         related code.
5116         (tree_optimize_tail_calls_1): Also split the
5117         edge from the entry block if we have degenerate PHI nodes in
5118         the first basic block.
5119         * tree.c (init_ttree): Remove memory-tag related code.
5120         (tree_code_size): Likewise.
5121         (tree_node_structure): Likewise.
5122         (build7_stat): Re-write to be build6_stat.
5123         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
5124         (SSA_VAR_P): Adjust.
5125         (struct tree_memory_tag): Remove.
5126         (struct tree_memory_partition_tag): Likewise.
5127         (union tree_node): Adjust.
5128         (build7): Re-write to be build6.
5129         * tree-pass.h (pass_reset_cc_flags): Remove.
5130         (TODO_update_address_taken): New flag.
5131         (pass_simple_dse): Remove.
5132         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
5133         * params.h (MAX_ALIASED_VOPS): Remove.
5134         (AVG_ALIASED_VOPS): Likewise.
5135         * omp-low.c (expand_omp_taskreg): Update SSA form.
5136         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
5137         aliases the lhs in a copy stmt.
5138         * tree-ssa-dse.c (struct address_walk_data): Remove.
5139         (memory_ssa_name_same): Likewise.
5140         (memory_address_same): Likewise.
5141         (get_kill_of_stmt_lhs): Likewise.
5142         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
5143         unused stores.  Look through PHI nodes into post-dominated regions.
5144         (dse_optimize_stmt): Simplify.  Properly remove stores.
5145         (tree_ssa_dse): Compute dominators.
5146         (execute_simple_dse): Remove.
5147         (pass_simple_dse): Likewise.
5148         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
5149         gimple_loaded_syms and gimple_stored_syms computation.
5150         * toplev.c (dump_memory_report): Dump alias and pta stats.
5151         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
5152         (vn_reference_eq): Likewise.
5153         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
5154         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
5155         valueize_vuses): Remove.
5156         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
5157         (get_def_ref_stmt_vuse): ... this.
5158         (vn_reference_lookup_2): New function.
5159         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
5160         walking equivalent vuses.  Simplify.
5161         (vn_reference_lookup): Likewise.
5162         (vn_reference_insert): Likewise.
5163         (vn_reference_insert_pieces): Likewise.
5164         (visit_reference_op_call): Simplify.
5165         (visit_reference_op_load): Likewise.
5166         (visit_reference_op_store): Likewise.
5167         (init_scc_vn): Remove shared_lookup_vuses initialization.
5168         (free_scc_vn): Remove shared_lookup_vuses freeing.
5169         (sort_vuses, sort_vuses_heap): Remove.
5170         (get_ref_from_reference_ops): Export.
5171         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
5172         vector with single vuse pointer.
5173         (vn_reference_lookup_pieces, vn_reference_lookup,
5174         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
5175         (shared_vuses_from_stmt): Remove.
5176         (get_ref_from_reference_ops): Declare.
5177         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
5178         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5179         memory-tag related code.
5180         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
5181         (likely_value): Add comment, skip static-chain of call statements.
5182         (surely_varying_stmt_p): Adjust.
5183         (gimplify_and_update_call_from_tree): Likewise.
5184         (execute_fold_all_builtins): Do not rebuild alias info.
5185         (gimplify_and_update_call_from_tree): Properly update VOPs.
5186         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
5187         (copy_ref_info): Remove memory-tag related code.
5188         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
5189         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
5190         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
5191         computation.
5192         * tree-ssa-dom.c (gimple_p): Remove typedef.
5193         (eliminate_redundant_computations): Adjust.
5194         (record_equivalences_from_stmt): Likewise.
5195         (avail_expr_hash): Likewise.
5196         (avail_expr_eq): Likewise.
5197         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5198         (stmt_makes_single_load): Likewise.
5199         (stmt_makes_single_store): Likewise.
5200         * tree-ssa-alias.c: Rewrite completely.
5201         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
5202         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
5203         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
5204         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
5205         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
5206         Remove public functions.
5207         (pass_reset_cc_flags): Remove.
5208         (pass_build_alias): Move ...
5209         * tree-ssa-structalias.c (pass_build_alias): ... here.
5210         * tree-ssa-alias.c (may_be_aliased): Move ...
5211         * tree-flow-inline.h (may_be_aliased): ... here.
5212         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
5213         count_uses_and_derefs): Move ...
5214         * gimple.c: ... here.
5215         * gimple.h (count_uses_and_derefs): Declare.
5216         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
5217         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
5218         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
5219         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
5220         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
5221         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
5222         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
5223         New functions.
5224         * tree-dfa.c (refs_may_alias_p): Move ...
5225         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
5226         * tree-ssa-alias.h: New file.
5227         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
5228         (statement_sink_location): Likewise.
5229         * opts.c (decode_options): Do not adjust max-aliased-vops or
5230         avg-aliased-vops values.
5231         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
5232         (TV_CALL_CLOBBER): Likewise.
5233         (TV_FLOW_SENSITIVE): Likewise.
5234         (TV_FLOW_INSENSITIVE): Likewise.
5235         (TV_MEMORY_PARTITIONING): Likewise.
5236         (TV_ALIAS_STMT_WALK): New timevar.
5237         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
5238         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
5239         (get_address_description): Remove memory-tag related code.
5240         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
5241         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
5242         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
5243         and immediate uses in statements.  Document.
5244         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
5245         (dump_symbols): Remove.
5246         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
5247         * alias.c (get_deref_alias_set): New function split out from ...
5248         (get_alias_set): ... here.
5249         * alias.h (get_deref_alias_set): Declare.
5250         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
5251         type parameter.  Remove restrict pointer handling.  Create a
5252         ref-all pointer in case type-based alias sets do not conflict.
5253         (vect_analyze_data_refs): Remove SMT related code.
5254         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5255         (vectorizable_load): Likewise.
5256         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5257         (DR_SYMBOL_TAG, DR_VOPS): Remove.
5258         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5259         Ignore vops and SMTs.
5260         (dr_analyze_alias): Likewise..
5261         (free_data_ref): Likewise.
5262         (create_data_ref): Likewise.
5263         (analyze_all_data_dependences): Likewise.
5264         (get_references_in_stmt): Adjust.
5265         * tree-flow-inline.h (gimple_aliases_computed_p,
5266         gimple_addressable_vars, gimple_call_clobbered_vars,
5267         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5268         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5269         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5270         gimple_mem_ref_stats): Remove.
5271         (gimple_vop): New function.
5272         (op_iter_next_use): Remove vuses and mayuses cases.
5273         (op_iter_next_def): Remove vdefs case.
5274         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5275         (clear_and_done_ssa_iter): Do not set removed fields.
5276         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
5277         Assert we are not iterating over vuses or vdefs if not also
5278         iterating over uses or defs.
5279         (op_iter_init_use): Likewise.
5280         (op_iter_init_def): Likewise.
5281         (op_iter_next_vdef): Remove.
5282         (op_iter_next_mustdef): Likewise.
5283         (op_iter_init_vdef): Likewise.
5284         (compare_ssa_operands_equal): Likewise.
5285         (link_use_stmts_after): Handle vuse operand.
5286         (is_call_used): Use is_call_clobbered.
5287         (is_call_clobbered): Global variables are always call clobbered,
5288         query the call-clobbers bitmap.
5289         (mark_call_clobbered): Ignore global variables.
5290         (clear_call_clobbered): Likewise.
5291         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5292         virtual operands sanity check.
5293         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5294         Remove.
5295         (TARGET_MEM_REF): Remove TMR_TAG operand.
5296         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5297         Remove call-clobber related code.
5298         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
5299         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5300         partitions or escape reason.
5301         (get_single_def_stmt, get_single_def_stmt_from_phi,
5302         get_single_def_stmt_with_phi): Remove.
5303         (dump_referenced_vars): Tidy.
5304         (get_ref_base_and_extent): Allow bare decls.
5305         (collect_dfa_stats): Adjust.
5306         * graphite.c (rename_variables_in_stmt): Adjust.
5307         (graphite_copy_stmts_from_block): Likewise.
5308         (translate_clast): Likewise.
5309         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5310         (EXPR_DIES): New.
5311         (translate_vuse_through_block): Use the oracle.
5312         (phi_translate_1): Adjust.
5313         (value_dies_in_block_x): Use the oracle.  Cache the outcome
5314         in EXPR_DIES.
5315         (valid_in_sets): Check if the VUSE for
5316         a REFERENCE is available.
5317         (eliminate): Do not remove stmts during elimination,
5318         instead queue and remove them afterwards.
5319         (do_pre): Do not rebuild alias info.
5320         (pass_pre): Run TODO_rebuild_alias before PRE.
5321         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5322         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5323         (mark_all_v_defs_stmt): Remove.
5324         (mark_all_v_defs_seq): Adjust.
5325         (sra_replace): Likewise.
5326         (scalarize_use): Likewise.
5327         (scalarize_copy): Likewise.
5328         (scalarize_init): Likewise.
5329         (scalarize_ldst): Likewise.
5330         (todoflags): Remove.
5331         (tree_sra): Do not rebuild alias info.
5332         (tree_sra_early): Adjust.
5333         (pass_sra): Run TODO_update_address_taken before SRA.
5334         * tree-predcom.c (set_alias_info): Remove.
5335         (prepare_initializers_chain): Do not call it.
5336         (mark_virtual_ops_for_renaming): Adjust.
5337         (mark_virtual_ops_for_renaming_list): Remove.
5338         (initialize_root_vars): Adjust.
5339         (initialize_root_vars_lm): Likewise.
5340         (prepare_initializers_chain): Likewise.
5341         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5342         (may_propagate_copy_into_stmt): Likewise.
5343         (merge_alias_info): Do nothing for now.
5344         (propagate_tree_value_into_stmt): Adjust.
5345         (stmt_may_generate_copy): Likewise.
5346         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5347         not mark symbols for renaming.
5348         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5349         with the same statement, make sure to update the new pointed-to one.
5350         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5351         call statements, do not mark symbols for renaming.
5352         (mark_operand_necessary): Dump something.
5353         (ref_may_be_aliased): New function.
5354         (mark_aliased_reaching_defs_necessary_1): New helper function.
5355         (mark_aliased_reaching_defs_necessary): Likewise.
5356         (mark_all_reaching_defs_necessary_1): Likewise.
5357         (mark_all_reaching_defs_necessary): Likewise.
5358         (propagate_necessity): Do not process virtual PHIs.  For
5359         non-aliased loads mark all reaching definitions as necessary.
5360         For aliased loads and stores mark the immediate dominating
5361         aliased clobbers as necessary.
5362         (visited): New global static.
5363         (perform_tree_ssa_dce): Free visited bitmap after propagating
5364         necessity.
5365         (remove_dead_phis): Perform simple dead virtual PHI removal.
5366         (remove_dead_stmt): Properly unlink virtual operands when
5367         removing stores.
5368         (eliminate_unnecessary_stmts): Schedule PHI removal after
5369         stmt removal.
5370         * tree-ssa-ter.c (is_replaceable_p): Adjust.
5371         (process_replaceable): Likewise.
5372         (find_replaceable_in_bb): Likewise.
5373         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5374         based on the single gimple vop.
5375         (verify_flow_insensitive_alias_info): Remove.
5376         (verify_flow_sensitive_alias_info): Likewise.
5377         (verify_call_clobbering): Likewise.
5378         (verify_memory_partitions): Likewise.
5379         (verify_alias_info): Likewise.
5380         (verify_ssa): Adjust..
5381         (execute_update_addresses_taken): Export.  Update SSA
5382         manually.  Optimize only when optimizing.  Use a local bitmap.
5383         (pass_update_address_taken): Remove TODO_update_ssa, add
5384         TODO_dump_func.
5385         (pass_update_address_taken): Just use TODO_update_address_taken.
5386         (init_tree_ssa): Do not initialize addressable_vars.
5387         (verify_ssa): Verify new VUSE / VDEF properties.
5388         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5389         Do not call verify_alias_info.
5390         (delete_tree_ssa): Clear the VUSE, VDEF operands.
5391         Do not free the loaded and stored syms bitmaps.  Reset the escaped
5392         and callused solutions.  Do not free addressable_vars.
5393         Remove memory-tag related code.
5394         (warn_uninitialized_var): Aliases are always available.
5395         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5396         * lambda-code.c (can_put_in_inner_loop): Adjust.
5397         (can_put_after_inner_loop): Likewise.
5398         (perfect_nestify): Likewise.
5399         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5400         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5401         (vectorizable_conversion): Do not mark symbols for renaming.
5402         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5403         (expand_call_inline): Unlink the calls virtual operands before
5404         replacing it.
5405         (tree_function_versioning): Do not call update_ssa if we are not
5406         updating clones.  Simplify.
5407         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5408         (propagate_with_phi): Likewise..
5409         * tree-outof-ssa.c (create_temp): Remove memory tag and call
5410         clobber code.  Assert we are not aliased or global.
5411         * tree-flow.h: Include tree-ssa-alias.h
5412         (enum escape_type): Remove.
5413         (struct mem_sym_stats_d): Likewise.
5414         (struct mem_ref_stats_d): Likewise.
5415         (struct gimple_df): Add vop member.  Remove global_var,
5416         call_clobbered_vars, call_used_vars, addressable_vars,
5417         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
5418         escaped and callused members.
5419         (struct ptr_info_def): Remove all members, add points-to solution
5420         member pt.
5421         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5422         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5423         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5424         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5425         (tree-ssa-alias.o): Likewise.
5426         (toplev.o): Add tree-ssa-alias.h
5427         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5428         * gimple.c (gimple_set_bb): Fix off-by-one error.
5429         (is_gimple_reg): Do not handle memory tags.
5430         (gimple_copy): Also copy virtual operands.
5431         Delay updating the statement.  Do not reset loaded and stored syms.
5432         (gimple_set_stored_syms): Remove.
5433         (gimple_set_loaded_syms): Likewise.
5434         (gimple_call_copy_skip_args): Copy the virtual operands
5435         and mark the new statement modified.
5436         * tree-ssa-structalias.c (may_alias_p): Remove.
5437         (set_uids_in_ptset): Take the alias set to prune with as
5438         parameter.  Fold in the alias test of may_alias_p.
5439         (compute_points_to_sets): Compute whether a ptr is dereferenced
5440         in a local sbitmap.
5441         (process_constraint): Deal with &ANYTHING on the lhs, reject all
5442         other ADDRESSOF constraints on the lhs.
5443         (get_constraint_for_component_ref): Assert that we don't get
5444         ADDRESSOF constraints from the base of the reference.
5445         Properly generate UNKNOWN_OFFSET for DEREF if needed.
5446         (struct variable_info): Remove collapsed_to member.
5447         (get_varinfo_fc): Remove.
5448         (new_var_info): Do not set collapsed_to.
5449         (dump_constraint): Do not follow cycles.
5450         (dump_constraint_graph): Likewise.
5451         (build_pred_graph): Likewise.
5452         (build_succ_graph): Likewise.
5453         (rewrite_constraints): Likewise.
5454         (do_simple_structure_copy): Remove.
5455         (do_rhs_deref_structure_copy): Remove.
5456         (do_lhs_deref_structure_copy): Remove.
5457         (collapse_rest_of_var): Remove.
5458         (do_structure_copy): Re-implement.
5459         (pta_stats): New global variable.
5460         (dump_pta_stats): New function.
5461         (struct constraint_expr): Make offset signed.
5462         (UNKNOWN_OFFSET): Define special value.
5463         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5464         (solution_set_expand): New helper function split out from ...
5465         (do_sd_constraint): ... here.
5466         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
5467         (do_ds_constraint): Likewise.
5468         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
5469         and CALLUSED = *CALLUSED.
5470         (set_union_with_increment): Make inc argument signed.
5471         (type_safe): Remove.
5472         (get_constraint_for_ptr_offset): Handle unknown and negative
5473         constant offsets.
5474         (first_vi_for_offset): Handle offsets before start.  Bail
5475         out early for offsets beyond the variable extent.
5476         (first_or_preceding_vi_for_offset): New function.
5477         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5478         Together with ESCAPED = *ESCAPED this properly computes reachability.
5479         (find_what_var_points_to): New function.
5480         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5481         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5482         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5483         pt_solutions_intersect): New functions.
5484         (compute_call_used_vars): Remove.
5485         (compute_may_aliases): New main entry into PTA computation.
5486         * gimple.h (gimple_p): New typedef.
5487         (struct gimple_statement_base): Remove references_memory_p.
5488         (struct gimple_statement_with_memory_ops_base): Remove
5489         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
5490         members.
5491         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5492         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5493         gimple_set_references_memory): Remove.
5494         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5495         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5496         New functions.
5497         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5498         (verify_expr): Allow RESULT_DECL.
5499         (gimple_duplicate_bb): Do not copy virtual operands.
5500         (gimple_duplicate_sese_region): Adjust.
5501         (gimple_duplicate_sese_tail): Likewise.
5502         (mark_virtual_ops_in_region): Remove.
5503         (move_sese_region_to_fn): Do not call it.
5504         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5505         and pass_simple_dse.
5506         (execute_function_todo): Handle TODO_update_address_taken,
5507         call execute_update_addresses_taken for TODO_rebuild_alias.
5508         (execute_todo): Adjust.
5509         (execute_one_pass): Init dump files early.
5510         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5511         call-clobbered.
5512         (create_general_new_stmt): Clear vops.
5513         * tree-ssa-reassoc.c (get_rank): Adjust.
5514         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5515         symbols for renaming.
5516         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5517         (PARAM_AVG_ALIASED_VOPS): Likewise.
5518         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5519         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
5520         * tree-ssa-operands.c: Simplify for new virtual operand representation.
5521         (operand_build_cmp, copy_virtual_operands,
5522         create_ssa_artificial_load_stmt, add_to_addressable_set,
5523         gimple_add_to_addresses_taken): Remove public functions.
5524         (unlink_stmt_vdef): New function.
5525
5526 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5527
5528         * config.gcc (powerpc-*-linux*): Merge variants.
5529
5530 2009-04-02  Chao-ying Fu  <fu@mips.com>
5531             James Grosbach  <james.grosbach@microchip.com>
5532
5533         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5534         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5535         cop0_sp_offset.
5536         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5537         keep_interrupts_masked_p, use_debug_exception_return_p.
5538         (mips_attribute_table): Add interrupt, use_shadow_register_set,
5539         keep_interrupts_masked, use_debug_exception_return.
5540         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5541         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5542         New functions.
5543         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5544         (mips_print_operand): Process COP0 registers to print $0 .. $31
5545         correctly for GAS to process.
5546         (mips_interrupt_extra_call_saved_reg_p): New function.
5547         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5548         extra registers.
5549         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5550         (mips_compute_frame_info): Add supports for interrupt context that
5551         includes doubleword accumulators and COP0 registers.
5552         (mips_for_each_saved_acc): New function.
5553         (mips_for_each_saved_gpr_and_fpr): Change the function name from
5554         mips_for_each_saved_reg.
5555         (mips_save_reg): Save accumulators.
5556         (mips_kernel_reg_p): A new for_each_rtx callback.
5557         (mips_expand_prologue): Support interrupt handlers.
5558         (mips_restore_reg): Restore accumulators.
5559         (mips_expand_epilogue): Support interrupt handlers.
5560         (mips_can_use_return_insn): Return false for interrupt handlers.
5561         (mips_epilogue_uses): New function.
5562         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5563         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5564         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5565         cop0_move): New instructions.
5566         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5567         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5568         defines.
5569         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5570         New defines.
5571         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5572         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5573         interrupt handlers, we use K0 as the temporary register.
5574         (EPILOGUE_USES): Change to a function call.
5575         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5576         handlers, we use K0 as the temporary register.
5577
5578         * doc/extend.texi (Function Attributes): Document interrupt,
5579         use_shadow_register_set, keep_interrupts_masked,
5580         use_debug_exception_return for MIPS attributes.
5581
5582 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5583
5584         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5585         Remove a number of t-files from tmake_file.
5586         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5587         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5588         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5589         target_prototype, not TARGET_PROTOTYPE.
5590         (LINK_OS_GNU_SPEC): Define.
5591         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5592         and darwin-ldoubdle.c.
5593
5594 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5595
5596         PR driver/39293
5597         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5598         (cpp_options): Ditto.
5599         (default_compilers): Ditto.
5600         (display_help): Ditto.
5601         (process_command): Ditto.
5602         (do_spec_1): Ditto.
5603         (set_input): Use lbasename instead of duplicate code.
5604         (save_temps_prefix): New static for -save-temps=obj.
5605         (save_temps_length): Ditto.
5606
5607         * doc/invoke.texi (-save-temps=obj): Document new variant to
5608         -save-temps switch.
5609
5610 2009-04-02  Jeff Law  <law@redhat.com>
5611
5612         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5613         variable.
5614
5615 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5616
5617         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5618         * configure: Regenerated.
5619
5620 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5621
5622         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5623         share the argument list.
5624
5625 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5626
5627         Merge
5628
5629         2009-02-12  Diego Novillo  <dnovillo@google.com>
5630
5631         * varpool.c (debug_varpool): New.
5632         * cgraph.h (debug_varpool): Declare.
5633
5634 2009-04-02  Jan Hubicka  <jh@suse.cz>
5635
5636         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5637         pass.
5638
5639 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5640
5641         * config/i386/i386.c (ix86_abi): Move initialization to ...
5642         (override_options): Here.
5643
5644 2009-04-02  Christian Bruel  <christian.bruel@st.com>
5645
5646         * config/sh/sh.c (sh_dwarf_register_span): New function.
5647         (TARGET_DWARF_REGISTER_SPAN): Define.
5648         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
5649
5650 2009-04-02  Ira Rosen  <irar@il.ibm.com>
5651
5652         PR tree-optimization/39595
5653         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
5654         interleaved loads group is not  greater than the SLP group size.
5655
5656 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5657
5658         * builtins.c (is_builtin_name): New.
5659         (called_as_built_in): Use is_builtin_name.
5660         * tree.h (is_builtin_name): New.
5661         * varasm.c (incorporeal_function_p): Use is_builtin_name
5662
5663 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
5664
5665         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5666
5667 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
5668
5669         PR c++/26693
5670         * c-decl.c (clone_underlying_type): Move this ...
5671         * c-common.c (set_underlying_type): ... here.
5672         Also, make sure the function properly sets TYPE_STUB_DECL() on
5673         the newly created typedef variant type.
5674         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
5675         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5676         points.
5677
5678 2009-04-02  Richard Guenther  <rguenther@suse.de>
5679
5680         PR tree-optimization/37221
5681         * tree-flow.h (degenerate_phi_result): Declare.
5682         * tree-ssa-dom.c (degenerate_phi_result): Export.
5683         * tree-scalar-evolution.c (analyze_initial_condition): If
5684         the initial condition is defined by a degenerate PHI node
5685         use the degenerate value.
5686
5687 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
5688
5689         PR rtl-optimization/39588
5690         * combine.c (merge_outer_ops): Do not set the constant when this
5691         is not necessary.
5692         (simplify_shift_const_1): Do not modify it either in this case.
5693
5694 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
5695
5696         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5697         tuning is deprecated if -mtune value is set to an Itanium1 variant.
5698
5699 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
5700
5701         PR c/29027
5702         * c-lex.c (interpret_float): Default (no suffix) is double.
5703
5704 2009-04-1  Xinliang David Li  <davidxl@google.com>
5705
5706         * config/i386/i386.c (legitimate_constant_p): Recognize
5707         all one vector constant.
5708
5709 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5710
5711         * config/vax/vax.c: Add #includes to silence warnings.
5712         Change #include order to silence two warnings.
5713
5714 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5715
5716         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
5717         (ASM_SPEC): Pass -k to the assembler for PIC code.
5718
5719 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5720
5721         * config.gcc: Add vax-*-linux* to the switch.
5722         * config/vax/linux.h: New file. (TARGET_VERSION,
5723         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5724
5725 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5726
5727         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
5728         Use predicate macros instead of GET_CODE() == foo.
5729         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
5730         ashlsi3, rotrsi3, <unnamed>): Likewise.
5731
5732 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5733
5734         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
5735         jbbccihi, jbbccisi): Remova trailing whitespace.
5736         * config/vax/constraints.md: Likewise.
5737         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5738         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5739         * config/vax/predicates.md: Likewise.
5740         * config/vax/vax.c (print_operand_address, vax_output_int_move,
5741         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
5742         * config/vax/vax.h: Likewise.
5743         * config/vax/vax.md (nonlocal_goto): Likewise.
5744
5745 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5746
5747         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
5748         (indirectable_address_p, adjacent_operands_p): Add spaces around
5749         braces.
5750         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
5751
5752 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5753
5754         * config/vax/vax.c (legitimate_constant_address_p,
5755         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5756         index_term_p, reg_plus_index_p, legitimate_address_p,
5757         vax_mode_dependent_address_p): Update comments to match functions
5758         modified by the recent int->bool conversion.
5759
5760 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5761
5762         * config/vax/builtins.md: Update copyright message.
5763         * config/vax/constraints.md: Likewise.
5764         * config/vax/netbsd-elf.h: Likewise.
5765         * config/vax/predicates.md: Likewise.
5766         * config/vax/vax-protos.h: Likewise.
5767         * config/vax/vax.c: Likewise.
5768         * config/vax/vax.h: Likewise.
5769         * config/vax/vax.md: Likewise.
5770         * config/vax/vax.opt: Likewise.
5771
5772 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5773
5774         * config/vax/builtins.md (ffssi2, ffssi2_internal,
5775         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
5776         * config/vax/constraints.md (B, R): Likewise.
5777         * config/vax/predicates.md (external_memory_operand,
5778         nonimmediate_addsub_di_operand): Likewise.
5779         * config/vax/vax.c (vax_output_int_add): Likewise.
5780         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
5781         untyped_call): Likewise.
5782
5783 2009-04-01  Matt Thomas  <matt@3am-software.com>
5784
5785         * config/vax/predicates.md: New file.
5786         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
5787         external_const_operand, nonsymbolic_operand, external_memory_operand,
5788         indirect_memory_operand, indexed_memory_operand,
5789         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5790         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5791         predicate.
5792         * config/vax/constraints.md: New file.
5793         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5794         New constraint.
5795         * config/vax/builtins.md: New file.
5796         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5797         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5798         jbbccisi): Define.
5799         * config/vax/vax.opt (mqmath): Add option.
5800         * config/vax/vax.md (isfx): Extend with DI.
5801         (VAXintQH, VAXintQHSD): Define.
5802         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5803         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5804         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5805         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5806         (movdi): Update constraints and use vax_output_int_move().
5807         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5808         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5809         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5810         nonlocal_goto): New.
5811         (mov<mode>): Extend accepted operand types.
5812         (subdi3_old): Rename from subdi3, change update constraints and use
5813         a new implementation.
5814         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
5815         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5816         MOVE_RATIO, CLEAR_RATIO): Define.
5817         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5818         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5819         (PRINT_OPERAND): Redefine using a function instead of inlined code.
5820         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5821         (split_quadword_operands): Make static and really allow variable
5822         splitting.
5823         (print_operand_address): Update for PIC generation.
5824         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5825         indexable_address_p, fixup_mathdi_operand,
5826         vax_expand_addsub_di_operands, adjacent_operands_p): New.
5827         (vax_float_literal, legitimate_constant_p,
5828         indirectable_constant_address_p, index_term_p,
5829         reg_plus_index_p): Return bool instead of int.
5830         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5831         where needed.
5832         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5833         generation.
5834         (vax_output_conditional_branch): Indent.
5835         (legitimate_constant_address_p, indirectable_constant_address_p,
5836         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5837         vax_mode_dependent_address_p): Return bool instead of int, update for
5838         PIC generation.
5839         * config/vax/vax-protos.h (legitimate_constant_address_p,
5840         legitimate_constant_p, legitimate_address_p,
5841         vax_mode_dependent_address_p): Change declaration to bool.
5842         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5843         vax_expand_addsub_di_operands, vax_output_int_subtract,
5844         vax_output_movmemsi): Declare.
5845         (split_quadword_operands, vax_float_literal): Delete declaration.
5846         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5847         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5848         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5849         ASM_OUTPUT_DWARF_PCREL): Define.
5850         (ASM_SPEC): Change definition to allow PIC generation.
5851
5852 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
5853
5854         * doc/sourcebuild.texi: Update front-end requirements.
5855
5856 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5857
5858         PR target/39226
5859         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5860         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5861         (booldi3_internal3): Use boolean_or_operator instead of
5862         boolean_operator.
5863
5864 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
5865
5866         PR c/39605
5867         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5868         declarator whose size is not an integer constant expression but
5869         folds to an integer constant, then treat it as a constant
5870         subsequently.
5871
5872 2009-04-01  Richard Guenther  <rguenther@suse.de>
5873
5874         * fold-const.c (fold_plusminus_mult_expr): Do not fold
5875         i * 4 + 2 to (i * 2 + 1) * 2.
5876
5877 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5878
5879         PR c/37772
5880         * c-parser.c (c_parser_asm_statement): Skip until close paren and
5881         return if c_parser_asm_string_literal returned NULL.
5882
5883 2009-04-01  Nick Clifton  <nickc@redhat.com>
5884
5885         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5886         already defined.
5887         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5888         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
5889         other typedefs to avoid conflicts with libgcc2.c.  Define labels
5890         to gain 16-bit bit-manipulation functions from libgcc2.c and then
5891         include it.
5892         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
5893         to gain 16-bit trapping arithmetic functions from libgcc2.c and
5894         then include it.
5895
5896 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
5897
5898         * varasm.c (default_function_rodata_section): Declare DOT as
5899         const char*.
5900
5901 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
5902             Andrey Galkin  <agalkin@hypercom.com>
5903
5904         PR/39492
5905         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5906         Make object_name unique for each process.
5907
5908 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5909
5910         PR other/39591
5911         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5912         addressable variables in the parallel that could go out of scope while
5913         running queued tasks.
5914
5915 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
5916
5917         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5918         (CASE_VALUES_THRESHOLD): Redefine.
5919         * config/avr/avr.c (avr_override_options): Remove initialization of
5920         avr_case_values_threshold variable.
5921         (avr_case_values_threshold): Remove variable. Add new function.
5922         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5923         * config/avr/avr.opt (mno-tablejump): Remove option.
5924         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5925
5926 2009-04-01  DJ Delorie  <dj@redhat.com>
5927
5928         * varasm.c (default_function_rodata_section): Don't assume
5929         anything about where the first '.' in the section name is.
5930
5931 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
5932
5933         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5934         rs6000_emit_stack_tie.
5935
5936 2009-03-31  Ian Lance Taylor  <iant@google.com>
5937
5938         * tree-eh.c (tree_remove_unreachable_handlers): Compare
5939         gimple_code with GIMPLE_RESX, not RESX.
5940
5941 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5942
5943         * c-common.c (c_get_ident): New.
5944         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
5945
5946 2009-04-01  Ben Elliston  <bje@au.ibm.com>
5947
5948         * config/rs6000/sysv4.opt (msdata): Improve option description.
5949
5950 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
5951
5952         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5953         (divdf3_internal_lat): Remove.
5954         (divxf3_internal_lat): Remove.
5955         (divxf3_internal_thr): Remove.
5956         (divxf): Use divxf3_internal.
5957         * config/ia64/div.md (divsf3_internal_lat): New.
5958         (divdf3_internal_lat): New.
5959         (divxf3_internal): New.
5960
5961 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5962
5963         PR c/448
5964         * Makefile.in (USE_GCC_STDINT): Define.
5965         (stmp-int-hdrs): Install stdint.h if applicable.
5966         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5967         if known.
5968         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5969         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5970         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5971         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5972         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5973         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5974         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5975         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5976         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5977         (c_common_nodes_and_builtins): Initialize
5978         underlying_wchar_type_node.  Do not initialize
5979         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
5980         nodes for new types.
5981         (c_stddef_cpp_builtins): Define macros for new types.
5982         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5983         Remove.
5984         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5985         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5986         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5987         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5988         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5989         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5990         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5991         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5992         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5993         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5994         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5995         int16_type_node, int32_type_node, int64_type_node,
5996         uint8_type_node, uint16_type_node, c_uint32_type_node,
5997         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5998         int_least32_type_node, int_least64_type_node,
5999         uint_least8_type_node, uint_least16_type_node,
6000         uint_least32_type_node, uint_least64_type_node,
6001         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6002         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6003         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6004         uintptr_type_node): Define.
6005         * c-cppbuiltin.c (builtin_define_constants,
6006         builtin_define_type_minmax): New.
6007         (builtin_define_stdint_macros): Define more macros.
6008         (c_cpp_builtins): Define more limit macros.
6009         (type_suffix): New.
6010         (builtin_define_type_max): Define in terms of
6011         builtin_define_type_minmax.  Remove is_long parameter.  All
6012         callers changed.
6013         * config.gcc (use_gcc_stdint): Define.
6014         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6015         Add newlib-stdint.h for generic targets.
6016         * config/glibc-stdint.h, config/newlib-stdint.h,
6017         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6018         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6019         * config/score/score.h (UINTPTR_TYPE): Define.
6020         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6021         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6022         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6023         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6024         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6025         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6026         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6027         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6028         * config/spu/spu.h (STDINT_LONG32): Define.
6029         * configure.ac (use_gcc_stdint): Substitute.
6030         * configure: Regenerate.
6031         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6032         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6033         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6034         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6035         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6036         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6037         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6038         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6039         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6040         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6041         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6042         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6043         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6044         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6045         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6046         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6047         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6048         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6049         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6050         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6051         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6052         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6053         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6054         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6055         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6056         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6057         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6058         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6059         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
6060
6061 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
6062
6063         * loop-iv.c (suitable_set_for_replacement): Renamed from
6064         simplify_using_assignment; changed to return bool and to accept new
6065         args DEST and SRC.  Return true iff we find a source/destination pair
6066         that can be used to make a replacement, and fill SRC and DEST if so.
6067         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
6068         changed.
6069         (simplify_using_initial_values): Deal with altered regs here and track
6070         more precisely the effect they have on the validity of our expression.
6071
6072         * loop-iv.c (simplify_using_condition): A condition of the form
6073         (EQ REG CONST) can be used to simply make a substitution.
6074         (simplify_using_initial_values): Keep track of conditions we have seen
6075         and keep using them to simplify new expressions, while applying the
6076         same substitutions to them as to the expression.
6077
6078         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6079         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
6080         GEU/LTU reversed.
6081
6082         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
6083         changed.  Use this when trying to improve the upper bound.
6084         Generate the comparison by using simplify_gen_relational.
6085
6086         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
6087
6088         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
6089         functions.
6090         (simplify_using_assignment, simplify_using_initial_values): Call
6091         replace_in_expr to make replacements.  Call replace_single_def_regs
6092         once on the initial version of the expression.
6093
6094 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6095
6096         PR target/27237
6097         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
6098
6099 2009-03-31  Richard Guenther  <rguenther@suse.de>
6100
6101         PR middle-end/31029
6102         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
6103         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
6104
6105 2009-03-31  Richard Guenther  <rguenther@suse.de>
6106
6107         * tree.h (div_if_zero_remainder): Declare.
6108         * fold-const.c (div_if_zero_remainder): Export.
6109         * tree-ssa-forwprop.c
6110         (forward_propagate_addr_into_variable_array_index): Handle
6111         constant array index addition outside of the variable index.
6112
6113 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6114
6115         PR target/39592
6116         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
6117         define_splits, floatunssi<mode>2): Require x87 conversions from
6118         DImode to be permitted.
6119
6120 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6121
6122         PR preprocessor/15638
6123         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
6124
6125 2009-03-31  Richard Guenther  <rguenther@suse.de>
6126
6127         PR middle-end/23401
6128         PR middle-end/27810
6129         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
6130         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
6131         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
6132         a separate statement.
6133         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
6134         (lookup_tmp_var): Likewise.
6135         (is_gimple_formal_tmp_or_call_rhs): Remove.
6136         (is_gimple_reg_or_call_rhs): Rename to ...
6137         (is_gimple_reg_rhs_or_call): ... this.
6138         (is_gimple_mem_or_call_rhs): Rename to ...
6139         (is_gimple_mem_rhs_or_call): ... this.
6140         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
6141         DECL_GIMPLE_REG_P only if is_formal is true.
6142         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
6143         for non-proper post-modify expression gimplification.
6144         (gimplify_self_mod_expr): For post-modify expressions gimplify
6145         the lvalue to a minimal lvalue.
6146         (rhs_predicate_for): Remove formal temp case.
6147         (gimplify_modify_expr_rhs): Likewise.
6148         (gimplify_addr_expr): Use is_gimple_reg.
6149         (gimplify_expr): Remove formal temp cases.
6150         (gimple_regimplify_operands): Likewise.
6151         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
6152         and FILTER_EXPR like constants.
6153         * gimple.c (walk_gimple_op): Fix val_only initialization, use
6154         is_gimple_reg.
6155         (is_gimple_formal_tmp_rhs): Remove.
6156         (is_gimple_reg_rhs): Remove special casing.
6157         (is_gimple_mem_rhs): Fix.
6158         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
6159         (is_gimple_formal_tmp_var): Remove.
6160         (is_gimple_formal_tmp_reg): Likewise.
6161         (is_gimple_min_lval): Allow invariant component ref parts.
6162         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
6163         is_gimple_formal_tmp_reg): Remove declarations.
6164         * tree-cfg.c (verify_expr): Verify that variables with address
6165         taken do not have DECL_GIMPLE_REG_P set.
6166         * tree-mudflap.c (mf_build_check_statement_for): Use
6167         force_gimple_operand instead of gimplify_expr.
6168
6169 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
6170
6171         * modulo-sched.c (sms_schedule_by_order): Pass the actual
6172         schedulable rows to compute_split_row.
6173
6174 2009-03-31  Ben Elliston  <bje@au.ibm.com>
6175
6176         PR target/31635
6177         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
6178         OPT_mvrsave.
6179
6180 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6181
6182         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
6183         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
6184         * configure: Regenerate.
6185         * config.in: Regenerate.
6186         * config/rs6000/rs6000.opt (mtls-markers): Add.
6187         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
6188         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
6189         (tls_ld_aix, tls_ld_sysv): Likewise.
6190         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
6191         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
6192
6193 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6194
6195         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
6196
6197 2009-03-30  Jan Hubicka  <jh@suse.cz>
6198
6199         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
6200         out of RESX.
6201         (tree_remove_unreachable_handlers): Cleanup EH predecestor
6202         detection and label handling.
6203
6204 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6205
6206         * ira-int.h (ira_allocno): Rename left_conflicts_num to
6207         left_conflicts_size.
6208         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
6209         ALLOCNO_LEFT_CONFLICTS_SIZE.
6210
6211         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
6212         remove_allocno_from_bucket_and_push,
6213         allocno_spill_priority_compare, push_allocnos_to_stack,
6214         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6215         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
6216         (setup_allocno_left_conflicts_num): Ditto.  Rename to
6217         setup_allocno_left_conflicts_size.
6218         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6219         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
6220         setup_allocno_left_conflicts_size instead of
6221         setup_allocno_left_conflicts_num.
6222
6223         * ira-build.c (ira_create_allocno): Use
6224         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
6225         ALLOCNO_LEFT_CONFLICTS_NUM.
6226
6227 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6228
6229         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6230         instead of DF_LR_OUT.
6231
6232         * ira-lives.c (process_bb_node_lives): Ditto.
6233
6234         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6235         instead of DF_LR_{OUT,IN}.
6236
6237         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6238
6239         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6240
6241 2009-03-30  Jan Hubicka  <jh@suse.cz>
6242
6243         * except.c (label_to_region_map): Fix thinko.
6244
6245 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
6246
6247         PR middle-end/38237
6248         * tree.h (tree_find_value): New declaration.
6249         * tree.c (tree_find_value): New function.
6250         * varasm.c (assemble_external): Avoid duplicate entries on lists.
6251
6252 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
6253
6254         PR debug/39563
6255         * c-decl.c (struct c_binding): Add locus field.
6256         (bind): Add locus argument, set locus field from it.
6257         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6258         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6259         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6260         implicitly_declare, undeclared_variable, lookup_label,
6261         declare_label, c_make_fname_decl, c_builtin_function,
6262         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6263         bind callers.
6264
6265 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6266
6267         PR target/38781
6268         * config/i386/i386.c (classify_argument): Check total size of
6269         structure.
6270
6271 2009-03-30  Martin Jambor  <mjambor@suse.cz>
6272
6273         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6274         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6275         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6276         respectively.
6277
6278         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6279         seen_variable_array_ref while also traversing a union.
6280
6281         * tree-inline.c (optimize_inline_calls): Do not call
6282         cgraph_node_remove_callees.
6283         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6284         (pass_remove_cgraph_callee_edges): New variable.
6285         * passes.c (init_optimization_passes): Add
6286         pass_remove_cgraph_callee_edges after early inlining and before all
6287         late intraprocedural passes.
6288
6289         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6290
6291 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6292
6293         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6294         Fix typos in names.
6295
6296 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6297
6298         * combine.c (simplify_comparison): Use have_insn_for.
6299         * dojump.c (do_jump): Likewise.
6300
6301 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6302
6303         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6304         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6305         sparc_compare_op0 like sparc_compare_emitted used to be handled.
6306         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6307         instead of sparc_compare_emitted.
6308         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6309         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6310         instead of sparc_compare_emitted.
6311
6312 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6313
6314         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6315         enter/exit cfglayout mode.
6316         (pass_partition_block): Require it.
6317         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6318         (combine_instructions): Track basic blocks instead of labels.
6319         (update_cfg_for_uncondjump): New.
6320         (try_combine): Use it.  Update jumps after rescanning.
6321         (pass_combine): Require PROP_cfglayout.
6322         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6323
6324 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6325
6326         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6327         Provide/destroy PROP_cfglayout respectively.
6328         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6329         * tree-pass.h (PROP_cfglayout): New.
6330
6331 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6332
6333         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6334         fold_convert_const_fixed_from_fixed,
6335         fold_convert_const_fixed_from_int,
6336         fold_convert_const_fixed_from_real, fold_negate_const): Do not
6337         set TREE_CONSTANT_OVERFLOW.
6338         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6339         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6340
6341 2009-03-30  Ira Rosen  <irar@il.ibm.com>
6342
6343         * tree-vect-loop-manip.c: New file.
6344         * tree-vectorizer.c: Update documentation and included files.
6345         (vect_loop_location): Make extern.
6346         (rename_use_op): Move to tree-vect-loop-manip.c
6347         (rename_variables_in_bb, rename_variables_in_loop,
6348         slpeel_update_phis_for_duplicate_loop,
6349         slpeel_update_phi_nodes_for_guard1,
6350         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6351         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6352         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
6353         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
6354         find_loop_location): Likewise.
6355         (new_stmt_vec_info): Move to tree-vect-stmts.c.
6356         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6357         get_vectype_for_scalar_type, vect_is_simple_use,
6358         supportable_widening_operation, supportable_narrowing_operation):
6359         Likewise.
6360         (bb_in_loop_p): Move to tree-vect-loop.c.
6361         (new_loop_vec_info, destroy_loop_vec_info,
6362         reduction_code_for_scalar_code, report_vect_op,
6363         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6364         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6365         (vect_supportable_dr_alignment): Likewise.
6366         * tree-vectorizer.h (tree-data-ref.h): Include.
6367         (vect_loop_location): Declare.
6368         Reorganize function declarations according to the new file structure.
6369         * tree-vect-loop.c: New file.
6370         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
6371         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6372         * tree-vect-data-refs.c: New file.
6373         * tree-vect-patterns.c (timevar.h): Don't include.
6374         * tree-vect-stmts.c: New file.
6375         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
6376         tree-vect-slp.c, tree-vect-loop.c.
6377         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6378         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
6379         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6380         (tree-vect-analyze.o): Remove.
6381         (tree-vect-transform.o): Likewise.
6382         (tree-vect-data-refs.o): Add rule.
6383         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
6384         tree-vect-slp.o): Likewise.
6385         (tree-vect-patterns.o): Remove redundant dependencies.
6386         (tree-vectorizer.o): Likewise.
6387         * tree-vect-slp.c: New file.
6388
6389 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6390
6391         * optc-gen.awk: Warn if an option flag has multiple different
6392         help strings.
6393
6394 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6395
6396         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6397         -floop-block): Document dependences on PPL, CLooG and Graphite.
6398
6399 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6400
6401         PR rtl-optimization/323
6402         * c-common.c (c_fully_fold, convert_and_check,
6403         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6404         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6405         * c-common.def (EXCESS_PRECISION_EXPR): New.
6406         * c-cppbuiltin.c (builtin_define_float_constants): Define
6407         constants with enough digits for long double.
6408         * c-lex.c (interpret_float): Interpret constant with excess
6409         precision where appropriate.
6410         * c-opts.c (c_common_post_options): Set
6411         flag_excess_precision_cmdline.  Give an error for
6412         -fexcess-precision=standard for C++ for processors where the
6413         option is significant.
6414         * c-parser.c (c_parser_conditional_expression): Handle excess
6415         precision in condition.
6416         * c-typeck.c (convert_arguments): Handle arguments with excess
6417         precision.
6418         (build_unary_op): Move excess precision outside operation.
6419         (build_conditional_expr): Likewise.
6420         (build_compound_expr): Likewise.
6421         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6422         (build_modify_expr): Handle excess precision in RHS.
6423         (convert_for_assignment): Handle excess precision in converted
6424         value.
6425         (digest_init, output_init_element, process_init_element): Handle
6426         excess precision in initializer.
6427         (c_finish_return): Handle excess precision in return value.
6428         (build_binary_op): Handle excess precision in operands and add
6429         excess precision as needed for operation.
6430         * common.opt (-fexcess-precision=): New option.
6431         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6432         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6433         For standard excess precision, output explicit conversion to and
6434         truncation from XFmode.
6435         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6436         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6437         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6438         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6439         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6440         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6441         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6442         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6443         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6444         define_splits, sqrt<mode>2): Disable where appropriate for
6445         standard excess precision.
6446         * convert.c (convert_to_real): Do not shorten arithmetic to type
6447         for which excess precision would be used.
6448         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6449         * doc/invoke.texi (-fexcess-precision=): Document option.
6450         (-mfpmath=): Correct index entry.
6451         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6452         flag_excess_precision): New.
6453         * langhooks.c (lhd_post_options): Set
6454         flag_excess_precision_cmdline.
6455         * opts.c (common_handle_option): Handle -fexcess-precision=.
6456         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6457         init_excess_precision): New.
6458         (lang_dependent_init_target): Call init_excess_precision.
6459         * tree.c (excess_precision_type): New.
6460         * tree.h (excess_precision_type): Declare.
6461
6462 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6463
6464         PR c/35235
6465         * c-typeck.c (build_component_ref): Do not copy qualifiers from
6466         non-lvalue to component.
6467
6468 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6469
6470         PR preprocessor/34695
6471         * Makefile.in (c-opts.o): Depend on c-tree.h.
6472         * c-common.c: Move down include of diagnostic.h.
6473         (done_lexing, c_cpp_error): New.
6474         * c-common.h (done_lexing): Declare.
6475         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6476         (parse_in).
6477         * c-opts.c: Include c-tree.h.
6478         (c_common_init_options): Set preprocessor error callback.
6479         (c_common_handle_option): Do not set preprocessor
6480         inhibit_warnings, warnings_are_errors, warn_system_headers,
6481         pedantic_errors or inhibit_warnings flags.
6482         (c_common_post_options): Do not check cpp_errors (parse_in).
6483         (c_common_finish): Do not output dependencies if there were
6484         errors.  Do not check return value of cpp_finish.
6485         * c-ppoutput.c (pp_file_change): Set input_location.
6486         * c-tree.h (c_cpp_error): Declare.
6487         * diagnostic.c (diagnostic_set_info_translated): Also initialize
6488         override_column.
6489         (diagnostic_build_prefix): Check override_column.
6490         * diagnostic.h (diagnostic_info): Add override_column field.
6491         (diagnostic_override_column): Define.
6492
6493 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
6494
6495         * c-common.c (c_expand_expr, c_staticp): Remove.
6496         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6497         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6498         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6499         * c-gimplify.c (gimplify_compound_literal_expr,
6500         optimize_compound_literals_in_ctor): Remove.
6501         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6502         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6503         * c-semantics.c (emit_local_var): Remove.
6504
6505         * langhooks-def.h (lhd_expand_expr): Remove.
6506         * langhooks.c (lhd_expand_expr): Remove.
6507         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6508
6509         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6510         handling from c-semantics.c; don't call into langhook.
6511         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6512         * gimplify.c (gimplify_compound_literal_expr,
6513         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6514         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6515         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6516         as was done in c-gimplify.c.
6517         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6518         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6519         Move from c-common.h.
6520         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
6521
6522         * tree.c (staticp): Do not call langhook.
6523         * langhooks.c (lhd_staticp): Delete.
6524         * langhooks-def.h (lhd_staticp): Delete prototype.
6525         (LANG_HOOKS_STATICP): Delete.
6526         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6527
6528         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6529         instead of DECL_STMTs.
6530
6531 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6532
6533         PR c/456
6534         PR c/5675
6535         PR c/19976
6536         PR c/29116
6537         PR c/31871
6538         PR c/35198
6539         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6540         void_type_node.
6541         (fold_call_expr): Return a NOP_EXPR from folding rather than the
6542         contained expression.
6543         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
6544         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
6545         conditional expressions for C.
6546         (decl_constant_value_for_optimization): Move from
6547         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
6548         whether optimizing and that the expression is a VAR_DECL not of
6549         array type instead of doing such checks in the caller.  Do not
6550         check pedantic.  Call gcc_unreachable for C++.
6551         * c-common.def (C_MAYBE_CONST_EXPR): New.
6552         * c-common.h (c_fully_fold, c_save_expr,
6553         decl_constant_value_for_optimization): New prototypes.
6554         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6555         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6556         EXPR_INT_CONST_OPERANDS): Define.
6557         * c-convert.c (convert): Strip nops from expression.
6558         * c-decl.c (groktypename): Take extra parameters expr and
6559         expr_const_operands.  Update call to grokdeclarator.
6560         (start_decl): Update call to grokdeclarator.  Add statement for
6561         expressions used in type of decl.
6562         (grokparm): Update call to grokdeclarator.
6563         (push_parm_decl): Update call to grokdeclarator.
6564         (build_compound_literal): Add parameter non_const and build a
6565         C_MAYBE_COSNT_EXPR if applicable.
6566         (grokdeclarator): Take extra parameters expr and
6567         expr_const_operands.  Track expressions used in declaration
6568         specifiers and declarators.  Fold array sizes and track whether
6569         they are constant expressions and whether they are integer
6570         constant expressions.
6571         (parser_xref_tag): Set expr and expr_const_operands fields in
6572         return value.
6573         (grokfield): Update call to grokdeclarator.
6574         (start_function): Update call to grokdeclarator.
6575         (build_null_declspecs): Set expr and expr_const_operands fields in
6576         return value.
6577         (declspecs_add_type): Handle expressions in typeof specifiers.
6578         * c-parser.c (c_parser_declspecs): Set expr and
6579         expr_const_operands fields for declaration specifiers.
6580         (c_parser_enum_specifier): Likewise.
6581         (c_parser_struct_or_union_specifier): Likewise.
6582         (c_parser_typeof_specifier): Likewise.  Update call to
6583         groktypename.  Fold expression as needed.  Return expressions with
6584         type instead of adding statements.
6585         (c_parser_attributes): Update calls to c_parser_expr_list.
6586         (c_parser_statement_after_labels): Fold expression before passing
6587         to objc_build_throw_stmt.
6588         (c_parser_condition): Fold expression.
6589         (c_parser_asm_operands): Fold expression.
6590         (c_parser_conditional_expression): Use c_save_expr.  Update call
6591         to build_conditional_expr.
6592         (c_parser_alignof_expression): Update call to groktypename.
6593         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6594         original_code.  Fold expression argument of va_arg.  Create
6595         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6596         argument to va_arg.  Update calls to groktypename.  Fold array
6597         index for offsetof.  Verify that first argument to
6598         __builtin_choose_expr has integer type.
6599         (c_parser_postfix_expression_after_paren_type): Update calls to
6600         groktypename and build_compound_literal.  Handle expressions with
6601         side effects in type name.
6602         (c_parser_postfix_expression_after_primary): Update call to
6603         c_parser_expr_list.  Set original_code for calls to
6604         __builtin_constant_p.
6605         (c_parser_expr_list): Take extra parameter fold_p.  Fold
6606         expressions if requested.
6607         (c_parser_objc_type_name): Update call to groktypename.
6608         (c_parser_objc_synchronized_statement): Fold expression.
6609         (c_parser_objc_receiver): Fold expression.
6610         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6611         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6612         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6613         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6614         (struct c_typespec): Add elements expr and expr_const_operands.
6615         (struct c_declspecs): Add elements expr and expr_const_operands.
6616         (groktypename, build_conditional_expr, build_compound_literal):
6617         Update prototypes.
6618         (in_late_binary_op): Declare.
6619         * c-typeck.c (note_integer_operands): New function.
6620         (in_late_binary_op): New variable.
6621         (decl_constant_value_for_broken_optimization): Move to c-common.c
6622         and rename to decl_constant_value_for_optimization.
6623         (default_function_array_conversion): Do not strip nops.
6624         (default_conversion): Do not call
6625         decl_constant_value_for_broken_optimization.
6626         (build_array_ref): Do not fold result.
6627         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
6628         result when operand is a VLA.
6629         (c_expr_sizeof_type): Update call to groktypename.  Handle
6630         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
6631         result when operand names a VLA type.
6632         (build_function_call): Update call to build_compound_literal.
6633         Only fold result for calls to __builtin_* functions.  Strip
6634         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
6635         the function designator.
6636         (convert_arguments): Fold arguments.  Update call to
6637         convert_for_assignment.
6638         (build_unary_op): Handle increment and decrement of
6639         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
6640         decrement earlier.  Fold operand of increment and decrement.
6641         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
6642         built for integer operand.  Wrap returns that are INTEGER_CSTs
6643         without being integer constant expressions or that have integer
6644         constant operands without being INTEGER_CSTs.
6645         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6646         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
6647         result is an integer constant expression or can be used in
6648         unevaluated parts of one and avoid folding and wrap as
6649         appropriate.  Fold operands before possibly doing -Wsign-compare
6650         warnings.
6651         (build_compound_expr): Wrap result for C99 if operands can be used
6652         in integer constant expressions.
6653         (build_c_cast): Update call to digest_init.  Do not ignore
6654         overflow from casting floating-point constants to integers.  Wrap
6655         results that could be confused with integer constant expressions,
6656         null pointer constants or floating-point constants.
6657         (c_cast_expr): Update call to groktypename.  Handle expressions
6658         included in type name.
6659         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
6660         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
6661         Update calls to convert_for_assignment.
6662         (convert_for_assignment): Take new parameter
6663         null_pointer_constant.  Do not strip nops or call
6664         decl_constant_value_for_broken_optimization.  Set
6665         in_late_binary_op for conversions to boolean.
6666         (store_init_value): Update call to digest_init.
6667         (digest_init): Take new parameter null_pointer_constant.  Do not
6668         call decl_constant_value_for_broken_optimization.  pedwarn for
6669         initializers not constant expressions.  Update calls to
6670         convert_for_assignment.
6671         (constructor_nonconst): New.
6672         (struct constructor_stack): Add nonconst element.
6673         (really_start_incremental_init, push_init_level, pop_init_level):
6674         Handle constructor_nonconst and nonconst element.
6675         (set_init_index): Call constant_expression_warning for array
6676         designators.
6677         (output_init_element): Fold value.  Set constructor_nonconst as
6678         applicable.  pedwarn for initializers not constant expressions.
6679         Update call to digest_init.  Call constant_expression_warning
6680         where constant initializers are required.
6681         (process_init_element): Use c_save_expr.
6682         (c_finish_goto_ptr): Fold expression.
6683         (c_finish_return): Fold return value.  Update call to
6684         convert_for_assignment.
6685         (c_start_case): Fold switch expression.
6686         (c_process_expr_stmt): Fold expression.
6687         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
6688         ensure statement expression is not evaluated in constant expression.
6689         (build_binary_op): Track whether results are integer constant
6690         expressions or may occur in such, disable folding and wrap results
6691         as applicable.  Fold operands for -Wsign-compare warnings unless
6692         in_late_binary_op.
6693         (c_objc_common_truthvalue_conversion): Handle results folded to
6694         integer constants that are not integer constant expressions.
6695         * doc/extend.texi: Document when typeof operands are evaluated,
6696         that condition of __builtin_choose_expr is an integer constant
6697         expression, and more about use of __builtin_constant_p in
6698         initializers.
6699
6700 2009-03-29  Richard Guenther  <rguenther@suse.de>
6701
6702         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6703         propagate addresses of array references.
6704
6705 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
6706
6707         * regmove.c (perhaps_ends_bb_p): Remove.
6708         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
6709         from INSN and check that the main loop stays within that basic block.
6710         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6711         (regmove_forward_pass): Split out from regmove_optimize.  Use
6712         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6713         (regmove_backward_pass): Split out from regmove_optimize.  Use
6714         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6715         (regmove_optimize): Simplify.
6716
6717 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6718
6719         PR target/39545
6720         * config/i386/i386.c (classify_argument): Ignore flexible array
6721         member in struct and warn ABI change.
6722
6723 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6724
6725         * config/i386/i386-protos.h (ix86_agi_dependent): New.
6726
6727         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6728         (ix86_adjust_cost): Updated.
6729
6730 2009-03-29  Jan Hubicka  <jh@suse.cz>
6731
6732         PR middle-end/28850
6733         * tree-pass.h (pass_cleanup_eh): New function.
6734         (remove_unreachable_regions): Break code handling RTL
6735         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6736         that can not be reached by runtime.
6737         (can_be_reached_by_runtime): New function.
6738         (label_to_region_map): New function.
6739         (num_eh_regions): New function.
6740         (rtl_remove_unreachable_regions): New function.
6741         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6742         (remove_eh_region): New function.
6743         * except.h: Include sbitmap and vecprim.
6744         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6745         num_eh_regions): Declare.
6746         * passes.c (init_optimization_passes): Schedule cleanup_eh.
6747         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
6748         * tree-eh.c (tree_remove_unreachable_handlers): New function.
6749         (tree_empty_eh_handler_p): New function.
6750         (cleanup_empty_eh): New function.
6751         (cleanup_eh): New function.
6752         (pass_cleanup_eh): New function.
6753
6754 2009-03-29  Jan Hubicka  <jh@suse.cz>
6755
6756         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6757         for removed regions.
6758
6759 2009-03-29  Jan Hubicka  <jh@suse.cz>
6760
6761         * except.c (dump_eh_tree): Dump all datastructures.
6762
6763 2009-03-29  Jan Hubicka  <jh@suse.cz>
6764
6765         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6766         (duplicate_eh_regions_1): Likewise.
6767         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6768         vector; call EH verification.
6769         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6770         Be ready for region being removed.
6771
6772 2009-03-29  Jan Hubicka  <jh@suse.cz>
6773
6774         * bitmap.c (bitmap_last_set_bit): New function.
6775         * bitmap.h (bitmap_last_set_bit): Declare.
6776
6777 2009-03-29  David Ayers  <ayers@fsfe.org>
6778
6779         PR objc/27377
6780         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6781         by calling objc_compare_types and surpress warnings about
6782         incompatible C pointers that are compatible ObjC pointers.
6783
6784 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
6785
6786         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6787         call initialize_inline_failed.
6788         (initialize_inline_failed): Move it from here ...
6789         * cgraph.c (initialize_inline_failed): ... to here.
6790         (cgraph_create_edge): Call initialize_inline_failed rather than
6791         setting inline_failed directly.
6792
6793 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6794
6795         PR target/32542
6796         * sysv4.opt (msdata): Improve comment.
6797         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6798         * sysv4.h (SVR4_ASM_SPEC): Likewise.
6799
6800 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6801
6802         PR target/30451
6803         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6804         load and store attributes.
6805
6806 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6807
6808         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6809         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6810         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6811         * doc/extend.texi (X86 Built-in Functions): Add index entries for
6812         __builtin_infq and __builtin_huge_valq.
6813
6814 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
6815
6816         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6817         atmega8m1 devices.
6818         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6819         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6820
6821 2009-03-28  Xinliang David Li  <davidxl@google.com>
6822
6823         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
6824         (do_dbg_cnt): New function.
6825
6826 2009-03-28  Jan Hubicka  <jh@suse.cz>
6827
6828         Merge from pretty-ipa:
6829
6830         2009-03-27  Jan Hubicka  <jh@suse.cz>
6831
6832         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6833         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6834         * passes.c (function_called_by_processed_nodes_p): New.
6835         * ipa-pure-const.c (check_call): Fix handling of operands.
6836         (analyze_function): Dump debug output for skipped bodies.
6837         (local_pure_const): Use function_called_by_processed_nodes_p.
6838         * dwarf2out.c (reference_to_unused): Use output.
6839         * passes.c (do_per_function_toporder): Likewise.
6840
6841         2008-11-12  Jan Hubicka  <jh@suse.cz>
6842
6843         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6844         * ipa-pure-const.c (funct_state_d): Add can throw field; make
6845         state_set_in_source enum
6846         (check_decl): Ignore memory tags; do not set fake looping flags;
6847         dump diagnostics.
6848         (check_operand, check_tree, check_rhs_var, check_lhs_var,
6849         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6850         (check_call, analyze_function): Rewrite.
6851         (check_stmt): New.
6852         (add_new_function): Update call of analyze_function.
6853         (generate_summary): Add call of analyze_function.
6854         (propagate): Propagate can_throw; handle state_set_in_source correctly.
6855         (local_pure_const): New function.
6856         (pass_local_pure_const): New pass.
6857         * ipa-inline.c (inline_transform): Set after_inlining.
6858         * tree-eh.c (stmt_can_throw_external): New.
6859         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6860         work with aliasing built.
6861         * tree-flow.h (stmt_can_throw_external): New.
6862         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6863         and local pure/const pass in early and late optimization queue.
6864
6865 2009-03-28  Martin Jambor  <mjambor@suse.cz>
6866
6867         * fold-const.c (get_pointer_modulus_and_residue): New parameter
6868         allow_func_align.
6869         (fold_binary): Allow function decl aligment consideration is the
6870         second argument is integer constant one.
6871         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6872         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6873         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6874
6875 2009-03-28  Jan Hubicka  <jh@suse.cz>
6876
6877         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6878         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6879         * function.h (rtl_data): Add nothrow flag.
6880         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6881         set DECL_NOTHROW for AVAILABLE functions.
6882
6883 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
6884
6885         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6886         following vector keyword has expansion starting with pixel or bool
6887         keyword, expand vector to __vector and pixel or bool to __pixel or
6888         __bool.
6889
6890         PR c++/39554
6891         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6892         warn_if_disallowed_function_p): Removed.
6893         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6894         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6895         warning_if_disallowed_function_p.
6896         * flags.h (warn_if_disallowed_function_p,
6897         warn_disallowed_functions): Removed.
6898         * common.opt (Wdisallowed-function-list=): Removed.
6899         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6900
6901 2009-03-28  Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/38723
6904         * tree-ssa-pre.c (compute_avail): Add all default definitions to
6905         the entry block.
6906
6907 2009-03-28  Jan Hubicka  <jh@suse.cz>
6908
6909         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6910         test introduced by my previous patch.
6911
6912 2009-03-28  Richard Guenther  <rguenther@suse.de>
6913
6914         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6915         the PHIs value undefined.
6916
6917 2009-03-28  Jan Hubicka  <jh@suse.cz>
6918
6919         * tree-pass.h (pass_fixup_cfg): New pass.
6920         * ipa-inline.c (inline_transform): Set
6921         always_inline_functions_inlined/after_inlining.
6922         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6923         (pass_fixup_cfg): New pass.
6924         * passes.c (init_optimization_passes): Add fixup_cfg.
6925
6926 2009-03-28  Richard Guenther  <rguenther@suse.de>
6927
6928         PR tree-optimization/38458
6929         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6930         argument use the arguments copy-of value.
6931
6932 2009-03-28  Richard Guenther  <rguenther@suse.de>
6933
6934         PR tree-optimization/38180
6935         * tree-ssa-ccp.c (get_default_value): Simplify.
6936         (likely_value): Likewise.
6937         (surely_varying_stmt_p): Properly handle VOP case.
6938         (ccp_initialize): Likewise.
6939         (ccp_fold): Handle propagating through *&.
6940         (fold_const_aggregate_ref): Also handle decls.
6941
6942 2009-03-28  Jan Hubicka  <jh@suse.cz>
6943
6944         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6945         * cgraph.h (cgraph_node): Likewise.
6946         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6947         (cgraph_reset_node): Use process flag.
6948         (cgraph_mark_functions_to_output): Likewise.
6949         (cgraph_expand_function): Likewise.
6950         (cgraph_expand_all_functions): Likewise.
6951         (cgraph_output_in_order): Likewise.
6952         * dwarf2out.c (reference_to_unused): Likewise.
6953         * passes.c do_per_function_toporder): Likewise.
6954
6955 2009-03-28  Jan Hubicka  <jh@suse.cz>
6956
6957         Bring from lto-branch:
6958
6959         2008-09-03  Doug Kwan  <dougkwan@google.com>
6960
6961         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6962         enums instead of reason strings.
6963         * cgraph.c (cgraph_create_edge): Same.
6964         (cgraph_inline_failed_string): New function.
6965         * cgraph.h (cgraph_inline_failed_t): New enum type.
6966         (cgraph_inline_failed_string): New prototype.
6967         (struct cgraph_edge): Change type of INLINED_FAILED from constant
6968         char pointer to cgraph_inline_failed_t.
6969         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6970         (cgraph_default_inline_p): Ditto.
6971         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
6972         to cgraph_inline_failed_t pointer.
6973         * cif-code.def: New file.
6974         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6975         reason string.
6976         (cgraph_check_inline_limits): Change type of REASON to pointer to
6977         cgraph_inline_failed_t.  Replace reason strings with enums.
6978         (cgraph_default_inline_p): Ditto.
6979         (cgraph_recursive_inlining_p): Ditto.
6980         (update_caller_keys): Change type of FAILED_REASON to
6981         cgraph_inline_failed_t.
6982         (cgraph_set_inline_failed): Change type of REASON to pointer to
6983         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
6984         convert enums to strings for text output.
6985         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6986         to be of type cgraph_inline_failed_t.  Replace reason strings with
6987         enums.  Call cgraph_inline_failed_string to covert enums
6988         to strings for text output.
6989         (cgraph_decide_inlining): Replace reason strings with enums.
6990         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6991         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
6992         for text output.
6993         * tree-inline.c (expand_call_inline): Change type of REASON
6994         to cgraph_inline_failed_t.  Replace reason strings with enums.
6995         Call cgraph_inline_failed_string for text output.
6996         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6997         (cgraph.o): Ditto.
6998
6999 2009-03-28  Jan Hubicka  <jh@suse.cz>
7000
7001         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7002         cgraph_clone_node): Remove master clone handling.
7003         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7004         * cgraph.h (master_clone): Remove.
7005         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7006         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7007         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7008
7009 2009-03-28  Jan Hubicka  <jh@suse.cz>
7010
7011         * cgraph.c (cgraph_function_body_availability): Functions declared
7012         inline are always safe to assume that it is not going to be replaced.
7013
7014 2009-03-28  Richard Guenther  <rguenther@suse.de>
7015
7016         PR tree-optimization/38513
7017         * tree-ssa-pre.c (eliminate): Remove redundant stores.
7018         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7019         EXC_PTR_EXPR and FILTER_EXPR.
7020         (get_ref_from_reference_ops): Likewise.
7021
7022 2009-03-28  Richard Guenther  <rguenther@suse.de>
7023
7024         PR tree-optimization/38968
7025         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7026         Use FLOOR_MOD_EXPR to compute misalignment.
7027
7028 2009-03-28  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/37795
7031         * tree.h (combine_comparisons): Declare.
7032         * fold-const.c (combine_comparisons): Export.
7033         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7034         comparisons.
7035         (ifcombine_iforif): Use combine_comparisons.
7036
7037 2009-03-28  Jan Hubicka  <jh@suse.cz>
7038
7039         * tree-eh.c (inlinable_call_p): New function.
7040         (make_eh_edges): Use it.
7041         (verify_eh_edges): Use it.
7042         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7043         * except.c (reachable_next_level): Add inlinable_function argument
7044         (sjlj_find_directly_reachable_regions): Update.
7045         (add_reachable_handler): Do not set saw_any_handlers.
7046         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7047         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7048         Add new inlinable call parameter.
7049         (can_throw_internal, can_throw_external): Update.
7050         * except.h (can_throw_internal_1, can_throw_external_1,
7051         foreach_reachable_handler): Update declaration.
7052
7053 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
7054
7055         * config/arm/t-arm-coff, config/h8300/coff.h,
7056         config/i386/i386-aout.h, config/i386/i386-coff.h,
7057         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
7058         config/pdp11/2bsd.h, config/rs6000/aix41.h,
7059         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
7060         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
7061         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
7062         sys-types.h: Remove.
7063         * Makefile.in: Remove protoize and fixproto support and references
7064         in comments.
7065         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
7066         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
7067         Remove.
7068         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
7069         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
7070         unprotoize$(exeext).
7071         (rest.encap): Don't depend on $(STMP_FIXPROTO)
7072         (.PHONY): Don't depend on proto.
7073         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
7074         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
7075         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
7076         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
7077         build/gen-protos.o, build/scan.o, xsys-protos.h,
7078         build/fix-header$(build_exeext), build/fix-header.o,
7079         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
7080         stmp-install-fixproto): Remove.
7081         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
7082         SYSCALLS.c or fixproto files.
7083         (install-common): Don't install protoize.
7084         (install-headers-tar, install-headers-cpio, install-headers-cp):
7085         Don't depend on $(STMP_FIXPROTO).
7086         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
7087         install fixproto files or write out fixproto settings.
7088         (uninstall): Don't uninstall protoize.
7089         * config.gcc (use_fixproto): Remove.
7090         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
7091         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
7092         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
7093         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
7094         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
7095         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
7096         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
7097         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
7098         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
7099         * config/t-vxworks (STMP_FIXPROTO): Remove.
7100         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
7101         STMP_FIXPROTO): Remove.
7102         * config.in, configure: Regenerate.
7103         * crtstuff.c (gid_t, uid_t): Don't undefine.
7104         * doc/install.texi: Change m68k-coff to m68k-elf in example.
7105         (arm-*-coff, arm-*-aout: Remove target entries.
7106         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
7107         Remove mention of AIX 4.1.
7108         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
7109         * doc/invoke.texi (Running Protoize): Remove.
7110         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
7111         (Protoize Caveats): Remove.
7112         * tsystem.h: Update comments on headers assumed to exist.
7113
7114 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
7115
7116         * genautomata.c: Add a new year to the copyright.  Add a new
7117         reference.
7118         (struct insn_reserv_decl): Add comments for member bypass_list.
7119         (find_bypass): Remove.
7120         (insert_bypass): New.
7121         (process_decls): Use insert_bypass.
7122         (output_internal_insn_latency_func): Output all bypasses with the
7123         same input insn in one switch case.
7124
7125         * rtl.def (define_bypass): Describe bypass choice.
7126         * doc/md.texi (define_bypass): Ditto.
7127
7128 2009-03-27  Richard Guenther  <rguenther@suse.de>
7129
7130         * gimplify.c (mark_addressable): Export.
7131         * tree-flow.h (mark_addressable): Declare.
7132         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
7133         * tree-ssa.c (verify_phi_args): Verify that address taken
7134         variables have TREE_ADDRESSABLE set.
7135
7136 2009-03-27  Richard Guenther  <rguenther@suse.de>
7137
7138         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
7139         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
7140         Do not mark decls TREE_ADDRESSABLE.
7141         (build_fold_addr_expr): Adjust.
7142         (fold_addr_expr): Remove.
7143         (fold_unary): Use build_fold_addr_expr.
7144         (fold_comparison): Likewise.
7145         (split_address_to_core_and_offset): Likewise.
7146         * coverage.c (tree_coverage_counter_addr): Mark the array decl
7147         TREE_ADDRESSABLE.
7148         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
7149         (gimplify_modify_expr_to_memcpy): Mark source and destination
7150         addressable.
7151         * omp-low.c (create_omp_child_function): Mark the object decl
7152         TREE_ADDRESSABLE.
7153         (lower_rec_input_clauses): Mark the var we take the address of
7154         TREE_ADDRESSABLE.
7155         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
7156
7157 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7158
7159         PR middle-end/39315
7160         * cfgexpand.c (expand_one_stack_var_at): Change alignment
7161         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
7162
7163 2009-03-27  Richard Guenther  <rguenther@suse.de>
7164
7165         PR tree-optimization/39120
7166         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
7167         constraints.
7168         (handle_lhs_call): Process return constraints.  Add escape
7169         constraints if necessary.
7170         (handle_const_call): Fill out return constraints.  Make nested
7171         case more precise.  Avoid consttmp if possible.
7172         (handle_pure_call): Fill out return constraints.  Avoid
7173         callused if possible.
7174         (find_func_aliases): Simplify call handling.
7175
7176 2009-03-27  Richard Guenther  <rguenther@suse.de>
7177
7178         PR tree-optimization/39120
7179         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
7180         as a representative.
7181         (solve_graph): Do propagate CALLUSED.
7182         (handle_pure_call): Use a scalar constraint from CALLUSED for
7183         the return value.
7184         (find_what_p_points_to): CALLUSED shall not appear in poins-to
7185         solutions.
7186
7187 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7188
7189         PR c/39323
7190         * c-common.c (handle_aligned_attribute): Properly check alignment
7191         overflow.  Use (1U << i) instead of (1 << i).
7192
7193         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7194
7195         * expr.h (get_mem_align_offset): Updated.
7196
7197         * tree.h (tree_decl_common): Change align to "unsigned int" and
7198         move it before pointer_alias_set.
7199
7200 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7201             Jakub Jelinek  <jakub@redhat.com>
7202
7203         PR target/38034
7204         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
7205         gr_register_operand with gr_reg_or_0_operand.
7206         (cmpxchg_rel_di): Likewise.
7207         (sync_lock_test_and_set<mode>): Likewise.
7208
7209 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7210
7211         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
7212         (true_regnum): Likewise.
7213
7214         * rtlanal.c (subreg_info): Moved to ...
7215         * rtl.h (subreg_info): Here.  New.
7216         (subreg_get_info): New.
7217
7218         * rtlanal.c (subreg_get_info): Make it extern.
7219
7220 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7221
7222         PR target/39472
7223         * config/i386/i386.c (ix86_abi): New.
7224         (override_options): Handle -mabi=.
7225         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
7226         (ix86_call_abi_override): Likewise.
7227         (init_cumulative_args): Likewise.
7228         (function_arg_advance): Likewise.
7229         (function_arg_64): Likewise.
7230         (function_arg): Likewise.
7231         (ix86_pass_by_reference): Likewise.
7232         (ix86_function_value_regno_p): Likewise.
7233         (ix86_build_builtin_va_list_abi): Likewise.
7234         (setup_incoming_varargs_64): Likewise.
7235         (is_va_list_char_pointer): Likewise.
7236         (ix86_init_machine_status): Likewise.
7237         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
7238         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
7239         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
7240         (ix86_function_abi): Make it static and return enum calling_abi.
7241         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
7242         with ix86_abi.
7243         (ix86_fn_abi_va_list): Updated.
7244
7245         * config/i386/i386.h (ix86_abi): New.
7246         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
7247         (CONDITIONAL_REGISTER_USAGE): Likewise.
7248         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
7249         (machine_function): Likewise.
7250
7251         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
7252         with ix86_abi.
7253         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
7254         (STACK_BOUNDARY): Likewise.
7255         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7256
7257         * config/i386/i386.opt (mabi=): New.
7258
7259         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7260         return enum calling_abi.
7261         (ix86_function_type_abi): Likewise.
7262         (ix86_function_abi): Removed.
7263
7264         * doc/invoke.texi: Document -mabi= option for x86.
7265
7266 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7267
7268         * builtins.c (real_dconstp): Delete.
7269         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7270
7271 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
7272             Jakub Jelinek  <jakub@redhat.com>
7273
7274         PR debug/37959
7275         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7276         (gen_subprogram_die): When a function is explicit, generate the
7277         DW_AT_explicit attribute.
7278         * langhooks.h (struct lang_hooks_for_decls): Add
7279         function_decl_explicit_p langhook.
7280         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7281         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7282
7283 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
7284
7285         * builtins.c (fold_builtin_memory_op): Optimize memmove
7286         into memcpy if we can prove source and destination don't overlap.
7287
7288         * tree-inline.c: Include gt-tree-inline.h.
7289         (clone_fn_id_num): New variable.
7290         (clone_function_name): New function.
7291         (tree_function_versioning): Use it.
7292         * Makefile.in (GTFILES): Add tree-inline.c.
7293
7294 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
7295
7296         * BASE-VER: Change to 4.5.0.
7297
7298 2009-03-27  Xinliang David Li  <davidxl@google.com>
7299
7300         PR tree-optimization/39557
7301         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7302
7303 2009-03-27  Xinliang David Li  <davidxl@google.com>
7304
7305         PR tree-optimization/39548
7306         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
7307         candidate check.
7308
7309 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7310
7311         * c-common.c (pointer_int_sum): Use %wd on return from
7312         tree_low_cst.
7313
7314 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7315
7316         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7317         on return from tree_low_cst.
7318
7319 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7320
7321         PR c++/36799
7322         * ginclude/stdarg.h (va_copy): Define also for
7323         __GXX_EXPERIMENTAL_CXX0X__.
7324
7325 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7326
7327         PR c++/35652
7328         * builtins.h (c_strlen): Do not warn here.
7329         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7330         * c-common.c (pointer_int_sum): Take an explicit location.
7331         Warn about offsets out of bounds.
7332         * c-common.h (pointer_int_sum): Adjust declaration.
7333
7334 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7335
7336         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7337         markup glitch.
7338
7339 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
7340
7341         PR c++/39554
7342         * opts.c (warn_if_disallowed_function_p): Don't assume
7343         get_callee_fndecl must return non-NULL.
7344
7345 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7346
7347         PR rtl-optimization/39522
7348         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7349         when reg_reloaded_valid is set.
7350
7351 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7352
7353         * config/spu/divv2df3.c: New file.
7354         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7355         (DPBIT_FUNCS): Filter out _div_df.
7356
7357 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7358
7359         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7360         a jump insn, count that jump in the distance to the loop start.
7361
7362 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7363
7364         PR target/39523
7365         * config/sh/sh.c (calc_live_regs): Fix condition for global
7366         registers except PIC_OFFSET_TABLE_REGNUM.
7367
7368 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
7369
7370         PR/39518
7371         * doc/invoke.texi (-mconsole): New.
7372         (-mcygwin): New.
7373         (-mno-cygwin): New.
7374         (-mdll): New.
7375         (-mnop-fun-dllimport): New.
7376         (-mthread): New.
7377         (-mwin32): New.
7378         (-mwindows): New.
7379         (sub section "i386 and x86-64 Windows Options"): New.
7380
7381 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
7382
7383         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7384         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7385
7386 2009-03-25  Richard Guenther  <rguenther@suse.de>
7387
7388         PR middle-end/39497
7389         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7390         of -Wno-error.
7391
7392 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
7393
7394         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7395         neither of haifa/selective schedulers are working.
7396
7397 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7398
7399         * doc/invoke.texi (Debugging Options): Fix description of
7400         -fno-merge-debug-strings.
7401
7402 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
7403
7404         * config/cris/libgcc.ver: New version-script.
7405         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7406
7407         * configure.ac <GAS features, nop mnemonic>: Add pattern
7408         crisv32-*-* for "nop".
7409         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
7410         * configure: Regenerate.
7411
7412 2009-03-24  Ira Rosen  <irar@il.ibm.com>
7413
7414         PR tree-optimization/39529
7415         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7416         mark_sym_for_renaming for the tag copied to the new vector
7417         pointer.
7418
7419 2009-03-24  Arthur Loiret  <aloiret@debian.org>
7420
7421         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
7422         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7423         EXTRA_SPEC_FUNCTIONS.
7424         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7425         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7426         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7427         -march and -mtune options.
7428
7429 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
7430
7431         * config/m68k/t-rtems: Add m5329 multilib.
7432
7433 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
7434             Jakub Jelinek  <jakub@redhat.com>
7435
7436         PR debug/39524
7437         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7438         nodes.
7439
7440 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7441
7442         PR c/39495
7443         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7444         instead of c_parser_expression_conv, if original_code isn't one of the
7445         4 allowed comparison codes, fail.
7446
7447 2009-03-23  Richard Guenther  <rguenther@suse.de>
7448
7449         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7450         * tree.h (struct tree_type): Likewise.
7451         * reload.h (struct insn_chain): Likewise.
7452         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7453         * function.h (struct function): Likewise.
7454         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7455
7456 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7457
7458         PR tree-optimization/39516
7459         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7460
7461 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
7462
7463         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
7464         should be set true if BITS_PER_WORD of target is bigger than 32
7465
7466 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
7467
7468         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7469         Translate -B-options to -rpath-link.  Correct existing
7470         rpath-link and conditionalize on !nostdlib.
7471
7472 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7473
7474         * doc/extend.texi (Function Attributes, Variable Attributes):
7475         Fix typos.
7476         * doc/invoke.texi (Debugging Options, Optimize Options)
7477         (i386 and x86-64 Options, MCore Options): Likewise.
7478
7479 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
7480
7481         PR debug/37890
7482         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7483         it for block local namespace aliases.
7484         (gen_decl_die): Pass context_die to gen_namespace_die.
7485
7486 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7487
7488         PR c/39495
7489         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7490         minimum or maximum value.
7491
7492 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
7493
7494         * reginfo.c (globalize_reg): Recompute derived reg sets.
7495
7496 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
7497
7498         PR target/39063
7499         * libgcc2.c (mprotect): Do not use signed arguments for
7500         VirtualProtect, use DWORD arguments.  Also fix the 'may
7501         be used uninitialized' warning for the np variable.
7502
7503 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7504
7505         PR target/39496
7506         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7507         functions using regparm calling conventions when not optimizing.
7508         (ix86_function_sseregparm): Similarly for sseregparm calling
7509         conventions.
7510
7511 2009-03-19  Li Feng  <nemokingdom@gmail.com>
7512
7513         PR middle-end/39500
7514         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7515         dependence if the first conflict is after niter iterations.
7516
7517 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
7518
7519         PR middle-end/38609
7520         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7521         functions with dynamic stack-pointer adjustments.
7522
7523 2009-03-19  Ben Elliston  <bje@au.ibm.com>
7524
7525         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7526         option; change to -msdata=data.
7527
7528 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7529
7530         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7531         and -fopenmp.
7532
7533 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
7534
7535         PR target/35180
7536         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7537
7538 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
7539
7540         * doc/invoke.texi (Code Gen Options): Expand discussion of
7541         -fno-common.
7542
7543 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
7544
7545         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7546         * matrix-reorg.c (struct matrix_info): Likewise.
7547         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7548         * rtl.h (struct mem_attrs): Likewise.
7549         * df.h (struct df): Likewise.
7550         * tree-data-ref.h (struct data_dependence_relation): Likewise.
7551         * ira-int.h (struct ira_allocno): Likewise.
7552         * df-scan.c (struct df_collection_rec): Likewise.
7553         * ira.c (struct equivalence): Likewise.
7554         * function.c (struct temp_slot): Likewise.
7555         * cfgloop.h (struct loop): Likewise.
7556
7557         PR debug/39485
7558         * function.c (use_register_for_decl): When not optimizing, disregard
7559         register keyword for variables with types containing methods.
7560
7561 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
7562
7563         PR middle-end/39447
7564         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7565         (is_simple_operand): Call contains_component_ref_p before calling data
7566         reference analysis that would fail on COMPONENT_REFs.
7567
7568         * tree-vrp.c (search_for_addr_array): Fix formatting.
7569
7570 2009-03-18  Richard Guenther  <rguenther@suse.de>
7571
7572         * tree-vect-transform.c (vect_loop_versioning): Fold the
7573         generated comparisons.
7574         * tree-vectorizer.c (set_prologue_iterations): Likewise.
7575         (slpeel_tree_peel_loop_to_edge): Likewise.
7576
7577 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7578
7579         PR middle-end/37805
7580         * opts.c (print_specific_help): In addition to `undocumented',
7581         accept `separate' and `joined' flags if passed alone.  Describe
7582         output by the first matched one of those.
7583         (common_handle_option): Skip over empty strings.
7584         * gcc.c (display_help): Fix help string for `--help='.
7585         * doc/invoke.texi (Option Summary, Overall Options): With
7586         `--help=', classes and qualifiers can both be repeated, but
7587         only the latter can be negated.  One should not pass only
7588         negated qualifiers.  Fix markup and examples.
7589
7590         Revert
7591         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
7592         PR middle-end/37805
7593         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7594         and -fhelp=separate.
7595
7596 2009-03-17  Jing Yu  <jingyu@google.com>
7597
7598         PR middle-end/39378
7599         * function.h (struct rtl_data): Move is_thunk from here...
7600         (struct function): ...to here.
7601         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
7602         * varasm.c (assemble_start_function): Change is_thunk from crtl to
7603         cfun.
7604         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7605         cfun.
7606         (alpha_does_function_need_gp, alpha_start_function): Likewise.
7607         (alpha_output_function_end_prologue): Likewise.
7608         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7609         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7610         (rs6000_output_function_epilogue): Likewise.
7611         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
7612
7613 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
7614
7615         PR target/39482
7616         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7617         from different units in a single alternative.
7618         (*truncdfsf_i387): Ditto.
7619         (*truncxfsf2_mixed): Ditto.
7620         (*truncxfdf2_mixed): Ditto.
7621
7622 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
7623
7624         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7625         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7626
7627         PR debug/39474
7628         * tree-ssa-live.c (remove_unused_locals): Don't remove local
7629         unused non-artificial variables when not optimizing.
7630
7631         PR debug/39471
7632         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7633         DW_TAG_imported_module even if decl is IMPORTED_DECL with
7634         NAMESPACE_DECL in its DECL_INITIAL.
7635
7636         PR middle-end/39443
7637         * optabs.c (set_user_assembler_libfunc): New function.
7638         * expr.h (set_user_assembler_libfunc): New prototype.
7639         * c-common.c: Include libfuncs.h.
7640         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7641         for memcmp, memset, memcpy, memmove and abort.
7642         * Makefile.in (c-common.o): Depend on libfuncs.h.
7643
7644         PR debug/39412
7645         * dwarf2out.c (gen_inlined_enumeration_type_die,
7646         gen_inlined_structure_type_die, gen_inlined_union_type_die,
7647         gen_tagged_type_instantiation_die): Removed.
7648         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7649         do nothing.
7650
7651 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
7652
7653         PR testsuite/38526
7654         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7655         its use.
7656         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7657         (check-parallel-%): Ditto.
7658         (check-consistency): Ditto.
7659
7660 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
7661
7662         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7663         local variable rhs by NULL_TREE.
7664
7665 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7666
7667         PR target/39477
7668         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
7669
7670 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7671
7672         PR target/39476
7673         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
7674
7675 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7676
7677         PR target/39473
7678         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7679         for ms->sysv ABI calls only in 64bit mode.
7680
7681         * config/i386/i386.md (untyped_call): Support 32bit.
7682
7683 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7684
7685         * doc/extend.texi: Replace x86_65 with x86_64.
7686
7687 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR tree-optimization/39455
7690         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7691         mismatches for POINTER_TYPE_P (type).
7692         (number_of_iterations_le): Likewise.
7693
7694 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7695
7696         * config/picochip/picochip.c: Removed profiling support.
7697         * config/picochip/picochip.md: Removed profiling instruction.
7698         * config/picochip/picochip.h: Removed profiling builtin.
7699
7700 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
7701
7702         * doc/install.texi (--with-host-libstdcxx): Document.
7703
7704 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
7705
7706         PR target/34299
7707         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7708         generate a warning if the function name does not begin with
7709         "__vector" and the function has either the 'signal' or 'interrupt'
7710         attribute, from here to ...
7711         (avr_declare_function_name): ...here. New function.
7712         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7713         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7714
7715 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
7716
7717         PR bootstrap/39454
7718         * cse.c (fold_rtx): Don't modify original const_arg1 when
7719         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7720         separate variable instead.
7721         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7722         from out of range shift counts.
7723         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7724
7725 2009-03-13  Catherine Moore  <clm@codesourcery.com>
7726
7727         * config/i386/x-mingw32 (host-mingw32.o): Replace
7728         diagnostic.h with $(DIAGNOSTIC_H).
7729
7730 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
7731
7732         PR target/39431
7733         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7734         predicate.
7735         * config/i386/sync.md (sync_compare_and_swap<mode>,
7736         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7737         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7738         into a register.
7739         (sync_double_compare_and_swapdi_pic,
7740         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7741         cmpxchg8b_pic_memory_operand instead of just memory_operand.
7742
7743 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7744
7745         PR target/39445
7746         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7747
7748 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7749
7750         PR target/39327
7751         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7752         (avx_addsubv4df3): Likewise.
7753         (*avx_addsubv4sf3): Likewise.
7754         (sse3_addsubv4sf3): Likewise.
7755
7756 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7757
7758         PR target/38824
7759         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
7760
7761 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7762
7763         PR debug/39432
7764         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7765         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7766         registers for allocnos created from user-defined variables.
7767
7768 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7769
7770         PR target/39181
7771         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7772         of non-integer mode as well.
7773
7774 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
7775
7776         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7777         for functions for which the parameter types are unknown.
7778
7779 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
7780
7781         PR target/39137
7782         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
7783         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7784         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7785         * config/i386/i386.c (ix86_local_alignment): For
7786         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7787         long long variables on the stack to avoid dynamic realignment.
7788         Allow the first argument to be a decl rather than type.
7789         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7790
7791 2009-03-11  Nick Clifton  <nickc@redhat.com>
7792
7793         PR target/5362
7794         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7795         options.
7796         Add description to mno-lsim option.
7797         * config/mcore/mcore.h: Remove comment about deprecated m4align
7798         option.
7799         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7800         * doc/invoke.texi: Add description of mno-lsim and
7801         mstack-increment options.
7802
7803         * config/fr30/fr30.opt: Document the -mno-lsim option.
7804         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7805         and -mno-lsim options.
7806
7807 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7808
7809         * fold-const.c (fold_comparison): Only call fold_inf_compare
7810         if the mode supports infinities.
7811
7812 2009-03-11  Jason Merrill  <jason@redhat.com>
7813
7814         PR debug/39086
7815         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7816         end already did.  Notice GIMPLE_CALL modifications of the result.
7817         Don't copy debug information from an ignored decl or a decl from
7818         another function.
7819
7820 2009-03-10  Richard Guenther  <rguenther@suse.de>
7821             Nathan Froyd  <froydnj@codesourcery.com>
7822
7823         PR middle-end/37850
7824         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
7825         (__divMODE3): Likewise.
7826
7827 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
7828
7829         PR tree-optimization/39394
7830         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7831         DECL_SIZE_UNIT of variable length FIELD_DECLs.
7832
7833 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7834
7835         * recog.c (verfiy_changes): Disallow renaming of hard regs in
7836         inline asms for register asm ("") declarations.
7837
7838 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7839
7840         * fold-const.c (fold_unary): Fix comment.
7841
7842 2009-03-07  Jan Hubicka  <jh@suse.cz>
7843
7844         PR target/39361
7845         * tree-inline.c (setup_one_parameter): Do replacement of const
7846         argument by constant in SSA form.
7847
7848 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7849
7850         PR middle-end/38028
7851         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7852         determine alignment passed to assign_stack_local.
7853         (assign_parms_unsplit_complex): Likewise.
7854         * except.c (sjlj_build_landing_pads): Likewise.
7855
7856 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7857
7858         PR middle-end/39360
7859         * tree-flow.h (add_referenced_var): Return bool instead of void.
7860         * tree-dfa.c (add_referenced_var): Return result of
7861         referenced_var_check_and_insert call.
7862         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7863         of referenced_var_check_and_insert.
7864
7865         PR debug/39372
7866         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
7867         (gen_variable_die): Emit DW_AT_location on abstract static variable's
7868         DIE, don't emit it if abstract origin already has it.
7869         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7870         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7871
7872 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7873
7874         * genpreds.c (needs_variable): Fix parentheses at variable name
7875         detection.
7876         (write_tm_constrs_h): Indent generated code.
7877
7878 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7879
7880         * doc/extend.texi (Function Attributes): Add documentation
7881         for isr attributes.
7882
7883 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7884
7885         PR debug/39387
7886         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7887         take locus from its DECL_SOURCE_LOCATION instead of input_location.
7888
7889 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7890
7891         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7892         the loop as bad.
7893
7894 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
7895
7896         PR debug/39379
7897         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7898         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7899
7900 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
7901
7902         * config/i386/i386.md (R8_REG, R9_REG): New constants.
7903         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7904         constants instead of magic numbers.
7905         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7906         (QI_REG_P): Ditto.
7907         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7908         (x86_64_ms_abi_int_parameter_registers): Ditto.
7909         (x86_64_int_return_registers): Ditto.
7910         (ix86_maybe_switch_abi): Ditto.
7911         (ix86_expand_call): Ditto for clobbered_registers array.
7912         (ix86_hard_regno_mode_ok): Ditto.
7913         (x86_extended_QIreg_mentioned_p): Ditto.
7914
7915 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
7916
7917         PR tree-optimization/39349
7918         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7919
7920         * combine.c (gen_lowpart_for_combine): Use omode when generating
7921         clobber.
7922
7923 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
7924
7925         PR rtl-optimization/39235
7926         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7927
7928 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7929
7930         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7931
7932 2009-03-04  Richard Guenther  <rguenther@suse.de>
7933
7934         PR tree-optimization/39362
7935         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7936         that occur in abnormal PHIs should be varying.
7937
7938 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7939
7940         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7941         Extend comments.
7942         (simple_iv):  Take loop as an argument instead of statement.
7943         * tree-scalar-evolution.h (simple_iv): Declaration changed.
7944         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7945         to simple_iv.
7946         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7947         Ditto.
7948         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7949         * matrix-reorg.c (analyze_transpose): Ditto.
7950         * tree-data-ref.c (dr_analyze_innermost): Ditto.
7951         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7952         * tree-predcom.c (ref_at_iteration): Ditto.
7953         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7954
7955 2009-03-04  Richard Guenther  <rguenther@suse.de>
7956
7957         PR tree-optimization/39358
7958         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7959         escaped_id and callused_id.
7960         (solve_graph): Likewise.
7961
7962 2009-03-04  Richard Guenther  <rguenther@suse.de>
7963
7964         PR tree-optimization/39339
7965         * tree-sra.c (try_instantiate_multiple_fields): Make it
7966         no longer ICE on the above.
7967
7968 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
7969
7970         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7971         that fits within Pmode.
7972
7973 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7974
7975         PR middle-end/10109
7976         * tm.texi (LIBCALL_VALUE): Update description.
7977
7978 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7979
7980         PR middle-end/34443
7981         * doc/extend.texi (section): Update description.
7982
7983 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7984
7985         PR middle-end/39345
7986         * tree-inline.c (remapped_type): New.
7987         (can_be_nonlocal): Call remapped_type instead of remap_type.
7988
7989 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7990
7991         PR fortran/39354
7992         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7993         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7994
7995 2009-03-03  Richard Guenther  <rguenther@suse.de>
7996
7997         PR middle-end/39272
7998         * tree.c (tree_nonartificial_location): New function.
7999         * tree.h (tree_nonartificial_location): Declare.
8000         * builtins.c (expand_builtin_memory_chk): Provide location
8001         of the call location for artificial function pieces.
8002         (maybe_emit_chk_warning): Likewise.
8003         (maybe_emit_sprintf_chk_warning): Likewise.
8004         (maybe_emit_free_warning): Likewise.
8005         * expr.c (expand_expr_real_1): Likewise.
8006
8007 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
8008
8009         PR tree-optimization/39343
8010         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8011         COMPONENT_REF t has ARRAY_TYPE.
8012
8013 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8014
8015         PR middle-end/39335
8016         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8017         when the type precision of the induction variable should be
8018         larger than the type precision of nit.
8019         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8020         * graphite.c (graphite_loop_normal_form): Same.
8021         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8022
8023 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8024
8025         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8026         (*call_1_rex64_ms_sysv): Use named constants instead of magic
8027         numbers to describe clobbered registers.
8028         (*call_value_0_rex64_ms_sysv): Ditto.
8029         * config/i386/mmx.md (mmx_emms): Ditto.
8030         (mmx_femms): Ditto.
8031
8032 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
8033
8034         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8035         of ABI_64.
8036
8037 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8038
8039         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8040         (spu_section_type_flags): New function.
8041
8042 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8043
8044         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8045         reg_class_contents of FLOAT_REGS into a temporary.
8046
8047 2009-03-02  Richard Guenther  <rguenther@suse.de>
8048             Ira Rosen  <irar@il.ibm.com>
8049
8050         PR tree-optimization/39318
8051         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8052         information to the vectorized statement.
8053
8054 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
8055
8056         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
8057         variable.  Use defined names instead of magic constants for REX SSE
8058         registers.
8059
8060 2009-03-01  Richard Guenther  <rguenther@suse.de>
8061
8062         PR tree-optimization/39331
8063         * omp-low.c (lower_send_shared_vars): Do not receive new
8064         values for the reference of DECL_BY_REFERENCE parms or results.
8065
8066 2009-03-01  Jan Hubicka  <jh@suse.cz>
8067
8068         PR debug/39267
8069         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
8070         BLOCK_NONLOCALIZED_VAR): New macros.
8071         (tree_block): Add nonlocalized_vars.
8072         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
8073         gen_decl_die): Add origin argument.  Allow generation of die with
8074         origin at hand only.
8075         (gen_member_die, gen_type_die_with_usage, force_decl_die,
8076         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
8077         of gen_*.
8078         (gen_block_die): Fix checking for unused blocks.
8079         (process_scope_var): Break out from .... ; work with origins only.
8080         (decls_for_scope) ... here; process nonlocalized list.
8081         (dwarf2out_ignore_block): Look for nonlocalized vars.
8082         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
8083         vars.
8084         (dump_scope_block): Dump them.
8085         * tree-inline.c (remap_decls): Handle nonlocalized vars.
8086         (remap_block): Likewise.
8087         (can_be_nonlocal): New predicate.
8088         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
8089
8090 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8091
8092         * configure: Regenerate.
8093
8094 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8095
8096         * optc-gen.awk: No need to duplicate option flags twice.
8097         Reuse help texts for duplicate options which do not have any.
8098
8099         * gcc.c (display_help): Document --version.
8100
8101         * gcc.c (main): If print_help_list and verbose_flag, ensure
8102         driver output comes before subprocess output.
8103
8104         * optc-gen.awk: Assign all remaining fields to help string,
8105         space-separated, for multi-line help in *.opt.
8106
8107         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
8108         -Wno-pedantic-ms-format is for MinGW targets only.
8109
8110         * doc/options.texi (Option file format): Fix bad indentation,
8111         restoring dropped sentence.
8112
8113 2009-02-28  Jan Hubicka  <jh@suse.cz>
8114
8115         * tree-inline.c (tree_function_versioning): Output debug info.
8116
8117 2009-02-28  Jan Hubicka  <jh@suse.cz>
8118
8119         PR debug/39267
8120         * tree-inline.c (setup_one_parameter): Do not copy propagate
8121         arguments when not optimizing.
8122
8123 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8124
8125         PR target/39327
8126         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8127         (avx_addsubv4df3): Likewise.
8128         (*avx_addsubv4sf3): Likewise.
8129         (sse3_addsubv4sf3): Likewise.
8130         (*avx_addsubv2df3): Likewise.
8131         (sse3_addsubv2df3): Likewise.
8132         (avx_unpckhps256): Correct item selectors.
8133         (avx_unpcklps256): Likewise.
8134         (avx_unpckhpd256): Likewise.
8135         (avx_unpcklpd256): Likewise.
8136
8137 2009-02-28  Jan Hubicka  <jh@suse.cz>
8138
8139         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
8140         static vars.
8141         (copy_arguments_for_versioning): If var is declared don't declare it.
8142         (tree_function_versioning): First setup substitutions and then copy
8143         args.
8144
8145 2009-02-27  Jan Hubicka  <jh@suse.cz>
8146
8147         PR debug/39267
8148         * cgraph.h (varpool_output_debug_info): Remove.
8149         * cgraphunit.c (varpool_output_debug_info): Remove.
8150         * dwarf2out.c (deferred_locations_struct): New struct
8151         (deferred_locations): New type.
8152         (deferred_locations_list): New static var.
8153         (deffer_location): New function.
8154         (gen_variable_die): Use it.
8155         (decls_for_scope): Output info on local static vars.
8156         (dwarf2out_finish): Process deferred locations.
8157         * varpool.c (varpool_output_debug_info): Remove.
8158
8159 2009-02-27  Jan Hubicka  <jh@suse.cz>
8160
8161         PR debug/39267
8162         * tree.h (TREE_PROTECTED): Fix comment.
8163         (BLOCK_HANDLER_BLOCK): Remove.
8164         (struct tree_block): Remove handler_block add body_block.
8165         (inlined_function_outer_scope_p): New.
8166         (is_body_block): Remove.
8167         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
8168         * dwarf2out.c (is_inlined_entry_point): Remove.
8169         (add_high_low_attributes): Use inlined_function_outer_scope_p.
8170         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
8171         code.
8172         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
8173         * gimplify.c (gimplify_expr): Gimplify body blocks.
8174         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
8175         block with multiple subblocks.
8176         (dump_scope_block): Prettier output; dump more flags and info.
8177         (dump_scope_blocks): New.
8178         (remove_unused_locals): Use dump_scope_blocks.
8179         * tree-flow.h (dump_scope_blocks): Declare.
8180         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
8181         * stmt.c (is_body_block): Remove.
8182         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
8183         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
8184
8185 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
8186
8187         PR middle-end/39308
8188         * graphite.c (graphite_loop_normal_form): Do not call
8189         number_of_iterations_exit from a gcc_assert.
8190
8191 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8192
8193         * config/s390/s390.c (s390_swap_cmp): Look for conditional
8194         jumps if COND is NULL.
8195         (find_cond_jump): New function.
8196         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
8197         * config/s390/s390.md: Remove z10_cobra attribute value.
8198
8199 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
8200
8201         * config/alpha/alpha.h (alpha_expand_mov): Return false if
8202         force_const_mem returns NULL_RTX.
8203
8204 2009-02-26  Jan Hubicka  <jh@suse.cz>
8205
8206         PR debug/39267
8207         * cgraph.h (varpool_output_debug_info): Remove.
8208         * cgraphunit.c (varpool_output_debug_info): Remove.
8209         * dwarf2out.c (deferred_locations_struct): New struct
8210         (deferred_locations): New type.
8211         (deferred_locations_list): New static var.
8212         (deffer_location): New function.
8213         (gen_variable_die): Use it.
8214         (decls_for_scope): Output info on local static vars.
8215         (dwarf2out_finish): Process deferred locations.
8216         * varpool.c (varpool_output_debug_info): Remove.
8217
8218 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8219
8220         PR rtl-optimization/39241
8221         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
8222         to subreg_offset_representable_p.
8223
8224 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8225
8226         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
8227         execute function prototype.  Get f and nregs from max_reg_num
8228         and get_insns.  Remove the first backward pass as it's dead,
8229         guard the forward pass by flag_expensive_optimizations.
8230         (rest_of_handle_regmove): Delete.
8231         (pass_regmove): Replace it with regmove_optimize.
8232
8233 2009-02-25  Martin Jambor  <mjambor@suse.cz>
8234
8235         PR tree-optimization/39259
8236         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
8237         calls_alloca function flags.
8238         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
8239         calls are detected.
8240
8241 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8242
8243         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
8244         flags_set_1_rtx, flags_set_1_set): Delete.
8245         (regmove_optimize): Do not call mark_flags_life_zones.
8246
8247 2009-02-24  Julian Brown  <julian@codesourcery.com>
8248
8249         PR target/35965
8250         * config/arm/arm.c (require_pic_register): Only set
8251         cfun->machine->pic_reg once per function.
8252
8253 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
8254
8255         * doc/invoke.texi (Link Options): Document an easier way to pass
8256         options that take arguments to the GNU linker using -Xlinker and -Wl.
8257
8258 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
8259
8260         PR target/33785
8261         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8262
8263 2009-02-24  Richard Guenther  <rguenther@suse.de>
8264
8265         PR debug/39285
8266         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8267
8268 2009-02-24  Richard Guenther  <rguenther@suse.de>
8269             Zdenek Dvorak  <ook@ucw.cz>
8270
8271         PR tree-optimization/39233
8272         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8273         from converting them to a generic type.
8274
8275 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
8276
8277         PR tree-optimization/39260
8278         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8279         contains a condition with a real type.
8280         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8281
8282 2009-02-23  Jason Merrill  <jason@redhat.com>
8283
8284         PR c++/38880
8285         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8286         narrowing_initializer_constant_valid_p.
8287         (narrowing_initializer_constant_valid_p): Don't return
8288         null_pointer_node for adding a pointer to itself.
8289
8290 2009-02-23  Jan Hubicka  <jh@suse.cz>
8291
8292         PR c/12245
8293         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8294         resizing.
8295
8296 2009-02-23  Jan Hubicka  <jh@suse.cz>
8297
8298         PR tree-optimization/37709
8299         * tree.c (block_ultimate_origin): Move here from dwarf2out.
8300         * tree.h (block_ultimate_origin): Declare.
8301         * dwarf2out.c (block_ultimate_origin): Move to tree.c
8302         * tree-ssa-live.c (remove_unused_scope_block_p):
8303         Eliminate blocks containig no instructions nor live variables nor
8304         nested blocks.
8305         (dump_scope_block): New function.
8306         (remove_unused_locals): Enable removal of dead blocks by default;
8307         enable dumping at TDF_DETAILS.
8308
8309 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8310
8311         * config/i386/i386.c (classify_argument): Don't allow COImode
8312         and OImode.
8313         (function_arg_advance_32): Don't allow OImode.
8314         (function_arg_32): Likewise.
8315         (function_value_32): Likewise.
8316         (return_in_memory_32): Likewise.
8317         (function_arg_64): Remove OImode comment.
8318
8319 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8320
8321         PR target/39261
8322         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8323         ix86_expand_vector_set for V4DImode in 64bit mode only.
8324         (ix86_expand_vector_init_one_var): Likewise.
8325
8326 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
8327
8328         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8329
8330 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8331
8332         PR bootstrap/39257
8333         * loop-iv.c: Revert last change.
8334         * emit-rtl.c: Likewise.
8335
8336 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8337
8338         PR target/39256
8339         * config/i386/i386.c (type_natural_mode): Remove an extra
8340         space in the warning message.
8341         (function_value_32): Handle 32-byte vector modes.
8342         (return_in_memory_32): Likewise.
8343
8344 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8345
8346         * loop-iv.c (truncate_value): New function.
8347         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8348         of lowpart_subreg.
8349         (lowpart_subreg): Move to...
8350         * emit-rtl.c: ...here.
8351
8352 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
8353
8354         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8355         accidental and undocumented change at revision 140860.
8356
8357 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
8358
8359         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8360         take gimple_seq * arguments.
8361         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8362         types_compatible_p langhook.
8363
8364 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
8365             Joseph Myers  <joseph@codesourcery.com>
8366
8367         * config/arm/arm.c (arm_builtin_va_list): New function.
8368         (arm_expand_builtin_va_start): Likewise.
8369         (arm_gimplify_va_arg_expr): Likewise.
8370         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8371         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8372         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8373         (va_list_type): New variable.
8374         (arm_mangle_type): Mangle va_list_type appropriately.
8375
8376 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8377
8378         PR middle-end/39157
8379         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8380         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8381         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8382         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8383         parameter to 1000 for -O1 by default.
8384         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8385         parameter.
8386         * loop-invariant.c: Include params.h.
8387         (move_loop_invariants): Don't call move_single_loop_invariants on
8388         very large loops.
8389
8390 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
8391
8392         * calls.c (emit_library_call_value_1): Use slot_offset instead of
8393         offset when calculating bounds for indexing stack_usage_map.  Fixes
8394         a buffer overflow with certain target setups.
8395
8396 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8397
8398         PR target/39240
8399         * calls.c (expand_call): Clear try_tail_call if caller and callee
8400         disagree in promotion of function return value.
8401
8402 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
8403
8404         PR target/39175
8405         * c-common.c (c_determine_visibility): If visibility changed and
8406         DECL_RTL has been already set, call make_decl_rtl to update symbol
8407         flags.
8408
8409 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8410
8411         PR c++/39188
8412         * varasm.c (assemble_variable): Don't check DECL_NAME when
8413         globalizing a variable.
8414
8415 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
8416
8417         PR c/38483
8418         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8419         expression before any __builtin_trap call.
8420         * c-typeck.c (build_function_call): Convert and check function
8421         arguments before generating a call to a trap.  Evaluate the
8422         function arguments before the trap.
8423
8424 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
8425
8426         PR target/39228
8427         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8428         (UNSPEC_FXAM_MEM): New unspec.
8429         (fxam<mode>2_i387_with_temp): New insn and split pattern.
8430         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
8431         memory using fxam<mode>2_i387_with_temp to remove excess precision.
8432
8433 2009-02-19  Richard Guenther  <rguenther@suse.de>
8434
8435         PR tree-optimization/39207
8436         PR tree-optimization/39074
8437         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8438         storedanything_tree): New.
8439         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
8440         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
8441         (build_succ_graph): Add edges from STOREDANYTHING to all
8442         non-direct nodes.
8443         (init_base_vars): Initialize STOREDANYTHING.
8444         (compute_points_to_sets): Free substitution info after
8445         building the succ graph.
8446         (ipa_pta_execute): Likewise.
8447
8448         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8449         field.
8450         (do_ds_constraint): Do not add to special var or non-pointer
8451         field solutions.
8452         (type_could_have_pointers): Split out from ...
8453         (could_have_pointers): ... here.  For arrays use the element type.
8454         (create_variable_info_for): Initialize may_have_pointers.
8455         (new_var_info): Likewise.
8456         (handle_lhs_call): Make the HEAP variable unknown-sized.
8457         (intra_create_variable_infos): Use a type with pointers for
8458         PARM_NOALIAS, make it unknown-sized.
8459
8460 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8461
8462         PR target/39224
8463         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
8464
8465 2009-02-18  Jason Merrill  <jason@redhat.com>
8466
8467         PR target/39179
8468         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8469         value if DECL_EXTERNAL.
8470         * tree-sra.c (sra_walk_gimple_assign): Likewise.
8471         * target.h (gcc_target::binds_local_p): Clarify "module".
8472         * tree.h (TREE_PUBLIC): Clarify "module".
8473
8474 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
8475
8476         PR target/38891
8477         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8478         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8479
8480 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8481
8482         PR target/39082
8483         * c.opt (Wabi): Support C and ObjC.
8484         (Wpsabi): New.
8485
8486         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8487
8488         * config/i386/i386.c (classify_argument): Warn once about the ABI
8489         change when passing union with long double.
8490
8491         * doc/invoke.texi: Update -Wabi for warning psABI changes.
8492
8493 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
8494
8495         PR c/35447
8496         * c-parser.c (c_parser_compound_statement): Always enter and leave
8497         a scope.
8498
8499 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8500
8501         PR target/34587
8502         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8503
8504 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR tree-optimization/36922
8507         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8508         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8509         Likewise.
8510
8511 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8512
8513         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8514         to 0 for EABI64.
8515
8516 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8517
8518         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8519
8520 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8521
8522         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8523         tree sharing.
8524
8525 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
8526             Richard Sandiford  <rdsandiford@googlemail.com>
8527
8528         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8529         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8530         (loongson_biadd): ...this.
8531
8532 2009-02-17  Richard Guenther  <rguenther@suse.de>
8533
8534         PR tree-optimization/39202
8535         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8536         a var make sure to follow existing collapses.
8537
8538 2009-02-17  Richard Guenther  <rguenther@suse.de>
8539
8540         PR middle-end/39214
8541         * langhooks.c (lhd_print_error_function): Check for NULL block.
8542
8543 2009-02-17  Richard Guenther  <rguenther@suse.de>
8544
8545         PR tree-optimization/39204
8546         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8547         of the PHI arg.
8548
8549 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
8550
8551         * config/soft-fp/double.h: Update from glibc CVS.
8552
8553 2009-02-17  Richard Guenther  <rguenther@suse.de>
8554
8555         PR tree-optimization/39207
8556         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8557         strict-aliasing warnings for pointers pointing to NULL.
8558
8559 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
8560
8561         PR c/35446
8562         * c-parser.c (c_parser_braced_init): Call pop_init_level when
8563         skipping until next close brace.
8564
8565 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
8566
8567         PR target/37049
8568         * config/i386/i386.c (ix86_expand_push): Set memory alignment
8569         to function argument boundary.
8570
8571 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8572
8573         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8574         in the lea_add. Reload eventually constraints it properly.
8575         * config/picochip/constraints.md: Remove the target constraint
8576         "b", since it is not needed anymore.
8577
8578 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
8579
8580         * gthr-dce.h: Uglify function parameter and local variable names.
8581         * gthr-gnat.h: Likewise.
8582         * gthr-mipssde.h: Likewise.
8583         * gthr-nks.h: Likewise.
8584         * gthr-posix95.h: Likewise.
8585         * gthr-posix.h: Likewise.
8586         * gthr-rtems.h: Likewise.
8587         * gthr-single.h: Likewise.
8588         * gthr-solaris.h: Likewise.
8589         * gthr-tpf.h: Likewise.
8590         * gthr-vxworks.h: Likewise.
8591         * gthr-win32.h: Likewise.
8592
8593 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8594
8595         PR target/39196
8596         * config/i386/i386.md: Restrict the new peephole2 to move
8597         between MMX/SSE registers.
8598
8599 2009-02-15  Richard Guenther  <rguenther@suse.de>
8600
8601         Revert
8602         2009-02-13  Richard Guenther  <rguenther@suse.de>
8603
8604         * configure.ac: Enable LFS.
8605         * configure: Re-generate.
8606         * config.in: Likewise.
8607
8608 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8609
8610         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8611         spu_srqwbyte, spu_srqwbytebc): Define.
8612         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8613         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8614         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8615         "shrqby_<mode>"): New insn-and-split patterns.
8616         * config/spu/spu.c (expand_builtin_args): Determine and return
8617         number of operands using spu_builtin_description data.
8618         (spu_expand_builtin_1): Use it.
8619
8620 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
8621
8622         PR target/38056
8623         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8624         TARGET_CONST_GP.
8625
8626 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8627
8628         PR target/39149
8629         * config/i386/i386.c (override_options): Correct warning
8630         messages for -malign-loops, -malign-jumps and -malign-functions.
8631
8632 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8633
8634         PR target/39152
8635         * config/i386/i386.md: Restrict the new peephole2 to move
8636         between the general purpose registers.
8637
8638 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8639
8640         PR target/39162
8641         * config/i386/i386.c (type_natural_mode): Add a new argument.
8642         Return the original mode and warn ABI change if vector size is 32byte.
8643         (function_arg_advance): Updated.
8644         (function_arg): Likewise.
8645         (ix86_function_value): Likewise.
8646         (ix86_return_in_memory): Likewise.
8647         (ix86_sol10_return_in_memory): Likewise.
8648         (ix86_gimplify_va_arg): Likewise.
8649         (function_arg_32): Don't warn ABX ABI change here.
8650         (function_arg_64): Likewise.
8651
8652 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8653
8654         * loop-iv.c (implies_p): In the final case, test that operands 0
8655         of the two comparisons match.
8656
8657         * config/bfin/bfin.c (find_prev_insn_start): New function.
8658         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8659         (find_next_insn_start): Move.
8660
8661 2009-02-13  Richard Guenther  <rguenther@suse.de>
8662
8663         * configure.ac: Enable LFS.
8664         * configure: Re-generate.
8665         * config.in: Likewise.
8666
8667 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
8668
8669         PR c/35444
8670         * c-parser.c (c_parser_parms_list_declarator): Discard pending
8671         sizes on syntax error after some arguments have been parsed.
8672
8673 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8674
8675         * doc/invoke.texi (-fira): Remove.
8676
8677 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8678
8679         * caller-save.c: Replace regclass.c with reginfo.c in comments.
8680         * recog.c: Likewise.
8681         * rtl.h: Likewise.
8682
8683 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
8684
8685         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8686         (umul_ppmm): Likewise.
8687         (count_leading_zeros): Likewise.
8688         (count_trailing_zeros): Likewise.
8689         (UMUL_TIME): Likewise.
8690
8691 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8692
8693         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8694         soft-fp/t-softfp to tmake_file.
8695
8696         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
8697         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8698         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8699         IA64_BUILTIN_INFQ]: New.
8700         (ia64_init_builtins): Initialize __builtin_infq,
8701         __builtin_fabsq and __builtin_copysignq if not HPUX.
8702         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8703         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8704
8705         * config/ia64/lib1funcs.asm (__divtf3): Define only if
8706         SHARED is defined.
8707         (__fixtfti): Likewise.
8708         (__fixunstfti): Likewise.
8709         (__floattitf): Likewise.
8710
8711         * config/ia64/libgcc-glibc.ver: New.
8712         * config/ia64/t-fprules-softfp: Likewise.
8713         * config/ia64/sfp-machine.h: Likewise.
8714
8715         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8716         (LIBGCC2_TF_CEXT): Likewise.
8717         (TF_SIZE): Likewise.
8718         (TARGET_INIT_LIBFUNCS): Likewise.
8719
8720         * config/ia64/t-glibc (SHLINB_MAPFILES):
8721         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8722
8723 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8724
8725         * config/i386/i386.c (construct_container): Rewrite processing
8726         BLKmode with X86_64_SSE_CLASS.
8727
8728 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
8729
8730         PR target/39152
8731         * config/i386/i386.md: Replace simplify_replace_rtx with
8732         replace_rtx in the new peephole2.
8733
8734 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8735
8736         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8737         loop unrolling do not happen at -O2.
8738
8739 2009-02-12  Michael Matz  <matz@suse.de>
8740
8741         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8742
8743 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8744
8745         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8746         for -g3.
8747
8748 2009-02-12  Ben Elliston  <bje@au.ibm.com>
8749
8750         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8751         patterns when updating the back chain.  Missed in the 2009-02-10
8752         change.
8753
8754 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
8755
8756         * doc/extend.texi (Decimal Floating Types): Update identifier of
8757         draft TR and list of missing support.
8758
8759 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8760
8761         PR middle-end/39154
8762         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8763         bit to variable length decl's flags, add it also to its
8764         pointer replacement variable.
8765
8766 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
8767             Jakub Jelinek  <jakub@redhat.com>
8768
8769         PR target/39118
8770         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8771         (memory_blockage): New expander.
8772         (*memory_blockage): New insn pattern.
8773         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8774         instead of general blockage at the end of function prologue when
8775         frame pointer is used to access red zone area.  Do not emit blockage
8776         when profiling, it is emitted in generic code.
8777         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8778         function epilogue when frame pointer is used to access red zone area.
8779
8780 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
8781
8782         PR target/38824
8783         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8784         by arithmetic with memory operands.
8785         * config/i386/predicates.md (commutative_operator): New.
8786
8787 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
8788
8789         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8790         bulleted lists.
8791
8792 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8793
8794         * alias.h (record_alias_subset): Declare.
8795         * alias.c (record_alias_subset): Make global.
8796
8797 2009-02-10  Nick Clifton  <nickc@redhat.com>
8798
8799         * tree-parloops.c: Change license to GPLv3.
8800         * ipa-struct-reorg.c: Change license to GPLv3.
8801         * ipa-struct-reorg.h: Change license to GPLv3.
8802
8803 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
8804
8805         PR c/39084
8806         * c-decl.c (start_struct): Return NULL on error.
8807
8808 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
8809
8810         PR middle-end/39124
8811         * cfgloopmanip.c (remove_path): Call remove_bbs after
8812         cancel_loop_tree, not before it.
8813
8814         PR target/39139
8815         * function.h (struct function): Add has_local_explicit_reg_vars bit.
8816         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8817         VAR_DECLs were seen.
8818         * tree-ssa-live.c (remove_unused_locals): Recompute
8819         cfun->has_local_explicit_reg_vars.
8820         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8821         copies or clearings if cfun->has_local_explicit_reg_vars.
8822
8823 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
8824
8825         PR target/39118
8826         * config/i386/i386.c (expand_prologue): Emit blockage at the end
8827         of function prologue when frame pointer is used to access
8828         red zone area.
8829
8830 2009-02-10  Richard Guenther  <rguenther@suse.de>
8831
8832         PR middle-end/39127
8833         * gimplify.c (gimple_regimplify_operands): Always look if
8834         we need to create a temporary.
8835
8836 2009-02-10  Richard Guenther  <rguenther@suse.de>
8837
8838         PR tree-optimization/39132
8839         * tree-loop-distribution.c (todo): New global var.
8840         (generate_memset_zero): Trigger TODO_rebuild_alias.
8841         (tree_loop_distribution): Return todo.
8842
8843 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
8844
8845         PR target/39119
8846         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8847         (x86_64_reg_class_name): Removed.
8848         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
8849         first one isn't X86_64_SSE_CLASS or any other ones aren't
8850         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
8851         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8852         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
8853         and 3 X86_64_SSEUP_CLASS.
8854         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
8855         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8856
8857 2009-02-10  Ben Elliston  <bje@au.ibm.com>
8858
8859         * config/rs6000/rs6000.md (allocate_stack): Always use an update
8860         form instruction to update the stack back chain word, even if the
8861         user has disabled the generation of update instructions.
8862         (movdi_<mode>_update_stack): New.
8863         (movsi_update_stack): Likewise.
8864         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8865         always use an update form instruction to update the stack back
8866         chain word.
8867
8868 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
8869
8870         PR middle-end/38953
8871         * graphite.c (if_region_set_false_region): After moving a region in
8872         the false branch of a condition, remove the empty dummy basic block.
8873         (gloog): Remove wrong fix for PR38953.
8874
8875 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8876
8877         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8878         generation due to implicit sign extension.
8879
8880 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8881
8882         PR middle-end/38981
8883         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8884         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8885
8886 2009-02-09  Richard Guenther  <rguenther@suse.de>
8887
8888         PR middle-end/35202
8889         * convert.c (convert_to_real): Disable (float)fn((double)x)
8890         to fnf(x) conversion if errno differences may occur and
8891         -fmath-errno is set.
8892
8893 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
8894
8895         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8896         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8897         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8898
8899 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8900
8901         PR c/35434
8902         * c-common.c (handle_alias_attribute): Disallow attribute for
8903         anything not a FUNCTION_DECL or VAR_DECL.
8904
8905 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
8906
8907         PR c/39035
8908         * real.c (do_compare): Special-case compare of zero against
8909         decimal float value.
8910
8911 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8912
8913         PR c/36432
8914         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8915         as indicating flexible array members unless the field itself is
8916         being declarared as the incomplete array.
8917
8918 2009-02-06  Jan Hubicka  <jh@suse.cz>
8919
8920         PR tree-optimization/38844
8921         * ipa-inline.c (try_inline): Stop inlining recursion when edge
8922         is already inlined.
8923
8924 2009-02-06  Richard Guenther  <rguenther@suse.de>
8925
8926         PR middle-end/38977
8927         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8928         fork because we may expand it as __gcov_fork.
8929
8930 2009-02-06  Nick Clifton  <nickc@redhat.com>
8931
8932         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8933
8934 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
8935
8936         PR tree-optimization/35659
8937         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8938         vn_phi_eq): Shortcut if hashcode does not match.
8939         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8940         NULL operands.
8941         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8942         and avoid iterative_hash_expr.
8943         (FOR_EACH_VALUE_ID_IN_SET): New.
8944         (value_id_compare): Remove.
8945         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8946         sort expressions by value id.
8947
8948 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8949
8950         PR target/38991
8951         * config/sh/predicates.md (general_movsrc_operand): Don't check
8952         the subreg of system registers here.
8953
8954 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
8955
8956         PR c++/39106
8957         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8958         on the copied decl.
8959
8960 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
8961
8962         PR rtl-optimization/39110
8963         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8964         addresses, not aligned ones.
8965
8966 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
8967             Richard Guenther  <rguenther@suse.de>
8968
8969         PR tree-optimization/39100
8970         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8971         comment says and add edges.
8972
8973 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
8974
8975         PR c/35435
8976         * c-common.c (handle_tls_model_attribute): Ignore attribute for
8977         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8978
8979 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
8980
8981         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8982         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8983         register_bb_in_sese, new_sese, free_sese): Moved.
8984         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8985         outermost_loop_in_scop, build_scop_iteration_domain,
8986         expand_scalar_variables_ssa_name, get_vdef_before_scop,
8987         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8988         Use loop_in_sese_p instead of loop_in_scop_p.
8989         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8990         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8991         (scopdet_basic_block_info): Fix bug in scop detection.
8992         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8993         eq_loop_to_cloog_loop): Remove.
8994         (nb_loops_around_loop_in_scop, nb_loop
8995         ref_nb_loops): Moved here...
8996         * graphite.h (ref_nb_loops): ... from here.
8997         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8998         (loop_domain_dim, loop_iteration_vector_dim): Remove.
8999         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9000         * testsuite/gcc.dg/graphite/scop-19.c: New
9001
9002 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
9003             Hans-Peter Nilsson  <hp@axis.com>
9004
9005         PR rtl-optimization/37889
9006         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9007         Move offset handling from PLUS to before the switch.  Use new
9008         arguments when considering SYMBOL_REFs too.
9009         (rtx_addr_can_trap_p): Pass dummy offset and size.
9010         (enum may_trap_p_flags): Remove.
9011         (may_trap_p_1): Pass size from MEM_SIZE.
9012
9013         PR rtl-optimization/38921
9014         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9015         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9016         * rtlanal.c (may_trap_after_code_motion_p): Delete.
9017         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9018
9019 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
9020
9021         AVX Programming Reference (January, 2009)
9022         * config/i386/sse.md (*vpclmulqdq): New.
9023
9024 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
9025
9026         PR tree-optimization/38977
9027         PR gcov-profile/38292
9028         * calls.c (special_function_p): Disregard __builtin_ prefix.
9029
9030 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
9031
9032         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9033         non-indexable addresses even before reload.
9034
9035 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9036
9037         PR c/29129
9038         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9039         as having variable size.  Do not give an error for unnamed
9040         parameters with [*] declarators.  Give a warning for type names
9041         with [*] declarators and mark them as variable size.
9042         * c-parser.c (c_parser_sizeof_expression): Do not give an error
9043         for sizeof applied to [*] type names.
9044
9045 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9046
9047         PR C++/36607
9048         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9049
9050 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9051
9052         * gcc.c (process_command): Update copyright notice dates.
9053         * gcov.c (print_version): Likewise.
9054         * gcov-dump.c (print_version): Likewise.
9055         * mips-tfile.c (main): Likewise.
9056         * mips-tdump.c (main): Likewise.
9057
9058 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9059
9060         PR c/35433
9061         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
9062         for composite type involving a zero-length array type.
9063
9064 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9065
9066         PR target/35318
9067         * function.c (match_asm_constraints_1): Skip over
9068         initial optional % in the constraint.
9069
9070         PR inline-asm/39059
9071         * c-parser.c (c_parser_postfix_expression): If fixed point is not
9072         supported, don't accept FIXED_CSTs.
9073         * c-decl.c (finish_declspecs): Error if fixed point is not supported
9074         and _Sat is used without _Fract/_Accum.  Set specs->type to
9075         integer_type_node for cts_fract/cts_accum if fixed point is not
9076         supported.
9077
9078 2009-02-02  Catherine Moore  <clm@codesourcery.com>
9079
9080         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
9081
9082 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9083
9084         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
9085         (ABI_HAS_64BIT_SYMBOLS): Use it.
9086         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
9087
9088 2009-02-02  Paul Brook  <paul@codesourcery.com>
9089
9090         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
9091
9092 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
9093
9094         PR inline-asm/39058
9095         * recog.h (asm_operand_ok): Add constraints argument.
9096         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
9097         recurse on matching constraint.
9098         (check_asm_operands): Pass constraints as 3rd argument to
9099         asm_operand_ok.  Don't look up matching constraint here.
9100         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
9101         to asm_operand_ok.
9102
9103 2009-02-02  Ben Elliston  <bje@au.ibm.com>
9104
9105         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
9106         TARGET_NARROW_VOLATILE_BITFIELD macro names.
9107
9108 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9109
9110         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
9111         information.  Remove some obsolete information.  Reorganize.
9112
9113         * config/pa/fptr.c: Revert license to GPL 2.
9114         * config/pa/milli64.S: Likewise.
9115
9116 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9117
9118         PR target/38904
9119         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
9120         LIBRARY name in, instead of hard-coding it.
9121         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
9122         extra target make frag to tmake_files according to EH model.
9123         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
9124         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
9125         frags that define makefile variable EH_MODEL appropriately.
9126         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
9127         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
9128         to "-sjlj" according to type of EH configured.
9129         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9130         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
9131         to "_sjlj" according to type of EH configured.
9132         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9133         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
9134         (SHLIB_LINK):  Add missing semicolon to if-else construct.
9135         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9136         string value of "pe_dll" command-line option.
9137         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
9138         (SHLIB_SONAME):  Use it when overriding t-cygming default.
9139         (SHLIB_IMPLIB):  Override t-cygming default.
9140         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9141         string value of "pe_dll" command-line option.
9142
9143 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9144
9145         PR target/38952
9146         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
9147         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
9148
9149 2009-01-31  Richard Guenther  <rguenther@suse.de>
9150
9151         PR tree-optimization/38937
9152         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
9153         computing the transitive closure.
9154
9155 2009-01-30  Richard Guenther  <rguenther@suse.de>
9156
9157         PR tree-optimization/39041
9158         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9159         Propagate variable indices only if the types match for this stmt.
9160
9161 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
9162
9163         PR target/39013
9164         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
9165         inline but never defined.
9166
9167 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
9168
9169         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
9170         (*insv_h_di_reg_extimm): New insn.
9171         (*insv_l<mode>_reg_extimm): New insn.
9172
9173 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9174
9175         * config/picochip/picochip.c (flag_conserve_stack): set
9176         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
9177         fconserve-stack. Reduce call-overhead used by inliner.
9178
9179 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9180
9181         PR/38157
9182         * common.opt (flag_conserve_stack): Initialised to zero.
9183
9184 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
9185
9186         PR/39002
9187         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
9188         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
9189         method.
9190
9191 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9192
9193         * ira-color.c (allocno_reload_assign): Update comments.
9194         * regmove.c (regmove_optimize): Likewise.
9195
9196         * ra.h: Removed.
9197
9198 2009-01-29  Robert Millan  <rmh@aybabtu.com>
9199
9200         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
9201         * config/i386/kopensolaris-gnu.h: New file.  Undefine
9202         `MD_UNWIND_SUPPORT'.
9203         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
9204
9205 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
9206
9207         PR tree-optimization/39007
9208         * tree-loop-distribution.c (generate_builtin): Use
9209         recompute_dominator to compute the immediate dominator of the
9210         basic block just after the loop.
9211
9212 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9213
9214         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
9215         (ASM_OUTPUT_DWARF_PCREL): Define.
9216
9217 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9218
9219         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
9220         * doc/passes.texi: Remove entries about regclass, local-alloc, and
9221         global.  Modify entries about regmove and IRA.
9222
9223         * ra-conflict.c: Remove the file.
9224
9225         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
9226
9227         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
9228         (pass_regclass_init): Rename to pass_reginfo_init.
9229
9230         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
9231
9232         * toplev.h (flag_ira): Remove.
9233
9234         * caller-save.c (setup_save_areas): Remove flag_ira.
9235
9236         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
9237
9238         * global.c: Remove the file.
9239
9240         * opts.c (decode_options): Remove flag_ira.
9241
9242         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
9243
9244         * regmove.c: Modify file description.
9245         (find_use_as_address, try_auto_increment): Define them only if
9246         AUTO_INC_DEC is defined.
9247         (replacement_quality, replace_in_call_usage, fixup_match_1,
9248         stable_and_no_regs_but_for_p): Remove.
9249         (reg_set_in_bb): Make it static.
9250         (regmove_optimize): Remove flag_ira and code which worked for
9251         !flag_ira.
9252
9253         * local-alloc.c: Remove the file.
9254
9255         * common.opt (fira): Remove.
9256
9257         * ira.c: Include except.h.
9258         (eliminable_regset): Move from global.c.
9259         (mark_elimination): Ditto.  Remove flag_ira.
9260         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9261         equiv_mem_modified, validate_equiv_mem_from_store,
9262         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9263         contains_replace_regs, memref_referenced_p, memref_used_between_p,
9264         no_equiv, recorded_label_ref): Move from local-alloc.c.
9265         (update_equiv_regs): Ditto.  Make it static.
9266         (print_insn_chain, print_insn_chains): Move it from global.c.
9267         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
9268         (build_insn_chain): Ditto.  Make it static.
9269         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
9270         Rename to init_live_subregs.
9271         (gate_ira): Remove flag_ira.
9272
9273         * regclass.c: Rename reginfo.c.  Change file description.
9274         (FORBIDDEN_INC_DEC_CLASSES): Remove.
9275         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
9276         (init_reg_sets_1): Remove code for evaluation of
9277         reg_class_superclasses and losing_caller_save_reg_set.
9278         (init_regs): Remove init_reg_autoinc.
9279         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9280         ok_for_base_p_nonstrict): Remove.
9281         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
9282         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
9283         corresponding entries.
9284         (dump_regclass, record_operand_costs, scan_one_insn,
9285         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9286         record_address_regs, auto_inc_dec_reg_p): Remove.
9287         (gt-regclass.h): Rename to gt-reginfo.h.
9288
9289         * rtl.h (dump_global_regs, retry_global_alloc,
9290         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
9291
9292         * Makefile.in (RA_H): Remove.
9293         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9294         Rename regclass.o to reginfo.o.
9295         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
9296         gt-reginfo.h.
9297         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9298         (GTFILES): Rename regclass.c to reginfo.c.
9299
9300         * passes.c (init_optimization_passes): Remove pass_local_alloc and
9301         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
9302
9303         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9304         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9305         Remove flag_ira.
9306         (finish_spills): Ditto.  Remove code for !flag_ira.
9307
9308 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
9309
9310         PR middle-end/35854
9311         * doc/invoke.texi (rtl debug options): Complete rewrite.
9312         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9313         to auto_inc_dec".
9314         * mode-switching.c (pass_mode_switching): Rename pass from
9315         "mode-sw" to "mode_sw".
9316         * except.c (pass_convert_to_eh_ranges): Rename pass from
9317         "eh-ranges" to "eh_ranges".
9318         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9319         to "subreg1".
9320
9321
9322 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
9323             Alexander Monakov  <amonakov@ispras.ru>
9324
9325         PR middle-end/38857
9326         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9327         register.
9328         (move_exprs_to_boundary): Change return type and pass through
9329         should_move from move_op.  Relax assert.  Update usage ...
9330         (schedule_expr_on_boundary): ... here.  Use should_move instead of
9331         cant_move.
9332         (move_op_orig_expr_found): Indicate that insn was disconnected from
9333         stream.
9334         (code_motion_process_successors): Do not call after_merge_succs
9335         callback if original expression was not found when traversing any of
9336         the branches.
9337         (code_motion_path_driver): Change return type.  Update prototype.
9338         (move_op): Update comment.  Add a new parameter (should_move).  Update
9339         prototype.  Set *should_move based on indication provided by
9340         move_op_orig_expr_found.
9341
9342 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9343
9344         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9345         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9346         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9347         * config/rs6000/rs6000.c (rs6000_override_options): Default
9348         avoid-indexed-addresses on for Power6, off for everything else.
9349         (avoiding_indexed_address_p): New function.
9350         (rs6000_legitimize_address): Use it.
9351         (rs6000_legitimate_address): Likewise.
9352         * config/rs6000/rs6000.md (movXX_updateX): Likewise
9353
9354 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
9355
9356         PR tree-optimization/38997
9357         * tree-loop-distribution.c (generate_memset_zero): Use
9358         POINTER_PLUS_EXPR for a pointer addition.
9359
9360 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9361
9362         * config/s390/s390.md (bswap<mode>2): New pattern added.
9363
9364 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9365
9366         * config/s390/s390.md (*tls_load_31): Added type attribute.
9367
9368 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9369
9370         * config/s390/s390.md: Fix a few comments.
9371
9372 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9373
9374         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9375         (*tm<mode>_full): Fixed z10prop attribute.
9376         (*tst<mode>_extimm): Fixed z10prop attribute.
9377         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9378         (*tstqiCCT_cconly): Fixed z10prop attribute.
9379         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9380         (*movsi_larl): Fixed z10prop attribute.
9381         (*movsi_zarch): Fixed z10prop attribute.
9382         (*movsi_eas): Fixed z10prop attribute.
9383         (*movhi): Fixed z10prop attribute.
9384         (*movqi): Fixed z10prop attribute.
9385         (*movstrictqi): Fixed z10prop attribute.
9386         (*mov<mode>): Fixed z10prop attribute.
9387         (*movcc): Fixed z10prop attribute.
9388         (*sethighpartdi_64): Fixed z10prop attribute.
9389         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9390         (*negdi2_sign_cc): Fixed z10prop attribute.
9391         (*negdi2_sign): Fixed z10prop attribute.
9392         (*absdi2_sign_cc): Fixed z10prop attribute.
9393         (*absdi2_sign): Fixed z10prop attribute.
9394         (*negabsdi2_sign_cc): Fixed z10prop attribute.
9395         (*negabsdi2_sign): Fixed z10prop attribute.
9396         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9397         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9398         (doloop_si64): Fixed z10prop attribute.
9399         (doloop_si31): Fixed z10prop attribute.
9400         (doloop_long): Fixed z10prop attribute.
9401         (indirect_jump): Fixed z10prop attribute.
9402         (nop): Fixed z10prop attribute.
9403         (main_base_64): Fixed z10prop attribute.
9404         (reload_base_64): Fixed z10prop attribute.
9405
9406 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9407
9408         PR rtl-optimization/38740
9409         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9410         if !optimize.
9411         * config/mips/mips.c (mips_reorg): Likewise.
9412
9413 2009-01-28  Richard Guenther  <rguenther@suse.de>
9414
9415         PR tree-optimization/38926
9416         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9417         with the correct value id to a value.
9418         (do_regular_insertion): Use the value number of edoubleprime
9419         for the value number of the expr.
9420
9421         Revert
9422         2008-08-21  Richard Guenther  <rguenther@suse.de>
9423
9424         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9425         a PHI ask VN if it is already available.
9426         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9427         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9428
9429 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9430
9431         PR middle-end/38934
9432         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9433         set to varying whenever max has TREE_OVERFLOW set, similarly
9434         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9435
9436 2009-01-28  Richard Guenther  <rguenther@suse.de>
9437
9438         PR middle-end/38908
9439         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9440         uninitialized aggregate uses in call arguments.
9441
9442 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
9443
9444         PR tree-optimization/38984
9445         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9446         the nothing_id variable if -fno-delete-null-pointer-checks.
9447
9448 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
9449
9450         PR target/38988
9451         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9452         (set_got_offset_rex64): Ditto.
9453
9454 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9455
9456         PR target/38941
9457         * doc/extend.texi: Improve local variable with asm reg.
9458
9459 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
9460
9461         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9462         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9463         was not supplied then set warn_packed_bitfield_compat to the
9464         default value of 1.
9465         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9466         against 1.
9467
9468 2009-01-27  Richard Guenther  <rguenther@suse.de>
9469
9470         PR tree-optimization/38503
9471         * cfgexpand.c (expand_gimple_basic_block): Ignore
9472         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9473         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9474         variables that cannot have TBAA applied.
9475         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9476         statements.
9477
9478 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         PR middle-end/38969
9481         * calls.c (initialize_argument_information): Do not wrap complex
9482         arguments in SAVE_EXPR.
9483
9484 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
9485
9486         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
9487         (INSTALL_LIBGCC): Revert typo commit.
9488
9489 2009-01-26  Richard Guenther  <rguenther@suse.de>
9490
9491         PR tree-optimization/38745
9492         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9493         from special handling.
9494
9495 2009-01-26  Richard Guenther  <rguenther@suse.de>
9496
9497         PR tree-optimization/38745
9498         * tree-ssa.c (execute_update_addresses_taken): Do not include
9499         variables that cannot possibly be a register in not_reg_needs.
9500         Do not clear TREE_ADDRESSABLE on vars that may not become
9501         registers.
9502         * tree-ssa.c (update_alias_info_1): Include those in the set
9503         of addressable vars.
9504
9505 2009-01-26  Richard Guenther  <rguenther@suse.de>
9506
9507         PR middle-end/38851
9508         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9509         * tree-ssa-dse.c: Include langhooks.h
9510         (execute_simple_dse): Remove stores with zero size.
9511
9512 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
9513
9514         PR c/38957
9515         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9516         as PLUS_EXPR.
9517
9518 2009-01-24  Julian Brown  <julian@codesourcery.com>
9519
9520         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9521         config/arm/linux-atomic.c.
9522         * config/arm/linux-atomic.c: New.
9523
9524 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9525
9526         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9527         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9528         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9529
9530 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9531
9532         PR c/38938
9533         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
9534         properly.
9535
9536 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
9537
9538         PR tree-optimization/38953
9539         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9540         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9541         (gloog): Split the exit of the scop when the scop exit is a loop exit.
9542         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9543         changed the CFG.
9544
9545 2009-01-24  Paul Brook  <paul@codesourcery.com>
9546
9547         * config/arm/neon.md (neon_type): Move to arm.md.
9548         (neon_mov<VSTRUCT>): Add neon_type attribute.
9549         * config/arm/arm.md (neon_type): Move to here.
9550         (conds): Add "unconditioal" and use as default for NEON insns.
9551
9552 2009-01-24  Ben Elliston  <bje@au.ibm.com>
9553
9554         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9555         void *' warning from -Wc++-compat.
9556         * Makefile.in (dominance.o-warn): Remove.
9557
9558 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
9559
9560         PR tree-optimization/38932
9561         * fold-const.c (fold_unary_ignore_overflow): New.
9562         * tree.h (fold_unary_ignore_overflow): Declare.
9563         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9564         * tree-ssa-sccvn.c (visit_reference_op_load,
9565         simplify_unary_expression): Likewise.
9566
9567 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
9568
9569         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9570         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
9571         regardless of their type.
9572         * c-common.c (handle_packed_attribute): Don't ignore packed on
9573         bitfields.
9574         * c.opt (Wpacked-bitfield-compat): New warning option.
9575         * stor-layout.c (place_field): Warn if offset of a field changed.
9576         * doc/extend.texi (packed): Mention the ABI change.
9577         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9578         (Warning Options): Add it to the list.
9579
9580 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9581
9582         * c-opts.c (c_common_post_options): Fix a typo in comments.
9583
9584 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
9585
9586         PR middle-end/38615
9587         * gimplify.c (gimplify_init_constructor): Fix promotion of const
9588         variables to static.
9589         * doc/invoke.texi (-fmerge-all-constants): Update description.
9590
9591 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
9592
9593         PR target/38931
9594         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9595         (*movdi_1_rex64): Use type "mmx" for alternative 5.
9596
9597 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
9598
9599         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9600         a word boundary.
9601         (LOCAL_ALIGNMENT): Similarly.
9602
9603 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9604             Joseph Myers  <joseph@codesourcery.com>
9605
9606         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9607         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9608         * config/arm/arm-tune.md: Regenerate.
9609         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9610         -march=iwmmxt2.
9611
9612 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9613
9614         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9615         version number to five.
9616
9617 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
9618
9619         PR c++/38930
9620         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
9621         * c-common.c (set_underlying_type): Likewise.
9622         (is_typedef_decl ): Likewise
9623         * tree.h: Likewise
9624         (set_underlying_type): Likewise.
9625         (is_typedef_type): Likewise.
9626
9627 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9628
9629         PR middle-end/38587
9630         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9631         crossing setjmps.
9632
9633 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9634
9635         PR bootstrap/37660
9636         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
9637         (LIBGCC_SPEC):  Don't define.
9638         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
9639
9640 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
9641
9642         PR rtl-optimization/38879
9643         * alias.c (base_alias_check): Unaligned access via AND address can
9644         alias all surrounding object types except those with sizes equal
9645         or wider than the size of unaligned access.
9646
9647 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
9648
9649         PR c++/26693
9650         * c-decl.c (clone_underlying_type): Move this ...
9651         * c-common.c (set_underlying_type): ... here.
9652         Also, make sure the function properly sets TYPE_STUB_DECL() on
9653         the newly created typedef variant type.
9654         (is_typedef_decl ): New entry point.
9655         * tree.h: Added a new member member_types_needing_access_check to
9656         struct tree_decl_non_common.
9657         (set_underlying_type): New entry point.
9658         (is_typedef_type): Likewise.
9659
9660 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
9661
9662         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9663         Check whether two instructions have memory references that
9664         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
9665         are helper functions for traversing.
9666         * alias.h (insn_alias_sets_confilict_p): New prototypes.
9667         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9668         not to draw dependency edge for instructions with non-conflicting
9669         alias sets.
9670
9671 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
9672
9673         PR other/38758
9674         * longlong.h: Update copyright years.  Use soft-fp license notice.
9675         Sync __clz_tab declaration with glibc.
9676
9677 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
9678
9679         PR target/30687
9680         * doc/extend.texi (syscall_linkage): New.
9681         (version_id): Modify.
9682
9683 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9684             Richard Guenther  <rguenther@suse.de>
9685
9686         PR tree-optimization/38747
9687         PR tree-optimization/38748
9688         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9689         conversion if the base address is an indirect reference and the
9690         aliasing sets could cause issues.
9691
9692 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9693
9694         * common.opt (fgraphite, fgraphite-identity): Add comment for
9695         explaining why these options are not documented.
9696
9697 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9698
9699         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9700         gimple_call_lhs is NULL.
9701
9702 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
9703
9704         PR target/38868
9705         * emit-rtl.c (adjust_address_1): Make sure memref is never
9706         overwritten.
9707
9708 2009-01-20  Ben Elliston  <bje@au.ibm.com>
9709
9710         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9711         const qualifier from arg parameter. Remove unnecessary cast to char *.
9712         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9713         const qualifier from arg 2.
9714
9715 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9716
9717         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
9718
9719 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
9720
9721         PR c/38869
9722         * rtl.h (reinit_regs): New prototype.
9723         * regclass.c: Include ira.h.
9724         (reinit_regs): New.
9725         * Makefile.in (regclass.o): Add ira.h.
9726         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9727
9728 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9729
9730         PR target/38736
9731         * c-common.c (handle_aligned_attribute): Use
9732         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9733         default alignment value.
9734
9735         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9736
9737         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9738         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9739
9740         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
9741         __BIGGEST_ALIGNMENT__.
9742
9743         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9744
9745 2009-01-18  Richard Guenther  <rguenther@suse.de>
9746
9747         PR tree-optimization/38819
9748         * tree-flow.h (operation_could_trap_helper_p): Declare.
9749         * tree-eh.c (operation_could_trap_helper_p): Export.
9750         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9751         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9752         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9753         are about to insert a possibly trapping instruction and fail
9754         in this case.
9755
9756 2009-01-18  Andreas Schwab  <schwab@suse.de>
9757
9758         * doc/install.texi (Configuration): Remove obsolete paragraph
9759         about use of --with-gnu-ld with --with-gnu-as.
9760
9761 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
9762
9763         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9764         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9765         Follow spelling conventions.
9766
9767 2009-01-18  Ben Elliston  <bje@au.ibm.com>
9768
9769         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9770         C++ warning about implicit conversion from void * to struct
9771         bitmap_head_def *.
9772         (bitmap_obstack_free): Likewise for bitmap_element *.
9773         * Makefile.in (bitmap.o-warn): Remove.
9774
9775 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9776
9777         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
9778
9779 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
9780             Tobias Grosser  <tobi.grosser@amd.com>
9781
9782         * graphite.c (graphite_trans_scop_block): Do not block single
9783         nested loops.
9784
9785 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
9786
9787         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9788         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9789         test with assertion.
9790
9791 2009-01-16  Richard Guenther  <rguenther@suse.de>
9792
9793         PR tree-optimization/38835
9794         PR middle-end/36227
9795         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9796         and INT + PTR -> (INT)(PTR p+ INT) folding.
9797         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9798
9799 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
9800
9801         PR target/38554
9802         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9803         the subreg from a lowpart subreg if it is also casting the value.
9804
9805 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9806             Tobias Grosser  <tobi.grosser@amd.com>
9807
9808         * graphite.c (compare_prefix_loops): New.
9809         (build_scop_canonical_schedules): Rewritten.
9810         (graphite_transform_loops): Move build_scop_canonical_schedules
9811         after build_scop_iteration_domain.
9812
9813 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9814             Tobias Grosser  <tobi.grosser@amd.com>
9815
9816         * graphite.c (add_conditions_to_domain): Add the loops to
9817         the dimension of the iteration domain.  Do copy the domain
9818         only when it exists.
9819         (build_scop_conditions_1): Do not call add_conditions_to_domain.
9820         (add_conditions_to_constraints): New.
9821         (can_generate_code_stmt, can_generate_code): Removed.
9822         (gloog): Do not call can_generate_code.
9823         (graphite_transform_loops): Call add_conditions_to_constraints
9824         after building the iteration domain.
9825
9826 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
9827
9828         PR tree-optimization/38789
9829         * tree-ssa-threadedge.c
9830         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9831         __builtin_constant_p.
9832
9833 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
9834
9835         * dce.c (delete_unmarked_insns): Reversed the order that insns are
9836         examined before deleting them.
9837
9838 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
9839
9840         * function.c (aggregate_value_p): Correctly extract the function
9841         type from CALL_EXPR_FN lookup.
9842
9843 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9844
9845         * config/picochip/picochip.c (picochip_override_options): Revert
9846         CFI asm flag disable commited previously.
9847
9848 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9849             Tobias Grosser  <tobi.grosser@amd.com>
9850             Jan Sjodin  <jan.sjodin@amd.com>
9851
9852         * graphite.c (scan_tree_for_params): On substractions negate
9853         all the coefficients of the term.
9854         (clast_to_gcc_expression_red): New.  Handle reduction expressions
9855         of more than two operands.
9856         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9857         (get_vdef_before_scop): Handle also the case of default definitions.
9858
9859 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
9860
9861         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9862         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9863         Also use them when walking CALL_INSN_FUNCTION_USAGE.
9864
9865 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
9866             Joey Ye  <joey.ye@intel.com>
9867
9868         PR middle-end/37843
9869         * cfgexpand.c (expand_stack_alignment): Don't update stack
9870         boundary nor check incoming stack boundary here.
9871         (gimple_expand_cfg): Update stack boundary and check incoming
9872         stack boundary here.
9873
9874 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
9875
9876         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
9877
9878 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
9879
9880         PR rtl-optimization/38245
9881         * calls.c (expand_call): Add stack arguments to
9882         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9883         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9884         in regs and partially in memory or BLKmode arguments.
9885         (emit_library_call_value_1): Add stack arguments to
9886         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9887         ACCUMULATE_OUTGOING_ARGS).
9888         * dce.c: Include tm_p.h.
9889         (find_call_stack_args): New function.
9890         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
9891         argument.
9892         (mark_insn): Call find_call_stack_args for CALL_Ps.
9893         (prescan_insns_for_dce): Walk insns backwards in bb rather than
9894         forwards.  Allocate and free arg_stores bitmap if needed, pass it
9895         down to deletable_insn_p, don't mark stores set in arg_stores
9896         bitmap, clear the bitmap at the beginning of each bb.
9897         * Makefile.in (dce.o): Depend on $(TM_P_H).
9898
9899 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
9900
9901         PR target/22599
9902         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9903         to make sure the insn is a conditional test (bug 22599).  Reformat a
9904         few long lines.
9905
9906 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
9907
9908         PR middle-end/38431
9909         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9910         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9911         (gloog): Do not call cleanup_tree_cfg.
9912         (graphite_transform_loops): Call cleanup_tree_cfg after all
9913         scops have been code generated.
9914
9915 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
9916         * doc/gty.texi (Invoking the garbage collector): Added new node
9917         and section documenting ggc_collect.
9918
9919 2009-01-14  Richard Guenther  <rguenther@suse.de>
9920
9921         PR tree-optimization/38826
9922         PR middle-end/38477
9923         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9924         initialization notes only if we actually emitted a warning.
9925         (intra_create_variable_infos): Add constraints for a result decl
9926         that is passed by hidden reference.
9927         (build_pred_graph): Mark all related variables non-direct on
9928         address-taking.
9929
9930 2009-01-14  Nick Clifton  <nickc@redhat.com>
9931
9932         * ira-conflicts.c: Include addresses.h for the definition of
9933         base_reg_class.
9934         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9935         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9936
9937 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
9938
9939         PR target/38811
9940         * Makefile.in (ira-lives.o): Add except.h.
9941
9942         * ira-lives.c: Include except.h.
9943         (process_bb_node_lives): Process can_throw_internal.
9944
9945 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
9946
9947         PR rtl-optimization/38774
9948         * combine.c (simplify_set): When undoing cc_use change, don't do
9949         PUT_CODE on the newly created comparison, but instead put back the
9950         old comparison.
9951
9952 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
9953
9954         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9955         values.  Remove duplicate arm8 entry.
9956
9957 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9958
9959         PR tree-optimization/38786
9960         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9961         the SSA_NAME case of expand_scalar_variables_expr.
9962         Set the type of an expression to the type of its assign statement.
9963         (expand_scalar_variables_expr): Also gather the scalar computation
9964         used to index the memory access.  Do not pass loop_p.
9965         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
9966         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
9967         the gimple_stmt_iterator where it inserts new code.
9968         Do not pass loop_p.
9969         (copy_bb_and_scalar_dependences): Do not pass loop_p.
9970         (translate_clast): Update call to copy_bb_and_scalar_dependences.
9971
9972 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9973
9974         * graphite.h (debug_value): Removed.
9975         * graphite.c (debug_value): Removed.
9976
9977 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9978
9979         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9980         ldrd/strd with two 32-bit instructions.
9981
9982 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9983
9984         * config/arm/arm.c (struct processors): Pass for speed down into
9985         cost helper functions.
9986         (const_ok_for_op): Handle COMPARE and inequality nodes.
9987         (arm_rtx_costs_1): Rewrite.
9988         (arm_size_rtx_costs): Update prototype.
9989         (arm_rtx_costs): Pass speed down to helper functions.
9990         (arm_slowmul_rtx_costs): Rework cost calculations.
9991         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9992         (arm_9e_rtx_costs): Likewise.
9993
9994 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
9995
9996         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
9997         relocations of local symbols wider than UNITS_PER_WORD are not valid.
9998         (alpha_legitimize_address): Do not split local symbols wider than
9999         UNITS_PER_WORD into HIGH/LO_SUM parts.
10000
10001 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
10002
10003         PR bootstrap/38580
10004         * gcc.c (process_command): Replace call to execvp with calls
10005         to pex_one and exit.
10006
10007 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
10008
10009         PR target/29141
10010         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10011         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10012         variant for devices with 3-byte PC.
10013         (__tablejump_elpm__): New.
10014
10015 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10016
10017         PR c/32041
10018         * c-parser.c (c_parser_postfix_expression): Allow `->' in
10019         offsetof member-designator, handle it as `[0].'.
10020
10021 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10022
10023         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10024         function when not using named sections on targets with named sections
10025         if branch distance is less than 262132.
10026
10027 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
10028
10029         * combine.c (combine_instructions):  Recompute
10030         optimize_this_for_speed_p  for each BB in the main combine loop.
10031
10032 2009-01-12  Tomas Bily  <tbily@suse.cz>
10033
10034         PR middlend/38385
10035         * tree-loop-distribution.c (prop_phis): New function.
10036         (generate_builtin): Call prop_phis.
10037         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
10038
10039 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10040
10041         PR tree-optimization/38807
10042         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10043         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10044
10045 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
10046
10047         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10048         subreg of op0 to the original op0.
10049
10050 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
10051
10052         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
10053
10054 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
10055
10056         PR debug/7055
10057         * mips-tfile.c (parse_def): Fix parsing of def strings
10058         starting with digits.
10059
10060 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
10061
10062         PR target/38695
10063         * config/arm/arm.c (arm_is_long_call_p): Don't call
10064         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
10065
10066 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
10067
10068         * regrename.c (regrename_optimize): Fix dumping.
10069         (find_oldest_value_reg): Preserve REG_POINTER.
10070         (copy_hardreg_forward_1): Likewise.
10071
10072 2009-01-09  Diego Novillo  <dnovillo@google.com>
10073
10074         * gimple.h (struct gimple_statement_base) <uid>: Document
10075         the restrictions on its use.
10076         (gimple_uid): Tidy.
10077         (gimple_set_uid): Tidy.
10078
10079 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10080
10081         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
10082         zero guard even if align_bytes != 0 and count is smaller than
10083         size_needed.
10084
10085 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
10086
10087         PR rtl-optimization/38495
10088         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
10089         (add_range_and_copies_from_move_list): Print all added ranges.
10090         Add ranges to memory optimized destination.
10091
10092 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10093
10094         PR target/38686
10095         PR target/38708
10096         * config/i386/i386.c (override_options): Reject
10097         -mstringop-strategy=rep_8byte with -m32.
10098         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
10099         to 1.  Do count comparison against epilogue_size_needed at compile
10100         time even when count_exp was constant forced into register.  For
10101         size_needed don't jump to epilogue, instead just avoid aligning
10102         and invoke the body algorithm.  If need_zero_guard, add zero guard
10103         even if count is non-zero, but smaller than size_needed + number of
10104         bytes that could be stored for alignment.
10105         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
10106         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
10107         but smaller than size_needed + number of bytes that could be stored
10108         for alignment.  Compare size_needed with epilogue_size_needed instead
10109         of desired_align - align, don't adjust size_needed, pass
10110         epilogue_size_needed to the epilogue expanders.
10111
10112         PR c/35742
10113         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
10114
10115 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10116
10117         * pa.c (last_address): Change to unsigned.
10118         (update_total_code_bytes): Change argument to unsigned.  Don't
10119         check if insn addresses are set.
10120         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
10121         addresses are not set.
10122         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
10123
10124 2009-01-09  Nick Clifton  <nickc@redhat.com>
10125
10126         * config/sh/symbian.c: Replace uses of DECL_INLINE with
10127         DECL_DECLARED_INLINE_P.
10128
10129 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10130
10131         PR middle-end/38347
10132         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
10133         GET_MODE (op0) in operand_subword_force calls.
10134
10135         PR middle-end/38771
10136         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
10137         fold_convert arg0 operands to TREE_TYPE (op0) first.
10138
10139 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
10140
10141         * params.def (ira-max-conflict-table-size): Decrease default value
10142         to 1000.
10143
10144 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
10145
10146         PR tree-optimization/37031
10147         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
10148         on parameter_set.
10149         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
10150         allocate it using gc instead of heap, use VEC_quick_push instead of
10151         VEC_safe_push.
10152         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
10153         instead of heap, use VEC_quick_push instead of VEC_safe_push.
10154         * tree-data-ref.h (struct access_matrix): Change matrix to gc
10155         allocated vector from heap allocated.
10156         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
10157         * tree-loop-linear.c (linear_transform_loops): Allocate nest
10158         vector only after perfect_loop_nest_depth call.
10159
10160 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
10161             Jan Sjodin  <jan.sjodin@amd.com>
10162
10163         PR tree-optimization/38559
10164         * graphite.c (debug_value, copy_constraint,
10165         swap_constraint_variables, scale_constraint_variable, ): New.
10166         (get_lower_bound, get_upper_bound): Removed.
10167         (graphite_trans_bb_strip_mine): Clean up this code that works
10168         only for constant number of iterations.  Fully copy upper and
10169         lower bound constraints, not only the constant part of them.
10170         * graphite.h (debug_value): Declared.
10171
10172 2009-01-08  Ira Rosen  <irar@il.ibm.com>
10173
10174         PR tree-optimization/37194
10175         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
10176         Don't add the cost of cost model guard in prologue to scalar
10177         outside cost in case of known number of iterations.
10178
10179 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10180             Alan Modra  <amodra@bigpond.net.au>
10181
10182         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
10183         non-word-aligned REG+CONST addressing.
10184
10185 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10186
10187         PR target/38706
10188         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
10189         free_after_compilation when outputting a thunk.
10190         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
10191         Do not call free_after_compilation here.
10192
10193 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10194
10195         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
10196         (ix86_valid_target_attribute_inner_p): Ditto.
10197
10198 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
10199
10200         PR tree-optimization/38492
10201         PR tree-optimization/38498
10202         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
10203         * tree-chrec.h (scev_is_linear_expression): Declared.
10204         * graphite.c (graphite_cannot_represent_loop_niter): New.
10205         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
10206         (graphite_loop_normal_form): Use gcc_assert.
10207         (scan_tree_for_params): Use CASE_CONVERT.
10208         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
10209         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
10210         Use gcc_assert.  Discard scops that contain unhandled cases.
10211         (build_scop_conditions): Return a boolean status for unhandled cases.
10212         (strip_mine_profitable_p): Print the loop number, not its depth.
10213         (is_interchange_valid): Pass the depth of the loop nest, don't
10214         recompute it wrongly.
10215         (graphite_trans_bb_block): Same.
10216         (graphite_trans_bb_block): Print tentative of loop blocking.
10217         (graphite_trans_scop_block): Do not print that the loop has been
10218         blocked.
10219         (graphite_transform_loops): Do not handle scops that contain condition
10220         scalar phi nodes.
10221
10222 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10223
10224         AVX Programming Reference (December, 2008)
10225         * config/i386/avxintrin.h (_mm256_stream_si256): New.
10226         (_mm256_stream_pd): Likewise.
10227         (_mm256_stream_ps): Likewise.
10228
10229         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
10230         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
10231         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
10232         (bdesc_special_args): Add __builtin_ia32_movntdq256,
10233         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
10234         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
10235         (ix86_expand_special_args_builtin): Likewise.
10236
10237         * config/i386/sse.md (AVXMODEDI): New.
10238         (avx_movnt<mode>): Likewise.
10239         (avx_movnt<mode>): Likewise.
10240         (<sse>_movnt<mode>): Remove AVX support.
10241         (sse2_movntv2di): Likewise.
10242
10243 2009-01-07  Richard Guenther  <rguenther@suse.de>
10244
10245         PR middle-end/38751
10246         * fold-const.c (extract_muldiv): Remove obsolete comment.
10247         (fold_plusminus_mult_expr): Undo MINUS_EXPR
10248         to PLUS_EXPR canonicalization for the canonicalization.
10249
10250 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
10251
10252         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
10253         hosted cross-compilers generating less efficient code.
10254
10255 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10256
10257         * function.h (rtl_data): Add a dbr_scheduled_p field.
10258         * reorg.c (dbr_schedule): Set it.
10259         (gate_handle_delay_slots): Check it.
10260         * config/mips/mips.c (mips_base_delayed_branch): Delete.
10261         (mips_reorg): Check flag_delayed_branch instead of
10262         mips_base_delayed_branch.
10263         (mips_override_options): Don't set mips_base_delayed_branch
10264         or flag_delayed_branch.
10265
10266 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10267
10268         PR rtl-optimization/38426.
10269         * ira.c (ira): Set current_function_is_leaf earlier.
10270
10271 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
10272
10273         PR rtl-optimization/38722
10274         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10275         too early, only set a flag and modify after last possible
10276         undo_all point.
10277
10278 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
10279
10280         PR c/34252
10281         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10282         * real.c (decimal_single_format): Correct values of emin and emax.
10283         (decimal_double_format): Ditto.
10284         (decimal_quad_format): Ditto.
10285         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10286         computation of DECnn_MIN and DECnn_MAX for corrected values of
10287         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
10288         __DECnn_MIN__, and adjust its computation for the corrected value
10289         of emin.
10290
10291 2009-01-06  Jan Hubicka  <jh@suse.cz>
10292
10293         PR target/38744
10294         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
10295
10296 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10297
10298         * doc/contrib.texi (Contributors): Slightly adjust the end note.
10299         Add Robert Clark to the list of testers.
10300
10301 2009-01-06  Jan Hubicka  <jh@suse.cz>
10302             Kai Tietz  <kai.tietz@onevision.com>
10303
10304         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10305         * config/i386/i386.c (ix86_expand_call): Add clobbers.
10306
10307 2009-01-06  Jan Hubicka  <jh@suse.cz>
10308             Kai Tietz  <kai.tietz@onevision.com>
10309
10310         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10311         for w64 ABI.
10312         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
10313         (ix86_nsaved_regs): Count only general purpose regs.
10314         (ix86_nsaved_sseregs): New.
10315         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10316         to 16 for w64; compute padding and size of sse reg save area.
10317         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10318         general purpose regs.
10319         (ix86_emit_save_sse_regs_using_mov): New.
10320         (ix86_expand_prologue): Save SSE regs if needed.
10321         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10322         (ix86_emit_restore_sse_regs_using_mov): New.
10323         (ix86_expand_epilogue): Save SSE regs if needed.
10324
10325 2009-01-06  Jan Hubicka  <jh@suse.cz>
10326             Kai Tietz  <kai.tietz@onevision.com>
10327
10328         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10329         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10330         functions when accumulate outgoing args is off.
10331
10332 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10333
10334         PR bootstrap/38742
10335         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10336         before using pseudos_have_intersected_live_ranges_p.
10337
10338         * ira-int.h (ira_assert): Always define.
10339
10340 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10341
10342         AVX Programming Reference (December, 2008)
10343         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10344         (_mm256_permute2_pd): Likewise.
10345         (_mm_permute2_ps): Likewise.
10346         (_mm256_permute2_ps): Likewise.
10347         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10348         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10349
10350         * config/i386/i386.c (ix86_builtins): Remove
10351         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10352         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10353         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10354         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10355         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10356         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10357         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10358         __builtin_ia32_vpermil2ps256.
10359         (ix86_init_mmx_sse_builtins): Updated.
10360         (ix86_expand_args_builtin): Likewise.
10361
10362 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10363
10364         * pa.c (output_call): Relocate non-jump insns in the delay slot of
10365         long absolute calls when generating PA 2.0 code.
10366
10367 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
10368
10369         PR rtl-optimization/38583
10370         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10371
10372         * params.def (ira-max-conflict-table-size): New.
10373
10374         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
10375
10376         * ira.h (ira_conflicts_p): New external definition.
10377
10378         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10379         table.  Report this.  Return result of building.
10380         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
10381         building conflict table.
10382
10383         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
10384         (ira_color): Use ira_conflicts_p.
10385
10386         * global.c: Include ira.h.
10387         (pseudo_for_reload_consideration_p, build_insn_chain): Use
10388         ira_conflicts_p.
10389
10390         * Makefile.in (global.o): Add ira.h.
10391
10392         * ira-build.c (mark_all_loops_for_removal,
10393         propagate_some_info_from_allocno): New.
10394         (remove_unnecessary_allocnos): Call
10395         propagate_some_info_from_allocno.
10396         (remove_low_level_allocnos): New.
10397         (remove_unnecessary_regions): Add parameter.  Call
10398         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
10399         parameter to remove_unnecessary_regions.
10400         (ira_build): Remove all regions but root if the conflict table was
10401         not built.  Update conflict hard regs for allocnos crossing calls.
10402
10403         * ira.c (ira_conflicts_p): New global.
10404         (ira): Define and use ira_conflicts_p.
10405
10406         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10407         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
10408         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
10409
10410 2009-01-06  Ben Elliston  <bje@au.ibm.com>
10411
10412         * gengtype-lex.l (YY_NO_INPUT): Define.
10413
10414 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10415
10416         PR c/34911
10417         * c-common.c (handle_vector_size_attribute): Also reject
10418         BOOLEAN_TYPE types.
10419
10420 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
10421
10422         PR tree-optimization/38492
10423         * graphite.c (rename_map_elt, debug_rename_elt,
10424         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10425         rename_map_elt_info, eq_rename_map_elts,
10426         get_new_name_from_old_name, bb_in_sese_p): Moved around.
10427         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10428         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10429         (sese_build_livein_liveouts): New.
10430         (new_sese, free_sese): New.
10431         (new_scop): Call new_sese.
10432         (free_scop): Call free_sese.
10433         (rename_variables_from_edge, rename_phis_end_scop): Removed.
10434         (register_old_new_names): Renamed register_old_and_new_names.
10435         (register_scop_liveout_renames, add_loop_exit_phis,
10436         insert_loop_close_phis, struct igp,
10437         default_liveout_before_guard, add_guard_exit_phis,
10438         insert_guard_phis, copy_renames): New.
10439         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10440         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10441         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10442         (scop_adjust_phis_for_liveouts): New.
10443         (gloog): Call scop_adjust_phis_for_liveouts.
10444
10445         * graphite.h (struct sese): Documented.  Added fields liveout,
10446         num_ver and livein.
10447         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10448         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10449         (struct scop): Added field liveout_renames.
10450         (SCOP_LIVEOUT_RENAMES): New.
10451
10452 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10453
10454         PR tree-optimization/38510
10455         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10456         (translate_clast): Call recompute_all_dominators before
10457         graphite_verify.
10458         (gloog): Call recompute_all_dominators before graphite_verify.
10459
10460 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10461             Jan Sjodin  <jan.sjodin@amd.com>
10462
10463         PR tree-optimization/38500
10464         * graphite.c (create_sese_edges): Call fix_loop_structure after
10465         splitting blocks.
10466
10467 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10468
10469         * config.gcc: Add m32r*-*-rtems*.
10470         * config/m32r/rtems.h: New file.
10471
10472 2009-01-05  Ben Elliston  <bje@au.ibm.com>
10473
10474         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10475         (.po.pox): Likewise.
10476         (po/gcc.pot): Likewise.
10477
10478 2009-01-04  David S. Miller  <davem@davemloft.net>
10479
10480         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10481         (STARTING_FRAME_OFFSET): Always set to zero.
10482
10483 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10484
10485         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10486         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10487         fixed-point types, and vectors of the same.
10488
10489 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10490
10491         * config/mips/sync.md (*mb_barrier): Rename to...
10492         (*memory_barrier): ...this.
10493
10494 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10495
10496         * doc/extend.texi (Function Attributes): Move @cindex after @item
10497         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
10498         and put in alphabetical order. Fix 'target' name and put in order.
10499         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10500         typos.
10501
10502 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
10503
10504         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10505         (memory_barrier): Expand as unspec instead of unspec_volatile.
10506         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10507         (*memory_barrier): Define as unspec instead of unspec_volatile.
10508         Use (match_dup 0) as input operand.
10509
10510         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10511         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10512         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
10513         scratch register.  Remove operand 1.
10514         (*stbar): Define as unspec instead of unspec_volatile.
10515         Use (match_dup 0) as input operand, remove (const_int 8).
10516         (*membar): Define as unspec instead of unspec_volatile.
10517         Use (match_dup 0) as input operand, remove input operand 2.
10518
10519         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10520         (memory_barrier): Expand as unspec instead of unspec_volatile.
10521         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10522         (*memory_barrier): Define as unspec instead of unspec_volatile.
10523         Use (match_dup 0) as input operand.
10524
10525         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10526         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10527         Set volatile flag on operand 0.
10528         (*memory_barrier): New insn pattern.
10529
10530         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10531         insn operands.
10532         (*memory_barrier): Use (match_dup 0) as input operand.
10533
10534         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10535         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10536         Set volatile flag on operand 0.
10537         (*mb_internal): New insn pattern.
10538
10539         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10540
10541 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10542
10543         PR middle-end/38586
10544         * function.c (struct temp_slot): Move to the section of the file
10545         that deals with temp slots.  Remove field 'address'.
10546         (temp_slot_address_table): New hash table of address -> temp slot.
10547         (struct temp_slot_address_entry): New struct, items for the table.
10548         (temp_slot_address_compute_hash, temp_slot_address_hash,
10549         temp_slot_address_eq, insert_temp_slot_address): Support functions
10550         for the new table.
10551         (find_temp_slot_from_address): Rewrite to use the new hash table.
10552         (remove_unused_temp_slot_addresses): Remove addresses of temp
10553         slots that have been made available.
10554         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10555         worker function for remove_unused_temp_slot_addresses.
10556         (assign_stack_temp_for_type): Don't clear the temp slot address list.
10557         Add the temp slot address to the address -> temp slot map.
10558         (update_temp_slot_address): Update via insert_temp_slot_address.
10559         (free_temp_slots): Call remove_unused_temp_slot_addresses.
10560         (pop_temp_slots): Likewise.
10561         (init_temp_slots): Allocate the address -> temp slot map, or empty
10562         the map if it is already allocated.
10563         (prepare_function_start): Initialize temp slot processing.
10564
10565 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10566
10567         PR middle-end/38584
10568         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10569         Calculate the size of all stack vars assuming no packing of stack
10570         vars will happen, replacing a quadratic algorithm with a linear one.
10571
10572 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10573
10574         PR target/38707
10575         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10576         can't be used.
10577
10578 2009-01-03  Diego Novillo  <dnovillo@google.com>
10579
10580         * doc/contrib.texi: Update contributions.
10581
10582 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10583
10584         PR c++/38705
10585         * builtins.c (fold_builtin_memory_op): Give up if either operand
10586         is volatile.  Set srctype or desttype to non-qualified version
10587         of the other type.
10588
10589         PR c/38700
10590         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10591         and FUNCTION_DECLs.
10592
10593 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
10594
10595         PR rtl-optimization/35805
10596         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10597         problem if fast dce is able to remove any instructions.
10598         * dce.c (dce_process_block): Fix dump message.
10599
10600 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
10601
10602         PR 33649
10603         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10604
10605 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
10606
10607         PR middle-end/38690
10608         * tree-flow.h (op_code_prio, op_prio): New prototypes.
10609         * tree-pretty-print.c (op_code_prio): New function.
10610         (op_prio): No longer static.  Use op_code_prio.
10611         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10612         Use op_prio and op_code_prio to determine if () should be
10613         printed around operand(s) or not.
10614
10615         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10616         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10617         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10618         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10619         pp_character instead of pp_string for single letter printing.
10620
10621 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10622
10623         * doc/extend.texi: Fix '#pragma GCC option' typo.
10624
10625 2009-01-02  Richard Guenther  <rguenther@suse.de>
10626
10627         * doc/install.texi (--enable-checking): Mention different
10628         default for stage1.
10629         (--enable-stage1-checking): Document.
10630
10631 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
10632
10633         PR middle-end/30142
10634         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
10635         case to be an error.
10636
10637 2009-01-02  Ben Elliston  <bje@au.ibm.com>
10638
10639         * config/fp-bit.h (pack_d): Constify argument.
10640         * config/fp-bit.c (makenan): Constify return type. Remove casts.
10641         (isnan): Constify argument.
10642         (isinf): Likewise.
10643         (iszero): Likewise.
10644         (pack_d): Likewise.
10645         (_fpadd_parts): Constify return type.
10646         (_fpmul_parts): Likewise.
10647         (_fpdiv_parts): Likewise.
10648
10649 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
10650
10651         PR c/36489
10652         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
10653         warn about overwriting initializer with side-effects or
10654         -Woverride-init if !IMPLICIT.
10655         (output_init_element): Likewise.  Pass IMPLICIT down to
10656         add_pending_init.
10657         (process_init_element): Add IMPLICIT argument.  Pass it down
10658         to output_init_element.
10659         (push_init_element, pop_init_level, set_designator): Adjust
10660         process_init_element callers.
10661         (set_nonincremental_init, set_nonincremental_init_from_string):
10662         Adjust add_pending_init callers.
10663         (output_pending_init_elements): Adjust output_init_element callers.
10664         * c-tree.h (process_init_element): Adjust prototype.
10665         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10666         process_init_element callers.
10667
10668 \f
10669 Copyright (C) 2009 Free Software Foundation, Inc.
10670
10671 Copying and distribution of this file, with or without modification,
10672 are permitted in any medium without royalty provided the copyright
10673 notice and this notice are preserved.