OSDN Git Service

* cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument;
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-08  Jan Hubicka  <jh@suse.cz>
2
3         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument;
4         handle correctly when profile is absent.
5         (build_cgraph_edges): Update.
6         (rebuild_cgraph_edges): Update.
7         * cgraph.c: Do not include varrau.h 
8         (cgraph_set_call_stmt_including_clones, cgraph_create_edge_including_clones):
9         New function
10         (cgraph_update_edges_for_call_stmt_node): New stati cfunction.
11         (cgraph_update_edges_for_call_stmt): Handle clones.
12         (cgraph_remove_node): Handle clone tree.
13         (cgraph_remove_node_and_inline_clones): New function.
14         (dump_cgraph_node): Dump clone tree.
15         (cgraph_clone_node): Handle clone tree.
16         (clone_function_name): Bring here from tree-inline.c
17         (cgraph_create_virtual_clone): New function.
18         * cgraph.h (ipa_replace_map): Move ehre from ipa.h
19         (cgraph_clone_info): New function
20         (strut cgraph_node): Add clone_info and new clone tree pointers.
21         (cgraph_remove_node_and_inline_clones, cgraph_set_call_stmt_including_clones,
22         cgraph_create_edge_including_clones, cgraph_create_virtual_clone): Declare.
23         (cgraph_function_versioning): Use VEC argument.
24         (compute_call_stmt_bb_frequency): Update prototype.
25         (cgraph_materialize_all_clones): New function.
26         * ipa-cp.c (ipcp_update_cloned_node): Remove.
27         (ipcp_create_replace_map): Update to VECtors.
28         (ipcp_update_callgraph): Use virtual clones.
29         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
30         (ipcp_update_profiling): Do not update local profiling.
31         (ipcp_insert_stage): Use VECtors and virtual clones.
32         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
33         (clone_of_p): New function.
34         (cgraph_preserve_function_body_p): Use clone tree.
35         (cgraph_optimize): Materialize clones.
36         (cgraph_function_versioning): Update for VECtors.
37         (save_inline_function_body): Use clone tree.
38         (cgraph_materialize_clone, cgraph_materialize_all_clones): New functions.
39         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
40         * ipa.c: Include gimple.h.
41         (cgraph_remove_unreachable_nodes): Use clone tree.
42         * ipa-prop.c (ipa_note_param_call): Update call of compute_call_stmt_bb_frequency.
43         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
44         * tree-inline.c: Do not include varray.h; do not include gt-tree-inline.h
45         (copy_bb): Handle updating of clone tree; add new edge when new call
46         appears.
47         (expand_call_inline): Be strict about every call having edge.
48         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
49         (delete_unreachable_blocks_update_callgraph): New function.
50         (tree_function_versioning): Use VECtors; always remove unreachable blocks
51         and fold conditionals.
52         * tree-inline.h: Do not include varray.h
53         (tree_function_versioning): Remove.
54         * Makefile.in (GTFILES): Remove tree-inline.c
55         * passes.c (do_per_function): Do only functions having body.
56         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle cone tree.
57
58 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
59             Andrew Morrow  <acm@google.com>
60
61         PR c/36892
62         * c-common.c (c_common_attribute_table): Permit deprecated
63         attribute to take an optional argument.
64         (handle_deprecated_attribute): If the optional argument to
65         __attribute__((deprecated)) is not a string ignore the attribute
66         and emit a warning.
67
68         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
69         * c-typeck.c (build_component_ref): Likewise.
70         (build_external_ref): Likewise.
71
72         * toplev.c (warn_deprecated_use): Add an attribute argument.
73         Emit the message associated with __attribute__((deprecated)).
74
75         * toplev.h (warn_deprecated_use): Updated.
76
77         * doc/extend.texi: Document new optional parameter to
78         __attribute__((deprecated))
79
80 2009-05-08  Michael Eager <eager@eagercon.com>
81
82         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
83         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
84
85 2009-05-08  Richard Guenther  <rguenther@suse.de>
86
87         PR tree-optimization/40062
88         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
89         Avoid exponential behavior.
90
91 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
92
93         PR rtl-optimization/33928
94         PR 26854
95         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
96         process_uses, build_single_def_use_links): New.
97         (update_df): Update use_def_ref.
98         (forward_propagate_into): Use get_def_for_use instead of use-def
99         chains.
100         (fwprop_init): Call build_single_def_use_links and let it initialize
101         dataflow.
102         (fwprop_done): Free use_def_ref.
103         (fwprop_addr): Eliminate duplicate call to df_set_flags.
104         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
105         df_rd_simulate_one_insn): New.
106         (df_rd_bb_local_compute_process_def): Update head comment.
107         (df_chain_create_bb): Use the new RD simulation functions.
108         * df.h (df_rd_simulate_artificial_defs_at_top, 
109         df_rd_simulate_one_insn): New.
110         * opts.c (decode_options): Enable fwprop at -O1.
111         * doc/invoke.texi (-fforward-propagate): Document this.
112
113 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
114
115         PR c/24581
116         * c-typeck.c (build_binary_op): Handle arithmetic between one real
117         and one complex operand specially.
118         * tree-complex.c (some_nonzerop): Do not identify a real value as
119         zero if flag_signed_zeros.
120
121 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
122
123         PR rtl-optimization/33928
124         * loop-invariant.c (record_use): Fix && vs. || mishap.
125
126 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
127
128         PR rtl-optimization/33928
129         * loop-invariant.c (struct use): Add addr_use_p.
130         (struct def): Add n_addr_uses.
131         (struct invariant): Add cheap_address.
132         (create_new_invariant): Set cheap_address.
133         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
134         (record_uses): Pass df_ref to record_use.
135         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses used
136         only as such.
137
138 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
139
140         * config/sh/sh.c: Do not include c-pragma.h.
141
142 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
143
144         * config/spu/spu.c: Remove include of c-common.h.
145
146 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
147
148         PR c/39037
149         * c-common.h (mark_valid_location_for_stdc_pragma,
150         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
151         clear_float_const_decimal64, float_const_decimal64_p): New.
152         * c.opt (Wunsuffixed-float-constants): New.
153         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
154         unsuffixed float constant, handle new warning.
155         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
156         * c-decl.c (c_scope): New flag float_const_decimal64.
157         (set_float_const_decimal64, clear_float_const_decimal64,
158         float_const_decimal64_p): New.
159         (push_scope): Set new flag.
160         * c-parser.c (c_parser_translation_unit): Mark when it's valid
161         to use STDC pragmas.
162         (c_parser_external_declaration): Ditto.
163         (c_parser_compound_statement_nostart): Ditto.
164         * c-pragma.c (valid_location_for_stdc_pragma,
165         mark_valid_location_for_stdc_pragma,
166         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
167         handle_pragma_float_const_decimal64): New.
168         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
169         * cp/semantics.c (valid_location_for_stdc_pragma_p,
170         set_float_const_decimal64, clear_float_const_decimal64,
171         float_const_decimal64_p): New dummy functions.
172         * doc/extend.texi (Decimal Float): Remove statement that the
173         pragma, and suffix for double constants, are not supported.
174         * doc/invoke.texi (Warning Options): List new option.
175         (-Wunsuffixed-float-constants): New.
176
177 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
178
179         * config/i386/i386.c: Do not include c-common.h.
180
181 2009-05-07  Mark Heffernan  <meheff@google.com>
182
183         * doc/invoke.texi (Debugging Options): Document change of debugging
184         dump location.
185         * opts.c (decode_options): Make dump_base_name relative to
186         aux_base_name directory.
187
188 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
189
190         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
191         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
192
193 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
194
195         * Makefile.in (install-plugin): Simplify a bit.
196
197 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
198
199         * Makefile.in (OBJS-common): Add regcprop.o.
200         (regcprop.o): New.
201         * timevar.def (TV_CPROP_REGISTERS): New.
202         * regrename.c (regrename_optimize): Return 0.
203         (rest_of_handle_regrename): Delete.
204         (pass_rename_registers): Point to regrename_optimize.
205         (struct value_data_entry, struct value_data, 
206         kill_value_one_regno, kill_value_regno, kill_value,
207         set_value_regno, init_value_data, kill_clobbered_value,
208         kill_set_value, kill_autoinc_value, copy_value,
209         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
210         replace_oldest_value_reg, replace_oldest_value_addr,
211         replace_oldest_value_mem, copyprop_hardreg_forward_1,
212         debug_value_data, validate_value_data): Move...
213         * regcprop.c: ... here.
214         (rest_of_handle_cprop): Delete.
215         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
216
217 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
218
219         PR middle-end/40057
220         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
221         GEN_INT for 1 << bitnum.
222         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
223         build_int_cst_type.
224
225 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
226
227         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
228         Remove wrong description of "nand" functionality.
229
230 2009-05-06  Richard Guenther  <rguenther@suse.de>
231             Adam Nemet  <anemet@caviumnetworks.com>
232
233         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
234         comment.  Add that if LHS is not a gimple register, then RHS1 has
235         to be a single object (GIMPLE_SINGLE_RHS).
236
237 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
238
239         * expr.c (get_def_for_expr): Move it up in the file.
240         (store_field): When expanding a bit-field store, look at the
241         defining gimple stmt for the masking conversion.
242
243 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
244
245         PR middle-end/39986
246         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
247         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
248         32-bit memcpy into long.
249
250 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
251
252         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
253         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
254         new_reg_loc_descr.
255         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
256         instead of appending DW_OP_deref*.
257
258 2009-05-06  Michael Matz  <matz@suse.de>
259
260         PR middle-end/40021
261         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
262         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
263
264 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
265
266         * Makefile.in (install-plugin): Fix srcdir handling.
267
268 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
269
270         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
271         when processing for not_regs_needed bitmap.
272         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
273         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
274         handling it for rhs. 
275
276 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
277
278         * config/i386/i386.md (unnamed inc/dec peephole): Use
279         optimize_insn_for_size_p instead of optimize_size.
280         * config/i386/predicates.md (incdec_operand): Likewise.
281         (aligned_operand): Likewise.
282         * config/i386/sse.md (divv8sf3): Likewise.
283         (sqrtv8sf2): Likewise.
284
285 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
286
287         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
288
289         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
290
291 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
292
293         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
294         ssemodesuffixf2c with avxmodesuffixf2c.
295
296 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
297
298         PR c/40032
299         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
300
301 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
302
303         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
304         (struct tree_base): Adjust spacing for 8 bit boundaries.
305         (struct tree_decl_common): Add decl_by_reference_flag bit.
306         (DECL_BY_REFERENCE): Adjust.
307         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
308         print DECL_BY_REFERENCE bit.
309         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
310         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
311         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
312         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
313         unconditionally.
314
315         PR middle-end/39666
316         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
317         range of the type, but default label is missing, add it with one
318         of the existing labels instead of adding a new label for it.
319
320 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
321
322         * dwarf.h: Remove.
323
324 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
325
326         * Makefile.in (enable_plugin, plugin_includedir): New.
327         (install): Depend on install-plugin.
328         (PLUGIN_HEADERS): New.
329         (install-plugin): New.
330         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
331
332 2009-05-05  Richard Guenther  <rguenther@suse.de>
333
334         PR tree-optimization/40022
335         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
336         the only vuse.
337         (phivn_valid_p): Fix tuplification error, simplify.
338         (phiprop_insert_phi): Add dumps.
339         (propagate_with_phi): Simplify.
340
341 2009-05-05  Richard Guenther  <rguenther@suse.de>
342
343         PR middle-end/40023
344         * builtins.c (gimplify_va_arg_expr): Properly build the address.
345
346 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
347
348         * tree.h (strip_float_extensions): Remove duplicate declaration.
349         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
350         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
351         block_ultimate_origin): Rearrange the declarations line to match the
352         comment that indicates the .c file which the functions are defined.
353         (dwarf2out_*, set_decl_rtl): Add comment.
354         (get_base_address): Adjust comment.
355         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
356         declarations line and add comment.
357         (is_builtin_name): Add blank after function name, for clarity.
358
359 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
360
361         * attribs.c (decl_attributes): Use %qE for identifiers in
362         diagnostics.
363         * cgraphunit.c (verify_cgraph_node): Translate function names to
364         locale character set in diagnostics.
365         * coverage.c (get_coverage_counts): Use %qE for identifiers in
366         diagnostics.
367         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
368         Document that functions are named in UTF-8.
369         * expr.c (expand_expr_real_1): Translate function names to locale
370         character set in diagnostics.
371         * gimplify.c (omp_notice_variable, omp_is_private,
372         gimplify_scan_omp_clauses): Use %qE for identifiers in
373         diagnostics.
374         * langhooks.c (lhd_print_error_function): Translate function names
375         to locale character set.
376         * langhooks.h (decl_printable_name): Document that return value is
377         in internal character set.
378         * stmt.c: Include pretty-print.h
379         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
380         diagnostics.
381         (resolve_operand_name_1): Translate named operand name to locale
382         character set.
383         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
384         diagnostics.
385         * toplev.c (announce_function): Translate function names to locale
386         character set.
387         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
388         (default_tree_printer): Use pp_identifier or translate identifiers
389         to locale character set.  Mark "<anonymous>" for translation.
390         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
391         for identifiers in diagnostics.
392         * tree.c (handle_dll_attribute): Use %qE for identifiers in
393         diagnostics.
394         * varasm.c (output_constructor): Use %qE for identifiers in
395         diagnostics.
396
397 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
398
399         * configure.ac: use ` ` instead of $()
400         * configure: Regenerate.
401
402 2009-05-05  Ben Elliston  <bje@au.ibm.com>
403
404         * config/pa/linux-atomic.c: Eliminate conditional include of
405         errno.h on non-LP64 systems to simplify build requirements.
406
407 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
408
409         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
410         diagnostics.
411         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
412         and pass value to identifier_to_locale.
413         (warn_variable_length_array): Make name a tree.
414         (grokdeclarator): Separate diagnostic texts for named and unnamed
415         declarators.  Use %qE for named declarators.
416         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
417         diagnostics.
418         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
419         identifiers in diagnostics.
420         * c-typeck.c (push_member_name, start_init): Pass identifiers to
421         identifier_to_locale.  Mark "anonymous" strings for translation.
422
423 2009-05-04  Michael Eager <eager@eagercon.com>
424
425         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
426         address for DImode/DFmode only if double-precision FP regs.
427
428 2009-05-04  Michael Eager <eager@eagercon.com>
429
430         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
431         TARGET_SINGLE_FLOAT check.
432
433 2009-05-04  Michael Eager <eager@eagercon.com>
434
435         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
436
437 2009-05-04  Michael Eager <eager@eagercon.com>
438
439         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
440         * config/rs6000/t-xilinx: New
441
442 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
443
444         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
445         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
446         * gcc/explow.c (memory_address): Use target hook.
447         * gcc/targhooks.c (default_legitimize_address): New.
448         * gcc/targhooks.h (default_legitimize_address): New.
449         * gcc/target.h (legitimize_address): New.
450         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
451         (TARGET_INITIALIZER): Include it.
452         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
453
454         * config/bfin/bfin-protos.h (legitimize_address): Remove.
455         * config/bfin/bfin.c (legitimize_address): Remove.
456         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
457         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
458         Remove.
459         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
460         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
461
462         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
463         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
464         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
465         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
466         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
467         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
468         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
469         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
470         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
471         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
472         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
473         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
474         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
475         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
476         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
477         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
478         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
479         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
480         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
481         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
482         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
483         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
484         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
485
486         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
487         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
488         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
489         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
490         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
491         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
492         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
493         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
494         (thumb_legitimize_address): Delete.
495         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
496         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
497         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
498         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
499         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
500         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
501         Delete.
502         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
503         Delete.
504
505         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
506         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
507         * config/m32r/m32r.c (m32r_legitimize_address): New.
508         * config/m68k/m68k.c (m68k_legitimize_address): New.
509         * config/score/score.c (score_legitimize_address): Standardize.
510         * config/score/score3.c (score3_legitimize_address): Standardize.
511         * config/score/score3.h (score3_legitimize_address): Adjust.
512         * config/score/score7.c (score7_legitimize_address): Standardize.
513         * config/score/score7.h (score7_legitimize_address): Adjust.
514         * config/sh/sh.c (sh_legitimize_address): New.
515         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
516
517         * gcc/config/s390/s390.c (legitimize_address): Rename to...
518         (s390_legitimize_address): ... this.
519         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
520         (sparc_legitimize_address): ... this.
521         * gcc/config/i386/i386.c (legitimize_address): Rename to...
522         (ix86_legitimize_address): ... this.
523         * gcc/config/avr/avr.c (legitimize_address): Rename to...
524         (avr_legitimize_address): ... this.
525         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
526         (mn10300_legitimize_address): ... this.
527         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
528         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
529         (alpha_expand_mov): Adjust call.
530
531         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
532         * config/spu/spu.c (spu_legitimize_address): Likewise.
533         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
534         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
535
536 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
537
538         * intl.c (locale_encoding, locale_utf8): New.
539         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
540         * intl.h (locale_encoding, locale_utf8): Declare.
541         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
542         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
543         New.
544         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
545         argument.
546         (pp_tree_identifier): Define to call pp_base_tree_identifier.
547         (pp_base_tree_identifier): Declare as function.
548         (identifier_to_locale): Declare.
549         * Makefile.in (pretty-print.o): Update dependencies.
550         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
551
552 2009-05-04  Richard Guenther  <rguenther@suse.de>
553
554         PR middle-end/40015
555         * builtins.c (fold_builtin_memory_op): Do not decay to element
556         type if the size matches the whole array.
557
558 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
559
560         * expmed.c (synth_mult): When trying out a shift, pass the result
561         of a signed shift.
562
563 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
564
565         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
566         (shiftsub1_cost): New.
567         (init_expmed): Compute shiftsub1_cost.
568         (synth_mult): Optimize multiplications by constants of the form
569         -(2^^m-1) for some constant positive integer m.
570
571 2009-05-03  Richard Guenther  <rguenther@suse.de>
572
573         PR c/39983
574         * c-typeck.c (array_to_pointer_conversion): Do not built
575         ADDR_EXPRs of arrays of pointer-to-element type.
576         * c-gimplify.c (c_gimplify_expr): Revert change fixing
577         up wrong ADDR_EXPRs after-the-fact.
578         * c-common.c (strict_aliasing_warning): Strip pointer
579         conversions for obtaining the original type.
580         * builtins.c (fold_builtin_memset): Handle array types.
581         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
582         and array types
583
584 2009-05-03  Richard Guenther  <rguenther@suse.de>
585
586         PR middle-end/23329
587         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
588         Do not lose casts from array types with unknown extent to array
589         types with known extent.
590         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
591         alias set compatibility.
592
593 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
594
595         * flags.h (extra_warnings): Delete.
596         * toplev.c (process_options): Handle Wuninitialized here.
597         * opts.c (extra_warnings): Delete.
598         (set_Wextra): Delete.
599         (common_handle_option): -Wextra can be handled automatically.
600         * c-opts.c (c_common_handle_option): Delete obsolete code.
601         (c_common_post_options): Simplify comment.
602         * common.opt (W): Add Var.
603         (Wextra): Add Var.
604         (Wuninitialized): Initialize to -1.
605
606 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
607             Richard Guenther  <rguenther@suse.de>
608
609         * expr.c (get_def_for_expr): New function.
610         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
611         SSA rather than trees.
612         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
613         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
614         
615 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
616
617         * c-common.c (reswords): Add _Imaginary.
618         * c-common.c (enum rid): Add RID_IMAGINARY.
619
620 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
621
622         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
623         Patch by Richard Guenther.
624
625 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
626
627         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
628         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
629         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
630         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
631         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
632         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
633         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
634         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
635         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
636         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
637         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
638         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
639         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
640         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
641         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
642         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
643         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
644         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
645
646 2009-05-02  Richard Guenther  <rguenther@suse.de>
647
648         PR tree-optimization/39940
649         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
650         doing so.
651
652 2009-05-02  Richard Guenther  <rguenther@suse.de>
653
654         PR middle-end/40001
655         * tree-ssa.c (execute_update_addresses_taken): Properly check
656         if we can mark a variable DECL_GIMPLE_REG_P.
657         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
658         back to the end of the function.
659         (is_gimple_reg_type): Remove complex type special casing.
660         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
661         if not optimizing.
662
663 2009-05-02  Ben Elliston  <bje@au.ibm.com>
664
665         * doc/collect2.texi (Collect2): Document search path behaviour
666         when configured with --with-ld.
667
668 2009-05-02  Jan Hubicka  <jh@suse.cz>
669
670         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
671         parameter; update callers.
672         (coalesce_cost_edge): EH edges are costier because they needs
673         splitting even if not critical and even more costier when there are
674         multiple EH predecestors.
675
676 2009-05-02  Jan Hubicka  <jh@suse.cz>
677
678         * except.c (remove_eh_handler_and_replace): Handle updating after
679         removing TRY blocks.
680
681 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
682
683         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
684
685 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
686
687         * varasm.c: Do not include c-pragma.h.
688         * attribs.c: Do not incude c-common.h.
689
690 2009-05-01  Michael Matz  <matz@suse.de>
691
692         * calls.c (initialize_argument_information): Handle SSA names like
693         decls with a non MEM_P DECL_RTL.
694
695 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
696
697         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
698         * ipa-utils.c: Likewise.
699         * ipa-type-escape.c: Likewise.
700         * cgraphunit.c Do not include c-common.h.
701         * ipa-pure-const.c: Likewise.
702         * tree-if-conv.c: Likewise.
703         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
704         * ipa-struct-reorg.c: Likewise.
705         * tree-nomudflap.c: Likewise.
706         * tree-ssa-structalias.c: Likewise.
707
708 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
709
710         * store-motion.c: Many cleanups to make this pass a first-class
711         citizen instead of an appendix to gcse load motion.  Add TODO list
712         to make this pass faster/cleaner/better.
713
714         (struct ls_expr): Post gcse.c-split cleanups.
715         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
716         "stores" field to "avail_stores".
717         (pre_ldst_mems): Rename to store_motion_mems.
718         (pre_ldst_table): Rename to store_motion_mems_table.
719         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
720         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
721         (ldst_entry): Rename to st_expr_entry, update users.
722         (free_ldst_entry): Rename to free_st_expr_entry, update users.
723         (free_ldst_mems): Rename to free_store_motion_mems, update users.
724         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
725         update caller.
726         (first_ls_expr): Rename to first_st_expr, update users.
727         (next_ls_expr): Rename to next_st_expr, update users.
728         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
729         fields properly for store motion instead of names inherited from load
730         motion in gcse.c.
731         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
732         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
733         are done with it.
734
735         (ae_kill): Rename to st_kill, update users.
736         (ae_gen): Rename to st_avloc, update users.
737         (transp): Rename to st_transp, update users.
738         (pre_insert_map): Rename to st_insert_map, update users.
739         (pre_delete_map): Rename to st_delete_map, update users.
740         (insert_store, build_store_vectors, free_store_memory,
741         one_store_motion_pass): Update for abovementioned changes.
742
743         (gcse_subst_count, gcse_create_count): Remove.
744         (one_store_motion_pass): New statistics counters "n_stores_deleted"
745         and "n_stores_created", local variables.
746
747         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
748         use for_each_rtx.
749
750         (regvec, compute_store_table_current_insn): Remove.
751         (reg_set_info, reg_clear_last_set): Remove.
752         (compute_store_table): Use DF caches instead of local dataflow
753         solvers.
754
755 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
756
757         * c-objc-common.c (c_tree_printer): Print identifiers with
758         pp_identifier, not pp_string.  Mark "({anonymous})" for
759         translation.
760         * c-pretty-print.c (pp_c_ws_string): New.
761         (pp_c_cv_qualifier, pp_c_type_specifier,
762         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
763         pp_c_storage_class_specifier, pp_c_function_specifier,
764         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
765         pp_c_primary_expression, pp_c_postfix_expression,
766         pp_c_unary_expression, pp_c_shift_expression,
767         pp_c_relational_expression, pp_c_equality_expression,
768         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
769         use pp_string and pp_c_ws_string in place of pp_identifier and
770         pp_c_identifier for non-identifiers.  Mark English strings for
771         translation.
772         * c-pretty-print.h (pp_c_ws_string): Declare.
773
774 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
775             Roland McGrath <roland@redhat.com>
776
777         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
778         (ENABLE_LD_BUILDID): New configuration option.
779         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
780         (LINK_BUILDID_SPEC): New macro.
781         (init_spec): If defined, prepend it between LINK_EH_SPEC and
782         link_spec.
783         * doc/install.texi: Document --enable-linker-build-id option.
784         * configure: Rebuild.
785         * config.in: Rebuild.
786
787 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
788
789         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
790         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
791         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
792         MIPS_GP_SAVE_AREA_SIZE.
793         * config/mips/mips.c (struct mips_frame_info): Update comment
794         before arg_pointer_offset and hard_frame_pointer_offset.
795         (mips_compute_frame_info): Update diagram before function: to
796         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
797         indicate the position of frame_pointer_rtx with -fstack-protector and
798         to show args_size.  Don't allocate cprestore area for leaf functions
799         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
800         cprestore_size.
801         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
802
803 2009-04-30  Michael Matz  <matz@suse.de>
804
805         PR tree-optimization/39955
806         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
807
808 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
809
810         * ira.c (setup_cover_and_important_classes):  Use safe macro
811         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
812         directly.
813         * genpreds.c (write_tm_preds_h):  Output suitable definition of
814         REG_CLASS_FOR_CONSTRAINT.
815
816 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
817
818         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
819         instead of an int.
820         * bitmap.c (bitmap_descriptor): Likewise.
821         * ggc-common.c (loc_descriptor): Likewise.
822         * varray.c (varray_descriptor): Likewise.
823         * vec.c (vec_descriptor): Likewise.
824
825 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
826
827         * Makefile.in (dce.o): Add $(EXCEPT_H).
828         * dce.c: Include except.h and delete redundant vector definitions.
829         (deletable_insn_p): Return false for non-call insns that can throw
830         if DF is running.
831
832 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
833
834         * gcse.c (ae_gen): Remove.
835         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
836         and make non-static function to make it available in store-motion.c.
837         Update call sites with search-and-replace.
838         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
839         extract_mentioned_regs, extract_mentioned_regs_helper,
840         find_moveable_store, compute_store_table, load_kills_store, find_loads,
841         store_killed_in_insn, store_killed_after, store_killed_before,
842         build_store_vectors, insert_insn_start_basic_block, insert-store,
843         remove_reachable_equiv_notes, replace_store_insn, delete_store,
844         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
845         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
846         * store-motion.c: ...new file.  Also copy data structures from gcse.c
847         and clean up to remove parts not used by store motion.
848         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
849         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
850
851 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
852
853         PR target/38571
854         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
855         when optimizing for size.
856
857 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
858
859         * gcse.c (gcse_constant_p): Fix typo in last change.
860
861 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
862
863         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
864
865 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
866
867         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
868
869 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
870
871         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
872         CONST_HIGH_PART result.
873
874 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
875
876         * config/avr/avr.c (initial_elimination_offset): Rename to
877         avr_initial_elimination_offset.
878         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
879         change return type to bool.
880         (avr_can_eliminate): New function.
881         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
882         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
883         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
884         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
885         avr_initial_elimination_offset.
886         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
887         (avr_initial_elimination_offset): Define.
888
889 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
890             Steven Bosscher  <steven@gcc.gnu.org>
891
892         PR rtl-optimization/39938
893         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
894         * cfgrtl.c: Include insn-attr.h.
895         (rest_of_pass_free_cfg): New function.
896         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
897         * resource.c (init_resource_info): Remove call to df_analyze.
898
899 2009-04-29  Richard Guenther  <rguenther@suse.de>
900
901         PR target/39943
902         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
903         allow conversion to signed integers.
904
905 2009-04-29  Richard Guenther  <rguenther@suse.de>
906
907         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
908         shifts of floating point vectors if the shift amount is
909         a constant multiple of the element size.
910
911 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
912             Michael Matz  <matz@suse.de>
913
914         PR middle-end/39927
915         PR bootstrap/39929
916         * tree-outof-ssa.c (emit_partition_copy): New function.
917         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
918         insert_part_to_rtx_on_edge): Perform the partition base var
919         copy using emit_partition_copy.
920         (insert_value_copy_on_edge): Convert constants to the right mode.
921         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
922         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
923
924 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
925
926         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
927         scan backwards to try to find a constant to initialize it.
928
929         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
930         insn before the loop_end instruction, don't look past labels.
931
932 2009-04-29  Richard Guenther  <rguenther@suse.de>
933
934         PR middle-end/39937
935         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
936         loose type conversions.
937         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
938         stmts only if there are no uses of its definition.
939
940 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
941
942         * config/bfin/bfin.h (splitting_loops): Declare.
943         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
944         Reorder bit definitions to be ascending.
945         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
946         * config/bfin/bfin.c (splitting_loops): New variable.
947         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
948         (struct loop_info): Remove members INIT and LOOP_INIT.
949         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
950         the LSETUP sequence.  Allow LC to be loaded from any register, but
951         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
952         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
953         set to 1.
954         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
955         of reload_completed.
956
957         From Jie Zhang:
958         * config/bfin/bfin.md (movsi_insn): Refine constraints.
959
960 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
961
962         * Makefile.in (PLUGIN_VERSION_H): New.
963         (OBJS-common): Remove plugin-version.o.
964         (plugin.o): Depend on (PLUGIN_VERSION_H).
965         (plugin-version.o): Remove.
966         * configure: Regenerate
967         * configure.ac: Create plugin-version.h.
968         * gcc-plugin.h (plugin_gcc_version): Remove.
969         (plugin_default_version_check): Change signature.
970         * plugin-version.c: Remove.
971         * plugin.c: Include plugin-version.h.
972         (str_plugin_gcc_version_name): Remove.
973         (try_init_one_plugin): Pass gcc version to plugin_init.
974         (plugin_default_version_check): Both gcc and plugin versions are now
975         arguments.
976
977 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
978         
979         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
980         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
981         Remove special case testing for last insn of inner loops. Don't fail
982         if the loop ends with a jump, emit an extra nop instead.
983
984         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
985         DREGS rather than comparing directly.  Remove code that tries to
986         account for latencies.
987
988 2009-04-29  Richard Guenther  <rguenther@suse.de>
989
990         PR tree-optimization/39941
991         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
992         eliminating an indirect call.
993
994 2009-04-29  Richard Guenther  <rguenther@suse.de>
995
996         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
997         parameter.  Allow invariants as base if !require_lvalue.
998         (verify_gimple_assign_single): Adjust.
999
1000 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1001
1002         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1003         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
1004         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1005         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
1006         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1007         a VEC_SELECT.
1008         * config/bfin/bfin.c (bfin_expand_builtin,
1009         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
1010
1011 2009-04-28  Richard Guenther  <rguenther@suse.de>
1012
1013         * tree-vect-loop.c (get_initial_def_for_induction): Use
1014         correct types for pointer increment.
1015
1016 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1017
1018         * toplev.c (print_version): Update GMP version string calculation.
1019
1020 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1021
1022         PR rtl-optimization/39938
1023         * resource.c (init_resource_info): Add call to df_analyze.
1024
1025 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1026
1027         * config/alpha/alpha.md (usegp): Cast the result of
1028         alpha_find_lo_sum_using_gp to enum attr_usegp.
1029         * config/alpha/alpha.c (override_options): Remove end-of-structure
1030         marker element from cpu_table.  Use array size of cpu_table to handle
1031         -mcpu and -mtune options.
1032         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1033
1034 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
1035
1036         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1037         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
1038         tune_32 and tune_64.
1039         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1040         support on PowerPC.
1041         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1042         * config/rs6000/option-defaults.h: ... here.  New file.
1043         (OPT_64, OPT_32): Define.
1044         (MASK_64BIT): Define to 0 if not already defined.
1045         (OPT_ARCH64, OPT_ARCH32): Define.
1046         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1047         and tune_64.
1048
1049 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1050
1051         * config/arm/arm.c (arm_override_options): Emit error on using
1052         fpa with AAPCS.
1053
1054 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1055
1056         PR rtl-optimization/39914
1057         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1058         registers for allocnos created from user-defined variables only
1059         when not optimizing.
1060
1061 2009-04-28  Richard Guenther  <rguenther@suse.de>
1062
1063         PR middle-end/39937
1064         * fold-const.c (fold_binary): Use distribute_real_division only
1065         on float types.
1066
1067 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
1068
1069         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1070         add hpux-stdint.h to tm_file.
1071         (hppa[12]*-*-hpux11*): Ditto.
1072         (ia64*-*-hpux*): Ditto.
1073         * config/hpux-stdint.h: New.
1074         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
1075         __STDC_EXT__ for all compiles.
1076         * config/pa/pa-hpux.h: Ditto.
1077         * config/pa/pa-hpux10.h: Ditto.
1078         * config/pa/pa-hpux11.h: Ditto.
1079
1080 2009-04-28  Catherine Moore  <clm@codesourcery.com>
1081
1082         * debug.h (set_name): Add comment.
1083
1084 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
1085
1086         PR target/39929
1087         * config/darwin.c (machopic_gen_offset): Check
1088         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
1089         * config/arm/arm.c (require_pic_register): Likewise.
1090
1091 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
1092
1093         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
1094         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
1095         m32c_promote_prototypes): Delete.
1096
1097 2009-04-28  Michael Matz  <matz@suse.de>
1098
1099         PR middle-end/39922
1100         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
1101         constants.
1102
1103 2009-04-28  Richard Guenther  <rguenther@suse.de>
1104
1105         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
1106
1107 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1108
1109         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
1110         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
1111         * config/arm/arm-tune.md: Regenerate.
1112
1113 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
1114
1115         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
1116         block if there are complex incoming edges.
1117         (sel_merge_blocks): Remove useless assert.
1118         (sel_redirect_edge_and_branch): Check that edge was redirected.
1119         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1120         (sel_find_rgns): Delete declaration.
1121         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1122         the region when it is not a preheader.
1123
1124 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1125
1126         PR c/39323
1127         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1128
1129 2009-04-28  Richard Guenther  <rguenther@suse.de>
1130
1131         * tree.h (SSA_NAME_VALUE): Remove.
1132         (struct tree_ssa_name): Remove value_handle member.
1133         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1134         array for jump threading.
1135         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1136         SSA_NAME_VALUEs.
1137         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1138         * tree-flow.h (threadedge_initialize_values): Declare.
1139         (threadedge_finalize_values): Likewise.
1140         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1141         (SSA_NAME_VALUE): Define.
1142         (threadedge_initialize_values): New function.
1143         (threadedge_finalize_values): Likewise.
1144         * tree-ssa-dom.c (ssa_name_values): New global variable.
1145         (SSA_NAME_VALUE): Define.
1146         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
1147
1148 2009-04-28  Ira Rosen  <irar@il.ibm.com>
1149
1150         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1151         Use REPORT_VECTORIZED_LOCATIONS instead 
1152         REPORT_VECTORIZED_LOOPS.
1153         * tree-vectorizer.c (vect_verbosity_level): Make static.
1154         (vect_loop_location): Rename to vect_location.
1155         (vect_set_verbosity_level): Update comment.
1156         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1157         and vect_location.
1158         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1159         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1160         instead REPORT_UNVECTORIZED_LOOPS.
1161         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1162         vect_loop_def to vect_external_def and vect_internal_def.
1163         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
1164         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
1165         REPORT_UNVECTORIZED_LOCATIONS.
1166         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1167         and vect_used_in_loop and to vect_unused_in_scope and 
1168         vect_used_in_scope.
1169         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1170         (vect_verbosity_level): Remove declaration.
1171         (vect_analyze_operations): Likewise.
1172         (vect_analyze_stmt): Declare.
1173         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1174         REPORT_UNVECTORIZED_LOCATIONS.
1175         (vect_get_loop_niters): Fix indentation.
1176         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1177         (vect_analyze_loop_operations): New function.
1178         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1179         vect_analyze_operations.
1180         (vect_is_simple_reduction): Use new names.
1181         (vectorizable_live_operation, vect_transform_loop): Likewise.
1182         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1183         specify whether the data references can be a part of interleaving chain.
1184         (vect_analyze_data_ref_dependence): Use new names.
1185         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1186         (vect_create_addr_base_for_vector_ref): Remove redundant code.
1187         * tree-vect-patterns.c (widened_name_p): Use new names.
1188         (vect_recog_dot_prod_pattern): Likewise.
1189         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1190         (process_use, vect_mark_stmts_to_be_vectorized, 
1191         vect_model_simple_cost, vect_model_store_cost,
1192         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1193         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1194         vectorizable_operation, vectorizable_type_demotion,
1195         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1196         vectorizable_condition): Likewise.
1197         (vect_analyze_operations): Split into vect_analyze_loop_operations
1198         and ...
1199         (vect_analyze_stmt): ... new function.
1200         (new_stmt_vec_info): Use new names.
1201         (vect_is_simple_use): Use new names and fix comment.
1202         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1203         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1204
1205 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1206
1207         PR target/39911
1208         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1209         and integer modes for x87 operands.  Do not ICE for unsupported size,
1210         generate error instead.  Generate error for unsupported operand types.
1211         ['z']: Do not handle HImode memory operands specially.  Warning
1212         for floating-point operands.  Fallthru to 'Z' for unsupported operand
1213         types.  Do not ICE for unsupported size, generate error instead.
1214         (output_387_binary_op): Use %Z to output operands.
1215         (output_fp_compare): Ditto.
1216         (output_387_reg_move): Ditto.
1217
1218 2009-04-28  Ben Elliston  <bje@au.ibm.com>
1219
1220         PR c++/35652
1221         Revert:
1222
1223         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1224
1225         * builtins.c (c_strlen): Do not warn here.
1226         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1227         * c-common.c (pointer_int_sum): Take an explicit location.
1228         Warn about offsets out of bounds.
1229         * c-common.h (pointer_int_sum): Adjust declaration.
1230
1231 2009-04-27  Ian Lance Taylor  <iant@google.com>
1232
1233         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1234         names to symkind.
1235         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1236         * df-core.c (df_set_flags): Change return type to int.  Change
1237         type of old_flags to int.
1238         (df_clear_flags): Likewise.
1239         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1240         (df_get_conditional_uses): Likewise.
1241         * df.h (df_set_flags, df_clear_flags): Update declarations.
1242         * dwarf2out.c (struct indirect_string_node): Change type of form
1243         field to enum dwarf_form.
1244         (AT_string_form): Change return type to enum dwarf_form.
1245         * fixed-value.c (fixed_compare): Add cast to enum type.
1246         * fwprop.c (update_df): Change 0 to VOIDmode.
1247         * gensupport.c: Change 0 to UNKNOWN.
1248         * gimple.h (gimple_cond_code): Add cast to enum type.
1249         * haifa-sched.c (reemit_notes): Add cast to enum type.
1250         * hooks.c (hook_int_void_no_regs): Remove function.
1251         * hooks.h (hook_int_void_no_regs): Remove declaration.
1252         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1253         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1254         * real.c (real_arithmetic): Add cast to enum type.
1255         (real_compare): Likewise.
1256         * target.h (struct gcc_target): Change return type of
1257         branch_target_register_class to enum reg_class.
1258         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1259         default_branch_target_register_class.
1260         * targhooks.c (default_branch_target_register_class): New function.
1261         * targhooks.h (default_branch_target_register_class): Declare.
1262         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1263         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1264         cast to int.
1265         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1266         ERROR_MARK.
1267         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1268         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1269         * tree-vect-stmts.c (supportable_widening_operation): Don't
1270         initialize icode1 and icode2.
1271         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1272         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1273         and to STD_C89.
1274         (cmn_err_flag_specs): Change 0 to STD_C89.
1275         (cmn_err_char_table): Likewise.
1276         * config/arm/arm.c (get_arm_condition_code): Change type of code
1277         to enum arm_cond_code.
1278         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1279         (IWMMXT_BUILTIN2): Likewise.
1280         (neon_builtin_type_bits): Don't define typedef.
1281         (neon_builtin_datum): Change type of bits field to int.
1282         (arm_expand_neon_args): Add cast to enum type.
1283         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1284         TLS_MODEL_NONE.
1285         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1286         casts to enum type.
1287         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1288         MIPS_FP_COND_f.
1289         * config/mips/mips.md (jal_macro): Return enum constant.
1290         (single_insn): Likewise.
1291         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1292         CODE_FOR_nothing.
1293         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1294         casts to enum type.
1295         * config/s390/s390.c (s390_tune_flags): Change type to int.
1296         (s390_arch_flags): Likewise.
1297         (s390_handle_arch_option): Change flags field of struct pta to int.
1298         * config/s390/s390.h (s390_tune_flags): Update declaration.
1299         (s390_arch_flags): Likewise.
1300         * config/sh/sh.c (prepare_move_operands): Compare
1301         tls_symbolic_operand result with enum constant.
1302         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1303         (sh_expand_prologue): Add cast to enum type.
1304         (sh_expand_epilogue): Likewise.
1305         (tls_symbolic_operand): Change return type to enum tls_model.
1306         (fpscr_set_from_mem): Add cast to enum type.
1307         (legitimize_pic_address): Compare tls_symbolic_operand result with
1308         enum constant.
1309         (sh_target_reg_class): Change return type to enum reg_class.
1310         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1311         PROCESSOR_xxx.
1312         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1313         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1314         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1315         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1316         (delayed_branch, tls_call_delay): Likewise.
1317         (eligible_for_sibcall_delay): Likewise.
1318         (eligible_for_return_delay): Likewise. 
1319         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1320         (spu_expand_builtin_1): Likewise.
1321
1322         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1323         for all types of conversions.
1324         (output_init_element): Issue -Wc++-compat warning if needed when
1325         initializing a bitfield with enum type.
1326         * c-parser.c (c_parser_expression): Set original_type to
1327         original_type of right hand operand of comman operator.
1328
1329 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1330
1331         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1332         grammar nits.
1333         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1334         * doc/cpp.texi (Standard Predefined Macros)
1335         (Implementation-defined behavior): Likewise.
1336         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1337         * doc/gimple.texi (GIMPLE Exception Handling)
1338         (@code{GIMPLE_ASSIGN}): Likewise.
1339         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1340         * doc/invoke.texi (Warning Options, Optimize Options)
1341         (AVR Options, Darwin Options): Likewise.
1342         (Optimize Options): Reformulate -fwhole-program description.
1343         * doc/loop.texi (Lambda): Likewise.
1344         * doc/md.texi (Output Template, Define Constraints)
1345         (Standard Names, Insn Splitting): Likewise.
1346         * doc/options.texi (Option properties): Likewise.
1347         * doc/passes.texi (Tree-SSA passes): Likewise.
1348         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1349         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1350         (File Names and DBX): Likewise.
1351         * doc/trouble.texi (Incompatibilities): Likewise.
1352
1353 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1354
1355         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1356         instruction is correct.
1357
1358 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1359
1360         Allow non-constant arguments to conversion intrinsics.
1361         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1362         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1363         * spu.c (print_operand): Handle 'v' and 'w'.
1364         (exp2_immediate_p, spu_gen_exp2): Define.
1365         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1366         spu_convtf_1): Update parameter descriptions.
1367         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1368         * constraints.md ('v', 'w'): New.
1369         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1370         Remove.
1371         (i2f, I2F): New define_mode_attr.
1372         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1373         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1374         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1375         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1376         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1377         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1378         patterns for combine.
1379
1380 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1381
1382         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1383         (cprop, hoist, pre, store_motion): New debug counters.
1384         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1385         is not an RTL pass anymore.
1386         (pass_profiling): Remove extern decl for pass removed in 2005.
1387         (pass_gcse, pass_jump_bypass): Remove.
1388         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1389         to 0 for clean state.
1390         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1391         * cse.c (gate_handle_cse_after_global_opts,
1392         rest_of_handle_cse_after_global_opts): New functions.
1393         (pass_cse_after_global_opts): New pass, does local CSE.
1394         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1395         (TV_CPROP): New timevar.
1396         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1397         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1398         (gcse_main, recompute_all_luids): Remove.
1399         (compute_hash_table_work): Call max_reg_num instead of reading
1400         max_gcse_regno.
1401         (cprop_jump): Don't set run_jump_opt_after_gcse.
1402         (constprop_register): Always allow to alter jumps.
1403         (cprop_insn): Likewise.
1404         (do_local_cprop): Likewise.
1405         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1406         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1407         (find_implicit_sets): Add note about missed optimization opportunity.
1408         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1409         pass_rtl_cprop execute function.
1410         Don't bother tracking the pass number, each pass gets its own dumpfile
1411         now anyway.
1412         Always allow to alter jumpsand bypass jumps.
1413         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1414         will just find no suitable set.
1415         (pre_edge_insert): Fix dumping, this function is for PRE only.
1416         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1417         pass_rtl_pre execute function.
1418         (hoist_code): Return non-zero if something changed.  Keep track of
1419         substitutions and insertions for statistics gathering similar to PRE.
1420         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1421         called from the pass_rtl_hoist execute function.  Show pass statistics.
1422         (compute_store_table): Use max_reg_num directly instead of using the
1423         formerly global max_gcse_regno.
1424         (build_store_vectors): Likewise.
1425         (replace_store_insn): Fix dumping.
1426         (store_motion): Rename to ...
1427         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1428         pass, called from the pass_rtl_store_motion execute function.  Keep
1429         track of substitutions and insertions for statistics gathering similar
1430         to PRE.
1431         (bypass_jumps): Remove, fold interesting bits into ...
1432         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1433         from the pass_rtl_cprop execute function.
1434         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1435         pass_jump_bypass): Remove.
1436         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1437         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1438         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1439         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1440         (gate_rtl_store_motion, execute_rtl_store_motion,
1441         pass_rtl_store_motion): New.
1442         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1443         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1444         * passes.c (init_optimization_passes): Remove pass_gcse and
1445         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1446         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1447         instead of pass_jump_bypass.
1448
1449 2009-04-27  Richard Guenther  <rguenther@suse.de>
1450
1451         PR middle-end/39928
1452         * gimplify.c (gimplify_expr): If we are required to create
1453         a temporary make sure it ends up as register.
1454
1455 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1456
1457         PR target/39903
1458         * config/i386/i386.c (construct_container): Don't call
1459         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1460         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1461
1462 2009-04-27  Michael Matz  <matz@suse.de>
1463
1464         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1465         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1466         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1467         (dump_replaceable_exprs): Take a bitmap.
1468         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1469         array.
1470         (expand_gimple_basic_block): Likewise.
1471         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1472         replaceable_expressions member a bitmap.
1473         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1474         (mark_replaceable): Likewise.
1475         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1476         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1477
1478 2009-04-27  Richard Guenther  <rguenther@suse.de>
1479
1480         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1481         (verify_stmts): Dispatch to gimple/type verification code.
1482         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1483         issue with call argument types.
1484
1485 2009-04-27  Michael Matz  <matz@suse.de>
1486
1487         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1488         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1489         to above.
1490
1491 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1492             Eric Botcazou  <ebotcazou@adacore.com>
1493
1494         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1495         a label's basic block.
1496         (mark_target_live_regs): Tidy and rework obsolete comments.
1497         Change back DF problem to LIVE.  If a label starts a basic block,
1498         assume that all registers that used to be live then still are.
1499         (init_resource_info): If a label starts a basic block, set its
1500         BLOCK_FOR_INSN accordingly.
1501         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1502
1503 2009-04-27  Richard Guenther  <rguenther@suse.de>
1504
1505         * tree-flow-inline.h (function_ann): Remove.
1506         (get_function_ann): Likewise.
1507         * tree-dfa.c (create_function_ann): Remove.
1508         * tree-flow.h (struct static_var_ann_d): Remove.
1509         (struct function_ann_d): Likewise.
1510         (union tree_ann_d): Remove fdecl member.
1511         (function_ann_t): Remove.
1512         (function_ann, get_function_ann, create_function_ann): Remove
1513         declarations.
1514
1515 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1516
1517         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1518
1519 2009-04-27  Jan Hubicka  <jh@suse.cz>
1520
1521         * ipa-pure-const.c (struct funct_state_d): New fields
1522         state_previously_known, looping_previously_known; remove
1523         state_set_in_source.
1524         (analyze_function): Use new fields.
1525         (propagate): Avoid assumption that state_set_in_source imply
1526         nonlooping.
1527
1528         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1529         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1530         * cfgloop.h (finite_loop_p): Declare.
1531
1532 2009-04-26  Michael Matz  <matz@suse.de>
1533
1534         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1535
1536 2009-04-26  Michael Matz  <matz@suse.de>
1537
1538         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1539         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1540         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1541         pass_mark_used_blocks): Remove.
1542         * tree-optimize.c (pass_free_datastructures,
1543         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1544         * passes.c (init_optimization_passes): Don't call
1545         pass_mark_used_blocks, remove dead code.
1546
1547 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1548
1549         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1550         * tree-ssa-live.h (register_ssa_partition): Likewise.
1551
1552 2009-04-26  Michael Matz  <matz@suse.de>
1553
1554         Expand from SSA.
1555         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1556         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1557         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1558         SSA names. 
1559         (compare_pairs): Swap cost comparison.
1560         (coalesce_ssa_name): Don't use change_partition_var.
1561         * tree-nrv.c (struct nrv_data): Add modified member.
1562         (finalize_nrv_r): Set it.
1563         (tree_nrv): Use it to update statements.
1564         (pass_nrv): Require PROP_ssa.
1565         * tree-mudflap.c (mf_decl_cache_locals,
1566         mf_build_check_statement_for): Use make_rename_temp.
1567         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1568         * alias.c (find_base_decl): Handle SSA names.
1569         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1570         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1571         * rtl.h (set_reg_attrs_for_parm): Declare.
1572         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1573         to "optimized", remove unused locals at finish.
1574         (execute_free_datastructures): Make global, call
1575         delete_tree_cfg_annotations.
1576         (execute_free_cfg_annotations): Don't call
1577         delete_tree_cfg_annotations.
1578
1579         * ssaexpand.h: New file.
1580         * expr.c (toplevel): Include ssaexpand.h.
1581         (expand_assignment): Handle SSA names the same as register variables.
1582         (expand_expr_real_1): Expand SSA names.
1583         * cfgexpand.c (toplevel): Include ssaexpand.h.
1584         (SA): New global variable.
1585         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1586         (SSAVAR): New macro.
1587         (set_rtl): New helper function.
1588         (add_stack_var): Deal with SSA names, use set_rtl.
1589         (expand_one_stack_var_at): Likewise.
1590         (expand_one_stack_var): Deal with SSA names.
1591         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1592         before unique numbers.
1593         (expand_stack_vars): Use set_rtl.
1594         (expand_one_var): Accept SSA names, add asserts for them, feed them
1595         to above subroutines.
1596         (expand_used_vars): Expand all partitions (without default defs),
1597         then only the local decls (ignoring those expanded already).
1598         (expand_gimple_cond): Remove edges when jumpif() expands an
1599         unconditional jump.
1600         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1601         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1602         SSA name.
1603         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1604         members of SA; deal with PARM_DECL partitions here; expand
1605         all PHI nodes, free tree datastructures and SA.  Commit instructions
1606         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1607         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1608         info and statements at start, collect garbage at finish.
1609         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1610         (VAR_ANN_PARTITION) Remove.
1611         (change_partition_var): Don't declare.
1612         (partition_to_var): Always return SSA names.
1613         (var_to_partition): Only accept SSA names.
1614         (register_ssa_partition): Only check argument.
1615         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1616         member.
1617         (delete_var_map): Don't free it.
1618         (var_union): Only accept SSA names, simplify.
1619         (partition_view_init): Mark only useful SSA names as used.
1620         (partition_view_fini): Only deal with SSA names.
1621         (change_partition_var): Remove.
1622         (dump_var_map): Use ssa_name instead of partition_to_var member.
1623         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1624         basic blocks.
1625         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1626         (struct _elim_graph): New member const_dests; nodes member vector of
1627         ints.
1628         (set_location_for_edge): New static helper.
1629         (create_temp): Remove.
1630         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1631         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1632         (new_elim_graph): Allocate const_dests member.
1633         (clean_elim_graph): Truncate const_dests member.
1634         (delete_elim_graph): Free const_dests member.
1635         (elim_graph_size): Adapt to new type of nodes member.
1636         (elim_graph_add_node): Likewise.
1637         (eliminate_name): Likewise.
1638         (eliminate_build): Don't take basic block argument, deal only with
1639         partition numbers, not variables.
1640         (get_temp_reg): New static helper.
1641         (elim_create): Use it, deal with RTL temporaries instead of trees.
1642         (eliminate_phi): Adjust all calls to new signature.
1643         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1644         (rewrite_trees): Only do checking.
1645         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1646         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1647         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1648         contains_tree_r, MAX_STMTS_IN_LATCH,
1649         process_single_block_loop_latch, analyze_edges_for_bb,
1650         perform_edge_inserts): Remove.
1651         (expand_phi_nodes): New global function.
1652         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1653         functions, initialize new parameter, remember partitions having a
1654         default def.
1655         (finish_out_of_ssa): New global function.
1656         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1657         don't reset in_ssa_p here, don't disable TER when mudflap.
1658         (pass_del_ssa): Remove.
1659         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1660         partition members.
1661         (execute_free_datastructures): Declare.
1662         * Makefile.in (SSAEXPAND_H): New variable.
1663         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1664         * basic-block.h (commit_one_edge_insertion): Declare.
1665         * passes.c (init_optimization_passes): Move pass_nrv and
1666         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1667         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1668         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1669         (redirect_branch_edge): Deal with super block when expanding, split
1670         out jump patching itself into ...
1671         (patch_jump_insn): ... here, new static helper.
1672
1673 2009-04-26  Michael Matz  <matz@suse.de>
1674
1675         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1676         beyond num_ssa_names.
1677         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1678         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1679
1680 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1681
1682         PR inline-asm/39543
1683         * fwprop.c (forward_propagate_asm): New function.
1684         (forward_propagate_and_simplify): Propagate also into __asm, if it
1685         doesn't increase the number of referenced registers.
1686
1687         PR c/39889
1688         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1689
1690 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1691
1692         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1693         note_nonlocal_vla_type for nonlocal VLAs.
1694         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1695         contains_remapped_vars, remap_vla_decls): New functions.
1696         (convert_nonlocal_reference_stmt): If not optimizing, call
1697         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1698         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1699         if it wasn't found in var_map.
1700         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1701         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1702         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1703         declare_vars.
1704         * gimplify.c (nonlocal_vlas): New variable.
1705         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1706         referenced VLAs.
1707         (gimplify_body): Create and destroy nonlocal_vlas.
1708
1709         * dwarf2out.c (loc_descr_plus_const): New function.
1710         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1711         mem_loc_descriptor, loc_descriptor_from_tree_1,
1712         descr_info_loc, gen_variable_die): Use it.
1713
1714         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1715         !TREE_STATIC VAR_DECLs.
1716         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1717         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1718         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1719         DECL_BY_REFERENCE is valid.
1720         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1721         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1722         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1723         Copy DECL_BY_REFERENCE.
1724         (struct nesting_copy_body_data): New type.
1725         (nesting_copy_decl): New function.
1726         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1727         if they have variable length.
1728
1729 2009-04-26  Michael Matz  <matz@suse.de>
1730
1731         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1732         mark new temporaries for renaming.
1733
1734 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1735
1736         PR c/39581
1737         * c-decl.c (global_bindings_p): Return negative value.
1738         (c_variable_size): New.  Based on variable_size from
1739         stor-layout.c.
1740         (grokdeclarator): Call c_variable_size not variable_size.
1741
1742 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1743
1744         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1745
1746 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1747
1748         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1749         Redefine it to just use mingw/include.
1750         (ASM_SPEC): Rules for -m32 and -m64.
1751         (LINK_SPEC): Use Likewise.
1752         (SPEC_32): New define.
1753         (SPEC_64): Likewise.
1754         (SUB_LINK_SPEC): Likewise.
1755         (MULTILIB_DEFAULTS): New define.
1756         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1757         Add multilib options.
1758         (MULTILIB_DIRNAMES): Likewise.
1759         (MULTILIB_OSDIRNAMES): Likewise.
1760         (LIBGCC): Likewise.
1761         (INSTALL_LIBGCC): Likewise.
1762
1763 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1764
1765         PR c/39556
1766         * c-tree.h (enum c_inline_static_type): New.
1767         (record_inline_static): Declare.
1768         * c-decl.c (struct c_inline_static, c_inline_statics,
1769         record_inline_static, check_inline_statics): New.
1770         (pop_file_scope): Call check_inline_statics.
1771         (start_decl): Call record_inline_static instead of pedwarning
1772         directly for static in inline function.
1773         * c-typeck.c (build_external_ref): Call record_inline_static
1774         instead of pedwarning directly for static referenced in inline
1775         function.
1776
1777 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1778
1779         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1780         not new but only being rescanned.
1781         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1782         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1783         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1784         record_set_info, compute_set, grealloc): Remove.
1785         (recompute_all_luids): New function.
1786         (gcse_main): Don't compute sets, and don't do related memory
1787         allocations/free-ing.  If something changed before the end of the
1788         pass, update LUIDs using recompute_all_luids.
1789         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1790         (free_gcse_mem): Don't free it either.
1791         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1792         Use the df insn LUIDs.
1793         (load_killed_in_block): Likewise.
1794         (compute_hash_table_work): Don't compute reg_set_in_block.
1795         (compute_transp): Use DF_REG_DEF_CHAINs.
1796         (local_cprop_pass): Don't use compute_sets and related functions.
1797         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1798         Use get_max_uid() instead of max_cuid.
1799         (insert_insn_end_basic_block, pre_insert_copy_insn,
1800         update_ld_motion_stores): Don't try to
1801         keep reg_set tables up to date.
1802         (pre_insert_copies): Use df insn LUIDs.
1803         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1804         (reg_set_info): Don't use extra bitmap argument.
1805         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1806         information to compute regs_set_in_block.
1807         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1808         (bypass_jumps): Don't use compute_sets and friends.
1809
1810 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1811
1812         PR testsuite/39710
1813         * opts.c (undocumented_msg): Do not leave blank even with
1814         ENABLE_CHECKING.
1815
1816 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1817
1818         * c-decl.c (build_enumerator): Allow values folding to integer
1819         constants but not integer constant expressions with a pedwarn if
1820         pedantic.
1821
1822 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1823
1824         PR c/39582
1825         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1826         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1827         type is an integer constant.
1828
1829 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1830
1831         PR target/39897
1832         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1833         HImode operands.
1834
1835 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1836
1837         PR c/39564
1838         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1839         with variably modified return type and no storage class
1840         specifiers, except for the case of nested functions.  Distinguish
1841         extern declarations of functions with variably modified return
1842         types from those of objects with variably modified types.
1843
1844 2009-04-25  Jan Hubicka  <jh@suse.cz>
1845
1846         * tree.c (list_equal_p): New function.
1847         * tree.h (list_equal_p): Declare.
1848         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1849         basic_block_def, basic_block, const_basic_block): New.
1850         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1851         (redirect_eh_edge): New function.
1852         (make_eh_edge_update_phi): EH edges are not abnormal.
1853         * except.c: Include tree-flow.h.
1854         (list_match): New function.
1855         (eh_region_replaceable_by_p): New function.
1856         (replace_region): New function.
1857         (hash_type_list): New function.
1858         (hash_eh_region): New function.
1859         (eh_regions_equal_p): New function.
1860         (merge_peers): New function.
1861         (remove_unreachable_regions): Verify EH tree when checking;
1862         merge peers.
1863         (copy_eh_region_1): New function.
1864         (copy_eh_region): New function.
1865         (push_reachable_handler): New function.
1866         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1867         regions without label but with live RESX.
1868         * except.h (redirect_eh_edge_to_label): New.
1869         * tree-flow.h (redirect_eh_edge): New.
1870         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1871         basic_block_def, basic_block, const_basic_block): Remove.
1872         * Makefile.in (except.o): Add dependency on tree-flow.h
1873         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1874         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1875         Remove.
1876
1877 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1878
1879         PR bootstrap/39645
1880         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1881         on the destination of memcpy.
1882
1883 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1884
1885         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1886         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1887         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1888
1889 2009-04-25  Jan Hubicka  <jh@suse.cz>
1890
1891         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1892         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1893         to be reached by different label than left.
1894         (update_eh_edges): Update comment; remove edge_to_remove if possible
1895         and return true if suceeded.
1896         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1897         (cleanup_eh): Compute sharing map.
1898         * except.c (remove_eh_handler_and_replace): Add argument if we should
1899         update regions.
1900         (remove_unreachable_regions): Update for label sharing.
1901         (label_to_region_map): Likewise.
1902         (get_next_region_sharing_label): New function.
1903         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1904         prev_try pointers.
1905         (remove_eh_handler): Update.
1906         (remove_eh_region_and_replace_by_outer_of): New function.
1907         * except.h (struct eh_region): Add next_region_sharing_label.
1908         (remove_eh_region_and_replace_by_outer_of,
1909         get_next_region_sharing_label): Declare.
1910         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1911
1912 2009-04-25  Jan Hubicka  <jh@suse.cz>
1913
1914         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1915         insert code even if they are not critical.
1916
1917 2009-04-25  Jan Hubicka  <jh@suse.cz>
1918
1919         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1920         (gimple_can_remove_branch_p): EH edges won't remove branch by
1921         redirection.
1922         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1923         updating of non-abnormal EH edges.
1924         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1925         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1926         (split_critical_edges): Split also edges where emitting code on them
1927         will lead to splitting later.
1928
1929 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1930             H.J. Lu  <hongjiu.lu@intel.com>
1931
1932         PR target/39590
1933         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1934         the configured assembler supports fildq and fistpq mnemonics.
1935         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1936         * configure: Regenerated.
1937         * config.in: Ditto.
1938
1939         * config/i386/i386.c (print_operand): Handle 'Z'.
1940         ['z']: Remove handling of special fild/fist suffixes.
1941         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1942         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1943         suffix of fild insn.
1944         (*floatsi<mode>2_vector_mixed): Ditto.
1945         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1946         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1947         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1948         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1949         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1950
1951 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1952  
1953         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1954         the source of a set operation.
1955
1956 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1957
1958         * target.h (struct gcc_target): Add case_values_threshold field.
1959         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1960         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1961         * targhooks.c (default_case_values_threshold): New function.
1962         * targhooks.h (default_case_values_threshold): Declare function.
1963         * stmt.c (expand_case): Use case_values_threshold target hook.
1964         * expr.h (case_values_threshold): Remove declartation.
1965         * expr.c (case_values_threshold): Remove function.
1966         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1967
1968         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1969         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1970         (avr_case_values_threshold): Declare as static.
1971         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1972
1973         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1974         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1975         (mn10300_case_values_threshold): New function.
1976
1977 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1978
1979         * ira.c (setup_cover_and_important_classes): Add enum cast.
1980
1981 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1982
1983         * genpreds.c (write_enum_constraint_num): Output definition of
1984         CONSTRAINT_NUM_DEFINED_P macro.
1985         * ira.c (setup_cover_and_important_classes): Use
1986         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1987         
1988 2009-04-24  DJ Delorie  <dj@redhat.com>
1989
1990         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1991         __SH2A_SINGLE_ONLY__ also.
1992
1993 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1994
1995         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1996         (movdf_internal): Ditto.
1997         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1998         SFmode and DFmode constants.
1999         (ia64_print_operand): Add 'G' format for printing
2000         floating point constants.
2001
2002 2009-04-24  Richard Guenther  <rguenther@suse.de>
2003
2004         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2005         from unsigned additions.
2006
2007 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
2008
2009         * c-typeck.c (set_init_index): Allow array designators that are
2010         not integer constant expressions with a pedwarn if pedantic.
2011
2012 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2013
2014         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2015         zero if no overlap in nonzero bits between the operands.
2016
2017 2009-04-24  Ian Lance Taylor  <iant@google.com>
2018
2019         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2020         (record_dead_and_set_regs): Likewise.
2021         * df.h (struct df_mw_hardreg): Change flags field to int.
2022         (struct df_base_ref): Likewise.
2023         (struct df): Change changeable_flags field to int.
2024         * df-scan.c (df_defs_record): Change clobber_flags to int.
2025         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2026         constants rather than #define macros.
2027         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2028         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2029         (enum dwarf_calling_convention): Likewise.
2030         (enum dwarf_line_number_x_ops): Likewise.
2031         (enum dwarf_call_frame_info): Likewise.
2032         (enum dwarf_source_language): Likewise.
2033         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2034         (add_calling_convention_attribute): Likewise.
2035         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2036         (combine_comparisons): Change compcode to int.  Add cast to enum type.
2037         * genrecog.c (maybe_both_true_2): Change c to int.
2038         (write_switch): Likewise.  Add cast to enum type.
2039         * gimplify.c (gimplify_omp_for): Handle return values from
2040         gimplify_expr using MIN rather than bitwise or.
2041         (gimplify_expr): Add cast to enum type.
2042         * ipa-prop.c (update_jump_functions_after_inlining): Change
2043         IPA_BOTTOM to IPA_JF_UNKNOWN.
2044         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2045         Add casts to enum type.
2046         (setup_cover_and_important_classes): Change cl to int.  Add casts
2047         to enum type.
2048         (setup_class_translate): Change cl and mode to int.
2049         (ira_init_once): Change mode to int.
2050         (free_register_move_costs): Likewise.
2051         (setup_prohibited_mode_move_regs): Add casts to enum type.
2052         * langhooks.c (add_builtin_function_common): Rework assertion that
2053         value fits bitfield.
2054         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2055         * omega.c (omega_do_elimination): Avoid math on enum types.
2056         * optabs.c (expand_vec_shift_expr): Remove casts to int.
2057         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
2058         int local to handle integral_argment value.
2059         * regmove.c (try_auto_increment): Change PUT_MODE to
2060         PUT_REG_NOTE_KIND.
2061         * reload.c (push_secondary_reload): Add casts to enum type.
2062         (secondary_reload_class, find_valid_class): Likewise.
2063         * reload1.c (emit_input_reload_insns): Likewise.
2064         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2065         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2066         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2067         constant.
2068         * tree.c (build_common_builtin_nodes): Add casts to enum type.
2069         * tree-complex.c (complex_lattice_t): Typedef to int rather than
2070         enum type.
2071         (expand_complex_libcall): Add casts to enum type.
2072         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
2073         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
2074         with ERROR_MARK, not NUM_TREE_CODES.
2075         (vect_create_epilog_for_reduction): Likewise.
2076         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
2077         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
2078         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
2079         enum machine_mode.
2080         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
2081         vect_unused_in_loop.  Change 0 to loop_vect.
2082         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
2083         * var-tracking.c (get_init_value): Change return type to enum
2084         var_init_status.
2085         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
2086         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
2087         arm_fp_model.
2088         (arm_override_options): Add casts to enum type.
2089         (arm_emit_tls_decoration): Likewise.
2090         * config/i386/i386.c (ix86_function_specific_restore): Add casts
2091         to enum type.
2092         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
2093         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
2094         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
2095         enum type.
2096         * config/s390/s390.c (code_for_builtin_64): Change to array of
2097         enum insn_code.
2098         (code_for_builtin_31): Likewise.
2099         (s390_expand_builtin): Change code_for_builtin to enum insn_code
2100         const *.
2101         * config/sparc/sparc.c (sparc_override_options): Change value
2102         field in struct code_model to enum cmodel.  In initializer change
2103         0 to NULL and add cast to enum type.
2104
2105         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
2106         Change all callers.  Issue a -Wc++-compat warning using
2107         lhs_origtype if necessary.
2108         (convert_for_assignment): Issue -Wc++-compat warnings about
2109         invalid conversions to enum type on assignment.
2110         * c-common.h (build_modify_expr): Update declaration.
2111
2112 2009-04-24  Nick Clifton  <nickc@redhat.com>
2113
2114         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
2115         (function_arg_advance): Likewise.
2116         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
2117         5th alternative.
2118
2119 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2120
2121         * config/s390/constraints.md ('I', 'J'): Fix condition.
2122
2123 2009-04-24  Diego Novillo  <dnovillo@google.com>
2124
2125         * gengtype-parse.c (parse_error): Add newline after message.
2126
2127 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2128
2129         * config/i386/sse.md (avxmodesuffixs): Removed.
2130         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2131         (*avx_pinsr<ssevecsize>): This.
2132
2133 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2134
2135         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2136         follow chains of regs with a single definition, and allow expressions
2137         that are function_invariant_p.
2138         (simple_rhs_p): Allow expressions that are function_invariant_p.
2139
2140 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
2141
2142         PR middle-end/39867
2143         * fold-const.c (fold_cond_expr_with_comparison): When folding
2144         > and >= to MAX, make sure the MAX uses the same type as the
2145         comparison's operands.
2146
2147 2009-04-24  Nick Clifton  <nickc@redhat.com>
2148
2149         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2150         addressing for DImode accesses.
2151         (frv_print_operand_address): Handle PLUS case.
2152         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
2153
2154 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
2155
2156         PR rtl-optimization/39794
2157         * alias.c (canon_true_dependence): Add x_addr argument.
2158         * rtl.h (canon_true_dependence): Adjust prototype.
2159         * cse.c (check_dependence): Adjust canon_true_dependence callers.
2160         * cselib.c (cselib_invalidate_mem): Likewise.
2161         * gcse.c (compute_transp): Likewise.
2162         * dse.c (scan_reads_nospill): Likewise.
2163         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
2164         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2165         canon_base_addr of the group, plus optional offset.
2166         (struct group_info): Rename canon_base_mem to
2167         canon_base_addr.
2168         (get_group_info): Set canon_base_addr to canon_rtx of base, not
2169         canon_rtx of base_mem.
2170
2171 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
2172
2173         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2174         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2175
2176 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2177
2178         * config/spu/spu-builtins.h: Delete file.
2179
2180         * config/spu/spu.h (enum spu_builtin_type): Move here from
2181         spu-builtins.h.
2182         (struct spu_builtin_description): Likewise.  Add GTY marker.
2183         Do not use enum spu_function_code or enum insn_code.
2184         (spu_builtins): Add extern declaration.
2185
2186         * config/spu/spu.c: Do not include "spu-builtins.h".
2187         (enum spu_function_code, enum spu_builtin_type_index,
2188         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2189         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2190         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2191         unsigned_V2DI_type_node): Move here from spu-builtins.h.
2192         (spu_builtin_types): Make static.  Add GTY marker.
2193         (spu_builtins): Add extern declaration with GTY marker.
2194         Include "gt-spu.h".
2195
2196         * config/spu/spu-c.c: Do not include "spu-builtins.h".
2197         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2198         Check programmatically whether all parameters are scalar.
2199
2200         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2201
2202 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2203
2204         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2205         assignment from the constructor either if the target is volatile.
2206
2207 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
2208
2209         * config/arm/arm.md (insv): Do not share operands[0].
2210
2211 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2212
2213         * config/vxlib-tls.c (active_tls_threads): Delete.
2214         (delete_hook_installed): New.
2215         (tls_delete_hook): Don't delete the delete hook.
2216         (tls_destructor): Delete it here.
2217         (__gthread_set_specific): Adjust installing the delete hook.
2218         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2219         __gthread_leave_tsd_dtor_context.
2220
2221 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
2222
2223         * c-format.c (gcc_tdiag_char_table): Add support for %E.
2224
2225 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
2226
2227         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2228         enum type.
2229         (alpha_rtx_costs): Ditto.
2230         (emit_unlikely_jump): Use add_reg_note.
2231         (emit_frame_store_1): Ditto.
2232         (alpha_expand_prologue): Ditto.
2233         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2234         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2235
2236 2009-04-23  Nick Clifton  <nickc@redhat.com>
2237
2238         * config/v850/v850.md (epilogue): Remove suppressed code.
2239         (return): Rename to return_simple and remove test of frame size.
2240         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2241         to gen_return_simple.
2242
2243 2009-04-22  Jing Yu  <jingyu@google.com>
2244
2245         PR testsuite/39781
2246         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2247
2248 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2249
2250         PR C/31499
2251         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2252         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2253         value is a VECTOR_CST, the element type is the element type of the
2254         vector.
2255
2256 2009-04-22  DJ Delorie  <dj@redhat.com>
2257
2258         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2259
2260 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2261
2262         * alias.c (find_base_term): Move around LO_SUM case, so that
2263         CONST falls through into PLUS/MINUS handling.
2264
2265         PR c/39855
2266         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2267         into 0, use omit_one_operand.
2268
2269 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2270
2271         * config/rs6000/linux-unwind.h (get_regs): Remove type
2272         puns. Change the type of `pc' to an array of unsigned ints and
2273         update all users.  Constify frame24.
2274
2275 2009-04-22  DJ Delorie  <dj@redhat.com>
2276
2277         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2278         declarations before code.
2279         (current_function_special_page_vector): Likewise.
2280         (m32c_expand_insv): Silence a warning.
2281
2282 2009-04-21  Taras Glek  <tglek@mozilla.com>
2283
2284         * alias.c: Update GTY annotations to new syntax.
2285         * basic-block.h: Likewise.
2286         * bitmap.h: Likewise.
2287         * c-common.h: Likewise.
2288         * c-decl.c: Likewise.
2289         * c-parser.c: Likewise.
2290         * c-pragma.c: Likewise.
2291         * c-tree.h: Likewise.
2292         * cfgloop.h: Likewise.
2293         * cgraph.h: Likewise.
2294         * config/alpha/alpha.c: Likewise.
2295         * config/arm/arm.h: Likewise.
2296         * config/avr/avr.h: Likewise.
2297         * config/bfin/bfin.c: Likewise.
2298         * config/cris/cris.c: Likewise.
2299         * config/darwin.c: Likewise.
2300         * config/frv/frv.c: Likewise.
2301         * config/i386/i386.c: Likewise.
2302         * config/i386/i386.h: Likewise.
2303         * config/i386/winnt.c: Likewise.
2304         * config/ia64/ia64.h: Likewise.
2305         * config/iq2000/iq2000.c: Likewise.
2306         * config/mips/mips.c: Likewise.
2307         * config/mmix/mmix.h: Likewise.
2308         * config/pa/pa.c: Likewise.
2309         * config/pa/pa.h: Likewise.
2310         * config/rs6000/rs6000.c: Likewise.
2311         * config/s390/s390.c: Likewise.
2312         * config/sparc/sparc.c: Likewise.
2313         * config/xtensa/xtensa.c: Likewise.
2314         * cselib.h: Likewise.
2315         * dbxout.c: Likewise.
2316         * dwarf2out.c: Likewise.
2317         * except.c: Likewise.
2318         * except.h: Likewise.
2319         * fixed-value.h: Likewise.
2320         * function.c: Likewise.
2321         * function.h: Likewise.
2322         * gimple.h: Likewise.
2323         * integrate.c: Likewise.
2324         * optabs.c: Likewise.
2325         * output.h: Likewise.
2326         * real.h: Likewise.
2327         * rtl.h: Likewise.
2328         * stringpool.c: Likewise.
2329         * tree-data-ref.c: Likewise.
2330         * tree-flow.h: Likewise.
2331         * tree-scalar-evolution.c: Likewise.
2332         * tree-ssa-address.c: Likewise.
2333         * tree-ssa-alias.h: Likewise.
2334         * tree-ssa-operands.h: Likewise.
2335         * tree.c: Likewise.
2336         * tree.h: Likewise.
2337         * varasm.c: Likewise.
2338         * varray.h: Likewise.
2339         * vec.h: Likewise.
2340         * coretypes.h: Do not define GTY macro if it is already defined.
2341         * doc/gty.texi: Update GTY documentation to new syntax.
2342         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2343         annotations on structs.
2344         * gengtype-parse.c: Likewise.
2345
2346 2009-04-22  Mark Heffernan  <meheff@google.com>
2347
2348         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2349
2350 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2351
2352         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2353         where appropriate.
2354
2355 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2356
2357         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2358         the same as a PLUS without a shift.  Increase the cost of a
2359         CONST_INT in MULT.
2360
2361 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2362
2363         * Makefile.in: Update dependencies.
2364         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2365         * errors.h: Remove bogus comment about compatibility.
2366         (warning): Update declaration.
2367         * genautomata.c: Update all calls to warning.
2368         * gimple.c: Do not include errors.h. Include toplev.h.
2369         * tree-ssa-structalias.c: Do not include errors.h.
2370         * omega.c: Likewise.
2371         * tree-ssa-reassoc.c: Likewise.
2372         * config/spu/spu-c.c: Likewise.
2373         * config/spu/t-spu-elf: Update dependencies.
2374
2375 2009-04-22  Richard Guenther  <rguenther@suse.de>
2376
2377         PR tree-optimization/39824
2378         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2379         make sure the types are compatible.
2380
2381 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2382
2383         PR c++/14875
2384         * c-common.c (c_parse_error): Take a token_flags parameter.
2385         Use token_type for the token type instead.
2386         Pass token_flags to cpp_type2name.
2387         * c-common.h (c_parse_error): Update declaration.
2388         * c-parser.c (c_parser_error): Pass 0 as token flags.
2389
2390 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2391
2392         PR rtl-optimization/39580
2393         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2394         
2395 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2396
2397         * function.c (expand_function_end): Do not emit a jump to the "naked"
2398         return label for fall-through returns.
2399         * except.c (sjlj_emit_function_exit): Always place the call to the
2400         unregister function at the location installed by expand_function_end.
2401
2402 2009-04-22  Richard Guenther  <rguenther@suse.de>
2403
2404         PR tree-optimization/39845
2405         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2406         (gen_inbound_check): Likewise.
2407
2408 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2409
2410         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2411         padding for PPC.
2412         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2413         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2414
2415 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2416
2417         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2418         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2419         shift counts to avoid out-of-bounds array accesses.
2420
2421 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2422
2423         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2424         (Pmode): Move above.
2425
2426 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2427
2428         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2429         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2430         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2431         * config/alpha/alpha.h: Ditto.
2432         * config/alpha/alpha.md: Ditto.
2433         * config/alpha/constraints.md: Ditto.
2434         * config/alpha/predicates.md: Ditto.
2435         
2436 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2437
2438         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2439         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2440         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2441         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2442         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2443         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2444         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2445         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2446         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2447         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2448         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2449         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2450         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2451         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2452         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2453         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2454         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2455         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2456         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2457         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2458         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2459         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2460         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2461         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2462         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2463         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2464         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2465
2466 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2467
2468         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2469         references from comments.
2470         * cfgbuild.c: (count_basic_blocks): Delete.
2471         (find_basic_blocks_1): Delete.
2472         (find_basic_blocks): Delete.
2473         * except.c (finish_eh_generation): Make static.  Move comment from
2474         except.h here.  Remove find_basic_blocks references from comments.
2475         * except.h (finish_eh_generation): Delete.
2476         * basic-block.h (find_basic_blocks): Delete.
2477         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2478
2479 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2480
2481         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2482         (sdbout_parms):  Likewise.
2483
2484 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2485
2486         * config/sh/sh.c (prepare_cbranch_operands): Use
2487         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2488         (expand_cbranchdi4): Likewise.
2489         (from_compare): Add cast to enum type.
2490         (expand_cbranchsi4): Use add_reg_note.
2491         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2492         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2493         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2494         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2495         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2496         instead of CODE_FOR_nothing.
2497         (cbranchdi4): Likewise.  Fix the order of arguments for
2498         gen_rtx_fmt_ee.
2499         (push_fpscr): Use add_reg_note.
2500         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2501         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2502         
2503 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2504
2505         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2506         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2507         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2508         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2509         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2510         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2511         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2512         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2513         config/alpha/x-vms, config/arc/t-arc,
2514         config/arm/README-interworking, config/arm/arm-c.c,
2515         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2516         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2517         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2518         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2519         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2520         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2521         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2522         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2523         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2524         config/cris/t-elfmulti, config/crx/t-crx,
2525         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2526         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2527         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2528         config/h8300/t-h8300, config/i386/athlon.md,
2529         config/i386/darwin-libgcc.10.4.ver,
2530         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2531         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2532         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2533         config/i386/t-linux64, config/i386/t-nwld,
2534         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2535         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2536         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2537         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2538         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2539         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2540         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2541         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2542         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2543         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2544         config/m68k/t-uclinux, config/mcore/t-mcore,
2545         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2546         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2547         config/mips/crtn.asm, config/mips/irix-crti.asm,
2548         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2549         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2550         config/mips/mips-fixed.md, config/mips/sb1.md,
2551         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2552         config/mips/t-iris6, config/mips/t-isa3264,
2553         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2554         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2555         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2556         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2557         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2558         config/mn10300/t-linux, config/mn10300/t-mn10300,
2559         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2560         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2561         config/picochip/libgccExtras/clzsi2.asm,
2562         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2563         config/rs6000/darwin-libgcc.10.4.ver,
2564         config/rs6000/darwin-libgcc.10.5.ver,
2565         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2566         config/rs6000/t-aix43, config/rs6000/t-aix52,
2567         config/rs6000/t-darwin, config/rs6000/t-fprules,
2568         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2569         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2570         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2571         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2572         config/rs6000/t-rtems, config/rs6000/t-spe,
2573         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2574         config/score/t-score-elf, config/sh/divcost-analysis,
2575         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2576         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2577         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2578         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2579         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2580         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2581         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2582         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2583         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2584         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2585         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2586         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2587         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2588         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2589         * config/h8300/genmova.sh: Include copyright and license notices
2590         in generated output.
2591         * config/h8300/mova.md: Regenerate.
2592         * doc/install.texi2html: Include word "Copyright" in copyright
2593         notice and use name "Free Software Foundation, Inc.".
2594         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2595         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2596         ChangeLog-2007, ChangeLog-2008: Correct dates.
2597
2598 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2599
2600         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2601         NE_EXPR operations as well.
2602         * c-parser.c (c_parser_condition): Do not set location information on
2603         the condition.
2604         (c_parser_conditional_expression): Likewise.
2605         (c_parser_binary_expression): Set location information on operators.
2606         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2607         TRUTH_NOT_EXPR has been folded.
2608         * fold-const.c (fold_truth_not_expr): Copy location information from
2609         the incoming expression to the outgoing one.
2610         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2611         recursive calls on the LHS of the operator but pass that of the
2612         operator to recursive calls on the RHS of the operator.  Set it
2613         on the COND_EXPR.
2614         (shortcut_cond_expr): Set the locus of the operator on the second
2615         COND_EXPR and that of the expression on the first in degenerate cases.
2616         Pass the locus of the expression to calls to shortcut_cond_r.
2617         Set the locus of the 'then' block on the associated jump, if any.
2618         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2619         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2620         expression to call to gimplify_boolean_expr.
2621
2622 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2623
2624         * config.gcc: Add additional configuration for
2625         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2626         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2627         (CPP_SPEC): Redefine for allowing -municode option.
2628         (STARTFILE_SPEC): Likewise.
2629         * config/i386/t-mingw-w64: New.
2630         * config/i386/mingw-w64.opt: New.
2631         (municode): Add new target option.
2632         * doc/invoke.texi (municode): Add documentation for new option.
2633
2634 2009-04-21  Ian Lance Taylor  <iant@google.com>
2635
2636         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2637         Correct test for number of arguments.
2638         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2639
2640 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2641
2642         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2643         argument of emit_library_call.
2644
2645 2009-04-21  Richard Guenther  <rguenther@suse.de>
2646
2647         PR middle-end/39829
2648         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2649         inside VIEW_CONVERT_EXPRs.
2650
2651 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2652
2653         * tree-switch-conversion.c (build_constructors): Split a long line.
2654         (constructor_contains_same_values_p): New function.
2655         (build_one_array): Create assigns of constants if possible, do not
2656         call mark_sym_for_renaming, call update_stmt.
2657         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2658         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2659         update_stmt.
2660         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2661         find_new_referenced_vars, call update_stmt.
2662         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2663         instead of calling make_rename_temp.  Do not call
2664         find_new_referenced_vars or mark_symbols_for_renaming, call
2665         update_stmt.
2666
2667 2009-04-21  Richard Guenther  <rguenther@suse.de>
2668
2669         PR tree-optimization/39827
2670         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2671         (tree_ssa_phiprop): Pass the correct array size.
2672
2673 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2674
2675         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2676
2677 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2678
2679         PR 16202
2680         * c-typeck.c (lvalue_p): Move declaration ...
2681         * c-common.h (lvalue_p): ... to here.
2682         * c-common.c (candidate_equal_p): New.
2683         (add_tlist): Use it.
2684         (merge_tlist): Use it.
2685         (warn_for_collisions_1): Likewise.
2686         (warning_candidate_p): Accept more candidates.
2687         (verify_tree): A warning candidate can be an expression. Use
2688         candidate_equal_p.
2689
2690 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2691
2692         PR target/5267
2693         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2694         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2695         options.  Remove -mcall-solaris documentation.
2696
2697 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2698
2699         PR c++/13358
2700         * doc/invoke.texi (-Wlong-long): Update description.
2701         * c-lex (interpret_integer): Only warn if there was no previous
2702         overflow and -Wlong-long is enabled.
2703         * c-decl.c (declspecs_add_type): Drop redundant flags.
2704         * c.opt (Wlong-long): Init to -1.
2705         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2706         and front-end warn_long_long. Wlong-long only depends on other
2707         flags if it is uninitialized.
2708         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2709         the same for CPP and FE.
2710         (restore_extension_diagnostics): Likewise.
2711
2712 2009-04-20  Ian Lance Taylor  <iant@google.com>
2713
2714         Fix enum conversions which are invalid in C++:
2715         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2716         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2717         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2718         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2719         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2720         (dbxout_parms): Likewise.
2721         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2722         (df_clear_flags): Likewise.
2723         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2724         top_flag parameter to int.
2725         (df_chain_create_bb_process_use): Likewise.
2726         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2727         Remove cast.
2728         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2729         (df_ref_create_structure, df_def_record_1): Likewise.
2730         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2731         (df_notes_rescan): Change 0 to VOIDmode in function call.
2732         (df_get_call_refs, df_insn_refs_collect): Likewise.
2733         (df_bb_regs_collect): Likewise.
2734         (df_entry_block_defs_collect): Likewise.
2735         (df_exit_block_uses_collect): Likewise.
2736         * df.h: Update declarations.
2737         * double-int.c (double_int_divmod): Add cast to enum type.
2738         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2739         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2740         (based_loc_descr): Likewise.
2741         (loc_descriptor_from_tree_1): Change first_op and second_op to
2742         enum dwarf_location_atom.  Add cast to enum type.
2743         * expmed.c (init_expmed): Change 0 to SET in function call.
2744         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2745         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2746         (do_store_flag): Likewise.
2747         * fixed-value.h (struct fixed_value): Change mode to enum
2748         machine_mode.
2749         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2750         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2751         function call.
2752         (insert_insn_decl, insert_decl, insert_state): Likewise.
2753         (automata_list_finish): Likewise.
2754         * genrecog.c (process_define_predicate): Add cast to enum type.
2755         * gensupport.c (init_predicate_table): Add cast to enum type.
2756         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2757         function call.
2758         (gimple_build_call_1, gimple_build_label): Likewise.
2759         (gimple_build_goto, gimple_build_asm_1): Likewise.
2760         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2761         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2762         (enum fallback): Rename from enum fallback_t.
2763         (fallback_t): Typedef as int.
2764         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2765         GSI_SAME_STMT in function call.
2766         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2767         enum type.
2768         (setup_reg_class_relations): Likewise.
2769         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2770         (setup_prohibited_class_mode_regs): Add cast to enum type.
2771         (setup_prohibited_mode_move_regs): Likewise.
2772         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2773         (record_address_regs): Change i to enum reg_class.
2774         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2775         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2776         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2777         (GET_MODE_2XWIDER_MODE): Likewise.
2778         (GET_CLASS_NARROWEST_MODE): Likewise.
2779         * omp-low.c (expand_omp_for): Add cast to enum type.
2780         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2781         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2782         * postreload.c (reload_cse_simplify_operands): Change rclass local
2783         to enum reg_class.
2784         * predict.c (combine_predictions_for_insn): Change best_predictor
2785         and predictor to enum br_predictor.
2786         (combine_predictions_for_bb): Likewise.
2787         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2788         use SET_PREDICT_EXPR_OUTCOME.
2789         * real.c (real_arithmetic): Change icode to code in function call.
2790         * reginfo.c (init_move_cost): Add casts to enum type.
2791         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2792         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2793         enum reg_class.
2794         * reload.c (find_valid_class): Add casts to enum type.
2795         (push_reload): Change 0 to NO_REGS in function call.
2796         (find_reloads): Change this_alternative to array of enum
2797         reg_class.  Remove some now-unnecessary casts.
2798         (make_memloc): Change 0 to VOIDmode in function call.
2799         * reload1.c (reload): Change 0 to VOIDmode in function call.
2800         (eliminate_regs_1, elimination_effects): Likewise.
2801         (eliminate_regs_in_insn): Likewise.
2802         (emit_input_reload_insns): Add cast to enum type.
2803         (delete_output_reload): Change 0 to VOIDmode in function call.
2804         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2805         to enum type in function call.
2806         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2807         (SET_PREDICT_EXPR_OUTCOME): Define.
2808         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2809         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2810         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2811         (dump_function): Likewise.
2812         * tree-dump.h: Update declarations.
2813         * tree-pass.h: Update declarations.
2814         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2815         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2816         enum type.
2817         (arm_rtx_costs_1): Correct parenthesization.
2818         (arm_rtx_costs): Add casts to enum type.
2819         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2820         (vfp_emit_fstmd): Use add_rg_note.
2821         (emit_multi_reg_push, emit_sfm): Likewise.
2822         (thumb_set_frame_pointer): Likewise.
2823         (arm_expand_prologue): Likewise.
2824         (arm_regno_class): Change return type to enum reg_class.
2825         (thumb1_expand_prologue): Use add_reg_note.
2826         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2827         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2828         in function call.
2829         * config/arm/gentune.sh: Add cast to enum type.
2830         * config/arm/arm-tune.md: Rebuild.
2831         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2832         (ix86_split_fp_branch, predict_jump): Likewise.
2833         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2834         insn_code to enum rtx_code.
2835         (ix86_builtin_vectorized_function): Add cast to enum type.
2836         * config/i386/i386.md (truncdfsf2): Change slot to enum
2837         ix86_stack_slot.
2838         (truncxf<mode>2, isinf<mode>2): Likewise.
2839         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2840         enum type.
2841         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2842         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2843         (insert_bundle_state): Change 1 to INSERT in function call.
2844         (ia64_add_bundle_selector_before): Likewise.
2845         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2846         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2847         (restore_stack_nonlocal): Likewise.
2848         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2849         function call.
2850         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2851         function call.
2852         (mips_rtx_costs): Likewise.
2853         (mips_override_options): Add casts to enum type.
2854         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2855         in function call.
2856         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2857         (store_reg, set_reg_plus_d): Likewise.
2858         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2859         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2860         cast to enum type.
2861         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2862         function call.
2863         (emit_unlikely_jump): Use add_reg_note.
2864         (rs6000_emit_allocate_stack): Likewise.
2865         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2866         (output_toc): Change 1 to INSERT in function call.
2867         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2868         (rs6000_initialize_trampoline): Likewise.
2869         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2870         function call.
2871         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2872         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2873         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2874         (save_gprs): Use add_reg_note.
2875         (s390_emit_prologue): Likewise.
2876         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2877         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2878         (sparc_fold_builtin): Add cast to enum type.
2879         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2880         enum insn_code.
2881         (spu_expand_prologue): Use add_reg_note.
2882         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2883
2884 2009-04-20  Ian Lance Taylor  <iant@google.com>
2885
2886         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2887         (c_parser_postfix_expression_after_primary): Get VEC for list of
2888         arguments.  Get original types of arguments.  Call
2889         build_function_call_vec.
2890         (cached_expr_list_1, cached_expr_list_2): New static variables.
2891         (c_parser_expr_list): Change return type to VEC *.  Add
2892         p_orig_types parameter.  Change all callers.
2893         (c_parser_release_expr): New static function.
2894         (c_parser_vec_to_tree_list): New static function.
2895         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2896         call build_function_call_vec.
2897         (build_function_call_vec): New function, based on old
2898         build_function_call.
2899         (convert_arguments): Remove nargs and argarray parameters.  Change
2900         values to a VEC.  Add origtypes parameter.
2901         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2902         (convert_for_assignment): Add origtype parameter.  Change all
2903         callers.  If warn_cxx_compat, check for conversion to an enum
2904         type when calling a function.
2905         (store_init_value): Add origtype parameter.  Change all callers.
2906         (digest_init): Likewise.
2907         (struct init_node): Add origtype field.
2908         (add_pending_init): Add origtype parameter.  Change all callers.
2909         (output_init_element): Likewise.
2910         (output_pending_init_elements): Pass origtype from init_node to
2911         output_init_element.
2912         (process_init_element): Pass origtype from c_expr to
2913         output_init_element.
2914         (c_finish_return): Add origtype parameter.  Change all callers.
2915         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2916         caller.
2917         (sync_resolve_params): Likewise.
2918         (sync_resolve_return): Change params to first_param.  Change caller.
2919         (resolve_overloaded_builtins): Change params to VEC *.  Change
2920         callers.  Save first parameter around call to build_function_call_vec.
2921         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2922         callers.  Call build_function_call_vec rather than
2923         build_function_call for cleanup.
2924         * c-tree.h: Update declarations.
2925         * c-common.h: Update declarations.
2926         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2927         params to first_param.
2928         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2929         params parameter from tree to void *.
2930         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2931         Change arglist parameter to have type void *, and to be a pointer
2932         to a VEC.
2933         * config/rs6000/rs6000-protos.h
2934         (altivec_resolve_overloaded_builtin): Update declaration.
2935         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2936         fnargs parameter to have type void *, and to be a pointer to a
2937         VEC.  Call build_function_call_vec instead of
2938         build_function_call.
2939         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2940
2941 2009-04-20  Joey Ye  <joey.ye@intel.com>
2942             Xuepeng Guo  <xuepeng.guo@intel.com>
2943             H.J. Lu  <hongjiu.lu@intel.com>
2944
2945         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2946
2947         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2948         (IX86_LEA_PRIORITY): Likewise.
2949         (distance_non_agu_define): New function.
2950         (distance_agu_use): Likewise.
2951         (ix86_lea_for_add_ok): Likewise.
2952         (ix86_dep_by_shift_count): Likewise.
2953
2954         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2955         should split for LEA.
2956
2957         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2958         function.
2959         (ix86_dep_by_shift_count): Likewise.
2960
2961 2009-04-20  Richard Guenther  <rguenther@suse.de>
2962
2963         * expr.c (handled_component_p): Move ...
2964         * tree.h (handled_component_p): ... here.
2965         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2966         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2967         and REALPART_EXPR to be in one group.
2968
2969 2009-04-20  Richard Guenther  <rguenther@suse.de>
2970
2971         * basic-block.h (get_all_dominated_blocks): Declare.
2972         * dominance.c (get_all_dominated_blocks): New function.
2973         * tree-cfg.c (get_all_dominated_blocks): Remove.
2974         (remove_edge_and_dominated_blocks): Adjust.
2975         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2976         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2977         instead of recursing.
2978
2979 2009-04-20  Doug Kwan  <dougkwan@google.com>
2980
2981         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2982         (struct cgraph_node_set_def): New type.
2983         (cgraph_node_set) New type. Also declare vector functions.
2984         (struct cgraph_node_set_element_def): New type.
2985         (cgraph_node_set_element): Ditto.
2986         (cgraph_node_set_iterator): New iterator type.
2987         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2988         cgraph_node_set_remove, dump_cgraph_node_set,
2989         debug_cgraph_node_set): New prototypes.
2990         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2991         cgraph_node_set_size): New inlines.
2992         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2993         including cgraph.h.
2994         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2995         argument to function 'write_summary'.
2996         * ipa.c: Include ggc.h.
2997         (hash_cgraph_node_set_element,
2998         eq_cgraph_node_set_element, cgraph_node_set_new,
2999         cgraph_node_set_add, cgraph_node_set_remove,
3000         cgraph_node_set_find, dump_cgraph_node_set,
3001         debug_cgraph_node_set): New functions.
3002         * Makefile.in (ipa.o): Add dependency on GGC_H.
3003
3004 2009-04-20  Ira Rosen  <irar@il.ibm.com>
3005
3006         PR tree-optimization/39675
3007         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
3008         check of the return code of vect_schedule_slp. Check that
3009         stmt_vec_info still exists for the statement, before checking its
3010         vectorization type.
3011
3012 2009-04-20  Michael Matz  <matz@suse.de>
3013
3014         * Makefile.in (generated_files): Take out $(simple_generated_c).
3015
3016 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
3017
3018         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
3019         (UINTPTR_TYPE):  Likewise.
3020
3021 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3022
3023         PR c/37481
3024         * c-typeck.c (digest_init): Check for initializing an array with a
3025         string literal.
3026
3027 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3028
3029         PR c/19771
3030         * c-semantics.c (pop_stmt_list): Propagate
3031         STATEMENT_LIST_HAS_LABEL to parent statement list.
3032
3033 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
3034
3035         * config/mips/mips.h (mips_tune_attr): New macro.
3036         * config/mips/mips.md (cpu): Use it.
3037
3038 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3039
3040         PR c/38243
3041         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3042         declaring a tag.
3043
3044 2009-04-19  Diego Novillo  <dnovillo@google.com>
3045
3046         * toplev.c (compile_file): Move call to coverage_finish ...
3047         * cgraphunit.c (ipa_passes): ... here.
3048         Call cgraph_process_new_functions.
3049         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3050         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3051
3052 2009-04-19  Jan Hubicka  <jh@suse.cz>
3053
3054         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3055         cfun.
3056         (dump_cgraph_node): Dump can throw external flag.
3057         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3058
3059 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3060
3061         PR c/32061
3062         PR c++/36954
3063         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3064         * common.opt (Wlogical-op): Move from here...
3065         * c.opt (Wlogical-op): ... to here.
3066         * c-typeck.c (parser_build_binary_op): Update call to
3067         warn_logical_operator.
3068         * c-opts.c (c_common_post_options): Enable warn_logical_op with
3069         extra_warnings.
3070         * c-common.c (warn_logical_op): Update.
3071         * c-common.h (warn_logical_op): Update declaration.
3072
3073 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3074
3075         * tree.c (protected_set_expr_location): Fix formatting.
3076
3077 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3078
3079         PR c/27676
3080         * c-typeck.c (readonly_warning): new.
3081         (build_unary_op, build_modify_expr): Use readonly_warning for
3082         storing into something readonly but not const-qualified.
3083
3084 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3085
3086         PR c/22367
3087         * c-typeck.c (build_unary_op): Check for taking address of
3088         expression of type void.
3089
3090 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3091
3092         PR c/35210
3093         * c-typeck.c (build_function_call): Check for calling a function
3094         with qualified void return types.  Call require_complete_type when
3095         generating a trap.
3096
3097 2009-04-18  Jan Hubicka  <jh@suse.cz>
3098
3099         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
3100         Set nothrow flag.
3101         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
3102         can_throw_external flag.
3103         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
3104         * ipa-pure-const.c (ignore_edge): New function.
3105         (propagate): Compute order for NOTHROW computation; set NOTHROWs
3106         only over can_throw_external edges.
3107         (local_pure_const): Add nothrow flag.
3108         * ipa-utils.c (searchc): Add ignore_edge callback.
3109         (ipa_utils_reduced_inorder): Add ignore_edge callback.
3110         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
3111         (set_nothrow_function_flags): Update cgraph.
3112         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
3113
3114 2009-04-18  Richard Guenther  <rguenther@suse.de>
3115
3116         PR middle-end/39804
3117         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
3118         (fold_stmt): ... this and ...
3119         (fold_stmt_inplace): ... this.
3120         (fold_stmt_1): Fold references in calls and asms.
3121         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
3122
3123 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3124
3125         * tree-vrp.c (ssa_name_nonzero_p): Remove.
3126         * tree.h: Remove the prototype for ssa_name_nonzero_p.
3127
3128 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3129
3130         * tree.c (function_args_count): Remove.
3131         * tree.h: Remove the prototype for function_args_count.
3132
3133 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3134
3135         * tree-iterator.c (expr_only): Remove.
3136         * tree.h: Remove the prototype for expr_only.
3137
3138 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3139
3140         * reginfo.c (cannot_change_mode_set_regs): Remove.
3141         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
3142
3143 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
3144
3145         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
3146         whether operands 0 and 1 overlaps.
3147
3148 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3149
3150         PR middle-end/36902
3151         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
3152         pointer. Use warning_at instead of warning.
3153         (search_for_addr_array): Likewise.
3154         (check_array_bounds): Likewise.
3155         (check_all_array_refs): Check that the incoming edge is not in the
3156         list of edges to be removed.
3157         (check_all_array_refs): Avoid the temporal pointer.
3158         (vrp_visit_cond_stmt): Fix typo.
3159         (simplify_switch_using_ranges): Handle the case where the switch
3160         index is an integer constant.
3161
3162 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
3163
3164         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
3165
3166 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3167
3168         * doc/extend.texi, doc/invoke.texi: Fix typos.
3169
3170 2009-04-17  Cary Coutant  <ccoutant@google.com>
3171
3172         * tree-flow-inline.h (get_lineno): Fix inverted test.
3173
3174 2009-04-17  Diego Novillo  <dnovillo@google.com>
3175
3176         * tree-ssa-pre.c (create_expression_by_pieces): Remove
3177         assertion for AVAIL_OUT.
3178
3179 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
3180
3181         PR target/38627
3182         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
3183         * config/sh/linux-atomic.asm: Likewise.
3184
3185 2009-04-17  Diego Novillo  <dnovillo@google.com>
3186
3187         * except.c (debug_eh_tree): New.
3188         (struct eh_region, struct eh_status): Move ...
3189         * except.h: ... here.
3190         (add_type_for_runtime): Declare extern.
3191         (lookup_type_for_runtime): Likewise.
3192         (debug_eh_tree): Declare.
3193         * Makefile.in (GTFILES): List except.h before except.c
3194
3195 2009-04-17  Diego Novillo  <dnovillo@google.com>
3196
3197         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
3198         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3199         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
3200         (find_vars_r): ... here.
3201         * tree-flow.h (find_referenced_vars_in): Declare.
3202         * tree-ssa-pre.c (create_expression_by_pieces): Assert
3203         that AVAIL_OUT exists for BLOCK.
3204         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
3205         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
3206         (tree-parloops.o): Likewise.
3207
3208 2009-04-17  Simon Baldwin  <simonb@google.com>
3209
3210         * toplev.c (default_tree_printer): Add handling for %E format.
3211
3212 2009-04-17  Diego Novillo  <dnovillo@google.com>
3213
3214         * tree-pretty-print.c (dump_generic_node): Add break after
3215         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
3216         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
3217         FUNCTION_TYPE together.  Call print_struct_decl when printing
3218         structures and TDF_SLIM is not given.
3219         (print_struct_decl): Fix logic for detecting recursion.
3220
3221 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3222
3223         PR 31567
3224         * gcc.c (create_at_file): New.
3225         (compile_input_file_p): New.
3226         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
3227         * main.c (main): Update call to toplev_main.
3228         * toplev.c (toplev_main): Change signature. Call expandargv.
3229         * toplev.h (toplev_main): Change signature.
3230
3231 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3232
3233         * dwarf2out.c (field_byte_offset): Use the type size as the field size
3234         if the latter is not constant.
3235
3236 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
3237
3238         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3239
3240 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3241
3242         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3243         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3244
3245 2009-04-17  Richard Guenther  <rguenther@suse.de>
3246
3247         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3248         Handle component references view-converting an invariant address.
3249
3250 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
3251
3252         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3253         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3254         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3255         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3256         Use @deftypevr rather than @deftypevar.
3257
3258 2009-04-17  Richard Guenther  <rguenther@suse.de>
3259
3260         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
3261         (get_prop_source_stmt): Likewise.
3262         (can_propagate_from): Likewise.
3263
3264 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
3265
3266         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3267         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3268         (--with-multilib-list): Add default value.
3269         * configure: Regenerate.
3270         * Makefile.in (TM_ENDIAN_CONFIG): Define.
3271         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3272         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3273         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3274         Don't add default cpu to multilib list unnecessarily, but do enable
3275         the relevant compiler option..
3276         Add support for --with-multilib-list=<blank> and
3277         --with-multilib-list=!<somelib> to supress unwanted multilibs.
3278         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3279         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3280         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3281         TM_MULTILIB_CONFIG.
3282         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3283         (MULTILIB_OSDIRNAMES): New variable.
3284         * config/sh/t-1e: Delete file.
3285         * config/sh/t-mlib-sh1: Delete file.
3286         * config/sh/t-mlib-sh2: Delete file.
3287         * config/sh/t-mlib-sh2a: Delete file.
3288         * config/sh/t-mlib-sh2a-nofpu: Delete file.
3289         * config/sh/t-mlib-sh2a-single: Delete file.
3290         * config/sh/t-mlib-sh2a-single-only: Delete file.
3291         * config/sh/t-mlib-sh2e: Delete file.
3292         * config/sh/t-mlib-sh3e: Delete file.
3293         * config/sh/t-mlib-sh4: Delete file.
3294         * config/sh/t-mlib-sh4-nofpu: Delete file.
3295         * config/sh/t-mlib-sh4-single: Delete file.
3296         * config/sh/t-mlib-sh4-single-only: Delete file.
3297         * config/sh/t-mlib-sh4a: Delete file.
3298         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3299         * config/sh/t-mlib-sh4a-single: Delete file.
3300         * config/sh/t-mlib-sh4a-single-only: Delete file.
3301         * config/sh/t-mlib-sh4al: Delete file.
3302         * config/sh/t-mlib-sh5-32media: Delete file.
3303         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3304         * config/sh/t-mlib-sh5-64media: Delete file.
3305         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3306         * config/sh/t-mlib-sh5-compact: Delete file.
3307         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3308         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3309         * doc/install.texi (Options specification): Add
3310         --with-multilib-list and --with-endian.
3311
3312 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3313
3314         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3315         REVISION_c.
3316         (OBJS-common): Add plugin-version.o.
3317         (plugin-version.o): New.
3318         * gcc-plugin.h (plugin_gcc_version): New.
3319         (plugin_default_version_check): New.
3320         (plugin_init_func, plugin_init): Add version argument.
3321         * plugin-version.c: New.
3322         * plugin.c (str_plugin_gcc_version_name): New.
3323         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3324         pass it to the init function.
3325         (plugin_default_version_check): New.
3326
3327 2009-04-17  Richard Guenther  <rguenther@suse.de>
3328
3329         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3330         for decl-vs-decl disambiguation.
3331
3332 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3333
3334         * config/s390/s390.h (s390_tune_attr): New macro definition.
3335         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3336
3337 2009-04-17  Richard Guenther  <rguenther@suse.de>
3338
3339         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3340         (fold_stmt_r): Likewise.
3341         (maybe_fold_reference): New function.
3342         (fold_gimple_assign): Handle cases fold_stmt_r did.
3343         (fold_stmt): Do not use fold_stmt_r.
3344         (fold_stmt_inplace): Likewise.
3345
3346 2009-04-17  Richard Guenther  <rguenther@suse.de>
3347
3348         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3349         (record_equivalences_from_stmt): Remove useless checks and
3350         simplifications.
3351         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3352         the type is already suitable.
3353
3354 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3355
3356         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3357
3358 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3359
3360         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3361         (CMPtype): Define as __gcc_CMPtype.
3362
3363 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3364
3365         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3366         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3367
3368 2009-04-17  Richard Guenther  <rguenther@suse.de>
3369
3370         PR tree-optimization/39746
3371         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3372         special-casing for builtins and static variable use/def.
3373         (call_may_clobber_ref_p_1): Likewise.
3374
3375 2009-04-16  Ian Lance Taylor  <iant@google.com>
3376
3377         * df.h: Include "timevar.h".
3378         (struct df_problem): Change tv_id field to timevar_id_t.
3379         * tree-pass.h: Include "timevar.h".
3380         (struct opt_pass): Change tv_id field to timevar_id_t.
3381         * timevar.h (timevar_id_t): Define TV_NONE.
3382         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3383         TV_NONE rather than tv_id != 0.
3384         (execute_one_pass): Likewise.
3385         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3386         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3387         dependencies to $(TREE_PASS_H).
3388         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3389         to TV_NONE.
3390         (pass_branch_target_load_optimize2): Likewise.
3391         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3392         (pass_outof_cfg_layout_mode): Likewise.
3393         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3394         (pass_rebuild_cgraph_edges): Likewise.
3395         (pass_remove_cgraph_callee_edges): Likewise.
3396         * df-core.c (pass_df_initialize_opt): Likewise.
3397         (pass_df_initialize_no_opt): Likewise.
3398         (pass_df_finish): Likewise.
3399         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3400         * except.c (pass_set_nothrow_function_flags): Likewise.
3401         (pass_convert_to_eh_region_ranges): Likewise.
3402         * final.c (pass_compute_alignments): Likewise.
3403         * function.c (pass_instantiate_virtual_regs): Likewise.
3404         (pass_init_function): Likewise.
3405         (pass_leaf_regs): Likewise.
3406         (pass_match_asm_constraints): Likewise.
3407         * gimple-low.c (pass_lower_cf): Likewise.
3408         (pass_mark_used_blocks): Likewise.
3409         * init-regs.c (pass_initialize_regs): Likewise.
3410         * integrate.c (pass_initial_value_sets): Likewise.
3411         * ira.c (pass_ira): Likewise.
3412         * jump.c (pass_cleanup_barriers): Likewise.
3413         * omp-low.c (pass_expand_omp): Likewise.
3414         (pass_lower_omp): Likewise.
3415         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3416         * recog.c (pass_split_all_insns): Likewise.
3417         (pass_split_after_reload): Likewise.
3418         (pass_split_before_regstack): Likewise.
3419         (pass_split_before_sched2): Likewise.
3420         (pass_split_for_shorten_branches): Likewise.
3421         * reginfo.c (pass_reginfo_init): Likewise.
3422         (pass_subregs_of_mode_init): Likewise.
3423         (pass_subregs_of_mode_finish): Likewise.
3424         * passes.c (pass_postreload): Likewise.
3425         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3426         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3427         (pass_warn_function_return): Likewise.
3428         (pass_warn_function_noreturn): Likewise.
3429         * tree-complex.c (pass_lower_complex): Likewise.
3430         (pass_lower_complex_O0): Likewise.
3431         * tree-if-conv.c (pass_if_conversion): Likewise.
3432         * tree-into-ssa.c (pass_build_ssa): Likewise.
3433         * tree-mudflap.c (pass_mudflap_1): Likewise.
3434         (pass_mudflap_2): Likewise.
3435         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3436         (pass_mudflap_2): Likewise.
3437         * tree-nrv.c (pass_return_slot): Likewise.
3438         * tree-object-size.c (pass_object_sizes): Likewise.
3439         * tree-optimize.c (pass_all_optimizations): Likewise.
3440         (pass_early_local_passes): Likewise.
3441         (pass_all_early_optimizations): Likewise.
3442         (pass_cleanup_cfg): Likewise.
3443         (pass_cleanup_cfg_post_optimizing): Likewise.
3444         (pass_free_datastructures): Likewise.
3445         (pass_free_cfg_annotations): Likewise.
3446         (pass_fixup_cfg): Likewise.
3447         (pass_init_datastructures): Likewise.
3448         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3449         (pass_late_warn_uninitialized): Likewise.
3450         (pass_update_address_taken): Likewise.
3451         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3452         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3453         (pass_cse_sincos): Likewise.
3454         (pass_convert_to_rsqrt): Likewise.
3455         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3456         * tree-stdarg.c (pass_stdarg): Likewise.
3457         * tree-tailcall.c (pass_tail_recursion): Likewise.
3458         (pass_tail_calls): Likewise.
3459         * tree-vect-generic.c (pass_lower_vector): Likewise.
3460         (pass_lower_vector_ssa): Likewise.
3461         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3462
3463 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3464
3465         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3466         XLR entry.
3467         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3468         Handle -march=xlr.
3469         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3470         logical and signext.
3471
3472 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3473
3474         PR target/39767
3475         * config/sh/predicates.md (arith_operand): Check if the operand
3476         of TRUNCATE is a REG.
3477
3478 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3479
3480         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3481         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3482
3483 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3484
3485         * tree-iterator.c (tsi_split_statement_list_after,
3486         tsi_split_statement_list_before): Remove.
3487         * tree-iterator.h: Remove the prototypes for
3488         tsi_split_statement_list_after and tsi_split_statement_list_before.
3489
3490 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3491
3492         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3493         * tree-ssa-propagate.h: Remove the prototype for
3494         stmt_makes_single_load.
3495
3496 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3497
3498         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3499         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3500
3501 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3502
3503         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3504
3505 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3506
3507         * except.c (eh_region_outer_p): Remove.
3508         * except.h: Remove the prototype for eh_region_outer_p.
3509
3510 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3511
3512         * function.c (current_function_assembler_name): Remove.
3513         * function.h: Remove the prototype for
3514         current_function_assembler_name.
3515
3516 2009-04-16  Ian Lance Taylor  <iant@google.com>
3517
3518         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3519         (add_reg_note): Call alloc_reg_note.
3520         * rtl.h (alloc_reg_note): Declare.
3521         * combine.c (try_combine): Use alloc_reg_note.
3522         (recog_for_combine, move_deaths): Likewise.
3523         (distribute_notes): Use alloc_reg_note and add_reg_note.
3524         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3525         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3526         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3527
3528 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3529
3530         PR rtl-optimization/39762
3531         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3532         ira_may_move_out_cost): Add comments about way of their usage.
3533         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3534
3535         * ira-conflicts.c (process_regs_for_copy): Use function
3536         ira_get_register_move_cost instead of global
3537         ira_register_move_cost.
3538
3539         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3540         color_pass, move_spill_restore, update_curr_costs): Ditto.
3541
3542         * ira-lives.c (process_single_reg_class_operands): Ditto.
3543
3544         * ira-emit.c (emit_move_list): Ditto.
3545
3546         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3547         (record_reg_classes): Ditto.  Use functions
3548         ira_get_register_move_cost and ira_get_may_move_cost instead of
3549         global vars ira_register_move_cost, ira_may_move_out_cost and
3550         ira_may_move_in_cost.
3551         (record_address_regs): Don't call ira_init_register_move_cost.
3552         Use function ira_get_may_move_cost instead of global
3553         ira_may_move_in_cost.
3554         (process_bb_node_for_hard_reg_moves): Use function
3555         ira_get_register_move_cost instead of global ira_register_move_cost.
3556         (ira_costs): Don't call ira_init_register_move_cost.
3557
3558 2009-04-16  Richard Guenther  <rguenther@suse.de>
3559
3560         * tree-cfg.c (verify_gimple_assign_binary):
3561         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3562         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3563         (create_general_new_stmt): Note that this function is broken.
3564
3565 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3566
3567         * common.opt (fhelp): Add Var(help_flag).
3568         * gcc-plugin.h (plugin_info): Add help.
3569         * plugin.c (plugin_name_args): Add help.
3570         (register_plugin_info): Set plugin->help.
3571         (print_help_one_plugin): New.
3572         (print_plugins_help): New.
3573         * plugin.h (print_plugins_help): New.
3574         * toplev.c (toplev_main): Call print_plugins_help if needed.
3575
3576 2009-04-16  Richard Guenther  <rguenther@suse.de>
3577
3578         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3579         (gimple_ior_addresses_taken_1): New function.
3580         (gimple_ior_addresses_taken): Likewise.
3581         * gimple.h (struct gimple_statement_with_ops_base): Remove
3582         addresses_taken member.
3583         (gimple_ior_addresses_taken): Declare.
3584         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3585         gimple_set_addresses_taken): Remove.
3586         * ipa-reference.c (mark_address): New function.
3587         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3588         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3589         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3590         (gimple_add_to_addresses_taken): Remove.
3591         (get_tmr_operands): Call mark_address_taken.
3592         (get_asm_expr_operands): Likewise.
3593         (get_expr_operands): Likewise.
3594         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3595         (free_stmt_operands): Do not free it.
3596         * tree-ssa.c (delete_tree_ssa): Likewise.
3597         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3598
3599 2009-04-16  Richard Guenther  <rguenther@suse.de>
3600
3601         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3602         (walk_stmt_load_store_ops): Likewise.
3603         * gimple.c (get_base_loadstore): New function.
3604         (walk_stmt_load_store_addr_ops): Likewise.
3605         (walk_stmt_load_store_ops): Likewise.
3606         * ipa-pure-const.c (check_op): Simplify.
3607         (check_load, check_store): New functions.
3608         (check_stmt): Use walk_stmt_load_store_ops.
3609         * ipa-reference.c (mark_load): Adjust signature.
3610         (mark_store): Likewise.
3611         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3612
3613 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3614
3615         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3616         (plugin_info): New.
3617         * opts.c (common_handle_option): Don't call print_version.
3618         * plugin.c (plugin_name_args): Add version.
3619         (register_plugin_info): New.
3620         (register_callback): Handle PLUGIN_INFO.
3621         (try_init_one_plugin): New.
3622         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3623         if failed to init.
3624         (finalize_one_plugin): New.
3625         (finalize_plugins): New.
3626         (print_one_plugin): New.
3627         (print_plugins_versions): New.
3628         * plugin.h (print_plugins_versions): New.
3629         (finalize_plugins): New.
3630         * toplev.c (compile_file): Don't call initialize_plugins.
3631         (print_version): Call print_plugins_versions.
3632         (toplev_main): Call initialize_plugins. Print version if needed.
3633         Call finalize_plugins.
3634
3635 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3636
3637         * common.opt (fversion): New.
3638         * gcc.c (print_version): New.
3639         (process_command): Don't print the version. Just set print_version.
3640         (main): Print version. Call subprocesses if print_version and
3641         verbose_flag are set.
3642         * opts.c (common_handle_option): Handle OPT_fversion.
3643
3644 2009-04-16  Richard Guenther  <rguenther@suse.de>
3645             Ira Rosen  <irar@il.ibm.com>
3646
3647         PR tree-optimization/39698
3648         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3649         type of the reduction variable.  Only generate the def if
3650         it is needed.
3651
3652         * omp-low.c (expand_omp_for_generic): When converting to a pointer
3653         make sure to first convert to an integer of the same precision.
3654         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3655         the type of the evolution correctly in computing the new
3656         induction variable base.
3657
3658 2009-04-16  Richard Guenther  <rguenther@suse.de>
3659
3660         PR middle-end/39625
3661         * tree-cfg.c (make_blocks): Split statements with to-be
3662         abnormal SSA names on the lhs.
3663
3664 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
3665
3666         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3667         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3668         * c-typeck.c (really_start_incremental_init): Likewise.
3669         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3670         (TARGET_INITIALIZER): Remove it.
3671         * target.h (struct target): Remove vector_opaque_p.
3672         * tree.c (build_opaque_vector_type): New.
3673         * tree.h (TYPE_VECTOR_OPAQUE): New.
3674         (build_opaque_vector_type): Declare.
3675         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3676         * config/rs6000/rs6000.c (build_opaque_vector_type,
3677         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3678         (rs6000_init_builtins): Use build_opaque_vector_type for
3679         opaque_V4SI_type_node.
3680
3681 2009-04-15  Catherine Moore  <clm@codesourcery.com>
3682
3683         * debug.h (set_name):  Declare.
3684         * dwarf2out.c (dwarf2out_set_name): Declare.
3685         (dwarf2_debug_hooks): Add set_name.
3686         (find_AT_string): New.
3687         (add_AT_string): Call find_AT_string.
3688         (dwarf2out_set_name): New.
3689         * cp/decl.c (grokdeclarator): Call set_name.
3690         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3691         * debug.c (do_nothing_debug_hooks):  Likewise.
3692         * dbxout.c (dbx_debug_hooks): Likewise.
3693         * sdbout.c (sdb_debug_hooks): Likewise.
3694
3695 2009-04-15  Michael Eager  <eager@eagercon.com>
3696
3697         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3698         reg for single-precision FPU.
3699         * config/rs6000/rs6000.md (movsi_internal1): Only for
3700         !TARGET_SINGLE_FPU.
3701         (movsi_internal1_single): New. Add pattern to move SI values to/from
3702         single-precision FP regs.
3703
3704 2009-04-15  Richard Guenther  <rguenther@suse.de>
3705
3706         * omp-low.c (lower_rec_input_clauses): Build correct address
3707         expressions.
3708         (expand_omp_for_generic): Fix multiplication type.
3709         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3710         (generate_memset_zero): Fix types.
3711         * tree-profile.c (prepare_instrumented_value): Correctly
3712         widen a pointer.
3713
3714 2009-04-15  Ian Lance Taylor  <iant@google.com>
3715
3716         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3717         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3718         for -Wall and for -Wc++-compat.
3719         (c_common_post_options): For C++, set warn_enum_compare if not
3720         already set.
3721         * c-tree.h (struct c_expr): Add field original_type.
3722         (build_external_ref): Update declaration.
3723         * c-parser.c (c_parser_braced_init): Set original_type.
3724         (c_parser_initelt): Likewise.
3725         (c_parser_expr_no_commas): Likewise.
3726         (c_parser_conditional_expression): Likewise.
3727         (c_parser_cast_expression): Likewise.
3728         (c_parser_unary_expression): Likewise.  Pull setting of
3729         original_code to top of function.
3730         (c_parser_sizeof_expression): Set original_type.
3731         (c_parser_alignof_expression): Likewise.
3732         (c_parser_postfix_expression): Likewise.  Pull setting of
3733         original_code to top of function.
3734         (c_parser_postfix_expression_after_paren_type): Set original_type.
3735         (c_parser_postfix_expression_after_primary): Likewise.
3736         (c_parser_expression): Likewise.
3737         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3738         callers.
3739         (c_expr_sizeof_expr): Set original_type field.
3740         (parser_build_unary_op): Likewise.
3741         (parser_build_binary_op): Likewise.  Optionally warn about
3742         comparisons of enums of different types.
3743         (digest_init): Set original_type field.
3744         (really_start_incremental_init): Likewise.
3745         (push_init_level, pop_init_level): Likewise.
3746         * doc/invoke.texi (Warning Options): -Wenum-compare now
3747         supported in C.
3748
3749 2009-04-15  Richard Guenther  <rguenther@suse.de>
3750
3751         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3752         out a necessary conversion.
3753         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3754         names we didn't value number.
3755         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3756
3757 2009-04-15  Richard Guenther  <rguenther@suse.de>
3758
3759         PR tree-optimization/39764
3760         * tree-ssa-ccp.c (get_value): Canonicalize value with
3761         canonicalize_float_value.
3762
3763 2009-04-15  Jan Hubicka  <jh@suse.cz>
3764
3765         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3766         Wrong version of patch.
3767
3768 2009-04-15  Jan Hubicka  <jh@suse.cz>
3769
3770         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3771
3772 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3773
3774         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3775         our distinct integral and vector types.
3776
3777 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3778
3779         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3780         * init.c (build_vtbl_address): Remove call to assemble_external.
3781
3782 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3783
3784         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3785         output for other floating point modes.
3786
3787 2009-04-14  Diego Novillo  <dnovillo@google.com>
3788
3789         * diagnostic.c (diagnostic_report_diagnostic): Do not
3790         warn about loaded plugins for DK_ERROR and DK_WARNING.
3791         * c-decl.c (declspecs_add_type): Move call to
3792         invoke_plugin_callbacks ...
3793         * c-parser.c (c_parser_declspecs): ... here.
3794         * plugin.c (dump_active_plugins): Tidy output.
3795
3796 2009-04-14  Diego Novillo  <dnovillo@google.com>
3797             Le-Chun Wu  <lcwu@google.com>
3798
3799         * configure.ac: Add --enable-plugin support.
3800         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3801         * Makefile.in (PLUGIN_H): Define.
3802         Export ENABLE_PLUGIN and GMPINC to site.exp.
3803         Add PLUGINLIBS to link command.
3804         Add/modify dependencies for plugin.o and files including plugin.h.
3805         (plugin.o): New.
3806         * config.in: Regenerate.
3807
3808         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3809         OPT_fplugin_arg_.
3810
3811 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3812
3813         * tree-pass.h (register_one_dump_file): Add a prototype for
3814         register_one_dump_file.
3815         * toplev.c (compile_file): Call initialize_plugins.
3816         (do_compile): Call invoke_plugin_callbacks.
3817         (toplev_main): Call invoke_plugin_callbacks.
3818         * common.opt: Add -fplugin= and -fplugin-arg-.
3819         * gcc-plugin.h: New public header file for plugins to include.
3820         * plugin.c: New source file.
3821         * plugin.h: New internal header file.
3822         * passes.c (register_one_dump_file): Make it external.
3823
3824         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3825
3826 2009-04-14  Diego Novillo  <dnovillo@google.com>
3827
3828         * doc/plugins.texi: New.
3829         * doc/gccint.texi: Add reference to Plugins chapter.
3830         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3831         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3832         loaded plugins, if any.
3833         * timevar.def (TV_PLUGIN_INIT): Define.
3834         (TV_PLUGIN_RUN): Define.
3835         * plugin.c: Include timevar.h
3836         (plugins_active_p): New.
3837         (dump_active_plugins): New.
3838         (debug_active_plugins): New.
3839
3840 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3841
3842         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3843         library paths.
3844         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3845
3846 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3847
3848         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3849         the same as a minus without a shift.
3850
3851 2009-04-14  Nick Clifton  <nickc@redhat.com>
3852
3853         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3854         comparisons with small integers will always produce a short
3855         branch.
3856
3857 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3858
3859         Merge:
3860         2008-12-19  Diego Novillo  <dnovillo@google.com>
3861
3862         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3863
3864 2009-04-14  Richard Guenther  <rguenther@suse.de>
3865
3866         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3867         verification.
3868         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3869         rotates correctly.
3870         (verify_gimple_phi): Print the mismatched argument position.
3871         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3872         Fix types.
3873         (vect_update_init_of_dr): Likewise.
3874         * matrix-reorg.c (transform_access_sites): Do what the
3875         comment suggests.
3876         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3877
3878 2009-04-13  Michael Eager  <eager@eagercon.com>
3879
3880         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3881         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3882         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3883         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3884         remove duplicate config
3885
3886 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3887
3888         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3889         file_name:line_number type locator of the call site.
3890
3891 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3892
3893         * genautomata.c: Put blank after comma.
3894         (automaton_decls): New.
3895         (struct unit_usage): Add comments to member next.
3896         (store_alt_unit_usage): Keep the list ordered.
3897         (unit_present_on_list_p, equal_alternatives_p): New.
3898         (check_regexp_units_distribution): Check units distribution
3899         correctness correctly.
3900         (main): Don't write automata if error is found.  Return correct
3901         exit code.
3902
3903         * config/m68k/cf.md (cfv4_ds): Remove.
3904         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3905         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3906
3907         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3908         power4-load-ext, power4-store, power4-store-update,
3909         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3910         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3911         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3912         power4-sqrt, power4-isync): Modify reservation to make correct
3913         unit distribution to automata.
3914
3915         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3916         power5-store-update, power5-two, power5-three, power5-lmul,
3917         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3918
3919 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3920
3921         * except.c (pass_set_nothrow_function_flags): Set name and add
3922         TODO_dump_func.
3923         (set_nothrow_function_flags): Mention in the dump file when
3924         changing a function to nothrow.
3925
3926 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3927
3928         PR/39066
3929         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3930         instead of unsigned long.
3931
3932 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3933
3934         * config/arm/arm.c (return_used_this_function): Remove.
3935         (arm_output_function_prologue): Remove use of
3936         return_used_this_function.
3937         (output_return_instruction): Replace use of
3938         return_used_this_function
3939         by cfun->machine->return_used_this_function.
3940         (arm_output_epilogue): Likewise.
3941         (arm_output_function_epilogue): Likewise.
3942         (thumb_unexpanded_epilogue): Likewise.
3943         * config/arm/arm.h (struct machine_function):
3944         New member return_used_this_function.
3945
3946 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3947
3948         * doc/install.texi: Correct description of default directory for
3949         --with-gxx-include-dir.
3950
3951 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3952
3953         * fold-const.c (build_range_check): Properly deal with enumeral and
3954         boolean base types.
3955
3956 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3957
3958         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3959         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3960         * params.h (MAX_GCSE_PASSES): Remove.
3961         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3962         in sequence.  Remove ability to run multiple passes.
3963         (bypass_jumps): Report run as third CPROP pass.
3964
3965 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3966
3967         PR middle-end/39651
3968         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3969         when deciding whether the whole SEQUENCE can throw.
3970
3971 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3972
3973         PR target/39740
3974         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3975         offseted label references.
3976
3977 2009-04-11  Jan Hubicka  <jh@suse.cz>
3978
3979         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3980
3981 2009-04-11  Richard Guenther  <rguenther@suse.de>
3982
3983         PR middle-end/39732
3984         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3985         return variables as TREE_ADDRESSABLE.
3986
3987 2009-04-11  Richard Guenther  <rguenther@suse.de>
3988
3989         PR tree-optimization/39713
3990         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3991         reference trees have SSA_NAME operands.
3992
3993 2009-04-11  Richard Guenther  <rguenther@suse.de>
3994
3995         PR c/39712
3996         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3997         address expressions.
3998
3999 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4000
4001         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
4002         match changes in Cygwin 1.7
4003         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4004         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
4005
4006 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4007
4008         PR tree-optimization/39701
4009         * doc/invoke.texi (Optimization Options): Document change in
4010         meaning and initialization of -fdelete-null-pointer-checks.
4011
4012 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4013
4014         PR middle-end/39701
4015         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4016
4017         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4018         here.
4019
4020         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4021
4022 2009-04-10  Chao-ying Fu  <fu@mips.com>
4023
4024         * doc/tm.texi (Instruction Output): Document
4025         TARGET_ASM_FINAL_POSTSCAN_INSN.
4026         * target.h (final_postscan_insn): New field in asm_out.
4027         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4028         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4029         * final.c (final_scan_insn): Call
4030         targetm.asm_out.final_postscan_insn after outputting
4031         an asm macro and a normal instruction.
4032
4033         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
4034         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
4035         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
4036         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
4037         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4038
4039 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4040
4041         PR middle-end/39701
4042         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
4043         variables as non-NULL even with -fdelete-null-pointer-checks.
4044
4045 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4046
4047         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
4048
4049 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
4050
4051         PR target/39678
4052         * config/i386/i386.c (classify_argument): Handle SCmode with
4053         (bit_offset % 64) != 0.
4054
4055 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
4056
4057         * doc/invoke.texi (Optimize Options): Add cross-reference to
4058         -Q --help=optimizers examples.
4059
4060 2009-04-10  Ben Elliston  <bje@au.ibm.com>
4061
4062         PR target/36800
4063         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
4064         regalign for the reg == fpr and TDmode case.
4065
4066 2009-04-09  David Ayers  <ayers@fsfe.org>
4067
4068         PR objc/29200
4069         * objc/objc-act.c (warn_with_method): Remove helper function.
4070         (check_duplicates): Call warning and inform directly.
4071         (really_start_method): Likewise.
4072
4073 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4074
4075         * expmed.c (expand_divmod): Always use a comparison for a division
4076         by a large unsigned integer.
4077
4078         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
4079         for things others than variables or functions as nonzero.
4080
4081 2009-04-09  Nick Clifton  <nickc@redhat.com>
4082
4083         * unwind-compat.c: Change copyright header to refer to version
4084         3 of the GNU General Public License with version 3.1 of the
4085         GCC Runtime Library Exception and to point readers at the
4086         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
4087         * config/alpha/crtfastmath.c: Likewise.
4088         * config/alpha/linux-unwind.h: Likewise.
4089         * config/alpha/qrnnd.asm: Likewise.
4090         * config/alpha/vms-crt0-64.c: Likewise.
4091         * config/alpha/vms-crt0.c: Likewise.
4092         * config/alpha/vms-dwarf2.asm: Likewise.
4093         * config/alpha/vms-dwarf2eh.asm: Likewise.
4094         * config/alpha/vms-psxcrt0-64.c: Likewise.
4095         * config/alpha/vms-psxcrt0.c: Likewise.
4096         * config/alpha/vms_tramp.asm: Likewise.
4097         * config/arc/initfini.c: Likewise.
4098         * config/arc/lib1funcs.asm: Likewise.
4099         * config/arm/bpabi-v6m.S: Likewise.
4100         * config/arm/bpabi.S: Likewise.
4101         * config/arm/bpabi.c: Likewise.
4102         * config/arm/crti.asm: Likewise.
4103         * config/arm/crtn.asm: Likewise.
4104         * config/arm/ieee754-df.S: Likewise.
4105         * config/arm/ieee754-sf.S: Likewise.
4106         * config/arm/lib1funcs.asm: Likewise.
4107         * config/arm/libunwind.S: Likewise.
4108         * config/arm/linux-atomic.c: Likewise.
4109         * config/arm/mmintrin.h: Likewise.
4110         * config/arm/pr-support.c: Likewise.
4111         * config/arm/unaligned-funcs.c: Likewise.
4112         * config/arm/unwind-arm.c: Likewise.
4113         * config/arm/unwind-arm.h: Likewise.
4114         * config/avr/libgcc.S: Likewise.
4115         * config/bfin/crti.s: Likewise.
4116         * config/bfin/crtlibid.s: Likewise.
4117         * config/bfin/crtn.s: Likewise.
4118         * config/bfin/lib1funcs.asm: Likewise.
4119         * config/bfin/linux-unwind.h: Likewise.
4120         * config/cris/arit.c: Likewise.
4121         * config/cris/cris_abi_symbol.c: Likewise.
4122         * config/darwin-64.c: Likewise.
4123         * config/darwin-crt2.c: Likewise.
4124         * config/darwin-crt3.c: Likewise.
4125         * config/darwin.h: Likewise.
4126         * config/dbxelf.h: Likewise.
4127         * config/dfp-bit.c: Likewise.
4128         * config/dfp-bit.h: Likewise.
4129         * config/elfos.h: Likewise.
4130         * config/fixed-bit.c: Likewise.
4131         * config/fixed-bit.h: Likewise.
4132         * config/fp-bit.c: Likewise.
4133         * config/fp-bit.h: Likewise.
4134         * config/fr30/crti.asm: Likewise.
4135         * config/fr30/crtn.asm: Likewise.
4136         * config/fr30/lib1funcs.asm: Likewise.
4137         * config/freebsd-spec.h: Likewise.
4138         * config/frv/cmovd.c: Likewise.
4139         * config/frv/cmovh.c: Likewise.
4140         * config/frv/cmovw.c: Likewise.
4141         * config/frv/frvbegin.c: Likewise.
4142         * config/frv/frvend.c: Likewise.
4143         * config/frv/lib1funcs.asm: Likewise.
4144         * config/glibc-stdint.h: Likewise.
4145         * config/h8300/clzhi2.c: Likewise.
4146         * config/h8300/crti.asm: Likewise.
4147         * config/h8300/crtn.asm: Likewise.
4148         * config/h8300/ctzhi2.c: Likewise.
4149         * config/h8300/fixunssfsi.c: Likewise.
4150         * config/h8300/lib1funcs.asm: Likewise.
4151         * config/h8300/parityhi2.c: Likewise.
4152         * config/h8300/popcounthi2.c: Likewise.
4153         * config/i386/ammintrin.h: Likewise.
4154         * config/i386/att.h: Likewise.
4155         * config/i386/avxintrin.h: Likewise.
4156         * config/i386/biarch64.h: Likewise.
4157         * config/i386/bmmintrin.h: Likewise.
4158         * config/i386/cpuid.h: Likewise.
4159         * config/i386/cross-stdarg.h: Likewise.
4160         * config/i386/crtfastmath.c: Likewise.
4161         * config/i386/crtprec.c: Likewise.
4162         * config/i386/cygming-crtbegin.c: Likewise.
4163         * config/i386/cygming-crtend.c: Likewise.
4164         * config/i386/cygwin.asm: Likewise.
4165         * config/i386/emmintrin.h: Likewise.
4166         * config/i386/gmm_malloc.h: Likewise.
4167         * config/i386/gthr-win32.c: Likewise.
4168         * config/i386/i386.h: Likewise.
4169         * config/i386/immintrin.h: Likewise.
4170         * config/i386/linux-unwind.h: Likewise.
4171         * config/i386/linux64.h: Likewise.
4172         * config/i386/mm3dnow.h: Likewise.
4173         * config/i386/mmintrin-common.h: Likewise.
4174         * config/i386/mmintrin.h: Likewise.
4175         * config/i386/nmmintrin.h: Likewise.
4176         * config/i386/pmm_malloc.h: Likewise.
4177         * config/i386/pmmintrin.h: Likewise.
4178         * config/i386/smmintrin.h: Likewise.
4179         * config/i386/sol2-c1.asm: Likewise.
4180         * config/i386/sol2-ci.asm: Likewise.
4181         * config/i386/sol2-cn.asm: Likewise.
4182         * config/i386/sol2-gc1.asm: Likewise.
4183         * config/i386/tmmintrin.h: Likewise.
4184         * config/i386/unix.h: Likewise.
4185         * config/i386/w32-unwind.h: Likewise.
4186         * config/i386/wmmintrin.h: Likewise.
4187         * config/i386/x86-64.h: Likewise.
4188         * config/i386/x86intrin.h: Likewise.
4189         * config/i386/xmmintrin.h: Likewise.
4190         * config/ia64/crtbegin.asm: Likewise.
4191         * config/ia64/crtend.asm: Likewise.
4192         * config/ia64/crtfastmath.c: Likewise.
4193         * config/ia64/crti.asm: Likewise.
4194         * config/ia64/crtn.asm: Likewise.
4195         * config/ia64/fde-glibc.c: Likewise.
4196         * config/ia64/lib1funcs.asm: Likewise.
4197         * config/ia64/linux-unwind.h: Likewise.
4198         * config/ia64/quadlib.c: Likewise.
4199         * config/ia64/unwind-ia64.c: Likewise.
4200         * config/linux.h: Likewise.
4201         * config/m32c/m32c-lib1.S: Likewise.
4202         * config/m32c/m32c-lib2-trapv.c: Likewise.
4203         * config/m32c/m32c-lib2.c: Likewise.
4204         * config/m32r/initfini.c: Likewise.
4205         * config/m68hc11/larith.asm: Likewise.
4206         * config/m68hc11/m68hc11-crt0.S: Likewise.
4207         * config/m68k/cf.md: Likewise.
4208         * config/m68k/crti.s: Likewise.
4209         * config/m68k/crtn.s: Likewise.
4210         * config/m68k/lb1sf68.asm: Likewise.
4211         * config/m68k/linux-unwind.h: Likewise.
4212         * config/mcore/crti.asm: Likewise.
4213         * config/mcore/crtn.asm: Likewise.
4214         * config/mcore/lib1.asm: Likewise.
4215         * config/mips/linux-unwind.h: Likewise.
4216         * config/mips/loongson.h: Likewise.
4217         * config/mips/mips16.S: Likewise.
4218         * config/mmix/crti.asm: Likewise.
4219         * config/mmix/crtn.asm: Likewise.
4220         * config/pa/fptr.c: Likewise.
4221         * config/pa/hpux-unwind.h: Likewise.
4222         * config/pa/lib2funcs.asm: Likewise.
4223         * config/pa/linux-atomic.c: Likewise.
4224         * config/pa/linux-unwind.h: Likewise.
4225         * config/pa/milli64.S: Likewise.
4226         * config/pa/quadlib.c: Likewise.
4227         * config/pa/stublib.c: Likewise.
4228         * config/picochip/libgccExtras/adddi3.asm: Likewise.
4229         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4230         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4231         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4232         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4233         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4234         * config/picochip/libgccExtras/divmod15.asm: Likewise.
4235         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4236         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4237         * config/picochip/libgccExtras/longjmp.asm: Likewise.
4238         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4239         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4240         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4241         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4242         * config/picochip/libgccExtras/setjmp.asm: Likewise.
4243         * config/picochip/libgccExtras/subdi3.asm: Likewise.
4244         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4245         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4246         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4247         * config/rs6000/750cl.h: Likewise.
4248         * config/rs6000/altivec.h: Likewise.
4249         * config/rs6000/biarch64.h: Likewise.
4250         * config/rs6000/crtresfpr.asm: Likewise.
4251         * config/rs6000/crtresgpr.asm: Likewise.
4252         * config/rs6000/crtresxfpr.asm: Likewise.
4253         * config/rs6000/crtresxgpr.asm: Likewise.
4254         * config/rs6000/crtsavfpr.asm: Likewise.
4255         * config/rs6000/crtsavgpr.asm: Likewise.
4256         * config/rs6000/darwin-asm.h: Likewise.
4257         * config/rs6000/darwin-fallback.c: Likewise.
4258         * config/rs6000/darwin-fpsave.asm: Likewise.
4259         * config/rs6000/darwin-ldouble.c: Likewise.
4260         * config/rs6000/darwin-tramp.asm: Likewise.
4261         * config/rs6000/darwin-unwind.h: Likewise.
4262         * config/rs6000/darwin-vecsave.asm: Likewise.
4263         * config/rs6000/darwin-world.asm: Likewise.
4264         * config/rs6000/e500crtres32gpr.asm: Likewise.
4265         * config/rs6000/e500crtres64gpr.asm: Likewise.
4266         * config/rs6000/e500crtres64gprctr.asm: Likewise.
4267         * config/rs6000/e500crtrest32gpr.asm: Likewise.
4268         * config/rs6000/e500crtrest64gpr.asm: Likewise.
4269         * config/rs6000/e500crtresx32gpr.asm: Likewise.
4270         * config/rs6000/e500crtresx64gpr.asm: Likewise.
4271         * config/rs6000/e500crtsav32gpr.asm: Likewise.
4272         * config/rs6000/e500crtsav64gpr.asm: Likewise.
4273         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4274         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4275         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4276         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4277         * config/rs6000/eabi-ci.asm: Likewise.
4278         * config/rs6000/eabi-cn.asm: Likewise.
4279         * config/rs6000/eabi.asm: Likewise.
4280         * config/rs6000/linux-unwind.h: Likewise.
4281         * config/rs6000/linux64.h: Likewise.
4282         * config/rs6000/paired.h: Likewise.
4283         * config/rs6000/paired.md: Likewise.
4284         * config/rs6000/ppc64-fp.c: Likewise.
4285         * config/rs6000/ppu_intrinsics.h: Likewise.
4286         * config/rs6000/rs6000.h: Likewise.
4287         * config/rs6000/si2vmx.h: Likewise.
4288         * config/rs6000/sol-ci.asm: Likewise.
4289         * config/rs6000/sol-cn.asm: Likewise.
4290         * config/rs6000/spe.h: Likewise.
4291         * config/rs6000/spu2vmx.h: Likewise.
4292         * config/rs6000/sysv4.h: Likewise.
4293         * config/rs6000/tramp.asm: Likewise.
4294         * config/rs6000/vec_types.h: Likewise.
4295         * config/s390/linux-unwind.h: Likewise.
4296         * config/s390/tpf-unwind.h: Likewise.
4297         * config/score/crti.asm: Likewise.
4298         * config/score/crtn.asm: Likewise.
4299         * config/sh/crt1.asm: Likewise.
4300         * config/sh/crti.asm: Likewise.
4301         * config/sh/crtn.asm: Likewise.
4302         * config/sh/divtab-sh4-300.c: Likewise.
4303         * config/sh/divtab-sh4.c: Likewise.
4304         * config/sh/divtab.c: Likewise.
4305         * config/sh/lib1funcs-4-300.asm: Likewise.
4306         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4307         * config/sh/lib1funcs.asm: Likewise.
4308         * config/sh/lib1funcs.h: Likewise.
4309         * config/sh/linux-atomic.asm: Likewise.
4310         * config/sh/linux-unwind.h: Likewise.
4311         * config/sh/shmedia.h: Likewise.
4312         * config/sh/sshmedia.h: Likewise.
4313         * config/sh/ushmedia.h: Likewise.
4314         * config/sparc/crtfastmath.c: Likewise.
4315         * config/sparc/linux-unwind.h: Likewise.
4316         * config/sparc/sol2-c1.asm: Likewise.
4317         * config/sparc/sol2-ci.asm: Likewise.
4318         * config/sparc/sol2-cn.asm: Likewise.
4319         * config/spu/divmodti4.c: Likewise.
4320         * config/spu/divv2df3.c: Likewise.
4321         * config/spu/float_disf.c: Likewise.
4322         * config/spu/float_unsdidf.c: Likewise.
4323         * config/spu/float_unsdisf.c: Likewise.
4324         * config/spu/float_unssidf.c: Likewise.
4325         * config/spu/mfc_multi_tag_release.c: Likewise.
4326         * config/spu/mfc_multi_tag_reserve.c: Likewise.
4327         * config/spu/mfc_tag_release.c: Likewise.
4328         * config/spu/mfc_tag_reserve.c: Likewise.
4329         * config/spu/mfc_tag_table.c: Likewise.
4330         * config/spu/multi3.c: Likewise.
4331         * config/spu/spu_internals.h: Likewise.
4332         * config/spu/spu_intrinsics.h: Likewise.
4333         * config/spu/spu_mfcio.h: Likewise.
4334         * config/spu/vec_types.h: Likewise.
4335         * config/spu/vmx2spu.h: Likewise.
4336         * config/stormy16/stormy16-lib2.c: Likewise.
4337         * config/svr4.h: Likewise.
4338         * config/sync.c: Likewise.
4339         * config/v850/lib1funcs.asm: Likewise.
4340         * config/vxlib-tls.c: Likewise.
4341         * config/vxlib.c: Likewise.
4342         * config/vxworks-dummy.h: Likewise.
4343         * config/xtensa/crti.asm: Likewise.
4344         * config/xtensa/crtn.asm: Likewise.
4345         * config/xtensa/ieee754-df.S: Likewise.
4346         * config/xtensa/ieee754-sf.S: Likewise.
4347         * config/xtensa/lib1funcs.asm: Likewise.
4348         * config/xtensa/lib2funcs.S: Likewise.
4349         * config/xtensa/linux-unwind.h: Likewise.
4350         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4351         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4352         * coretypes.h: Likewise.
4353         * crtstuff.c: Likewise.
4354         * defaults.h: Likewise.
4355         * dwarf2.h: Likewise.
4356         * emutls.c: Likewise.
4357         * gbl-ctors.h: Likewise.
4358         * gcov-io.h: Likewise.
4359         * ginclude/float.h: Likewise.
4360         * ginclude/iso646.h: Likewise.
4361         * ginclude/stdarg.h: Likewise.
4362         * ginclude/stdbool.h: Likewise.
4363         * ginclude/stddef.h: Likewise.
4364         * ginclude/stdfix.h: Likewise.
4365         * ginclude/stdint-gcc.h: Likewise.
4366         * ginclude/tgmath.h: Likewise.
4367         * gthr-aix.h: Likewise.
4368         * gthr-dce.h: Likewise.
4369         * gthr-gnat.c: Likewise.
4370         * gthr-gnat.h: Likewise.
4371         * gthr-lynx.h: Likewise.
4372         * gthr-mipssde.h: Likewise.
4373         * gthr-nks.h: Likewise.
4374         * gthr-posix.c: Likewise.
4375         * gthr-posix.h: Likewise.
4376         * gthr-posix95.h: Likewise.
4377         * gthr-rtems.h: Likewise.
4378         * gthr-single.h: Likewise.
4379         * gthr-solaris.h: Likewise.
4380         * gthr-tpf.h: Likewise.
4381         * gthr-vxworks.h: Likewise.
4382         * gthr-win32.h: Likewise.
4383         * gthr.h: Likewise.
4384         * libgcc2.c: Likewise.
4385         * libgcc2.h: Likewise.
4386         * libgcov.c: Likewise.
4387         * tsystem.h: Likewise.
4388         * typeclass.h: Likewise.
4389         * unwind-c.c: Likewise.
4390         * unwind-compat.h: Likewise.
4391         * unwind-dw2-fde-compat.c: Likewise.
4392         * unwind-dw2-fde-darwin.c: Likewise.
4393         * unwind-dw2-fde-glibc.c: Likewise.
4394         * unwind-dw2-fde.c: Likewise.
4395         * unwind-dw2-fde.h: Likewise.
4396         * unwind-dw2.c: Likewise.
4397         * unwind-dw2.h: Likewise.
4398         * unwind-generic.h: Likewise.
4399         * unwind-pe.h: Likewise.
4400         * unwind-sjlj.c: Likewise.
4401         * unwind.inc: Likewise.
4402         * config/arm/neon-gen.ml: Change generated copyright header to
4403         refer to version 3 of the GNU General Public License with
4404         version 3.1 of the GCC Runtime Library Exception and to point
4405         readers at the COPYING3 and COPYING3.RUNTIME files and the
4406         FSF's license web page.
4407         * config/arm/arm_neon.h: Regenerate.
4408
4409 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4410
4411         * config/cris/cris.md: Change copyright header to refer to version
4412         3 of the GNU General Public License.
4413         * doc/install.texi2html: Change copyright header to refer to version
4414         3 of the GNU General Public License and to point readers at the
4415         COPYING3 file and the FSF's license web page.
4416         * config/vax/linux.h: Likewise.
4417
4418 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4419
4420         * config/i386/i386.md (cmpcc): New.
4421         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4422         (sync_compare_and_swap_cc*): Delete.
4423
4424         * config/s390/s390.c (s390_compare_emitted): Remove.
4425         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4426         s390_compare_emitted used to be handled.  Assert that modes match.
4427         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4428         refer to sync_compare_and_swap_ccsi.
4429         * config/s390/s390.h (s390_compare_emitted): Remove.
4430         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4431         instead of s390_compare_emitted.
4432         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4433         instead of s390_compare_emitted.
4434         * config/s390/s390.md (cmpcc): New.
4435         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4436         CC_REGNUM, do not pretend it's set.
4437         (sync_compare_and_swap_cc*): Delete.
4438         * config/s390/predicates.md (cc_reg_operand): New.
4439
4440         * expr.c (sync_compare_and_swap_cc): Delete.
4441         * optabs.h (sync_compare_and_swap_cc): Delete.
4442         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4443         is being used with can_compare_p.
4444         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4445         (find_cc_set): New.
4446         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4447         look for a MODE_CC set instead.  Use emit_store_flag.
4448         (expand_compare_and_swap_loop): Likewise, with some additional
4449         complication to avoid a force_reg when useless.  Use
4450         emit_cmp_and_jump_insns.
4451         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4452         * doc/md.texi (sync_compare_and_swap_cc): Merge with
4453         sync_compare_and_swap documentation.
4454
4455 2009-04-09  Jan Hubicka  <jh@suse.cz>
4456
4457         * except.c (find_prev_try): Break out from ....
4458         (duplicate_eh_regions): ... here; properly update prev_try pointers
4459         when duplication part of tree.
4460         (dump_eh_tree): Improve dumping.
4461         (verify_eh_region): New.
4462         (verify_eh_tree): Use it.
4463
4464 2009-04-06  Richard Guenther  <rguenther@suse.de>
4465
4466         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4467         &ARRAY addresses by adjusting their types and prepending
4468         a conversion.
4469         * tree-cfg.c (verify_gimple_assign_single): Verify that
4470         addresses are correct.
4471
4472 2009-04-09  Richard Guenther  <rguenther@suse.de>
4473
4474         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4475         indices into an array reference if possible.
4476         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4477         Fold POINTER_PLUS_EXPR statements with invariant address.
4478
4479 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
4480
4481         PR target/39634
4482         * config.gcc (powerpc64-*-linux*): Always build biarch.
4483
4484 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
4485
4486         PR c/39613
4487         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4488         it and pedwarn if this results in an INTEGER_CST.
4489
4490 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4491
4492         * doc/install.texi: Update minimum GMP version.  Remove obsolete
4493         text in MPFR section.
4494
4495 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4496
4497         * dwarf2out.c (class_scope_p): New static inline.
4498         (class_or_namespace_scope_p): Use it.
4499         (gen_variable_die): Use DW_TAG_member tag for static data member
4500         declarations instead of DW_TAG_variable.
4501
4502         PR middle-end/39573
4503         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4504         variables.
4505
4506 2009-04-08  Richard Guenther  <rguenther@suse.de>
4507
4508         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4509         valueize random data.
4510
4511 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
4512
4513         * config.gcc (aix tm_file):  Add aix-stdint.h.
4514         (aix tm clause use_gcc_stdint):  Set to wrap.
4515         * config/rs6000/aix-stdint.h:  New file.
4516
4517 2009-04-08  Richard Guenther  <rguenther@suse.de>
4518
4519         PR middle-end/36291
4520         * tree-dfa.c (add_referenced_var): Do not recurse into
4521         global initializers.
4522         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4523         exposed variables.
4524         (fold_const_aggregate_ref): Likewise.
4525
4526 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4527
4528         * recog.c (ordered_comparison_operator): New.
4529         * gensupport.c (std_preds): Add it.
4530         * doc/md.texi (Machine-Independent Predicates): Document it.
4531
4532 2009-04-08  Jan Hubicka  <jh@suse.cz>
4533
4534         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4535         * function.h (rtl_eh): Remove exception_handler_label_map.
4536         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4537         remove_exception_handler_label, for_each_eh_label_1): Remove.
4538         (rtl_remove_unreachable_regions): Remove.
4539         (convert_from_eh_region_ranges): Do not remove unreachable regions.
4540         (find_exception_handler_labels): Don't build the hashtable.
4541         (maybe_remove_eh_handler): Remove.
4542         (for_each_eh_label): Rewrite to walk the tree.
4543         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4544         * except.h (maybe_remove_eh_handler): Remove.
4545         * passes.c (init_optimization_passes): Schedule second EH cleanup
4546         before out-of-ssa.
4547         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4548         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4549
4550 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4551
4552         * genoutput.c (validate_optab_operands): New.
4553         (gen_insn, gen_expand): Call it.
4554
4555         * genflags.c (gen_insn): Detect misused iterators.
4556         (main): Pass line_no to gen_insn, exit with status 1 on error.
4557
4558         * genextract.c (line_no): Make global.
4559         (VEC_safe_set_locstr): Change assertion to error message.
4560         (main): Exit with status 1 on error.
4561
4562 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
4563
4564         PR c/39614
4565         PR c/39673
4566         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4567         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4568         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4569         * c-convert.c (convert): Do not call fold on results of conversion
4570         functions when the result is a C_MAYBE_CONST_EXPR.
4571         * c-parser.c (c_parser_postfix_expression): Do not fold condition
4572         of __builtin_choose_expr.
4573         * c-typeck.c (remove_c_maybe_const_expr): New.
4574         (build_unary_op, build_conditional_expr, build_compound_expr,
4575         build_binary_op, c_objc_common_truthvalue_conversion): Call
4576         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4577         integer operands.
4578
4579 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
4580
4581         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
4582         CODE to produce a new one. Add a prototype to use fold_convert_const
4583
4584 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4585
4586         PR bootstrap/39660
4587         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4588         mix declarations and code.
4589
4590 2009-04-08  Ben Elliston  <bje@au.ibm.com>
4591
4592         * gcc.c: Replace `CC' with `GCC' throughout.
4593
4594 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4595
4596         * doc/invoke.texi: Document Atom support.
4597
4598 2009-04-07  Jason Merrill  <jason@redhat.com>
4599
4600         PR c++/25185
4601         * c-common.h, c-common.c: Add flag_pretty_templates.
4602         * c-opts.c (c_common_handle_option): Set it.
4603         * c.opt: Add -fno-pretty-templates.
4604         * doc/invoke.texi (C++ Dialect Options): Likewise.
4605
4606 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
4607
4608         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4609         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4610         (ia64_expand_builtin): Likewise.
4611
4612 2009-04-07  Martin Jambor  <mjambor@suse.cz>
4613
4614         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4615         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4616         ADDR_EXPRS are include too.
4617
4618 2009-04-07  Richard Guenther  <rguenther@suse.de>
4619
4620         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4621         decls are only used if passes as parameters or if they are
4622         local statics and the call is not to a builtin.
4623         (call_may_clobber_ref_p_1): Likewise.
4624
4625 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4626
4627         * expr.c (do_store_flag): Remove last argument.  Simplify code
4628         to avoid duplication of tests already done by can_compare_p.
4629         (expand_expr_real_1): Adjust caller.
4630
4631 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4632
4633         * optabs.c (can_compare_p): Test the predicate of a
4634         cbranch and cstore pattern.
4635
4636 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4637
4638         * expr.c (convert_move): Use emit_store_flag instead of
4639         "emulating" it.
4640
4641 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4642
4643         * config/i386/i386.c (ix86_compare_emitted): Remove.
4644         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4645         ix86_compare_op0 like ix86_compare_emitted used to be handled.
4646         * config/i386/i386.h (ix86_compare_emitted): Remove.
4647         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4648         instead of ix86_compare_emitted.
4649         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
4650
4651 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
4652
4653         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4654         Add t-sysroot-suffix to tmake_file.
4655         * config/print-sysroot-suffix.sh: New file.
4656         * config/t-sysroot-suffix: New file.
4657
4658 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4659
4660         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4661         as the latter produces a warning when the target does not support
4662         infinity.
4663
4664 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4665
4666         * dfp.c: Replace type punning assignments with memcpy throughout.
4667         * Makefile.in (dfp.o-warn): Remove.
4668
4669 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
4670
4671         PR target/39634
4672         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4673         Include soft-fp/t-softfp after rs6000/t-linux64.
4674
4675 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4676
4677         * stor-layout.c (set_sizetype): Use the full precision of their
4678         machine mode for bitsize types.
4679
4680 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
4681
4682         * config/i386/i386.md: Revert 2 accidental checkins.
4683
4684 2009-04-06  Joey Ye  <joey.ye@intel.com>
4685             Xuepeng Guo  <xuepeng.guo@intel.com>
4686             H.J. Lu  <hongjiu.lu@intel.com>
4687
4688         Atom pipeline model, tuning and insn selection.
4689         * config.gcc (atom): Add atom config options and target.
4690
4691         * config/i386/atom.md: New.
4692
4693         * config/i386/i386.c (atom_cost): New cost.
4694         (m_ATOM): New macro flag.
4695         (initial_ix86_tune_features): Set m_ATOM.
4696         (x86_accumulate_outgoing_args): Likewise.
4697         (x86_arch_always_fancy_math_387): Likewise.
4698         (processor_target): Add Atom cost.
4699         (cpu_names): Add Atom cpu name.
4700         (override_options): Set Atom ISA.
4701         (ix86_issue_rate): New case PROCESSOR_ATOM.
4702         (ix86_adjust_cost): Likewise.
4703
4704         * config/i386/i386.h (TARGET_ATOM): New target macro.
4705         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4706         (TARGET_OPT_AGU): New target option.
4707         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4708         (processor_type): Add PROCESSOR_ATOM.
4709
4710         * config/i386/i386.md (cpu): Add new value "atom".
4711         (use_carry, movu): New attr.
4712         (atom.md): Include atom.md.
4713         (adddi3_carry_rex64): Set attr "use_carry".
4714         (addqi3_carry): Likewise.
4715         (addhi3_carry): Likewise.
4716         (addsi3_carry): Likewise.
4717         (*addsi3_carry_zext): Likewise.
4718         (subdi3_carry_rex64): Likewise.
4719         (subqi3_carry): Likewise.
4720         (subhi3_carry): Likewise.
4721         (subsi3_carry): Likewise.
4722         (x86_movdicc_0_m1_rex64): Likewise.
4723         (*x86_movdicc_0_m1_se): Likewise.
4724         (x86_movsicc_0_m1): Likewise.
4725         (*x86_movsicc_0_m1_se): Likewise.
4726         (*adddi_1_rex64): Emit add insn as much as possible.
4727         (*addsi_1): Likewise.
4728         (return_internal): Set atom_unit.
4729         (return_internal_long): Likewise.
4730         (return_pop_internal): Likewise.
4731         (*rcpsf2_sse): Set atom_sse_attr attr.
4732         (*qrt<mode>2_sse): Likewise.
4733         (*prefetch_sse): Likewise.
4734
4735         * config/i386/i386-c.c (ix86_target_macros_internal): New case
4736         PROCESSOR_ATOM.
4737         (ix86_target_macros_internal): Likewise.
4738
4739         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4740         (*prefetch_sse_rex): Likewise.
4741         (sse_rcpv4sf2): Likewise.
4742         (sse_vmrcpv4sf2): Likewise.
4743         (sse_sqrtv4sf2): Likewise.
4744         (<sse>_vmsqrt<mode>2): Likewise.
4745         (sse_ldmxcsr): Likewise.
4746         (sse_stmxcsr): Likewise.
4747         (*sse_sfence): Likewise.
4748         (sse2_clflush): Likewise.
4749         (*sse2_mfence): Likewise.
4750         (*sse2_lfence): Likewise.
4751         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4752         (<sse>_movup<ssemodesuffixf2c>): Likewise.
4753         (avx_movdqu<avxmodesuffix>): Likewise.
4754         (avx_lddqu<avxmodesuffix>): Likewise.
4755         (sse2_movntv2di): Change attr "type" to "ssemov".
4756         (sse2_movntsi): Likewise.
4757         (rsqrtv8sf2): Change attr "type" to "sseadd".
4758         (sse3_addsubv2df3): Set attr "atom_unit".
4759         (sse3_h<plusminus_insn>v4sf3): Likewise.
4760         (*sse2_pmaddwd): Likewise.
4761         (*vec_extractv2di_1_rex64): Likewise.
4762         (*vec_extractv2di_1_avx): Likewise.
4763         (sse2_psadbw): Likewise.
4764         (ssse3_phaddwv8hi3): Likewise.
4765         (ssse3_phaddwv4hi3): Likewise.
4766         (ssse3_phadddv4si3): Likewise.
4767         (ssse3_phadddv2si3): Likewise.
4768         (ssse3_phaddswv8hi3): Likewise.
4769         (ssse3_phaddswv4hi3): Likewise.
4770         (ssse3_phsubwv8hi3): Likewise.
4771         (ssse3_phsubwv4hi3): Likewise.
4772         (ssse3_phsubdv4si3): Likewise.
4773         (ssse3_phsubdv2si3): Likewise.
4774         (ssse3_phsubswv8hi3): Likewise.
4775         (ssse3_phsubswv4hi3): Likewise.
4776         (ssse3_pmaddubsw128): Likewise.
4777         (sse3_pmaddubsw: Likewise.
4778         (ssse3_palignrti): Likewise.
4779         (ssse3_palignrdi): Likewise.
4780
4781 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
4782
4783         * doc/install.texi (Specific): Fix two cross-references to MinGW.
4784
4785 2009-04-06  Richard Guenther  <rguenther@suse.de>
4786
4787         PR tree-optimization/28868
4788         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4789         of which PHI results we inserted.
4790         (insert_into_preds_of_block): Record inserted PHIs.
4791         (eliminate): Eliminate redundant PHI nodes.
4792         (init_pre): Init inserted_phi_names.
4793
4794 2009-04-06  Richard Guenther  <rguenther@suse.de>
4795
4796         PR tree-optimization/39643
4797         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4798         IMAGPART_EXPRs of complex constants.
4799         (execute_fold_all_builtins): If we folded a call queue
4800         TODO_update_address_taken.
4801
4802 2009-04-06  Jan Hubicka  <jh@suse.cz>
4803
4804         PR middle-end/39659
4805         * except.c (remove_unreachable_regions): Propagate may_contain_throw
4806         flag.
4807
4808 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
4809
4810         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4811         delay slot.
4812         (ic_invalidate_array): Likewise.
4813
4814 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
4815
4816         * calls.c (emit_library_call_value_1): Fix a problem with parameter
4817         alignment for library calls.
4818
4819 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
4820
4821         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
4822         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
4823         * config/i386/mingw-stdint.h:  New file.
4824
4825 2009-04-05  Richard Guenther  <rguenther@suse.de>
4826
4827         PR tree-optimization/39648
4828         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4829         our &A vs. &A[0] IL deficiencies.
4830
4831 2009-04-04  Jan Hubicka  <jh@suse.cz>
4832
4833         * except.c (sjlj_find_directly_reachable_regions): Be ready for
4834         removed toplevel regions.
4835         (sjlj_mark_call_sites): Likewise.
4836
4837 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
4838
4839         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
4840         (cygwin tm clause use_gcc_stdint):  Set to wrap.
4841         * config/i386/cygwin-stdint.h:  New file.
4842
4843 2009-04-04  Richard Guenther  <rguenther@suse.de>
4844
4845         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4846         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4847         single-argument PHIs if we are in loop-closed SSA form.
4848         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4849         for the pre-condition.
4850         (slpeel_tree_peel_loop_to_edge): Likewise.
4851         (vect_build_loop_niters): Take an optional sequence to append stmts.
4852         (vect_generate_tmps_on_preheader): Likewise.
4853         (vect_do_peeling_for_loop_bound): Take extra guards for the
4854         pre-condition.
4855         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
4856         the cost model check.
4857         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
4858         guards if we are going to peel.  Do not apply versioning in that case.
4859         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4860         (vect_do_peeling_for_loop_bound): Likewise.
4861         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4862         loop bound only record extra pre-conditions, do not apply loop
4863         versioning.
4864
4865 2009-04-04  Richard Guenther  <rguenther@suse.de>
4866
4867         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4868         renaming code.
4869
4870 2009-04-04  Jan Hubicka  <jh@suse.cz>
4871
4872         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4873         last_basic_block for size of bb->index indexed array.
4874         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4875         compute_out, link_btr_uses, build_btr_def_use_webs,
4876         build_btr_def_use_webs, migrate_btr_defs): Likewise.
4877
4878 2009-04-04  Jan Hubicka  <jh@suse.cz>
4879
4880         * except.c (remove_eh_handler_and_replace): Break out from ...
4881         (remove_eh_handler): ... here.
4882         (bring_to_root): New function.
4883         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4884         handled ones, bring others to root of tree.
4885
4886 2009-04-04  Jan Hubicka  <jh@suse.cz>
4887
4888         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4889         (all_phis_safe_to_merge): New function.
4890         (update_info): New structure.
4891         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4892         (cleanup_empty_eh): Update SSA if possible.
4893
4894 2009-04-04  Richard Guenther  <rguenther@suse.de>
4895
4896         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4897         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4898         (append_vuse): Likewise.
4899
4900 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
4901
4902         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4903         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4904         instead of REG_UNSAVED for DW_CFA_undefined.
4905         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4906         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4907         outermost frame.
4908
4909 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
4910
4911         PR target/39501
4912         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4913         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4914         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4915
4916 2009-04-04  Richard Guenther  <rguenther@suse.de>
4917
4918         PR tree-optimization/8781
4919         PR tree-optimization/37892
4920         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4921         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4922         (valueize_refs): Call it for *& valueizations.
4923         (shared_reference_ops_from_ref): Rename to ...
4924         (valueize_shared_reference_ops_from_ref): ... this and valueize.
4925         (shared_reference_ops_from_call): Rename to ...
4926         (valueize_shared_reference_ops_from_call): ... this and valueize.
4927         (vn_reference_lookup): Update.
4928         (visit_reference_op_call): Likewise.
4929         * tree-ssa-pre.c (phi_translate_1): Fold *&.
4930         (eliminate): Value-replace the call address in call statements.
4931
4932 2009-04-04  Richard Guenther  <rguenther@suse.de>
4933
4934         PR tree-optimization/39636
4935         * tree-ssa-forwprop.c
4936         (forward_propagate_addr_into_variable_array_index): Check for
4937         GIMPLE_ASSIGN before accessing the rhs code.
4938
4939 2009-04-03  Jason Merrill  <jason@redhat.com>
4940
4941         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4942
4943 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
4944
4945         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4946         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4947         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4948         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4949         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4950         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4951         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4952         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4953         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4954         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4955         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4956         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4957         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4958         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4959         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4960         Use fr_reg_or_fp01_operand instead of fr_register_operand
4961
4962         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4963         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4964         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4965
4966 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
4967
4968         PR rtl-optimization/39607
4969         PR rtl-optimization/39631
4970
4971         Revert:
4972
4973         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4974         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4975         instead of DF_LR_OUT.
4976         * ira-lives.c (process_bb_node_lives): Ditto.
4977         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4978         instead of DF_LR_{OUT,IN}.
4979         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4980         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4981
4982 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
4983
4984         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4985         (execute_lower_omp): Always run but take the short way out if -fopenmp
4986         is not given.
4987         (gate_lower_omp): Remove, forcing the pass manager to always run the
4988         pass and always set PROP_gimple_lomp.
4989         (pass_lower_omp): Remove gate function.
4990         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4991         PROP_trees.  Instead, require it.
4992         * ipa-cp.c (pass_ipa_cp): Likewise.
4993         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4994         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4995         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4996         and PROP_gimple_leh.
4997
4998 2009-04-03  Richard Guenther  <rguenther@suse.de>
4999
5000         PR middle-end/13146
5001         PR tree-optimization/23940
5002         PR tree-optimization/33237
5003         PR middle-end/33974
5004         PR middle-end/34093
5005         PR tree-optimization/36201
5006         PR tree-optimization/36230
5007         PR tree-optimization/38049
5008         PR tree-optimization/38207
5009         PR tree-optimization/38230
5010         PR tree-optimization/38301
5011         PR tree-optimization/38585
5012         PR middle-end/38895
5013         PR tree-optimization/38985
5014         PR tree-optimization/39299
5015         * tree-ssa-structalias.h: Remove.
5016         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5017         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5018         (struct vuse_element_d): Remove.
5019         (struct vuse_vec_d): Likewise.
5020         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5021         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5022         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5023         VUSE_ELEMENT_VAR): Likewise.
5024         (struct voptype_d): Likewise.
5025         (NUM_VOP_FREE_BUCKETS): Likewise.
5026         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5027         (struct stmt_operands_d): Remove.
5028         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5029         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
5030         VDEF_NUM, VDEF_VECT): Likewise.
5031         (copy_virtual_operands): Remove.
5032         (operand_build_cmp): Likewise.
5033         (create_ssa_artificial_load_stmt): Likewise.
5034         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
5035         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
5036         vuse_index and mayuse_index members.  Pack and move done and iter_type
5037         members to the front.
5038         (SSA_OP_VMAYUSE): Remove.
5039         (SSA_OP_VIRTUAL_USES): Adjust.
5040         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
5041         (unlink_stmt_vdef): Declare.
5042         (add_to_addressable_set): Remove.
5043         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
5044         (vrp_visit_stmt): Likewise.
5045         * doc/tree-ssa.texi (Alias analysis): Update.
5046         * doc/invoke.texi (max-aliased-vops): Remove docs.
5047         (avg-aliased-vops): Likewise.
5048         * tree-into-ssa.c (syms_to_rename): Remove.
5049         (need_to_update_vops_p): Likewise.
5050         (need_to_initialize_update_ssa_p): Rename to ...
5051         (update_ssa_initialized_fn): ... this.  Track function we are
5052         initialized for.
5053         (symbol_marked_for_renaming): Simplify.
5054         (add_new_name_mapping): Do not set need_to_update_vops_p.
5055         (dump_currdefs): Use SYMS_TO_RENAME.
5056         (rewrite_update_stmt): Always walk all uses/defs.
5057         (dump_update_ssa): Adjust.
5058         (init_update_ssa): Take function argument.  Track what we are
5059         initialized for.
5060         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
5061         (create_new_def_for): Initialize for cfun, assert we are initialized
5062         for cfun.
5063         (mark_sym_for_renaming): Simplify.
5064         (mark_set_for_renaming): Do not initialize update-ssa.
5065         (need_ssa_update_p): Simplify.  Take function argument.
5066         (name_mappings_registered_p): Assert we ask for the correct function.
5067         (name_registered_for_update_p): Likewise.
5068         (ssa_names_to_replace): Likewise.
5069         (release_ssa_name_after_update_ssa): Likewise.
5070         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
5071         (dump_decl_set): Do not print a newline.
5072         (debug_decl_set): Do it here.
5073         (dump_update_ssa): And here.
5074         * tree-ssa-loop-im.c (move_computations): Adjust.
5075         (movement_possibility): Likewise.
5076         (determine_max_movement): Likewise.
5077         (gather_mem_refs_stmt): Likewise.
5078         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
5079         or NAME_MEMORY_TAG.
5080         * tree-complex.c (update_all_vops): Remove.
5081         (expand_complex_move): Adjust.
5082         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
5083         Simplify test for memory referencing statement.  Exclude
5084         non-invariant ADDR_EXPRs.
5085         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
5086         * tree-loop-distribution.c (generate_memset_zero): Adjust.
5087         (rdg_flag_uses): Likewise.
5088         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
5089         related code.
5090         (tree_optimize_tail_calls_1): Also split the
5091         edge from the entry block if we have degenerate PHI nodes in
5092         the first basic block.
5093         * tree.c (init_ttree): Remove memory-tag related code.
5094         (tree_code_size): Likewise.
5095         (tree_node_structure): Likewise.
5096         (build7_stat): Re-write to be build6_stat.
5097         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
5098         (SSA_VAR_P): Adjust.
5099         (struct tree_memory_tag): Remove.
5100         (struct tree_memory_partition_tag): Likewise.
5101         (union tree_node): Adjust.
5102         (build7): Re-write to be build6.
5103         * tree-pass.h (pass_reset_cc_flags): Remove.
5104         (TODO_update_address_taken): New flag.
5105         (pass_simple_dse): Remove.
5106         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
5107         * params.h (MAX_ALIASED_VOPS): Remove.
5108         (AVG_ALIASED_VOPS): Likewise.
5109         * omp-low.c (expand_omp_taskreg): Update SSA form.
5110         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
5111         aliases the lhs in a copy stmt.
5112         * tree-ssa-dse.c (struct address_walk_data): Remove.
5113         (memory_ssa_name_same): Likewise.
5114         (memory_address_same): Likewise.
5115         (get_kill_of_stmt_lhs): Likewise.
5116         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
5117         unused stores.  Look through PHI nodes into post-dominated regions.
5118         (dse_optimize_stmt): Simplify.  Properly remove stores.
5119         (tree_ssa_dse): Compute dominators.
5120         (execute_simple_dse): Remove.
5121         (pass_simple_dse): Likewise.
5122         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
5123         gimple_loaded_syms and gimple_stored_syms computation.
5124         * toplev.c (dump_memory_report): Dump alias and pta stats.
5125         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
5126         (vn_reference_eq): Likewise.
5127         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
5128         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
5129         valueize_vuses): Remove.
5130         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
5131         (get_def_ref_stmt_vuse): ... this.
5132         (vn_reference_lookup_2): New function.
5133         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
5134         walking equivalent vuses.  Simplify.
5135         (vn_reference_lookup): Likewise.
5136         (vn_reference_insert): Likewise.
5137         (vn_reference_insert_pieces): Likewise.
5138         (visit_reference_op_call): Simplify.
5139         (visit_reference_op_load): Likewise.
5140         (visit_reference_op_store): Likewise.
5141         (init_scc_vn): Remove shared_lookup_vuses initialization.
5142         (free_scc_vn): Remove shared_lookup_vuses freeing.
5143         (sort_vuses, sort_vuses_heap): Remove.
5144         (get_ref_from_reference_ops): Export.
5145         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
5146         vector with single vuse pointer.
5147         (vn_reference_lookup_pieces, vn_reference_lookup,
5148         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
5149         (shared_vuses_from_stmt): Remove.
5150         (get_ref_from_reference_ops): Declare.
5151         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
5152         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5153         memory-tag related code.
5154         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
5155         (likely_value): Add comment, skip static-chain of call statements.
5156         (surely_varying_stmt_p): Adjust.
5157         (gimplify_and_update_call_from_tree): Likewise.
5158         (execute_fold_all_builtins): Do not rebuild alias info.
5159         (gimplify_and_update_call_from_tree): Properly update VOPs.
5160         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
5161         (copy_ref_info): Remove memory-tag related code.
5162         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
5163         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
5164         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
5165         computation.
5166         * tree-ssa-dom.c (gimple_p): Remove typedef.
5167         (eliminate_redundant_computations): Adjust.
5168         (record_equivalences_from_stmt): Likewise.
5169         (avail_expr_hash): Likewise.
5170         (avail_expr_eq): Likewise.
5171         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5172         (stmt_makes_single_load): Likewise.
5173         (stmt_makes_single_store): Likewise.
5174         * tree-ssa-alias.c: Rewrite completely.
5175         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
5176         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
5177         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
5178         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
5179         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
5180         Remove public functions.
5181         (pass_reset_cc_flags): Remove.
5182         (pass_build_alias): Move ...
5183         * tree-ssa-structalias.c (pass_build_alias): ... here.
5184         * tree-ssa-alias.c (may_be_aliased): Move ...
5185         * tree-flow-inline.h (may_be_aliased): ... here.
5186         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
5187         count_uses_and_derefs): Move ...
5188         * gimple.c: ... here.
5189         * gimple.h (count_uses_and_derefs): Declare.
5190         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
5191         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
5192         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
5193         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
5194         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
5195         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
5196         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
5197         New functions.
5198         * tree-dfa.c (refs_may_alias_p): Move ...
5199         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
5200         * tree-ssa-alias.h: New file.
5201         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
5202         (statement_sink_location): Likewise.
5203         * opts.c (decode_options): Do not adjust max-aliased-vops or
5204         avg-aliased-vops values.
5205         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
5206         (TV_CALL_CLOBBER): Likewise.
5207         (TV_FLOW_SENSITIVE): Likewise.
5208         (TV_FLOW_INSENSITIVE): Likewise.
5209         (TV_MEMORY_PARTITIONING): Likewise.
5210         (TV_ALIAS_STMT_WALK): New timevar.
5211         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
5212         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
5213         (get_address_description): Remove memory-tag related code.
5214         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
5215         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
5216         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
5217         and immediate uses in statements.  Document.
5218         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
5219         (dump_symbols): Remove.
5220         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
5221         * alias.c (get_deref_alias_set): New function split out from ...
5222         (get_alias_set): ... here.
5223         * alias.h (get_deref_alias_set): Declare.
5224         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
5225         type parameter.  Remove restrict pointer handling.  Create a
5226         ref-all pointer in case type-based alias sets do not conflict.
5227         (vect_analyze_data_refs): Remove SMT related code.
5228         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5229         (vectorizable_load): Likewise.
5230         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5231         (DR_SYMBOL_TAG, DR_VOPS): Remove.
5232         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5233         Ignore vops and SMTs.
5234         (dr_analyze_alias): Likewise..
5235         (free_data_ref): Likewise.
5236         (create_data_ref): Likewise.
5237         (analyze_all_data_dependences): Likewise.
5238         (get_references_in_stmt): Adjust.
5239         * tree-flow-inline.h (gimple_aliases_computed_p,
5240         gimple_addressable_vars, gimple_call_clobbered_vars,
5241         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5242         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5243         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5244         gimple_mem_ref_stats): Remove.
5245         (gimple_vop): New function.
5246         (op_iter_next_use): Remove vuses and mayuses cases.
5247         (op_iter_next_def): Remove vdefs case.
5248         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5249         (clear_and_done_ssa_iter): Do not set removed fields.
5250         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
5251         Assert we are not iterating over vuses or vdefs if not also
5252         iterating over uses or defs.
5253         (op_iter_init_use): Likewise.
5254         (op_iter_init_def): Likewise.
5255         (op_iter_next_vdef): Remove.
5256         (op_iter_next_mustdef): Likewise.
5257         (op_iter_init_vdef): Likewise.
5258         (compare_ssa_operands_equal): Likewise.
5259         (link_use_stmts_after): Handle vuse operand.
5260         (is_call_used): Use is_call_clobbered.
5261         (is_call_clobbered): Global variables are always call clobbered,
5262         query the call-clobbers bitmap.
5263         (mark_call_clobbered): Ignore global variables.
5264         (clear_call_clobbered): Likewise.
5265         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5266         virtual operands sanity check.
5267         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5268         Remove.
5269         (TARGET_MEM_REF): Remove TMR_TAG operand.
5270         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5271         Remove call-clobber related code.
5272         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
5273         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5274         partitions or escape reason.
5275         (get_single_def_stmt, get_single_def_stmt_from_phi,
5276         get_single_def_stmt_with_phi): Remove.
5277         (dump_referenced_vars): Tidy.
5278         (get_ref_base_and_extent): Allow bare decls.
5279         (collect_dfa_stats): Adjust.
5280         * graphite.c (rename_variables_in_stmt): Adjust.
5281         (graphite_copy_stmts_from_block): Likewise.
5282         (translate_clast): Likewise.
5283         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5284         (EXPR_DIES): New.
5285         (translate_vuse_through_block): Use the oracle.
5286         (phi_translate_1): Adjust.
5287         (value_dies_in_block_x): Use the oracle.  Cache the outcome
5288         in EXPR_DIES.
5289         (valid_in_sets): Check if the VUSE for
5290         a REFERENCE is available.
5291         (eliminate): Do not remove stmts during elimination,
5292         instead queue and remove them afterwards.
5293         (do_pre): Do not rebuild alias info.
5294         (pass_pre): Run TODO_rebuild_alias before PRE.
5295         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5296         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5297         (mark_all_v_defs_stmt): Remove.
5298         (mark_all_v_defs_seq): Adjust.
5299         (sra_replace): Likewise.
5300         (scalarize_use): Likewise.
5301         (scalarize_copy): Likewise.
5302         (scalarize_init): Likewise.
5303         (scalarize_ldst): Likewise.
5304         (todoflags): Remove.
5305         (tree_sra): Do not rebuild alias info.
5306         (tree_sra_early): Adjust.
5307         (pass_sra): Run TODO_update_address_taken before SRA.
5308         * tree-predcom.c (set_alias_info): Remove.
5309         (prepare_initializers_chain): Do not call it.
5310         (mark_virtual_ops_for_renaming): Adjust.
5311         (mark_virtual_ops_for_renaming_list): Remove.
5312         (initialize_root_vars): Adjust.
5313         (initialize_root_vars_lm): Likewise.
5314         (prepare_initializers_chain): Likewise.
5315         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5316         (may_propagate_copy_into_stmt): Likewise.
5317         (merge_alias_info): Do nothing for now.
5318         (propagate_tree_value_into_stmt): Adjust.
5319         (stmt_may_generate_copy): Likewise.
5320         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5321         not mark symbols for renaming.
5322         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5323         with the same statement, make sure to update the new pointed-to one.
5324         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5325         call statements, do not mark symbols for renaming.
5326         (mark_operand_necessary): Dump something.
5327         (ref_may_be_aliased): New function.
5328         (mark_aliased_reaching_defs_necessary_1): New helper function.
5329         (mark_aliased_reaching_defs_necessary): Likewise.
5330         (mark_all_reaching_defs_necessary_1): Likewise.
5331         (mark_all_reaching_defs_necessary): Likewise.
5332         (propagate_necessity): Do not process virtual PHIs.  For
5333         non-aliased loads mark all reaching definitions as necessary.
5334         For aliased loads and stores mark the immediate dominating
5335         aliased clobbers as necessary.
5336         (visited): New global static.
5337         (perform_tree_ssa_dce): Free visited bitmap after propagating
5338         necessity.
5339         (remove_dead_phis): Perform simple dead virtual PHI removal.
5340         (remove_dead_stmt): Properly unlink virtual operands when
5341         removing stores.
5342         (eliminate_unnecessary_stmts): Schedule PHI removal after
5343         stmt removal.
5344         * tree-ssa-ter.c (is_replaceable_p): Adjust.
5345         (process_replaceable): Likewise.
5346         (find_replaceable_in_bb): Likewise.
5347         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5348         based on the single gimple vop.
5349         (verify_flow_insensitive_alias_info): Remove.
5350         (verify_flow_sensitive_alias_info): Likewise.
5351         (verify_call_clobbering): Likewise.
5352         (verify_memory_partitions): Likewise.
5353         (verify_alias_info): Likewise.
5354         (verify_ssa): Adjust..
5355         (execute_update_addresses_taken): Export.  Update SSA
5356         manually.  Optimize only when optimizing.  Use a local bitmap.
5357         (pass_update_address_taken): Remove TODO_update_ssa, add
5358         TODO_dump_func.
5359         (pass_update_address_taken): Just use TODO_update_address_taken.
5360         (init_tree_ssa): Do not initialize addressable_vars.
5361         (verify_ssa): Verify new VUSE / VDEF properties.
5362         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5363         Do not call verify_alias_info.
5364         (delete_tree_ssa): Clear the VUSE, VDEF operands.
5365         Do not free the loaded and stored syms bitmaps.  Reset the escaped
5366         and callused solutions.  Do not free addressable_vars.
5367         Remove memory-tag related code.
5368         (warn_uninitialized_var): Aliases are always available.
5369         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5370         * lambda-code.c (can_put_in_inner_loop): Adjust.
5371         (can_put_after_inner_loop): Likewise.
5372         (perfect_nestify): Likewise.
5373         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5374         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5375         (vectorizable_conversion): Do not mark symbols for renaming.
5376         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5377         (expand_call_inline): Unlink the calls virtual operands before
5378         replacing it.
5379         (tree_function_versioning): Do not call update_ssa if we are not
5380         updating clones.  Simplify.
5381         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5382         (propagate_with_phi): Likewise..
5383         * tree-outof-ssa.c (create_temp): Remove memory tag and call
5384         clobber code.  Assert we are not aliased or global.
5385         * tree-flow.h: Include tree-ssa-alias.h
5386         (enum escape_type): Remove.
5387         (struct mem_sym_stats_d): Likewise.
5388         (struct mem_ref_stats_d): Likewise.
5389         (struct gimple_df): Add vop member.  Remove global_var,
5390         call_clobbered_vars, call_used_vars, addressable_vars,
5391         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
5392         escaped and callused members.
5393         (struct ptr_info_def): Remove all members, add points-to solution
5394         member pt.
5395         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5396         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5397         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5398         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5399         (tree-ssa-alias.o): Likewise.
5400         (toplev.o): Add tree-ssa-alias.h
5401         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5402         * gimple.c (gimple_set_bb): Fix off-by-one error.
5403         (is_gimple_reg): Do not handle memory tags.
5404         (gimple_copy): Also copy virtual operands.
5405         Delay updating the statement.  Do not reset loaded and stored syms.
5406         (gimple_set_stored_syms): Remove.
5407         (gimple_set_loaded_syms): Likewise.
5408         (gimple_call_copy_skip_args): Copy the virtual operands
5409         and mark the new statement modified.
5410         * tree-ssa-structalias.c (may_alias_p): Remove.
5411         (set_uids_in_ptset): Take the alias set to prune with as
5412         parameter.  Fold in the alias test of may_alias_p.
5413         (compute_points_to_sets): Compute whether a ptr is dereferenced
5414         in a local sbitmap.
5415         (process_constraint): Deal with &ANYTHING on the lhs, reject all
5416         other ADDRESSOF constraints on the lhs.
5417         (get_constraint_for_component_ref): Assert that we don't get
5418         ADDRESSOF constraints from the base of the reference.
5419         Properly generate UNKNOWN_OFFSET for DEREF if needed.
5420         (struct variable_info): Remove collapsed_to member.
5421         (get_varinfo_fc): Remove.
5422         (new_var_info): Do not set collapsed_to.
5423         (dump_constraint): Do not follow cycles.
5424         (dump_constraint_graph): Likewise.
5425         (build_pred_graph): Likewise.
5426         (build_succ_graph): Likewise.
5427         (rewrite_constraints): Likewise.
5428         (do_simple_structure_copy): Remove.
5429         (do_rhs_deref_structure_copy): Remove.
5430         (do_lhs_deref_structure_copy): Remove.
5431         (collapse_rest_of_var): Remove.
5432         (do_structure_copy): Re-implement.
5433         (pta_stats): New global variable.
5434         (dump_pta_stats): New function.
5435         (struct constraint_expr): Make offset signed.
5436         (UNKNOWN_OFFSET): Define special value.
5437         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5438         (solution_set_expand): New helper function split out from ...
5439         (do_sd_constraint): ... here.
5440         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
5441         (do_ds_constraint): Likewise.
5442         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
5443         and CALLUSED = *CALLUSED.
5444         (set_union_with_increment): Make inc argument signed.
5445         (type_safe): Remove.
5446         (get_constraint_for_ptr_offset): Handle unknown and negative
5447         constant offsets.
5448         (first_vi_for_offset): Handle offsets before start.  Bail
5449         out early for offsets beyond the variable extent.
5450         (first_or_preceding_vi_for_offset): New function.
5451         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5452         Together with ESCAPED = *ESCAPED this properly computes reachability.
5453         (find_what_var_points_to): New function.
5454         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5455         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5456         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5457         pt_solutions_intersect): New functions.
5458         (compute_call_used_vars): Remove.
5459         (compute_may_aliases): New main entry into PTA computation.
5460         * gimple.h (gimple_p): New typedef.
5461         (struct gimple_statement_base): Remove references_memory_p.
5462         (struct gimple_statement_with_memory_ops_base): Remove
5463         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
5464         members.
5465         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5466         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5467         gimple_set_references_memory): Remove.
5468         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5469         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5470         New functions.
5471         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5472         (verify_expr): Allow RESULT_DECL.
5473         (gimple_duplicate_bb): Do not copy virtual operands.
5474         (gimple_duplicate_sese_region): Adjust.
5475         (gimple_duplicate_sese_tail): Likewise.
5476         (mark_virtual_ops_in_region): Remove.
5477         (move_sese_region_to_fn): Do not call it.
5478         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5479         and pass_simple_dse.
5480         (execute_function_todo): Handle TODO_update_address_taken,
5481         call execute_update_addresses_taken for TODO_rebuild_alias.
5482         (execute_todo): Adjust.
5483         (execute_one_pass): Init dump files early.
5484         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5485         call-clobbered.
5486         (create_general_new_stmt): Clear vops.
5487         * tree-ssa-reassoc.c (get_rank): Adjust.
5488         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5489         symbols for renaming.
5490         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5491         (PARAM_AVG_ALIASED_VOPS): Likewise.
5492         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5493         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
5494         * tree-ssa-operands.c: Simplify for new virtual operand representation.
5495         (operand_build_cmp, copy_virtual_operands,
5496         create_ssa_artificial_load_stmt, add_to_addressable_set,
5497         gimple_add_to_addresses_taken): Remove public functions.
5498         (unlink_stmt_vdef): New function.
5499
5500 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5501
5502         * config.gcc (powerpc-*-linux*): Merge variants.
5503
5504 2009-04-02  Chao-ying Fu  <fu@mips.com>
5505             James Grosbach  <james.grosbach@microchip.com>
5506
5507         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5508         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5509         cop0_sp_offset.
5510         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5511         keep_interrupts_masked_p, use_debug_exception_return_p.
5512         (mips_attribute_table): Add interrupt, use_shadow_register_set,
5513         keep_interrupts_masked, use_debug_exception_return.
5514         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5515         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5516         New functions.
5517         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5518         (mips_print_operand): Process COP0 registers to print $0 .. $31
5519         correctly for GAS to process.
5520         (mips_interrupt_extra_call_saved_reg_p): New function.
5521         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5522         extra registers.
5523         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5524         (mips_compute_frame_info): Add supports for interrupt context that
5525         includes doubleword accumulators and COP0 registers.
5526         (mips_for_each_saved_acc): New function.
5527         (mips_for_each_saved_gpr_and_fpr): Change the function name from
5528         mips_for_each_saved_reg.
5529         (mips_save_reg): Save accumulators.
5530         (mips_kernel_reg_p): A new for_each_rtx callback.
5531         (mips_expand_prologue): Support interrupt handlers.
5532         (mips_restore_reg): Restore accumulators.
5533         (mips_expand_epilogue): Support interrupt handlers.
5534         (mips_can_use_return_insn): Return false for interrupt handlers.
5535         (mips_epilogue_uses): New function.
5536         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5537         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5538         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5539         cop0_move): New instructions.
5540         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5541         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5542         defines.
5543         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5544         New defines.
5545         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5546         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5547         interrupt handlers, we use K0 as the temporary register.
5548         (EPILOGUE_USES): Change to a function call.
5549         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5550         handlers, we use K0 as the temporary register.
5551
5552         * doc/extend.texi (Function Attributes): Document interrupt,
5553         use_shadow_register_set, keep_interrupts_masked,
5554         use_debug_exception_return for MIPS attributes.
5555
5556 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5557
5558         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5559         Remove a number of t-files from tmake_file.
5560         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5561         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5562         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5563         target_prototype, not TARGET_PROTOTYPE.
5564         (LINK_OS_GNU_SPEC): Define.
5565         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5566         and darwin-ldoubdle.c.
5567
5568 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5569
5570         PR driver/39293
5571         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5572         (cpp_options): Ditto.
5573         (default_compilers): Ditto.
5574         (display_help): Ditto.
5575         (process_command): Ditto.
5576         (do_spec_1): Ditto.
5577         (set_input): Use lbasename instead of duplicate code.
5578         (save_temps_prefix): New static for -save-temps=obj.
5579         (save_temps_length): Ditto.
5580
5581         * doc/invoke.texi (-save-temps=obj): Document new variant to
5582         -save-temps switch.
5583
5584 2009-04-02  Jeff Law  <law@redhat.com>
5585
5586         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5587         variable.
5588
5589 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5590
5591         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5592         * configure: Regenerated.
5593
5594 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5595
5596         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5597         share the argument list.
5598
5599 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5600
5601         Merge
5602
5603         2009-02-12  Diego Novillo  <dnovillo@google.com>
5604
5605         * varpool.c (debug_varpool): New.
5606         * cgraph.h (debug_varpool): Declare.
5607
5608 2009-04-02  Jan Hubicka  <jh@suse.cz>
5609
5610         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5611         pass.
5612
5613 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5614
5615         * config/i386/i386.c (ix86_abi): Move initialization to ...
5616         (override_options): Here.
5617
5618 2009-04-02  Christian Bruel  <christian.bruel@st.com>
5619
5620         * config/sh/sh.c (sh_dwarf_register_span): New function.
5621         (TARGET_DWARF_REGISTER_SPAN): Define.
5622         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
5623
5624 2009-04-02  Ira Rosen  <irar@il.ibm.com>
5625
5626         PR tree-optimization/39595
5627         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
5628         interleaved loads group is not  greater than the SLP group size.
5629
5630 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5631
5632         * builtins.c (is_builtin_name): New.
5633         (called_as_built_in): Use is_builtin_name.
5634         * tree.h (is_builtin_name): New.
5635         * varasm.c (incorporeal_function_p): Use is_builtin_name
5636
5637 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
5638
5639         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5640
5641 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
5642
5643         PR c++/26693
5644         * c-decl.c (clone_underlying_type): Move this ...
5645         * c-common.c (set_underlying_type): ... here.
5646         Also, make sure the function properly sets TYPE_STUB_DECL() on
5647         the newly created typedef variant type.
5648         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
5649         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5650         points.
5651
5652 2009-04-02  Richard Guenther  <rguenther@suse.de>
5653
5654         PR tree-optimization/37221
5655         * tree-flow.h (degenerate_phi_result): Declare.
5656         * tree-ssa-dom.c (degenerate_phi_result): Export.
5657         * tree-scalar-evolution.c (analyze_initial_condition): If
5658         the initial condition is defined by a degenerate PHI node
5659         use the degenerate value.
5660
5661 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
5662
5663         PR rtl-optimization/39588
5664         * combine.c (merge_outer_ops): Do not set the constant when this
5665         is not necessary.
5666         (simplify_shift_const_1): Do not modify it either in this case.
5667
5668 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
5669
5670         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5671         tuning is deprecated if -mtune value is set to an Itanium1 variant.
5672
5673 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
5674
5675         PR c/29027
5676         * c-lex.c (interpret_float): Default (no suffix) is double.
5677
5678 2009-04-1  Xinliang David Li  <davidxl@google.com>
5679
5680         * config/i386/i386.c (legitimate_constant_p): Recognize
5681         all one vector constant.
5682
5683 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5684
5685         * config/vax/vax.c: Add #includes to silence warnings.
5686         Change #include order to silence two warnings.
5687
5688 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5689
5690         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
5691         (ASM_SPEC): Pass -k to the assembler for PIC code.
5692
5693 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5694
5695         * config.gcc: Add vax-*-linux* to the switch.
5696         * config/vax/linux.h: New file. (TARGET_VERSION,
5697         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5698
5699 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5700
5701         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
5702         Use predicate macros instead of GET_CODE() == foo.
5703         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
5704         ashlsi3, rotrsi3, <unnamed>): Likewise.
5705
5706 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5707
5708         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
5709         jbbccihi, jbbccisi): Remova trailing whitespace.
5710         * config/vax/constraints.md: Likewise.
5711         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5712         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5713         * config/vax/predicates.md: Likewise.
5714         * config/vax/vax.c (print_operand_address, vax_output_int_move,
5715         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
5716         * config/vax/vax.h: Likewise.
5717         * config/vax/vax.md (nonlocal_goto): Likewise.
5718
5719 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5720
5721         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
5722         (indirectable_address_p, adjacent_operands_p): Add spaces around
5723         braces.
5724         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
5725
5726 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5727
5728         * config/vax/vax.c (legitimate_constant_address_p,
5729         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5730         index_term_p, reg_plus_index_p, legitimate_address_p,
5731         vax_mode_dependent_address_p): Update comments to match functions
5732         modified by the recent int->bool conversion.
5733
5734 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5735
5736         * config/vax/builtins.md: Update copyright message.
5737         * config/vax/constraints.md: Likewise.
5738         * config/vax/netbsd-elf.h: Likewise.
5739         * config/vax/predicates.md: Likewise.
5740         * config/vax/vax-protos.h: Likewise.
5741         * config/vax/vax.c: Likewise.
5742         * config/vax/vax.h: Likewise.
5743         * config/vax/vax.md: Likewise.
5744         * config/vax/vax.opt: Likewise.
5745
5746 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5747
5748         * config/vax/builtins.md (ffssi2, ffssi2_internal,
5749         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
5750         * config/vax/constraints.md (B, R): Likewise.
5751         * config/vax/predicates.md (external_memory_operand,
5752         nonimmediate_addsub_di_operand): Likewise.
5753         * config/vax/vax.c (vax_output_int_add): Likewise.
5754         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
5755         untyped_call): Likewise.
5756
5757 2009-04-01  Matt Thomas  <matt@3am-software.com>
5758
5759         * config/vax/predicates.md: New file.
5760         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
5761         external_const_operand, nonsymbolic_operand, external_memory_operand,
5762         indirect_memory_operand, indexed_memory_operand,
5763         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5764         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5765         predicate.
5766         * config/vax/constraints.md: New file.
5767         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5768         New constraint.
5769         * config/vax/builtins.md: New file.
5770         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5771         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5772         jbbccisi): Define.
5773         * config/vax/vax.opt (mqmath): Add option.
5774         * config/vax/vax.md (isfx): Extend with DI.
5775         (VAXintQH, VAXintQHSD): Define.
5776         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5777         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5778         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5779         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5780         (movdi): Update constraints and use vax_output_int_move().
5781         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5782         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5783         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5784         nonlocal_goto): New.
5785         (mov<mode>): Extend accepted operand types.
5786         (subdi3_old): Rename from subdi3, change update constraints and use
5787         a new implementation.
5788         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
5789         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5790         MOVE_RATIO, CLEAR_RATIO): Define.
5791         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5792         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5793         (PRINT_OPERAND): Redefine using a function instead of inlined code.
5794         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5795         (split_quadword_operands): Make static and really allow variable
5796         splitting.
5797         (print_operand_address): Update for PIC generation.
5798         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5799         indexable_address_p, fixup_mathdi_operand,
5800         vax_expand_addsub_di_operands, adjacent_operands_p): New.
5801         (vax_float_literal, legitimate_constant_p,
5802         indirectable_constant_address_p, index_term_p,
5803         reg_plus_index_p): Return bool instead of int.
5804         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5805         where needed.
5806         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5807         generation.
5808         (vax_output_conditional_branch): Indent.
5809         (legitimate_constant_address_p, indirectable_constant_address_p,
5810         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5811         vax_mode_dependent_address_p): Return bool instead of int, update for
5812         PIC generation.
5813         * config/vax/vax-protos.h (legitimate_constant_address_p,
5814         legitimate_constant_p, legitimate_address_p,
5815         vax_mode_dependent_address_p): Change declaration to bool.
5816         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5817         vax_expand_addsub_di_operands, vax_output_int_subtract,
5818         vax_output_movmemsi): Declare.
5819         (split_quadword_operands, vax_float_literal): Delete declaration.
5820         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5821         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5822         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5823         ASM_OUTPUT_DWARF_PCREL): Define.
5824         (ASM_SPEC): Change definition to allow PIC generation.
5825
5826 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
5827
5828         * doc/sourcebuild.texi: Update front-end requirements.
5829
5830 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5831
5832         PR target/39226
5833         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5834         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5835         (booldi3_internal3): Use boolean_or_operator instead of
5836         boolean_operator.
5837
5838 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
5839
5840         PR c/39605
5841         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5842         declarator whose size is not an integer constant expression but
5843         folds to an integer constant, then treat it as a constant
5844         subsequently.
5845
5846 2009-04-01  Richard Guenther  <rguenther@suse.de>
5847
5848         * fold-const.c (fold_plusminus_mult_expr): Do not fold
5849         i * 4 + 2 to (i * 2 + 1) * 2.
5850
5851 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5852
5853         PR c/37772
5854         * c-parser.c (c_parser_asm_statement): Skip until close paren and
5855         return if c_parser_asm_string_literal returned NULL.
5856
5857 2009-04-01  Nick Clifton  <nickc@redhat.com>
5858
5859         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5860         already defined.
5861         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5862         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
5863         other typedefs to avoid conflicts with libgcc2.c.  Define labels
5864         to gain 16-bit bit-manipulation functions from libgcc2.c and then
5865         include it.
5866         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
5867         to gain 16-bit trapping arithmetic functions from libgcc2.c and
5868         then include it.
5869
5870 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
5871
5872         * varasm.c (default_function_rodata_section): Declare DOT as
5873         const char*.
5874
5875 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
5876             Andrey Galkin  <agalkin@hypercom.com>
5877
5878         PR/39492
5879         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5880         Make object_name unique for each process.
5881
5882 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5883
5884         PR other/39591
5885         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5886         addressable variables in the parallel that could go out of scope while
5887         running queued tasks.
5888
5889 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
5890
5891         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5892         (CASE_VALUES_THRESHOLD): Redefine.
5893         * config/avr/avr.c (avr_override_options): Remove initialization of
5894         avr_case_values_threshold variable.
5895         (avr_case_values_threshold): Remove variable. Add new function.
5896         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5897         * config/avr/avr.opt (mno-tablejump): Remove option.
5898         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5899
5900 2009-04-01  DJ Delorie  <dj@redhat.com>
5901
5902         * varasm.c (default_function_rodata_section): Don't assume
5903         anything about where the first '.' in the section name is.
5904
5905 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
5906
5907         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5908         rs6000_emit_stack_tie.
5909
5910 2009-03-31  Ian Lance Taylor  <iant@google.com>
5911
5912         * tree-eh.c (tree_remove_unreachable_handlers): Compare
5913         gimple_code with GIMPLE_RESX, not RESX.
5914
5915 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5916
5917         * c-common.c (c_get_ident): New.
5918         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
5919
5920 2009-04-01  Ben Elliston  <bje@au.ibm.com>
5921
5922         * config/rs6000/sysv4.opt (msdata): Improve option description.
5923
5924 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
5925
5926         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5927         (divdf3_internal_lat): Remove.
5928         (divxf3_internal_lat): Remove.
5929         (divxf3_internal_thr): Remove.
5930         (divxf): Use divxf3_internal.
5931         * config/ia64/div.md (divsf3_internal_lat): New.
5932         (divdf3_internal_lat): New.
5933         (divxf3_internal): New.
5934
5935 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5936
5937         PR c/448
5938         * Makefile.in (USE_GCC_STDINT): Define.
5939         (stmp-int-hdrs): Install stdint.h if applicable.
5940         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5941         if known.
5942         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5943         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5944         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5945         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5946         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5947         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5948         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5949         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5950         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5951         (c_common_nodes_and_builtins): Initialize
5952         underlying_wchar_type_node.  Do not initialize
5953         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
5954         nodes for new types.
5955         (c_stddef_cpp_builtins): Define macros for new types.
5956         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5957         Remove.
5958         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5959         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5960         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5961         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5962         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5963         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5964         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5965         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5966         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5967         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5968         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5969         int16_type_node, int32_type_node, int64_type_node,
5970         uint8_type_node, uint16_type_node, c_uint32_type_node,
5971         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5972         int_least32_type_node, int_least64_type_node,
5973         uint_least8_type_node, uint_least16_type_node,
5974         uint_least32_type_node, uint_least64_type_node,
5975         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5976         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5977         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5978         uintptr_type_node): Define.
5979         * c-cppbuiltin.c (builtin_define_constants,
5980         builtin_define_type_minmax): New.
5981         (builtin_define_stdint_macros): Define more macros.
5982         (c_cpp_builtins): Define more limit macros.
5983         (type_suffix): New.
5984         (builtin_define_type_max): Define in terms of
5985         builtin_define_type_minmax.  Remove is_long parameter.  All
5986         callers changed.
5987         * config.gcc (use_gcc_stdint): Define.
5988         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5989         Add newlib-stdint.h for generic targets.
5990         * config/glibc-stdint.h, config/newlib-stdint.h,
5991         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5992         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5993         * config/score/score.h (UINTPTR_TYPE): Define.
5994         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5995         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5996         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5997         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5998         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5999         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6000         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6001         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6002         * config/spu/spu.h (STDINT_LONG32): Define.
6003         * configure.ac (use_gcc_stdint): Substitute.
6004         * configure: Regenerate.
6005         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6006         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6007         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6008         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6009         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6010         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6011         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6012         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6013         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6014         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6015         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6016         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6017         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6018         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6019         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6020         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6021         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6022         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6023         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6024         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6025         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6026         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6027         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6028         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6029         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6030         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6031         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6032         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6033         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
6034
6035 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
6036
6037         * loop-iv.c (suitable_set_for_replacement): Renamed from
6038         simplify_using_assignment; changed to return bool and to accept new
6039         args DEST and SRC.  Return true iff we find a source/destination pair
6040         that can be used to make a replacement, and fill SRC and DEST if so.
6041         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
6042         changed.
6043         (simplify_using_initial_values): Deal with altered regs here and track
6044         more precisely the effect they have on the validity of our expression.
6045
6046         * loop-iv.c (simplify_using_condition): A condition of the form
6047         (EQ REG CONST) can be used to simply make a substitution.
6048         (simplify_using_initial_values): Keep track of conditions we have seen
6049         and keep using them to simplify new expressions, while applying the
6050         same substitutions to them as to the expression.
6051
6052         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6053         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
6054         GEU/LTU reversed.
6055
6056         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
6057         changed.  Use this when trying to improve the upper bound.
6058         Generate the comparison by using simplify_gen_relational.
6059
6060         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
6061
6062         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
6063         functions.
6064         (simplify_using_assignment, simplify_using_initial_values): Call
6065         replace_in_expr to make replacements.  Call replace_single_def_regs
6066         once on the initial version of the expression.
6067
6068 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6069
6070         PR target/27237
6071         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
6072
6073 2009-03-31  Richard Guenther  <rguenther@suse.de>
6074
6075         PR middle-end/31029
6076         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
6077         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
6078
6079 2009-03-31  Richard Guenther  <rguenther@suse.de>
6080
6081         * tree.h (div_if_zero_remainder): Declare.
6082         * fold-const.c (div_if_zero_remainder): Export.
6083         * tree-ssa-forwprop.c
6084         (forward_propagate_addr_into_variable_array_index): Handle
6085         constant array index addition outside of the variable index.
6086
6087 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6088
6089         PR target/39592
6090         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
6091         define_splits, floatunssi<mode>2): Require x87 conversions from
6092         DImode to be permitted.
6093
6094 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6095
6096         PR preprocessor/15638
6097         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
6098
6099 2009-03-31  Richard Guenther  <rguenther@suse.de>
6100
6101         PR middle-end/23401
6102         PR middle-end/27810
6103         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
6104         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
6105         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
6106         a separate statement.
6107         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
6108         (lookup_tmp_var): Likewise.
6109         (is_gimple_formal_tmp_or_call_rhs): Remove.
6110         (is_gimple_reg_or_call_rhs): Rename to ...
6111         (is_gimple_reg_rhs_or_call): ... this.
6112         (is_gimple_mem_or_call_rhs): Rename to ...
6113         (is_gimple_mem_rhs_or_call): ... this.
6114         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
6115         DECL_GIMPLE_REG_P only if is_formal is true.
6116         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
6117         for non-proper post-modify expression gimplification.
6118         (gimplify_self_mod_expr): For post-modify expressions gimplify
6119         the lvalue to a minimal lvalue.
6120         (rhs_predicate_for): Remove formal temp case.
6121         (gimplify_modify_expr_rhs): Likewise.
6122         (gimplify_addr_expr): Use is_gimple_reg.
6123         (gimplify_expr): Remove formal temp cases.
6124         (gimple_regimplify_operands): Likewise.
6125         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
6126         and FILTER_EXPR like constants.
6127         * gimple.c (walk_gimple_op): Fix val_only initialization, use
6128         is_gimple_reg.
6129         (is_gimple_formal_tmp_rhs): Remove.
6130         (is_gimple_reg_rhs): Remove special casing.
6131         (is_gimple_mem_rhs): Fix.
6132         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
6133         (is_gimple_formal_tmp_var): Remove.
6134         (is_gimple_formal_tmp_reg): Likewise.
6135         (is_gimple_min_lval): Allow invariant component ref parts.
6136         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
6137         is_gimple_formal_tmp_reg): Remove declarations.
6138         * tree-cfg.c (verify_expr): Verify that variables with address
6139         taken do not have DECL_GIMPLE_REG_P set.
6140         * tree-mudflap.c (mf_build_check_statement_for): Use
6141         force_gimple_operand instead of gimplify_expr.
6142
6143 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
6144
6145         * modulo-sched.c (sms_schedule_by_order): Pass the actual
6146         schedulable rows to compute_split_row.
6147
6148 2009-03-31  Ben Elliston  <bje@au.ibm.com>
6149
6150         PR target/31635
6151         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
6152         OPT_mvrsave.
6153
6154 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6155
6156         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
6157         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
6158         * configure: Regenerate.
6159         * config.in: Regenerate.
6160         * config/rs6000/rs6000.opt (mtls-markers): Add.
6161         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
6162         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
6163         (tls_ld_aix, tls_ld_sysv): Likewise.
6164         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
6165         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
6166
6167 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6168
6169         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
6170
6171 2009-03-30  Jan Hubicka  <jh@suse.cz>
6172
6173         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
6174         out of RESX.
6175         (tree_remove_unreachable_handlers): Cleanup EH predecestor
6176         detection and label handling.
6177
6178 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6179
6180         * ira-int.h (ira_allocno): Rename left_conflicts_num to
6181         left_conflicts_size.
6182         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
6183         ALLOCNO_LEFT_CONFLICTS_SIZE.
6184
6185         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
6186         remove_allocno_from_bucket_and_push,
6187         allocno_spill_priority_compare, push_allocnos_to_stack,
6188         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6189         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
6190         (setup_allocno_left_conflicts_num): Ditto.  Rename to
6191         setup_allocno_left_conflicts_size.
6192         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6193         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
6194         setup_allocno_left_conflicts_size instead of
6195         setup_allocno_left_conflicts_num.
6196
6197         * ira-build.c (ira_create_allocno): Use
6198         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
6199         ALLOCNO_LEFT_CONFLICTS_NUM.
6200
6201 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6202
6203         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6204         instead of DF_LR_OUT.
6205
6206         * ira-lives.c (process_bb_node_lives): Ditto.
6207
6208         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6209         instead of DF_LR_{OUT,IN}.
6210
6211         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6212
6213         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6214
6215 2009-03-30  Jan Hubicka  <jh@suse.cz>
6216
6217         * except.c (label_to_region_map): Fix thinko.
6218
6219 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
6220
6221         PR middle-end/38237
6222         * tree.h (tree_find_value): New declaration.
6223         * tree.c (tree_find_value): New function.
6224         * varasm.c (assemble_external): Avoid duplicate entries on lists.
6225
6226 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
6227
6228         PR debug/39563
6229         * c-decl.c (struct c_binding): Add locus field.
6230         (bind): Add locus argument, set locus field from it.
6231         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6232         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6233         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6234         implicitly_declare, undeclared_variable, lookup_label,
6235         declare_label, c_make_fname_decl, c_builtin_function,
6236         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6237         bind callers.
6238
6239 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6240
6241         PR target/38781
6242         * config/i386/i386.c (classify_argument): Check total size of
6243         structure.
6244
6245 2009-03-30  Martin Jambor  <mjambor@suse.cz>
6246
6247         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6248         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6249         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6250         respectively.
6251
6252         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6253         seen_variable_array_ref while also traversing a union.
6254
6255         * tree-inline.c (optimize_inline_calls): Do not call
6256         cgraph_node_remove_callees.
6257         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6258         (pass_remove_cgraph_callee_edges): New variable.
6259         * passes.c (init_optimization_passes): Add
6260         pass_remove_cgraph_callee_edges after early inlining and before all
6261         late intraprocedural passes.
6262
6263         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6264
6265 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6266
6267         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6268         Fix typos in names.
6269
6270 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6271
6272         * combine.c (simplify_comparison): Use have_insn_for.
6273         * dojump.c (do_jump): Likewise.
6274
6275 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6276
6277         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6278         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6279         sparc_compare_op0 like sparc_compare_emitted used to be handled.
6280         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6281         instead of sparc_compare_emitted.
6282         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6283         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6284         instead of sparc_compare_emitted.
6285
6286 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6287
6288         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6289         enter/exit cfglayout mode.
6290         (pass_partition_block): Require it.
6291         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6292         (combine_instructions): Track basic blocks instead of labels.
6293         (update_cfg_for_uncondjump): New.
6294         (try_combine): Use it.  Update jumps after rescanning.
6295         (pass_combine): Require PROP_cfglayout.
6296         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6297
6298 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6299
6300         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6301         Provide/destroy PROP_cfglayout respectively.
6302         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6303         * tree-pass.h (PROP_cfglayout): New.
6304
6305 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6306
6307         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6308         fold_convert_const_fixed_from_fixed,
6309         fold_convert_const_fixed_from_int,
6310         fold_convert_const_fixed_from_real, fold_negate_const): Do not
6311         set TREE_CONSTANT_OVERFLOW.
6312         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6313         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6314
6315 2009-03-30  Ira Rosen  <irar@il.ibm.com>
6316
6317         * tree-vect-loop-manip.c: New file.
6318         * tree-vectorizer.c: Update documentation and included files.
6319         (vect_loop_location): Make extern.
6320         (rename_use_op): Move to tree-vect-loop-manip.c
6321         (rename_variables_in_bb, rename_variables_in_loop,
6322         slpeel_update_phis_for_duplicate_loop,
6323         slpeel_update_phi_nodes_for_guard1,
6324         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6325         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6326         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
6327         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
6328         find_loop_location): Likewise.
6329         (new_stmt_vec_info): Move to tree-vect-stmts.c.
6330         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6331         get_vectype_for_scalar_type, vect_is_simple_use,
6332         supportable_widening_operation, supportable_narrowing_operation):
6333         Likewise.
6334         (bb_in_loop_p): Move to tree-vect-loop.c.
6335         (new_loop_vec_info, destroy_loop_vec_info,
6336         reduction_code_for_scalar_code, report_vect_op,
6337         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6338         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6339         (vect_supportable_dr_alignment): Likewise.
6340         * tree-vectorizer.h (tree-data-ref.h): Include.
6341         (vect_loop_location): Declare.
6342         Reorganize function declarations according to the new file structure.
6343         * tree-vect-loop.c: New file.
6344         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
6345         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6346         * tree-vect-data-refs.c: New file.
6347         * tree-vect-patterns.c (timevar.h): Don't include.
6348         * tree-vect-stmts.c: New file.
6349         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
6350         tree-vect-slp.c, tree-vect-loop.c.
6351         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6352         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
6353         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6354         (tree-vect-analyze.o): Remove.
6355         (tree-vect-transform.o): Likewise.
6356         (tree-vect-data-refs.o): Add rule.
6357         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
6358         tree-vect-slp.o): Likewise.
6359         (tree-vect-patterns.o): Remove redundant dependencies.
6360         (tree-vectorizer.o): Likewise.
6361         * tree-vect-slp.c: New file.
6362
6363 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6364
6365         * optc-gen.awk: Warn if an option flag has multiple different
6366         help strings.
6367
6368 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6369
6370         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6371         -floop-block): Document dependences on PPL, CLooG and Graphite.
6372
6373 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6374
6375         PR rtl-optimization/323
6376         * c-common.c (c_fully_fold, convert_and_check,
6377         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6378         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6379         * c-common.def (EXCESS_PRECISION_EXPR): New.
6380         * c-cppbuiltin.c (builtin_define_float_constants): Define
6381         constants with enough digits for long double.
6382         * c-lex.c (interpret_float): Interpret constant with excess
6383         precision where appropriate.
6384         * c-opts.c (c_common_post_options): Set
6385         flag_excess_precision_cmdline.  Give an error for
6386         -fexcess-precision=standard for C++ for processors where the
6387         option is significant.
6388         * c-parser.c (c_parser_conditional_expression): Handle excess
6389         precision in condition.
6390         * c-typeck.c (convert_arguments): Handle arguments with excess
6391         precision.
6392         (build_unary_op): Move excess precision outside operation.
6393         (build_conditional_expr): Likewise.
6394         (build_compound_expr): Likewise.
6395         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6396         (build_modify_expr): Handle excess precision in RHS.
6397         (convert_for_assignment): Handle excess precision in converted
6398         value.
6399         (digest_init, output_init_element, process_init_element): Handle
6400         excess precision in initializer.
6401         (c_finish_return): Handle excess precision in return value.
6402         (build_binary_op): Handle excess precision in operands and add
6403         excess precision as needed for operation.
6404         * common.opt (-fexcess-precision=): New option.
6405         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6406         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6407         For standard excess precision, output explicit conversion to and
6408         truncation from XFmode.
6409         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6410         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6411         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6412         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6413         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6414         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6415         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6416         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6417         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6418         define_splits, sqrt<mode>2): Disable where appropriate for
6419         standard excess precision.
6420         * convert.c (convert_to_real): Do not shorten arithmetic to type
6421         for which excess precision would be used.
6422         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6423         * doc/invoke.texi (-fexcess-precision=): Document option.
6424         (-mfpmath=): Correct index entry.
6425         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6426         flag_excess_precision): New.
6427         * langhooks.c (lhd_post_options): Set
6428         flag_excess_precision_cmdline.
6429         * opts.c (common_handle_option): Handle -fexcess-precision=.
6430         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6431         init_excess_precision): New.
6432         (lang_dependent_init_target): Call init_excess_precision.
6433         * tree.c (excess_precision_type): New.
6434         * tree.h (excess_precision_type): Declare.
6435
6436 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6437
6438         PR c/35235
6439         * c-typeck.c (build_component_ref): Do not copy qualifiers from
6440         non-lvalue to component.
6441
6442 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6443
6444         PR preprocessor/34695
6445         * Makefile.in (c-opts.o): Depend on c-tree.h.
6446         * c-common.c: Move down include of diagnostic.h.
6447         (done_lexing, c_cpp_error): New.
6448         * c-common.h (done_lexing): Declare.
6449         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6450         (parse_in).
6451         * c-opts.c: Include c-tree.h.
6452         (c_common_init_options): Set preprocessor error callback.
6453         (c_common_handle_option): Do not set preprocessor
6454         inhibit_warnings, warnings_are_errors, warn_system_headers,
6455         pedantic_errors or inhibit_warnings flags.
6456         (c_common_post_options): Do not check cpp_errors (parse_in).
6457         (c_common_finish): Do not output dependencies if there were
6458         errors.  Do not check return value of cpp_finish.
6459         * c-ppoutput.c (pp_file_change): Set input_location.
6460         * c-tree.h (c_cpp_error): Declare.
6461         * diagnostic.c (diagnostic_set_info_translated): Also initialize
6462         override_column.
6463         (diagnostic_build_prefix): Check override_column.
6464         * diagnostic.h (diagnostic_info): Add override_column field.
6465         (diagnostic_override_column): Define.
6466
6467 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
6468
6469         * c-common.c (c_expand_expr, c_staticp): Remove.
6470         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6471         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6472         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6473         * c-gimplify.c (gimplify_compound_literal_expr,
6474         optimize_compound_literals_in_ctor): Remove.
6475         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6476         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6477         * c-semantics.c (emit_local_var): Remove.
6478
6479         * langhooks-def.h (lhd_expand_expr): Remove.
6480         * langhooks.c (lhd_expand_expr): Remove.
6481         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6482
6483         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6484         handling from c-semantics.c; don't call into langhook.
6485         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6486         * gimplify.c (gimplify_compound_literal_expr,
6487         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6488         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6489         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6490         as was done in c-gimplify.c.
6491         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6492         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6493         Move from c-common.h.
6494         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
6495
6496         * tree.c (staticp): Do not call langhook.
6497         * langhooks.c (lhd_staticp): Delete.
6498         * langhooks-def.h (lhd_staticp): Delete prototype.
6499         (LANG_HOOKS_STATICP): Delete.
6500         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6501
6502         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6503         instead of DECL_STMTs.
6504
6505 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6506
6507         PR c/456
6508         PR c/5675
6509         PR c/19976
6510         PR c/29116
6511         PR c/31871
6512         PR c/35198
6513         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6514         void_type_node.
6515         (fold_call_expr): Return a NOP_EXPR from folding rather than the
6516         contained expression.
6517         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
6518         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
6519         conditional expressions for C.
6520         (decl_constant_value_for_optimization): Move from
6521         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
6522         whether optimizing and that the expression is a VAR_DECL not of
6523         array type instead of doing such checks in the caller.  Do not
6524         check pedantic.  Call gcc_unreachable for C++.
6525         * c-common.def (C_MAYBE_CONST_EXPR): New.
6526         * c-common.h (c_fully_fold, c_save_expr,
6527         decl_constant_value_for_optimization): New prototypes.
6528         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6529         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6530         EXPR_INT_CONST_OPERANDS): Define.
6531         * c-convert.c (convert): Strip nops from expression.
6532         * c-decl.c (groktypename): Take extra parameters expr and
6533         expr_const_operands.  Update call to grokdeclarator.
6534         (start_decl): Update call to grokdeclarator.  Add statement for
6535         expressions used in type of decl.
6536         (grokparm): Update call to grokdeclarator.
6537         (push_parm_decl): Update call to grokdeclarator.
6538         (build_compound_literal): Add parameter non_const and build a
6539         C_MAYBE_COSNT_EXPR if applicable.
6540         (grokdeclarator): Take extra parameters expr and
6541         expr_const_operands.  Track expressions used in declaration
6542         specifiers and declarators.  Fold array sizes and track whether
6543         they are constant expressions and whether they are integer
6544         constant expressions.
6545         (parser_xref_tag): Set expr and expr_const_operands fields in
6546         return value.
6547         (grokfield): Update call to grokdeclarator.
6548         (start_function): Update call to grokdeclarator.
6549         (build_null_declspecs): Set expr and expr_const_operands fields in
6550         return value.
6551         (declspecs_add_type): Handle expressions in typeof specifiers.
6552         * c-parser.c (c_parser_declspecs): Set expr and
6553         expr_const_operands fields for declaration specifiers.
6554         (c_parser_enum_specifier): Likewise.
6555         (c_parser_struct_or_union_specifier): Likewise.
6556         (c_parser_typeof_specifier): Likewise.  Update call to
6557         groktypename.  Fold expression as needed.  Return expressions with
6558         type instead of adding statements.
6559         (c_parser_attributes): Update calls to c_parser_expr_list.
6560         (c_parser_statement_after_labels): Fold expression before passing
6561         to objc_build_throw_stmt.
6562         (c_parser_condition): Fold expression.
6563         (c_parser_asm_operands): Fold expression.
6564         (c_parser_conditional_expression): Use c_save_expr.  Update call
6565         to build_conditional_expr.
6566         (c_parser_alignof_expression): Update call to groktypename.
6567         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6568         original_code.  Fold expression argument of va_arg.  Create
6569         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6570         argument to va_arg.  Update calls to groktypename.  Fold array
6571         index for offsetof.  Verify that first argument to
6572         __builtin_choose_expr has integer type.
6573         (c_parser_postfix_expression_after_paren_type): Update calls to
6574         groktypename and build_compound_literal.  Handle expressions with
6575         side effects in type name.
6576         (c_parser_postfix_expression_after_primary): Update call to
6577         c_parser_expr_list.  Set original_code for calls to
6578         __builtin_constant_p.
6579         (c_parser_expr_list): Take extra parameter fold_p.  Fold
6580         expressions if requested.
6581         (c_parser_objc_type_name): Update call to groktypename.
6582         (c_parser_objc_synchronized_statement): Fold expression.
6583         (c_parser_objc_receiver): Fold expression.
6584         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6585         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6586         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6587         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6588         (struct c_typespec): Add elements expr and expr_const_operands.
6589         (struct c_declspecs): Add elements expr and expr_const_operands.
6590         (groktypename, build_conditional_expr, build_compound_literal):
6591         Update prototypes.
6592         (in_late_binary_op): Declare.
6593         * c-typeck.c (note_integer_operands): New function.
6594         (in_late_binary_op): New variable.
6595         (decl_constant_value_for_broken_optimization): Move to c-common.c
6596         and rename to decl_constant_value_for_optimization.
6597         (default_function_array_conversion): Do not strip nops.
6598         (default_conversion): Do not call
6599         decl_constant_value_for_broken_optimization.
6600         (build_array_ref): Do not fold result.
6601         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
6602         result when operand is a VLA.
6603         (c_expr_sizeof_type): Update call to groktypename.  Handle
6604         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
6605         result when operand names a VLA type.
6606         (build_function_call): Update call to build_compound_literal.
6607         Only fold result for calls to __builtin_* functions.  Strip
6608         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
6609         the function designator.
6610         (convert_arguments): Fold arguments.  Update call to
6611         convert_for_assignment.
6612         (build_unary_op): Handle increment and decrement of
6613         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
6614         decrement earlier.  Fold operand of increment and decrement.
6615         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
6616         built for integer operand.  Wrap returns that are INTEGER_CSTs
6617         without being integer constant expressions or that have integer
6618         constant operands without being INTEGER_CSTs.
6619         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6620         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
6621         result is an integer constant expression or can be used in
6622         unevaluated parts of one and avoid folding and wrap as
6623         appropriate.  Fold operands before possibly doing -Wsign-compare
6624         warnings.
6625         (build_compound_expr): Wrap result for C99 if operands can be used
6626         in integer constant expressions.
6627         (build_c_cast): Update call to digest_init.  Do not ignore
6628         overflow from casting floating-point constants to integers.  Wrap
6629         results that could be confused with integer constant expressions,
6630         null pointer constants or floating-point constants.
6631         (c_cast_expr): Update call to groktypename.  Handle expressions
6632         included in type name.
6633         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
6634         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
6635         Update calls to convert_for_assignment.
6636         (convert_for_assignment): Take new parameter
6637         null_pointer_constant.  Do not strip nops or call
6638         decl_constant_value_for_broken_optimization.  Set
6639         in_late_binary_op for conversions to boolean.
6640         (store_init_value): Update call to digest_init.
6641         (digest_init): Take new parameter null_pointer_constant.  Do not
6642         call decl_constant_value_for_broken_optimization.  pedwarn for
6643         initializers not constant expressions.  Update calls to
6644         convert_for_assignment.
6645         (constructor_nonconst): New.
6646         (struct constructor_stack): Add nonconst element.
6647         (really_start_incremental_init, push_init_level, pop_init_level):
6648         Handle constructor_nonconst and nonconst element.
6649         (set_init_index): Call constant_expression_warning for array
6650         designators.
6651         (output_init_element): Fold value.  Set constructor_nonconst as
6652         applicable.  pedwarn for initializers not constant expressions.
6653         Update call to digest_init.  Call constant_expression_warning
6654         where constant initializers are required.
6655         (process_init_element): Use c_save_expr.
6656         (c_finish_goto_ptr): Fold expression.
6657         (c_finish_return): Fold return value.  Update call to
6658         convert_for_assignment.
6659         (c_start_case): Fold switch expression.
6660         (c_process_expr_stmt): Fold expression.
6661         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
6662         ensure statement expression is not evaluated in constant expression.
6663         (build_binary_op): Track whether results are integer constant
6664         expressions or may occur in such, disable folding and wrap results
6665         as applicable.  Fold operands for -Wsign-compare warnings unless
6666         in_late_binary_op.
6667         (c_objc_common_truthvalue_conversion): Handle results folded to
6668         integer constants that are not integer constant expressions.
6669         * doc/extend.texi: Document when typeof operands are evaluated,
6670         that condition of __builtin_choose_expr is an integer constant
6671         expression, and more about use of __builtin_constant_p in
6672         initializers.
6673
6674 2009-03-29  Richard Guenther  <rguenther@suse.de>
6675
6676         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6677         propagate addresses of array references.
6678
6679 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
6680
6681         * regmove.c (perhaps_ends_bb_p): Remove.
6682         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
6683         from INSN and check that the main loop stays within that basic block.
6684         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6685         (regmove_forward_pass): Split out from regmove_optimize.  Use
6686         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6687         (regmove_backward_pass): Split out from regmove_optimize.  Use
6688         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6689         (regmove_optimize): Simplify.
6690
6691 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6692
6693         PR target/39545
6694         * config/i386/i386.c (classify_argument): Ignore flexible array
6695         member in struct and warn ABI change.
6696
6697 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6698
6699         * config/i386/i386-protos.h (ix86_agi_dependent): New.
6700
6701         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6702         (ix86_adjust_cost): Updated.
6703
6704 2009-03-29  Jan Hubicka  <jh@suse.cz>
6705
6706         PR middle-end/28850
6707         * tree-pass.h (pass_cleanup_eh): New function.
6708         (remove_unreachable_regions): Break code handling RTL
6709         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6710         that can not be reached by runtime.
6711         (can_be_reached_by_runtime): New function.
6712         (label_to_region_map): New function.
6713         (num_eh_regions): New function.
6714         (rtl_remove_unreachable_regions): New function.
6715         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6716         (remove_eh_region): New function.
6717         * except.h: Include sbitmap and vecprim.
6718         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6719         num_eh_regions): Declare.
6720         * passes.c (init_optimization_passes): Schedule cleanup_eh.
6721         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
6722         * tree-eh.c (tree_remove_unreachable_handlers): New function.
6723         (tree_empty_eh_handler_p): New function.
6724         (cleanup_empty_eh): New function.
6725         (cleanup_eh): New function.
6726         (pass_cleanup_eh): New function.
6727
6728 2009-03-29  Jan Hubicka  <jh@suse.cz>
6729
6730         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6731         for removed regions.
6732
6733 2009-03-29  Jan Hubicka  <jh@suse.cz>
6734
6735         * except.c (dump_eh_tree): Dump all datastructures.
6736
6737 2009-03-29  Jan Hubicka  <jh@suse.cz>
6738
6739         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6740         (duplicate_eh_regions_1): Likewise.
6741         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6742         vector; call EH verification.
6743         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6744         Be ready for region being removed.
6745
6746 2009-03-29  Jan Hubicka  <jh@suse.cz>
6747
6748         * bitmap.c (bitmap_last_set_bit): New function.
6749         * bitmap.h (bitmap_last_set_bit): Declare.
6750
6751 2009-03-29  David Ayers  <ayers@fsfe.org>
6752
6753         PR objc/27377
6754         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6755         by calling objc_compare_types and surpress warnings about
6756         incompatible C pointers that are compatible ObjC pointers.
6757
6758 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
6759
6760         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6761         call initialize_inline_failed.
6762         (initialize_inline_failed): Move it from here ...
6763         * cgraph.c (initialize_inline_failed): ... to here.
6764         (cgraph_create_edge): Call initialize_inline_failed rather than
6765         setting inline_failed directly.
6766
6767 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6768
6769         PR target/32542
6770         * sysv4.opt (msdata): Improve comment.
6771         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6772         * sysv4.h (SVR4_ASM_SPEC): Likewise.
6773
6774 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6775
6776         PR target/30451
6777         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6778         load and store attributes.
6779
6780 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6781
6782         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6783         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6784         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6785         * doc/extend.texi (X86 Built-in Functions): Add index entries for
6786         __builtin_infq and __builtin_huge_valq.
6787
6788 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
6789
6790         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6791         atmega8m1 devices.
6792         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6793         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6794
6795 2009-03-28  Xinliang David Li  <davidxl@google.com>
6796
6797         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
6798         (do_dbg_cnt): New function.
6799
6800 2009-03-28  Jan Hubicka  <jh@suse.cz>
6801
6802         Merge from pretty-ipa:
6803
6804         2009-03-27  Jan Hubicka  <jh@suse.cz>
6805
6806         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6807         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6808         * passes.c (function_called_by_processed_nodes_p): New.
6809         * ipa-pure-const.c (check_call): Fix handling of operands.
6810         (analyze_function): Dump debug output for skipped bodies.
6811         (local_pure_const): Use function_called_by_processed_nodes_p.
6812         * dwarf2out.c (reference_to_unused): Use output.
6813         * passes.c (do_per_function_toporder): Likewise.
6814
6815         2008-11-12  Jan Hubicka  <jh@suse.cz>
6816
6817         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6818         * ipa-pure-const.c (funct_state_d): Add can throw field; make
6819         state_set_in_source enum
6820         (check_decl): Ignore memory tags; do not set fake looping flags;
6821         dump diagnostics.
6822         (check_operand, check_tree, check_rhs_var, check_lhs_var,
6823         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6824         (check_call, analyze_function): Rewrite.
6825         (check_stmt): New.
6826         (add_new_function): Update call of analyze_function.
6827         (generate_summary): Add call of analyze_function.
6828         (propagate): Propagate can_throw; handle state_set_in_source correctly.
6829         (local_pure_const): New function.
6830         (pass_local_pure_const): New pass.
6831         * ipa-inline.c (inline_transform): Set after_inlining.
6832         * tree-eh.c (stmt_can_throw_external): New.
6833         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6834         work with aliasing built.
6835         * tree-flow.h (stmt_can_throw_external): New.
6836         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6837         and local pure/const pass in early and late optimization queue.
6838
6839 2009-03-28  Martin Jambor  <mjambor@suse.cz>
6840
6841         * fold-const.c (get_pointer_modulus_and_residue): New parameter
6842         allow_func_align.
6843         (fold_binary): Allow function decl aligment consideration is the
6844         second argument is integer constant one.
6845         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6846         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6847         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6848
6849 2009-03-28  Jan Hubicka  <jh@suse.cz>
6850
6851         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6852         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6853         * function.h (rtl_data): Add nothrow flag.
6854         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6855         set DECL_NOTHROW for AVAILABLE functions.
6856
6857 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
6858
6859         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6860         following vector keyword has expansion starting with pixel or bool
6861         keyword, expand vector to __vector and pixel or bool to __pixel or
6862         __bool.
6863
6864         PR c++/39554
6865         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6866         warn_if_disallowed_function_p): Removed.
6867         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6868         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6869         warning_if_disallowed_function_p.
6870         * flags.h (warn_if_disallowed_function_p,
6871         warn_disallowed_functions): Removed.
6872         * common.opt (Wdisallowed-function-list=): Removed.
6873         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6874
6875 2009-03-28  Richard Guenther  <rguenther@suse.de>
6876
6877         PR tree-optimization/38723
6878         * tree-ssa-pre.c (compute_avail): Add all default definitions to
6879         the entry block.
6880
6881 2009-03-28  Jan Hubicka  <jh@suse.cz>
6882
6883         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6884         test introduced by my previous patch.
6885
6886 2009-03-28  Richard Guenther  <rguenther@suse.de>
6887
6888         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6889         the PHIs value undefined.
6890
6891 2009-03-28  Jan Hubicka  <jh@suse.cz>
6892
6893         * tree-pass.h (pass_fixup_cfg): New pass.
6894         * ipa-inline.c (inline_transform): Set
6895         always_inline_functions_inlined/after_inlining.
6896         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6897         (pass_fixup_cfg): New pass.
6898         * passes.c (init_optimization_passes): Add fixup_cfg.
6899
6900 2009-03-28  Richard Guenther  <rguenther@suse.de>
6901
6902         PR tree-optimization/38458
6903         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6904         argument use the arguments copy-of value.
6905
6906 2009-03-28  Richard Guenther  <rguenther@suse.de>
6907
6908         PR tree-optimization/38180
6909         * tree-ssa-ccp.c (get_default_value): Simplify.
6910         (likely_value): Likewise.
6911         (surely_varying_stmt_p): Properly handle VOP case.
6912         (ccp_initialize): Likewise.
6913         (ccp_fold): Handle propagating through *&.
6914         (fold_const_aggregate_ref): Also handle decls.
6915
6916 2009-03-28  Jan Hubicka  <jh@suse.cz>
6917
6918         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6919         * cgraph.h (cgraph_node): Likewise.
6920         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6921         (cgraph_reset_node): Use process flag.
6922         (cgraph_mark_functions_to_output): Likewise.
6923         (cgraph_expand_function): Likewise.
6924         (cgraph_expand_all_functions): Likewise.
6925         (cgraph_output_in_order): Likewise.
6926         * dwarf2out.c (reference_to_unused): Likewise.
6927         * passes.c do_per_function_toporder): Likewise.
6928
6929 2009-03-28  Jan Hubicka  <jh@suse.cz>
6930
6931         Bring from lto-branch:
6932
6933         2008-09-03  Doug Kwan  <dougkwan@google.com>
6934
6935         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6936         enums instead of reason strings.
6937         * cgraph.c (cgraph_create_edge): Same.
6938         (cgraph_inline_failed_string): New function.
6939         * cgraph.h (cgraph_inline_failed_t): New enum type.
6940         (cgraph_inline_failed_string): New prototype.
6941         (struct cgraph_edge): Change type of INLINED_FAILED from constant
6942         char pointer to cgraph_inline_failed_t.
6943         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6944         (cgraph_default_inline_p): Ditto.
6945         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
6946         to cgraph_inline_failed_t pointer.
6947         * cif-code.def: New file.
6948         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6949         reason string.
6950         (cgraph_check_inline_limits): Change type of REASON to pointer to
6951         cgraph_inline_failed_t.  Replace reason strings with enums.
6952         (cgraph_default_inline_p): Ditto.
6953         (cgraph_recursive_inlining_p): Ditto.
6954         (update_caller_keys): Change type of FAILED_REASON to
6955         cgraph_inline_failed_t.
6956         (cgraph_set_inline_failed): Change type of REASON to pointer to
6957         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
6958         convert enums to strings for text output.
6959         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6960         to be of type cgraph_inline_failed_t.  Replace reason strings with
6961         enums.  Call cgraph_inline_failed_string to covert enums
6962         to strings for text output.
6963         (cgraph_decide_inlining): Replace reason strings with enums.
6964         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6965         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
6966         for text output.
6967         * tree-inline.c (expand_call_inline): Change type of REASON
6968         to cgraph_inline_failed_t.  Replace reason strings with enums.
6969         Call cgraph_inline_failed_string for text output.
6970         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6971         (cgraph.o): Ditto.
6972
6973 2009-03-28  Jan Hubicka  <jh@suse.cz>
6974
6975         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6976         cgraph_clone_node): Remove master clone handling.
6977         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6978         * cgraph.h (master_clone): Remove.
6979         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6980         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6981         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6982
6983 2009-03-28  Jan Hubicka  <jh@suse.cz>
6984
6985         * cgraph.c (cgraph_function_body_availability): Functions declared
6986         inline are always safe to assume that it is not going to be replaced.
6987
6988 2009-03-28  Richard Guenther  <rguenther@suse.de>
6989
6990         PR tree-optimization/38513
6991         * tree-ssa-pre.c (eliminate): Remove redundant stores.
6992         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6993         EXC_PTR_EXPR and FILTER_EXPR.
6994         (get_ref_from_reference_ops): Likewise.
6995
6996 2009-03-28  Richard Guenther  <rguenther@suse.de>
6997
6998         PR tree-optimization/38968
6999         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7000         Use FLOOR_MOD_EXPR to compute misalignment.
7001
7002 2009-03-28  Richard Guenther  <rguenther@suse.de>
7003
7004         PR tree-optimization/37795
7005         * tree.h (combine_comparisons): Declare.
7006         * fold-const.c (combine_comparisons): Export.
7007         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7008         comparisons.
7009         (ifcombine_iforif): Use combine_comparisons.
7010
7011 2009-03-28  Jan Hubicka  <jh@suse.cz>
7012
7013         * tree-eh.c (inlinable_call_p): New function.
7014         (make_eh_edges): Use it.
7015         (verify_eh_edges): Use it.
7016         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7017         * except.c (reachable_next_level): Add inlinable_function argument
7018         (sjlj_find_directly_reachable_regions): Update.
7019         (add_reachable_handler): Do not set saw_any_handlers.
7020         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7021         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7022         Add new inlinable call parameter.
7023         (can_throw_internal, can_throw_external): Update.
7024         * except.h (can_throw_internal_1, can_throw_external_1,
7025         foreach_reachable_handler): Update declaration.
7026
7027 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
7028
7029         * config/arm/t-arm-coff, config/h8300/coff.h,
7030         config/i386/i386-aout.h, config/i386/i386-coff.h,
7031         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
7032         config/pdp11/2bsd.h, config/rs6000/aix41.h,
7033         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
7034         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
7035         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
7036         sys-types.h: Remove.
7037         * Makefile.in: Remove protoize and fixproto support and references
7038         in comments.
7039         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
7040         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
7041         Remove.
7042         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
7043         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
7044         unprotoize$(exeext).
7045         (rest.encap): Don't depend on $(STMP_FIXPROTO)
7046         (.PHONY): Don't depend on proto.
7047         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
7048         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
7049         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
7050         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
7051         build/gen-protos.o, build/scan.o, xsys-protos.h,
7052         build/fix-header$(build_exeext), build/fix-header.o,
7053         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
7054         stmp-install-fixproto): Remove.
7055         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
7056         SYSCALLS.c or fixproto files.
7057         (install-common): Don't install protoize.
7058         (install-headers-tar, install-headers-cpio, install-headers-cp):
7059         Don't depend on $(STMP_FIXPROTO).
7060         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
7061         install fixproto files or write out fixproto settings.
7062         (uninstall): Don't uninstall protoize.
7063         * config.gcc (use_fixproto): Remove.
7064         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
7065         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
7066         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
7067         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
7068         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
7069         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
7070         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
7071         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
7072         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
7073         * config/t-vxworks (STMP_FIXPROTO): Remove.
7074         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
7075         STMP_FIXPROTO): Remove.
7076         * config.in, configure: Regenerate.
7077         * crtstuff.c (gid_t, uid_t): Don't undefine.
7078         * doc/install.texi: Change m68k-coff to m68k-elf in example.
7079         (arm-*-coff, arm-*-aout: Remove target entries.
7080         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
7081         Remove mention of AIX 4.1.
7082         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
7083         * doc/invoke.texi (Running Protoize): Remove.
7084         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
7085         (Protoize Caveats): Remove.
7086         * tsystem.h: Update comments on headers assumed to exist.
7087
7088 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
7089
7090         * genautomata.c: Add a new year to the copyright.  Add a new
7091         reference.
7092         (struct insn_reserv_decl): Add comments for member bypass_list.
7093         (find_bypass): Remove.
7094         (insert_bypass): New.
7095         (process_decls): Use insert_bypass.
7096         (output_internal_insn_latency_func): Output all bypasses with the
7097         same input insn in one switch case.
7098
7099         * rtl.def (define_bypass): Describe bypass choice.
7100         * doc/md.texi (define_bypass): Ditto.
7101
7102 2009-03-27  Richard Guenther  <rguenther@suse.de>
7103
7104         * gimplify.c (mark_addressable): Export.
7105         * tree-flow.h (mark_addressable): Declare.
7106         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
7107         * tree-ssa.c (verify_phi_args): Verify that address taken
7108         variables have TREE_ADDRESSABLE set.
7109
7110 2009-03-27  Richard Guenther  <rguenther@suse.de>
7111
7112         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
7113         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
7114         Do not mark decls TREE_ADDRESSABLE.
7115         (build_fold_addr_expr): Adjust.
7116         (fold_addr_expr): Remove.
7117         (fold_unary): Use build_fold_addr_expr.
7118         (fold_comparison): Likewise.
7119         (split_address_to_core_and_offset): Likewise.
7120         * coverage.c (tree_coverage_counter_addr): Mark the array decl
7121         TREE_ADDRESSABLE.
7122         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
7123         (gimplify_modify_expr_to_memcpy): Mark source and destination
7124         addressable.
7125         * omp-low.c (create_omp_child_function): Mark the object decl
7126         TREE_ADDRESSABLE.
7127         (lower_rec_input_clauses): Mark the var we take the address of
7128         TREE_ADDRESSABLE.
7129         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
7130
7131 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7132
7133         PR middle-end/39315
7134         * cfgexpand.c (expand_one_stack_var_at): Change alignment
7135         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
7136
7137 2009-03-27  Richard Guenther  <rguenther@suse.de>
7138
7139         PR tree-optimization/39120
7140         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
7141         constraints.
7142         (handle_lhs_call): Process return constraints.  Add escape
7143         constraints if necessary.
7144         (handle_const_call): Fill out return constraints.  Make nested
7145         case more precise.  Avoid consttmp if possible.
7146         (handle_pure_call): Fill out return constraints.  Avoid
7147         callused if possible.
7148         (find_func_aliases): Simplify call handling.
7149
7150 2009-03-27  Richard Guenther  <rguenther@suse.de>
7151
7152         PR tree-optimization/39120
7153         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
7154         as a representative.
7155         (solve_graph): Do propagate CALLUSED.
7156         (handle_pure_call): Use a scalar constraint from CALLUSED for
7157         the return value.
7158         (find_what_p_points_to): CALLUSED shall not appear in poins-to
7159         solutions.
7160
7161 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7162
7163         PR c/39323
7164         * c-common.c (handle_aligned_attribute): Properly check alignment
7165         overflow.  Use (1U << i) instead of (1 << i).
7166
7167         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7168
7169         * expr.h (get_mem_align_offset): Updated.
7170
7171         * tree.h (tree_decl_common): Change align to "unsigned int" and
7172         move it before pointer_alias_set.
7173
7174 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7175             Jakub Jelinek  <jakub@redhat.com>
7176
7177         PR target/38034
7178         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
7179         gr_register_operand with gr_reg_or_0_operand.
7180         (cmpxchg_rel_di): Likewise.
7181         (sync_lock_test_and_set<mode>): Likewise.
7182
7183 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7184
7185         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
7186         (true_regnum): Likewise.
7187
7188         * rtlanal.c (subreg_info): Moved to ...
7189         * rtl.h (subreg_info): Here.  New.
7190         (subreg_get_info): New.
7191
7192         * rtlanal.c (subreg_get_info): Make it extern.
7193
7194 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7195
7196         PR target/39472
7197         * config/i386/i386.c (ix86_abi): New.
7198         (override_options): Handle -mabi=.
7199         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
7200         (ix86_call_abi_override): Likewise.
7201         (init_cumulative_args): Likewise.
7202         (function_arg_advance): Likewise.
7203         (function_arg_64): Likewise.
7204         (function_arg): Likewise.
7205         (ix86_pass_by_reference): Likewise.
7206         (ix86_function_value_regno_p): Likewise.
7207         (ix86_build_builtin_va_list_abi): Likewise.
7208         (setup_incoming_varargs_64): Likewise.
7209         (is_va_list_char_pointer): Likewise.
7210         (ix86_init_machine_status): Likewise.
7211         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
7212         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
7213         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
7214         (ix86_function_abi): Make it static and return enum calling_abi.
7215         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
7216         with ix86_abi.
7217         (ix86_fn_abi_va_list): Updated.
7218
7219         * config/i386/i386.h (ix86_abi): New.
7220         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
7221         (CONDITIONAL_REGISTER_USAGE): Likewise.
7222         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
7223         (machine_function): Likewise.
7224
7225         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
7226         with ix86_abi.
7227         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
7228         (STACK_BOUNDARY): Likewise.
7229         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7230
7231         * config/i386/i386.opt (mabi=): New.
7232
7233         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7234         return enum calling_abi.
7235         (ix86_function_type_abi): Likewise.
7236         (ix86_function_abi): Removed.
7237
7238         * doc/invoke.texi: Document -mabi= option for x86.
7239
7240 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7241
7242         * builtins.c (real_dconstp): Delete.
7243         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7244
7245 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
7246             Jakub Jelinek  <jakub@redhat.com>
7247
7248         PR debug/37959
7249         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7250         (gen_subprogram_die): When a function is explicit, generate the
7251         DW_AT_explicit attribute.
7252         * langhooks.h (struct lang_hooks_for_decls): Add
7253         function_decl_explicit_p langhook.
7254         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7255         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7256
7257 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
7258
7259         * builtins.c (fold_builtin_memory_op): Optimize memmove
7260         into memcpy if we can prove source and destination don't overlap.
7261
7262         * tree-inline.c: Include gt-tree-inline.h.
7263         (clone_fn_id_num): New variable.
7264         (clone_function_name): New function.
7265         (tree_function_versioning): Use it.
7266         * Makefile.in (GTFILES): Add tree-inline.c.
7267
7268 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
7269
7270         * BASE-VER: Change to 4.5.0.
7271
7272 2009-03-27  Xinliang David Li  <davidxl@google.com>
7273
7274         PR tree-optimization/39557
7275         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7276
7277 2009-03-27  Xinliang David Li  <davidxl@google.com>
7278
7279         PR tree-optimization/39548
7280         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
7281         candidate check.
7282
7283 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7284
7285         * c-common.c (pointer_int_sum): Use %wd on return from
7286         tree_low_cst.
7287
7288 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7289
7290         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7291         on return from tree_low_cst.
7292
7293 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7294
7295         PR c++/36799
7296         * ginclude/stdarg.h (va_copy): Define also for
7297         __GXX_EXPERIMENTAL_CXX0X__.
7298
7299 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7300
7301         PR c++/35652
7302         * builtins.h (c_strlen): Do not warn here.
7303         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7304         * c-common.c (pointer_int_sum): Take an explicit location.
7305         Warn about offsets out of bounds.
7306         * c-common.h (pointer_int_sum): Adjust declaration.
7307
7308 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7309
7310         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7311         markup glitch.
7312
7313 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
7314
7315         PR c++/39554
7316         * opts.c (warn_if_disallowed_function_p): Don't assume
7317         get_callee_fndecl must return non-NULL.
7318
7319 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7320
7321         PR rtl-optimization/39522
7322         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7323         when reg_reloaded_valid is set.
7324
7325 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7326
7327         * config/spu/divv2df3.c: New file.
7328         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7329         (DPBIT_FUNCS): Filter out _div_df.
7330
7331 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7332
7333         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7334         a jump insn, count that jump in the distance to the loop start.
7335
7336 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7337
7338         PR target/39523
7339         * config/sh/sh.c (calc_live_regs): Fix condition for global
7340         registers except PIC_OFFSET_TABLE_REGNUM.
7341
7342 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
7343
7344         PR/39518
7345         * doc/invoke.texi (-mconsole): New.
7346         (-mcygwin): New.
7347         (-mno-cygwin): New.
7348         (-mdll): New.
7349         (-mnop-fun-dllimport): New.
7350         (-mthread): New.
7351         (-mwin32): New.
7352         (-mwindows): New.
7353         (sub section "i386 and x86-64 Windows Options"): New.
7354
7355 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
7356
7357         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7358         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7359
7360 2009-03-25  Richard Guenther  <rguenther@suse.de>
7361
7362         PR middle-end/39497
7363         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7364         of -Wno-error.
7365
7366 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
7367
7368         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7369         neither of haifa/selective schedulers are working.
7370
7371 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7372
7373         * doc/invoke.texi (Debugging Options): Fix description of
7374         -fno-merge-debug-strings.
7375
7376 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
7377
7378         * config/cris/libgcc.ver: New version-script.
7379         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7380
7381         * configure.ac <GAS features, nop mnemonic>: Add pattern
7382         crisv32-*-* for "nop".
7383         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
7384         * configure: Regenerate.
7385
7386 2009-03-24  Ira Rosen  <irar@il.ibm.com>
7387
7388         PR tree-optimization/39529
7389         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7390         mark_sym_for_renaming for the tag copied to the new vector
7391         pointer.
7392
7393 2009-03-24  Arthur Loiret  <aloiret@debian.org>
7394
7395         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
7396         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7397         EXTRA_SPEC_FUNCTIONS.
7398         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7399         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7400         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7401         -march and -mtune options.
7402
7403 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
7404
7405         * config/m68k/t-rtems: Add m5329 multilib.
7406
7407 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
7408             Jakub Jelinek  <jakub@redhat.com>
7409
7410         PR debug/39524
7411         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7412         nodes.
7413
7414 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7415
7416         PR c/39495
7417         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7418         instead of c_parser_expression_conv, if original_code isn't one of the
7419         4 allowed comparison codes, fail.
7420
7421 2009-03-23  Richard Guenther  <rguenther@suse.de>
7422
7423         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7424         * tree.h (struct tree_type): Likewise.
7425         * reload.h (struct insn_chain): Likewise.
7426         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7427         * function.h (struct function): Likewise.
7428         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7429
7430 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7431
7432         PR tree-optimization/39516
7433         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7434
7435 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
7436
7437         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
7438         should be set true if BITS_PER_WORD of target is bigger than 32
7439
7440 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
7441
7442         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7443         Translate -B-options to -rpath-link.  Correct existing
7444         rpath-link and conditionalize on !nostdlib.
7445
7446 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7447
7448         * doc/extend.texi (Function Attributes, Variable Attributes):
7449         Fix typos.
7450         * doc/invoke.texi (Debugging Options, Optimize Options)
7451         (i386 and x86-64 Options, MCore Options): Likewise.
7452
7453 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
7454
7455         PR debug/37890
7456         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7457         it for block local namespace aliases.
7458         (gen_decl_die): Pass context_die to gen_namespace_die.
7459
7460 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7461
7462         PR c/39495
7463         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7464         minimum or maximum value.
7465
7466 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
7467
7468         * reginfo.c (globalize_reg): Recompute derived reg sets.
7469
7470 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
7471
7472         PR target/39063
7473         * libgcc2.c (mprotect): Do not use signed arguments for
7474         VirtualProtect, use DWORD arguments.  Also fix the 'may
7475         be used uninitialized' warning for the np variable.
7476
7477 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7478
7479         PR target/39496
7480         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7481         functions using regparm calling conventions when not optimizing.
7482         (ix86_function_sseregparm): Similarly for sseregparm calling
7483         conventions.
7484
7485 2009-03-19  Li Feng  <nemokingdom@gmail.com>
7486
7487         PR middle-end/39500
7488         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7489         dependence if the first conflict is after niter iterations.
7490
7491 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
7492
7493         PR middle-end/38609
7494         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7495         functions with dynamic stack-pointer adjustments.
7496
7497 2009-03-19  Ben Elliston  <bje@au.ibm.com>
7498
7499         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7500         option; change to -msdata=data.
7501
7502 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7503
7504         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7505         and -fopenmp.
7506
7507 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
7508
7509         PR target/35180
7510         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7511
7512 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
7513
7514         * doc/invoke.texi (Code Gen Options): Expand discussion of
7515         -fno-common.
7516
7517 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
7518
7519         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7520         * matrix-reorg.c (struct matrix_info): Likewise.
7521         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7522         * rtl.h (struct mem_attrs): Likewise.
7523         * df.h (struct df): Likewise.
7524         * tree-data-ref.h (struct data_dependence_relation): Likewise.
7525         * ira-int.h (struct ira_allocno): Likewise.
7526         * df-scan.c (struct df_collection_rec): Likewise.
7527         * ira.c (struct equivalence): Likewise.
7528         * function.c (struct temp_slot): Likewise.
7529         * cfgloop.h (struct loop): Likewise.
7530
7531         PR debug/39485
7532         * function.c (use_register_for_decl): When not optimizing, disregard
7533         register keyword for variables with types containing methods.
7534
7535 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
7536
7537         PR middle-end/39447
7538         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7539         (is_simple_operand): Call contains_component_ref_p before calling data
7540         reference analysis that would fail on COMPONENT_REFs.
7541
7542         * tree-vrp.c (search_for_addr_array): Fix formatting.
7543
7544 2009-03-18  Richard Guenther  <rguenther@suse.de>
7545
7546         * tree-vect-transform.c (vect_loop_versioning): Fold the
7547         generated comparisons.
7548         * tree-vectorizer.c (set_prologue_iterations): Likewise.
7549         (slpeel_tree_peel_loop_to_edge): Likewise.
7550
7551 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7552
7553         PR middle-end/37805
7554         * opts.c (print_specific_help): In addition to `undocumented',
7555         accept `separate' and `joined' flags if passed alone.  Describe
7556         output by the first matched one of those.
7557         (common_handle_option): Skip over empty strings.
7558         * gcc.c (display_help): Fix help string for `--help='.
7559         * doc/invoke.texi (Option Summary, Overall Options): With
7560         `--help=', classes and qualifiers can both be repeated, but
7561         only the latter can be negated.  One should not pass only
7562         negated qualifiers.  Fix markup and examples.
7563
7564         Revert
7565         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
7566         PR middle-end/37805
7567         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7568         and -fhelp=separate.
7569
7570 2009-03-17  Jing Yu  <jingyu@google.com>
7571
7572         PR middle-end/39378
7573         * function.h (struct rtl_data): Move is_thunk from here...
7574         (struct function): ...to here.
7575         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
7576         * varasm.c (assemble_start_function): Change is_thunk from crtl to
7577         cfun.
7578         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7579         cfun.
7580         (alpha_does_function_need_gp, alpha_start_function): Likewise.
7581         (alpha_output_function_end_prologue): Likewise.
7582         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7583         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7584         (rs6000_output_function_epilogue): Likewise.
7585         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
7586
7587 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
7588
7589         PR target/39482
7590         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7591         from different units in a single alternative.
7592         (*truncdfsf_i387): Ditto.
7593         (*truncxfsf2_mixed): Ditto.
7594         (*truncxfdf2_mixed): Ditto.
7595
7596 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
7597
7598         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7599         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7600
7601         PR debug/39474
7602         * tree-ssa-live.c (remove_unused_locals): Don't remove local
7603         unused non-artificial variables when not optimizing.
7604
7605         PR debug/39471
7606         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7607         DW_TAG_imported_module even if decl is IMPORTED_DECL with
7608         NAMESPACE_DECL in its DECL_INITIAL.
7609
7610         PR middle-end/39443
7611         * optabs.c (set_user_assembler_libfunc): New function.
7612         * expr.h (set_user_assembler_libfunc): New prototype.
7613         * c-common.c: Include libfuncs.h.
7614         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7615         for memcmp, memset, memcpy, memmove and abort.
7616         * Makefile.in (c-common.o): Depend on libfuncs.h.
7617
7618         PR debug/39412
7619         * dwarf2out.c (gen_inlined_enumeration_type_die,
7620         gen_inlined_structure_type_die, gen_inlined_union_type_die,
7621         gen_tagged_type_instantiation_die): Removed.
7622         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7623         do nothing.
7624
7625 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
7626
7627         PR testsuite/38526
7628         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7629         its use.
7630         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7631         (check-parallel-%): Ditto.
7632         (check-consistency): Ditto.
7633
7634 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
7635
7636         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7637         local variable rhs by NULL_TREE.
7638
7639 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7640
7641         PR target/39477
7642         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
7643
7644 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7645
7646         PR target/39476
7647         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
7648
7649 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7650
7651         PR target/39473
7652         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7653         for ms->sysv ABI calls only in 64bit mode.
7654
7655         * config/i386/i386.md (untyped_call): Support 32bit.
7656
7657 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7658
7659         * doc/extend.texi: Replace x86_65 with x86_64.
7660
7661 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
7662
7663         PR tree-optimization/39455
7664         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7665         mismatches for POINTER_TYPE_P (type).
7666         (number_of_iterations_le): Likewise.
7667
7668 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7669
7670         * config/picochip/picochip.c: Removed profiling support.
7671         * config/picochip/picochip.md: Removed profiling instruction.
7672         * config/picochip/picochip.h: Removed profiling builtin.
7673
7674 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
7675
7676         * doc/install.texi (--with-host-libstdcxx): Document.
7677
7678 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
7679
7680         PR target/34299
7681         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7682         generate a warning if the function name does not begin with
7683         "__vector" and the function has either the 'signal' or 'interrupt'
7684         attribute, from here to ...
7685         (avr_declare_function_name): ...here. New function.
7686         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7687         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7688
7689 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
7690
7691         PR bootstrap/39454
7692         * cse.c (fold_rtx): Don't modify original const_arg1 when
7693         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7694         separate variable instead.
7695         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7696         from out of range shift counts.
7697         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7698
7699 2009-03-13  Catherine Moore  <clm@codesourcery.com>
7700
7701         * config/i386/x-mingw32 (host-mingw32.o): Replace
7702         diagnostic.h with $(DIAGNOSTIC_H).
7703
7704 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
7705
7706         PR target/39431
7707         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7708         predicate.
7709         * config/i386/sync.md (sync_compare_and_swap<mode>,
7710         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7711         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7712         into a register.
7713         (sync_double_compare_and_swapdi_pic,
7714         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7715         cmpxchg8b_pic_memory_operand instead of just memory_operand.
7716
7717 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7718
7719         PR target/39445
7720         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7721
7722 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7723
7724         PR target/39327
7725         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7726         (avx_addsubv4df3): Likewise.
7727         (*avx_addsubv4sf3): Likewise.
7728         (sse3_addsubv4sf3): Likewise.
7729
7730 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7731
7732         PR target/38824
7733         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
7734
7735 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7736
7737         PR debug/39432
7738         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7739         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7740         registers for allocnos created from user-defined variables.
7741
7742 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7743
7744         PR target/39181
7745         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7746         of non-integer mode as well.
7747
7748 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
7749
7750         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7751         for functions for which the parameter types are unknown.
7752
7753 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR target/39137
7756         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
7757         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7758         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7759         * config/i386/i386.c (ix86_local_alignment): For
7760         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7761         long long variables on the stack to avoid dynamic realignment.
7762         Allow the first argument to be a decl rather than type.
7763         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7764
7765 2009-03-11  Nick Clifton  <nickc@redhat.com>
7766
7767         PR target/5362
7768         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7769         options.
7770         Add description to mno-lsim option.
7771         * config/mcore/mcore.h: Remove comment about deprecated m4align
7772         option.
7773         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7774         * doc/invoke.texi: Add description of mno-lsim and
7775         mstack-increment options.
7776
7777         * config/fr30/fr30.opt: Document the -mno-lsim option.
7778         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7779         and -mno-lsim options.
7780
7781 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7782
7783         * fold-const.c (fold_comparison): Only call fold_inf_compare
7784         if the mode supports infinities.
7785
7786 2009-03-11  Jason Merrill  <jason@redhat.com>
7787
7788         PR debug/39086
7789         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7790         end already did.  Notice GIMPLE_CALL modifications of the result.
7791         Don't copy debug information from an ignored decl or a decl from
7792         another function.
7793
7794 2009-03-10  Richard Guenther  <rguenther@suse.de>
7795             Nathan Froyd  <froydnj@codesourcery.com>
7796
7797         PR middle-end/37850
7798         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
7799         (__divMODE3): Likewise.
7800
7801 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
7802
7803         PR tree-optimization/39394
7804         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7805         DECL_SIZE_UNIT of variable length FIELD_DECLs.
7806
7807 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7808
7809         * recog.c (verfiy_changes): Disallow renaming of hard regs in
7810         inline asms for register asm ("") declarations.
7811
7812 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7813
7814         * fold-const.c (fold_unary): Fix comment.
7815
7816 2009-03-07  Jan Hubicka  <jh@suse.cz>
7817
7818         PR target/39361
7819         * tree-inline.c (setup_one_parameter): Do replacement of const
7820         argument by constant in SSA form.
7821
7822 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7823
7824         PR middle-end/38028
7825         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7826         determine alignment passed to assign_stack_local.
7827         (assign_parms_unsplit_complex): Likewise.
7828         * except.c (sjlj_build_landing_pads): Likewise.
7829
7830 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7831
7832         PR middle-end/39360
7833         * tree-flow.h (add_referenced_var): Return bool instead of void.
7834         * tree-dfa.c (add_referenced_var): Return result of
7835         referenced_var_check_and_insert call.
7836         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7837         of referenced_var_check_and_insert.
7838
7839         PR debug/39372
7840         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
7841         (gen_variable_die): Emit DW_AT_location on abstract static variable's
7842         DIE, don't emit it if abstract origin already has it.
7843         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7844         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7845
7846 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7847
7848         * genpreds.c (needs_variable): Fix parentheses at variable name
7849         detection.
7850         (write_tm_constrs_h): Indent generated code.
7851
7852 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7853
7854         * doc/extend.texi (Function Attributes): Add documentation
7855         for isr attributes.
7856
7857 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7858
7859         PR debug/39387
7860         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7861         take locus from its DECL_SOURCE_LOCATION instead of input_location.
7862
7863 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7864
7865         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7866         the loop as bad.
7867
7868 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
7869
7870         PR debug/39379
7871         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7872         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7873
7874 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
7875
7876         * config/i386/i386.md (R8_REG, R9_REG): New constants.
7877         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7878         constants instead of magic numbers.
7879         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7880         (QI_REG_P): Ditto.
7881         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7882         (x86_64_ms_abi_int_parameter_registers): Ditto.
7883         (x86_64_int_return_registers): Ditto.
7884         (ix86_maybe_switch_abi): Ditto.
7885         (ix86_expand_call): Ditto for clobbered_registers array.
7886         (ix86_hard_regno_mode_ok): Ditto.
7887         (x86_extended_QIreg_mentioned_p): Ditto.
7888
7889 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
7890
7891         PR tree-optimization/39349
7892         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7893
7894         * combine.c (gen_lowpart_for_combine): Use omode when generating
7895         clobber.
7896
7897 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
7898
7899         PR rtl-optimization/39235
7900         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7901
7902 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7903
7904         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7905
7906 2009-03-04  Richard Guenther  <rguenther@suse.de>
7907
7908         PR tree-optimization/39362
7909         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7910         that occur in abnormal PHIs should be varying.
7911
7912 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7913
7914         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7915         Extend comments.
7916         (simple_iv):  Take loop as an argument instead of statement.
7917         * tree-scalar-evolution.h (simple_iv): Declaration changed.
7918         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7919         to simple_iv.
7920         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7921         Ditto.
7922         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7923         * matrix-reorg.c (analyze_transpose): Ditto.
7924         * tree-data-ref.c (dr_analyze_innermost): Ditto.
7925         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7926         * tree-predcom.c (ref_at_iteration): Ditto.
7927         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7928
7929 2009-03-04  Richard Guenther  <rguenther@suse.de>
7930
7931         PR tree-optimization/39358
7932         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7933         escaped_id and callused_id.
7934         (solve_graph): Likewise.
7935
7936 2009-03-04  Richard Guenther  <rguenther@suse.de>
7937
7938         PR tree-optimization/39339
7939         * tree-sra.c (try_instantiate_multiple_fields): Make it
7940         no longer ICE on the above.
7941
7942 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
7943
7944         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7945         that fits within Pmode.
7946
7947 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7948
7949         PR middle-end/10109
7950         * tm.texi (LIBCALL_VALUE): Update description.
7951
7952 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7953
7954         PR middle-end/34443
7955         * doc/extend.texi (section): Update description.
7956
7957 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7958
7959         PR middle-end/39345
7960         * tree-inline.c (remapped_type): New.
7961         (can_be_nonlocal): Call remapped_type instead of remap_type.
7962
7963 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7964
7965         PR fortran/39354
7966         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7967         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7968
7969 2009-03-03  Richard Guenther  <rguenther@suse.de>
7970
7971         PR middle-end/39272
7972         * tree.c (tree_nonartificial_location): New function.
7973         * tree.h (tree_nonartificial_location): Declare.
7974         * builtins.c (expand_builtin_memory_chk): Provide location
7975         of the call location for artificial function pieces.
7976         (maybe_emit_chk_warning): Likewise.
7977         (maybe_emit_sprintf_chk_warning): Likewise.
7978         (maybe_emit_free_warning): Likewise.
7979         * expr.c (expand_expr_real_1): Likewise.
7980
7981 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7982
7983         PR tree-optimization/39343
7984         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7985         COMPONENT_REF t has ARRAY_TYPE.
7986
7987 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7988
7989         PR middle-end/39335
7990         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7991         when the type precision of the induction variable should be
7992         larger than the type precision of nit.
7993         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7994         * graphite.c (graphite_loop_normal_form): Same.
7995         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7996
7997 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
7998
7999         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8000         (*call_1_rex64_ms_sysv): Use named constants instead of magic
8001         numbers to describe clobbered registers.
8002         (*call_value_0_rex64_ms_sysv): Ditto.
8003         * config/i386/mmx.md (mmx_emms): Ditto.
8004         (mmx_femms): Ditto.
8005
8006 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
8007
8008         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8009         of ABI_64.
8010
8011 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8012
8013         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8014         (spu_section_type_flags): New function.
8015
8016 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8017
8018         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8019         reg_class_contents of FLOAT_REGS into a temporary.
8020
8021 2009-03-02  Richard Guenther  <rguenther@suse.de>
8022             Ira Rosen  <irar@il.ibm.com>
8023
8024         PR tree-optimization/39318
8025         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8026         information to the vectorized statement.
8027
8028 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
8029
8030         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
8031         variable.  Use defined names instead of magic constants for REX SSE
8032         registers.
8033
8034 2009-03-01  Richard Guenther  <rguenther@suse.de>
8035
8036         PR tree-optimization/39331
8037         * omp-low.c (lower_send_shared_vars): Do not receive new
8038         values for the reference of DECL_BY_REFERENCE parms or results.
8039
8040 2009-03-01  Jan Hubicka  <jh@suse.cz>
8041
8042         PR debug/39267
8043         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
8044         BLOCK_NONLOCALIZED_VAR): New macros.
8045         (tree_block): Add nonlocalized_vars.
8046         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
8047         gen_decl_die): Add origin argument.  Allow generation of die with
8048         origin at hand only.
8049         (gen_member_die, gen_type_die_with_usage, force_decl_die,
8050         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
8051         of gen_*.
8052         (gen_block_die): Fix checking for unused blocks.
8053         (process_scope_var): Break out from .... ; work with origins only.
8054         (decls_for_scope) ... here; process nonlocalized list.
8055         (dwarf2out_ignore_block): Look for nonlocalized vars.
8056         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
8057         vars.
8058         (dump_scope_block): Dump them.
8059         * tree-inline.c (remap_decls): Handle nonlocalized vars.
8060         (remap_block): Likewise.
8061         (can_be_nonlocal): New predicate.
8062         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
8063
8064 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8065
8066         * configure: Regenerate.
8067
8068 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8069
8070         * optc-gen.awk: No need to duplicate option flags twice.
8071         Reuse help texts for duplicate options which do not have any.
8072
8073         * gcc.c (display_help): Document --version.
8074
8075         * gcc.c (main): If print_help_list and verbose_flag, ensure
8076         driver output comes before subprocess output.
8077
8078         * optc-gen.awk: Assign all remaining fields to help string,
8079         space-separated, for multi-line help in *.opt.
8080
8081         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
8082         -Wno-pedantic-ms-format is for MinGW targets only.
8083
8084         * doc/options.texi (Option file format): Fix bad indentation,
8085         restoring dropped sentence.
8086
8087 2009-02-28  Jan Hubicka  <jh@suse.cz>
8088
8089         * tree-inline.c (tree_function_versioning): Output debug info.
8090
8091 2009-02-28  Jan Hubicka  <jh@suse.cz>
8092
8093         PR debug/39267
8094         * tree-inline.c (setup_one_parameter): Do not copy propagate
8095         arguments when not optimizing.
8096
8097 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8098
8099         PR target/39327
8100         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8101         (avx_addsubv4df3): Likewise.
8102         (*avx_addsubv4sf3): Likewise.
8103         (sse3_addsubv4sf3): Likewise.
8104         (*avx_addsubv2df3): Likewise.
8105         (sse3_addsubv2df3): Likewise.
8106         (avx_unpckhps256): Correct item selectors.
8107         (avx_unpcklps256): Likewise.
8108         (avx_unpckhpd256): Likewise.
8109         (avx_unpcklpd256): Likewise.
8110
8111 2009-02-28  Jan Hubicka  <jh@suse.cz>
8112
8113         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
8114         static vars.
8115         (copy_arguments_for_versioning): If var is declared don't declare it.
8116         (tree_function_versioning): First setup substitutions and then copy
8117         args.
8118
8119 2009-02-27  Jan Hubicka  <jh@suse.cz>
8120
8121         PR debug/39267
8122         * cgraph.h (varpool_output_debug_info): Remove.
8123         * cgraphunit.c (varpool_output_debug_info): Remove.
8124         * dwarf2out.c (deferred_locations_struct): New struct
8125         (deferred_locations): New type.
8126         (deferred_locations_list): New static var.
8127         (deffer_location): New function.
8128         (gen_variable_die): Use it.
8129         (decls_for_scope): Output info on local static vars.
8130         (dwarf2out_finish): Process deferred locations.
8131         * varpool.c (varpool_output_debug_info): Remove.
8132
8133 2009-02-27  Jan Hubicka  <jh@suse.cz>
8134
8135         PR debug/39267
8136         * tree.h (TREE_PROTECTED): Fix comment.
8137         (BLOCK_HANDLER_BLOCK): Remove.
8138         (struct tree_block): Remove handler_block add body_block.
8139         (inlined_function_outer_scope_p): New.
8140         (is_body_block): Remove.
8141         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
8142         * dwarf2out.c (is_inlined_entry_point): Remove.
8143         (add_high_low_attributes): Use inlined_function_outer_scope_p.
8144         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
8145         code.
8146         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
8147         * gimplify.c (gimplify_expr): Gimplify body blocks.
8148         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
8149         block with multiple subblocks.
8150         (dump_scope_block): Prettier output; dump more flags and info.
8151         (dump_scope_blocks): New.
8152         (remove_unused_locals): Use dump_scope_blocks.
8153         * tree-flow.h (dump_scope_blocks): Declare.
8154         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
8155         * stmt.c (is_body_block): Remove.
8156         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
8157         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
8158
8159 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
8160
8161         PR middle-end/39308
8162         * graphite.c (graphite_loop_normal_form): Do not call
8163         number_of_iterations_exit from a gcc_assert.
8164
8165 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8166
8167         * config/s390/s390.c (s390_swap_cmp): Look for conditional
8168         jumps if COND is NULL.
8169         (find_cond_jump): New function.
8170         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
8171         * config/s390/s390.md: Remove z10_cobra attribute value.
8172
8173 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
8174
8175         * config/alpha/alpha.h (alpha_expand_mov): Return false if
8176         force_const_mem returns NULL_RTX.
8177
8178 2009-02-26  Jan Hubicka  <jh@suse.cz>
8179
8180         PR debug/39267
8181         * cgraph.h (varpool_output_debug_info): Remove.
8182         * cgraphunit.c (varpool_output_debug_info): Remove.
8183         * dwarf2out.c (deferred_locations_struct): New struct
8184         (deferred_locations): New type.
8185         (deferred_locations_list): New static var.
8186         (deffer_location): New function.
8187         (gen_variable_die): Use it.
8188         (decls_for_scope): Output info on local static vars.
8189         (dwarf2out_finish): Process deferred locations.
8190         * varpool.c (varpool_output_debug_info): Remove.
8191
8192 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8193
8194         PR rtl-optimization/39241
8195         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
8196         to subreg_offset_representable_p.
8197
8198 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8199
8200         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
8201         execute function prototype.  Get f and nregs from max_reg_num
8202         and get_insns.  Remove the first backward pass as it's dead,
8203         guard the forward pass by flag_expensive_optimizations.
8204         (rest_of_handle_regmove): Delete.
8205         (pass_regmove): Replace it with regmove_optimize.
8206
8207 2009-02-25  Martin Jambor  <mjambor@suse.cz>
8208
8209         PR tree-optimization/39259
8210         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
8211         calls_alloca function flags.
8212         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
8213         calls are detected.
8214
8215 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8216
8217         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
8218         flags_set_1_rtx, flags_set_1_set): Delete.
8219         (regmove_optimize): Do not call mark_flags_life_zones.
8220
8221 2009-02-24  Julian Brown  <julian@codesourcery.com>
8222
8223         PR target/35965
8224         * config/arm/arm.c (require_pic_register): Only set
8225         cfun->machine->pic_reg once per function.
8226
8227 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
8228
8229         * doc/invoke.texi (Link Options): Document an easier way to pass
8230         options that take arguments to the GNU linker using -Xlinker and -Wl.
8231
8232 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
8233
8234         PR target/33785
8235         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8236
8237 2009-02-24  Richard Guenther  <rguenther@suse.de>
8238
8239         PR debug/39285
8240         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8241
8242 2009-02-24  Richard Guenther  <rguenther@suse.de>
8243             Zdenek Dvorak  <ook@ucw.cz>
8244
8245         PR tree-optimization/39233
8246         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8247         from converting them to a generic type.
8248
8249 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
8250
8251         PR tree-optimization/39260
8252         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8253         contains a condition with a real type.
8254         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8255
8256 2009-02-23  Jason Merrill  <jason@redhat.com>
8257
8258         PR c++/38880
8259         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8260         narrowing_initializer_constant_valid_p.
8261         (narrowing_initializer_constant_valid_p): Don't return
8262         null_pointer_node for adding a pointer to itself.
8263
8264 2009-02-23  Jan Hubicka  <jh@suse.cz>
8265
8266         PR c/12245
8267         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8268         resizing.
8269
8270 2009-02-23  Jan Hubicka  <jh@suse.cz>
8271
8272         PR tree-optimization/37709
8273         * tree.c (block_ultimate_origin): Move here from dwarf2out.
8274         * tree.h (block_ultimate_origin): Declare.
8275         * dwarf2out.c (block_ultimate_origin): Move to tree.c
8276         * tree-ssa-live.c (remove_unused_scope_block_p):
8277         Eliminate blocks containig no instructions nor live variables nor
8278         nested blocks.
8279         (dump_scope_block): New function.
8280         (remove_unused_locals): Enable removal of dead blocks by default;
8281         enable dumping at TDF_DETAILS.
8282
8283 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8284
8285         * config/i386/i386.c (classify_argument): Don't allow COImode
8286         and OImode.
8287         (function_arg_advance_32): Don't allow OImode.
8288         (function_arg_32): Likewise.
8289         (function_value_32): Likewise.
8290         (return_in_memory_32): Likewise.
8291         (function_arg_64): Remove OImode comment.
8292
8293 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8294
8295         PR target/39261
8296         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8297         ix86_expand_vector_set for V4DImode in 64bit mode only.
8298         (ix86_expand_vector_init_one_var): Likewise.
8299
8300 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
8301
8302         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8303
8304 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8305
8306         PR bootstrap/39257
8307         * loop-iv.c: Revert last change.
8308         * emit-rtl.c: Likewise.
8309
8310 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8311
8312         PR target/39256
8313         * config/i386/i386.c (type_natural_mode): Remove an extra
8314         space in the warning message.
8315         (function_value_32): Handle 32-byte vector modes.
8316         (return_in_memory_32): Likewise.
8317
8318 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8319
8320         * loop-iv.c (truncate_value): New function.
8321         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8322         of lowpart_subreg.
8323         (lowpart_subreg): Move to...
8324         * emit-rtl.c: ...here.
8325
8326 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
8327
8328         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8329         accidental and undocumented change at revision 140860.
8330
8331 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
8332
8333         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8334         take gimple_seq * arguments.
8335         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8336         types_compatible_p langhook.
8337
8338 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
8339             Joseph Myers  <joseph@codesourcery.com>
8340
8341         * config/arm/arm.c (arm_builtin_va_list): New function.
8342         (arm_expand_builtin_va_start): Likewise.
8343         (arm_gimplify_va_arg_expr): Likewise.
8344         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8345         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8346         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8347         (va_list_type): New variable.
8348         (arm_mangle_type): Mangle va_list_type appropriately.
8349
8350 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8351
8352         PR middle-end/39157
8353         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8354         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8355         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8356         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8357         parameter to 1000 for -O1 by default.
8358         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8359         parameter.
8360         * loop-invariant.c: Include params.h.
8361         (move_loop_invariants): Don't call move_single_loop_invariants on
8362         very large loops.
8363
8364 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
8365
8366         * calls.c (emit_library_call_value_1): Use slot_offset instead of
8367         offset when calculating bounds for indexing stack_usage_map.  Fixes
8368         a buffer overflow with certain target setups.
8369
8370 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8371
8372         PR target/39240
8373         * calls.c (expand_call): Clear try_tail_call if caller and callee
8374         disagree in promotion of function return value.
8375
8376 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
8377
8378         PR target/39175
8379         * c-common.c (c_determine_visibility): If visibility changed and
8380         DECL_RTL has been already set, call make_decl_rtl to update symbol
8381         flags.
8382
8383 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8384
8385         PR c++/39188
8386         * varasm.c (assemble_variable): Don't check DECL_NAME when
8387         globalizing a variable.
8388
8389 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
8390
8391         PR c/38483
8392         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8393         expression before any __builtin_trap call.
8394         * c-typeck.c (build_function_call): Convert and check function
8395         arguments before generating a call to a trap.  Evaluate the
8396         function arguments before the trap.
8397
8398 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
8399
8400         PR target/39228
8401         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8402         (UNSPEC_FXAM_MEM): New unspec.
8403         (fxam<mode>2_i387_with_temp): New insn and split pattern.
8404         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
8405         memory using fxam<mode>2_i387_with_temp to remove excess precision.
8406
8407 2009-02-19  Richard Guenther  <rguenther@suse.de>
8408
8409         PR tree-optimization/39207
8410         PR tree-optimization/39074
8411         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8412         storedanything_tree): New.
8413         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
8414         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
8415         (build_succ_graph): Add edges from STOREDANYTHING to all
8416         non-direct nodes.
8417         (init_base_vars): Initialize STOREDANYTHING.
8418         (compute_points_to_sets): Free substitution info after
8419         building the succ graph.
8420         (ipa_pta_execute): Likewise.
8421
8422         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8423         field.
8424         (do_ds_constraint): Do not add to special var or non-pointer
8425         field solutions.
8426         (type_could_have_pointers): Split out from ...
8427         (could_have_pointers): ... here.  For arrays use the element type.
8428         (create_variable_info_for): Initialize may_have_pointers.
8429         (new_var_info): Likewise.
8430         (handle_lhs_call): Make the HEAP variable unknown-sized.
8431         (intra_create_variable_infos): Use a type with pointers for
8432         PARM_NOALIAS, make it unknown-sized.
8433
8434 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8435
8436         PR target/39224
8437         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
8438
8439 2009-02-18  Jason Merrill  <jason@redhat.com>
8440
8441         PR target/39179
8442         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8443         value if DECL_EXTERNAL.
8444         * tree-sra.c (sra_walk_gimple_assign): Likewise.
8445         * target.h (gcc_target::binds_local_p): Clarify "module".
8446         * tree.h (TREE_PUBLIC): Clarify "module".
8447
8448 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
8449
8450         PR target/38891
8451         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8452         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8453
8454 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8455
8456         PR target/39082
8457         * c.opt (Wabi): Support C and ObjC.
8458         (Wpsabi): New.
8459
8460         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8461
8462         * config/i386/i386.c (classify_argument): Warn once about the ABI
8463         change when passing union with long double.
8464
8465         * doc/invoke.texi: Update -Wabi for warning psABI changes.
8466
8467 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
8468
8469         PR c/35447
8470         * c-parser.c (c_parser_compound_statement): Always enter and leave
8471         a scope.
8472
8473 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8474
8475         PR target/34587
8476         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8477
8478 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
8479
8480         PR tree-optimization/36922
8481         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8482         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8483         Likewise.
8484
8485 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8486
8487         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8488         to 0 for EABI64.
8489
8490 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8491
8492         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8493
8494 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8495
8496         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8497         tree sharing.
8498
8499 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
8500             Richard Sandiford  <rdsandiford@googlemail.com>
8501
8502         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8503         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8504         (loongson_biadd): ...this.
8505
8506 2009-02-17  Richard Guenther  <rguenther@suse.de>
8507
8508         PR tree-optimization/39202
8509         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8510         a var make sure to follow existing collapses.
8511
8512 2009-02-17  Richard Guenther  <rguenther@suse.de>
8513
8514         PR middle-end/39214
8515         * langhooks.c (lhd_print_error_function): Check for NULL block.
8516
8517 2009-02-17  Richard Guenther  <rguenther@suse.de>
8518
8519         PR tree-optimization/39204
8520         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8521         of the PHI arg.
8522
8523 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
8524
8525         * config/soft-fp/double.h: Update from glibc CVS.
8526
8527 2009-02-17  Richard Guenther  <rguenther@suse.de>
8528
8529         PR tree-optimization/39207
8530         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8531         strict-aliasing warnings for pointers pointing to NULL.
8532
8533 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
8534
8535         PR c/35446
8536         * c-parser.c (c_parser_braced_init): Call pop_init_level when
8537         skipping until next close brace.
8538
8539 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
8540
8541         PR target/37049
8542         * config/i386/i386.c (ix86_expand_push): Set memory alignment
8543         to function argument boundary.
8544
8545 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8546
8547         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8548         in the lea_add. Reload eventually constraints it properly.
8549         * config/picochip/constraints.md: Remove the target constraint
8550         "b", since it is not needed anymore.
8551
8552 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
8553
8554         * gthr-dce.h: Uglify function parameter and local variable names.
8555         * gthr-gnat.h: Likewise.
8556         * gthr-mipssde.h: Likewise.
8557         * gthr-nks.h: Likewise.
8558         * gthr-posix95.h: Likewise.
8559         * gthr-posix.h: Likewise.
8560         * gthr-rtems.h: Likewise.
8561         * gthr-single.h: Likewise.
8562         * gthr-solaris.h: Likewise.
8563         * gthr-tpf.h: Likewise.
8564         * gthr-vxworks.h: Likewise.
8565         * gthr-win32.h: Likewise.
8566
8567 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8568
8569         PR target/39196
8570         * config/i386/i386.md: Restrict the new peephole2 to move
8571         between MMX/SSE registers.
8572
8573 2009-02-15  Richard Guenther  <rguenther@suse.de>
8574
8575         Revert
8576         2009-02-13  Richard Guenther  <rguenther@suse.de>
8577
8578         * configure.ac: Enable LFS.
8579         * configure: Re-generate.
8580         * config.in: Likewise.
8581
8582 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8583
8584         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8585         spu_srqwbyte, spu_srqwbytebc): Define.
8586         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8587         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8588         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8589         "shrqby_<mode>"): New insn-and-split patterns.
8590         * config/spu/spu.c (expand_builtin_args): Determine and return
8591         number of operands using spu_builtin_description data.
8592         (spu_expand_builtin_1): Use it.
8593
8594 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
8595
8596         PR target/38056
8597         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8598         TARGET_CONST_GP.
8599
8600 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8601
8602         PR target/39149
8603         * config/i386/i386.c (override_options): Correct warning
8604         messages for -malign-loops, -malign-jumps and -malign-functions.
8605
8606 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8607
8608         PR target/39152
8609         * config/i386/i386.md: Restrict the new peephole2 to move
8610         between the general purpose registers.
8611
8612 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8613
8614         PR target/39162
8615         * config/i386/i386.c (type_natural_mode): Add a new argument.
8616         Return the original mode and warn ABI change if vector size is 32byte.
8617         (function_arg_advance): Updated.
8618         (function_arg): Likewise.
8619         (ix86_function_value): Likewise.
8620         (ix86_return_in_memory): Likewise.
8621         (ix86_sol10_return_in_memory): Likewise.
8622         (ix86_gimplify_va_arg): Likewise.
8623         (function_arg_32): Don't warn ABX ABI change here.
8624         (function_arg_64): Likewise.
8625
8626 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8627
8628         * loop-iv.c (implies_p): In the final case, test that operands 0
8629         of the two comparisons match.
8630
8631         * config/bfin/bfin.c (find_prev_insn_start): New function.
8632         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8633         (find_next_insn_start): Move.
8634
8635 2009-02-13  Richard Guenther  <rguenther@suse.de>
8636
8637         * configure.ac: Enable LFS.
8638         * configure: Re-generate.
8639         * config.in: Likewise.
8640
8641 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
8642
8643         PR c/35444
8644         * c-parser.c (c_parser_parms_list_declarator): Discard pending
8645         sizes on syntax error after some arguments have been parsed.
8646
8647 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8648
8649         * doc/invoke.texi (-fira): Remove.
8650
8651 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8652
8653         * caller-save.c: Replace regclass.c with reginfo.c in comments.
8654         * recog.c: Likewise.
8655         * rtl.h: Likewise.
8656
8657 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
8658
8659         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8660         (umul_ppmm): Likewise.
8661         (count_leading_zeros): Likewise.
8662         (count_trailing_zeros): Likewise.
8663         (UMUL_TIME): Likewise.
8664
8665 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8666
8667         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8668         soft-fp/t-softfp to tmake_file.
8669
8670         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
8671         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8672         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8673         IA64_BUILTIN_INFQ]: New.
8674         (ia64_init_builtins): Initialize __builtin_infq,
8675         __builtin_fabsq and __builtin_copysignq if not HPUX.
8676         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8677         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8678
8679         * config/ia64/lib1funcs.asm (__divtf3): Define only if
8680         SHARED is defined.
8681         (__fixtfti): Likewise.
8682         (__fixunstfti): Likewise.
8683         (__floattitf): Likewise.
8684
8685         * config/ia64/libgcc-glibc.ver: New.
8686         * config/ia64/t-fprules-softfp: Likewise.
8687         * config/ia64/sfp-machine.h: Likewise.
8688
8689         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8690         (LIBGCC2_TF_CEXT): Likewise.
8691         (TF_SIZE): Likewise.
8692         (TARGET_INIT_LIBFUNCS): Likewise.
8693
8694         * config/ia64/t-glibc (SHLINB_MAPFILES):
8695         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8696
8697 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8698
8699         * config/i386/i386.c (construct_container): Rewrite processing
8700         BLKmode with X86_64_SSE_CLASS.
8701
8702 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
8703
8704         PR target/39152
8705         * config/i386/i386.md: Replace simplify_replace_rtx with
8706         replace_rtx in the new peephole2.
8707
8708 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8709
8710         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8711         loop unrolling do not happen at -O2.
8712
8713 2009-02-12  Michael Matz  <matz@suse.de>
8714
8715         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8716
8717 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8718
8719         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8720         for -g3.
8721
8722 2009-02-12  Ben Elliston  <bje@au.ibm.com>
8723
8724         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8725         patterns when updating the back chain.  Missed in the 2009-02-10
8726         change.
8727
8728 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
8729
8730         * doc/extend.texi (Decimal Floating Types): Update identifier of
8731         draft TR and list of missing support.
8732
8733 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8734
8735         PR middle-end/39154
8736         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8737         bit to variable length decl's flags, add it also to its
8738         pointer replacement variable.
8739
8740 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
8741             Jakub Jelinek  <jakub@redhat.com>
8742
8743         PR target/39118
8744         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8745         (memory_blockage): New expander.
8746         (*memory_blockage): New insn pattern.
8747         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8748         instead of general blockage at the end of function prologue when
8749         frame pointer is used to access red zone area.  Do not emit blockage
8750         when profiling, it is emitted in generic code.
8751         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8752         function epilogue when frame pointer is used to access red zone area.
8753
8754 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
8755
8756         PR target/38824
8757         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8758         by arithmetic with memory operands.
8759         * config/i386/predicates.md (commutative_operator): New.
8760
8761 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
8762
8763         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8764         bulleted lists.
8765
8766 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8767
8768         * alias.h (record_alias_subset): Declare.
8769         * alias.c (record_alias_subset): Make global.
8770
8771 2009-02-10  Nick Clifton  <nickc@redhat.com>
8772
8773         * tree-parloops.c: Change license to GPLv3.
8774         * ipa-struct-reorg.c: Change license to GPLv3.
8775         * ipa-struct-reorg.h: Change license to GPLv3.
8776
8777 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
8778
8779         PR c/39084
8780         * c-decl.c (start_struct): Return NULL on error.
8781
8782 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
8783
8784         PR middle-end/39124
8785         * cfgloopmanip.c (remove_path): Call remove_bbs after
8786         cancel_loop_tree, not before it.
8787
8788         PR target/39139
8789         * function.h (struct function): Add has_local_explicit_reg_vars bit.
8790         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8791         VAR_DECLs were seen.
8792         * tree-ssa-live.c (remove_unused_locals): Recompute
8793         cfun->has_local_explicit_reg_vars.
8794         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8795         copies or clearings if cfun->has_local_explicit_reg_vars.
8796
8797 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
8798
8799         PR target/39118
8800         * config/i386/i386.c (expand_prologue): Emit blockage at the end
8801         of function prologue when frame pointer is used to access
8802         red zone area.
8803
8804 2009-02-10  Richard Guenther  <rguenther@suse.de>
8805
8806         PR middle-end/39127
8807         * gimplify.c (gimple_regimplify_operands): Always look if
8808         we need to create a temporary.
8809
8810 2009-02-10  Richard Guenther  <rguenther@suse.de>
8811
8812         PR tree-optimization/39132
8813         * tree-loop-distribution.c (todo): New global var.
8814         (generate_memset_zero): Trigger TODO_rebuild_alias.
8815         (tree_loop_distribution): Return todo.
8816
8817 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
8818
8819         PR target/39119
8820         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8821         (x86_64_reg_class_name): Removed.
8822         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
8823         first one isn't X86_64_SSE_CLASS or any other ones aren't
8824         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
8825         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8826         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
8827         and 3 X86_64_SSEUP_CLASS.
8828         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
8829         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8830
8831 2009-02-10  Ben Elliston  <bje@au.ibm.com>
8832
8833         * config/rs6000/rs6000.md (allocate_stack): Always use an update
8834         form instruction to update the stack back chain word, even if the
8835         user has disabled the generation of update instructions.
8836         (movdi_<mode>_update_stack): New.
8837         (movsi_update_stack): Likewise.
8838         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8839         always use an update form instruction to update the stack back
8840         chain word.
8841
8842 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
8843
8844         PR middle-end/38953
8845         * graphite.c (if_region_set_false_region): After moving a region in
8846         the false branch of a condition, remove the empty dummy basic block.
8847         (gloog): Remove wrong fix for PR38953.
8848
8849 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8850
8851         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8852         generation due to implicit sign extension.
8853
8854 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8855
8856         PR middle-end/38981
8857         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8858         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8859
8860 2009-02-09  Richard Guenther  <rguenther@suse.de>
8861
8862         PR middle-end/35202
8863         * convert.c (convert_to_real): Disable (float)fn((double)x)
8864         to fnf(x) conversion if errno differences may occur and
8865         -fmath-errno is set.
8866
8867 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
8868
8869         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8870         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8871         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8872
8873 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8874
8875         PR c/35434
8876         * c-common.c (handle_alias_attribute): Disallow attribute for
8877         anything not a FUNCTION_DECL or VAR_DECL.
8878
8879 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
8880
8881         PR c/39035
8882         * real.c (do_compare): Special-case compare of zero against
8883         decimal float value.
8884
8885 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8886
8887         PR c/36432
8888         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8889         as indicating flexible array members unless the field itself is
8890         being declarared as the incomplete array.
8891
8892 2009-02-06  Jan Hubicka  <jh@suse.cz>
8893
8894         PR tree-optimization/38844
8895         * ipa-inline.c (try_inline): Stop inlining recursion when edge
8896         is already inlined.
8897
8898 2009-02-06  Richard Guenther  <rguenther@suse.de>
8899
8900         PR middle-end/38977
8901         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8902         fork because we may expand it as __gcov_fork.
8903
8904 2009-02-06  Nick Clifton  <nickc@redhat.com>
8905
8906         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8907
8908 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
8909
8910         PR tree-optimization/35659
8911         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8912         vn_phi_eq): Shortcut if hashcode does not match.
8913         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8914         NULL operands.
8915         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8916         and avoid iterative_hash_expr.
8917         (FOR_EACH_VALUE_ID_IN_SET): New.
8918         (value_id_compare): Remove.
8919         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8920         sort expressions by value id.
8921
8922 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8923
8924         PR target/38991
8925         * config/sh/predicates.md (general_movsrc_operand): Don't check
8926         the subreg of system registers here.
8927
8928 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
8929
8930         PR c++/39106
8931         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8932         on the copied decl.
8933
8934 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
8935
8936         PR rtl-optimization/39110
8937         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8938         addresses, not aligned ones.
8939
8940 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
8941             Richard Guenther  <rguenther@suse.de>
8942
8943         PR tree-optimization/39100
8944         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8945         comment says and add edges.
8946
8947 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
8948
8949         PR c/35435
8950         * c-common.c (handle_tls_model_attribute): Ignore attribute for
8951         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8952
8953 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
8954
8955         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8956         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8957         register_bb_in_sese, new_sese, free_sese): Moved.
8958         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8959         outermost_loop_in_scop, build_scop_iteration_domain,
8960         expand_scalar_variables_ssa_name, get_vdef_before_scop,
8961         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8962         Use loop_in_sese_p instead of loop_in_scop_p.
8963         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8964         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8965         (scopdet_basic_block_info): Fix bug in scop detection.
8966         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8967         eq_loop_to_cloog_loop): Remove.
8968         (nb_loops_around_loop_in_scop, nb_loop
8969         ref_nb_loops): Moved here...
8970         * graphite.h (ref_nb_loops): ... from here.
8971         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8972         (loop_domain_dim, loop_iteration_vector_dim): Remove.
8973         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8974         * testsuite/gcc.dg/graphite/scop-19.c: New
8975
8976 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
8977             Hans-Peter Nilsson  <hp@axis.com>
8978
8979         PR rtl-optimization/37889
8980         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8981         Move offset handling from PLUS to before the switch.  Use new
8982         arguments when considering SYMBOL_REFs too.
8983         (rtx_addr_can_trap_p): Pass dummy offset and size.
8984         (enum may_trap_p_flags): Remove.
8985         (may_trap_p_1): Pass size from MEM_SIZE.
8986
8987         PR rtl-optimization/38921
8988         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8989         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8990         * rtlanal.c (may_trap_after_code_motion_p): Delete.
8991         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8992
8993 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
8994
8995         AVX Programming Reference (January, 2009)
8996         * config/i386/sse.md (*vpclmulqdq): New.
8997
8998 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
8999
9000         PR tree-optimization/38977
9001         PR gcov-profile/38292
9002         * calls.c (special_function_p): Disregard __builtin_ prefix.
9003
9004 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
9005
9006         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9007         non-indexable addresses even before reload.
9008
9009 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9010
9011         PR c/29129
9012         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9013         as having variable size.  Do not give an error for unnamed
9014         parameters with [*] declarators.  Give a warning for type names
9015         with [*] declarators and mark them as variable size.
9016         * c-parser.c (c_parser_sizeof_expression): Do not give an error
9017         for sizeof applied to [*] type names.
9018
9019 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9020
9021         PR C++/36607
9022         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9023
9024 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9025
9026         * gcc.c (process_command): Update copyright notice dates.
9027         * gcov.c (print_version): Likewise.
9028         * gcov-dump.c (print_version): Likewise.
9029         * mips-tfile.c (main): Likewise.
9030         * mips-tdump.c (main): Likewise.
9031
9032 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9033
9034         PR c/35433
9035         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
9036         for composite type involving a zero-length array type.
9037
9038 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9039
9040         PR target/35318
9041         * function.c (match_asm_constraints_1): Skip over
9042         initial optional % in the constraint.
9043
9044         PR inline-asm/39059
9045         * c-parser.c (c_parser_postfix_expression): If fixed point is not
9046         supported, don't accept FIXED_CSTs.
9047         * c-decl.c (finish_declspecs): Error if fixed point is not supported
9048         and _Sat is used without _Fract/_Accum.  Set specs->type to
9049         integer_type_node for cts_fract/cts_accum if fixed point is not
9050         supported.
9051
9052 2009-02-02  Catherine Moore  <clm@codesourcery.com>
9053
9054         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
9055
9056 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9057
9058         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
9059         (ABI_HAS_64BIT_SYMBOLS): Use it.
9060         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
9061
9062 2009-02-02  Paul Brook  <paul@codesourcery.com>
9063
9064         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
9065
9066 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
9067
9068         PR inline-asm/39058
9069         * recog.h (asm_operand_ok): Add constraints argument.
9070         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
9071         recurse on matching constraint.
9072         (check_asm_operands): Pass constraints as 3rd argument to
9073         asm_operand_ok.  Don't look up matching constraint here.
9074         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
9075         to asm_operand_ok.
9076
9077 2009-02-02  Ben Elliston  <bje@au.ibm.com>
9078
9079         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
9080         TARGET_NARROW_VOLATILE_BITFIELD macro names.
9081
9082 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9083
9084         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
9085         information.  Remove some obsolete information.  Reorganize.
9086
9087         * config/pa/fptr.c: Revert license to GPL 2.
9088         * config/pa/milli64.S: Likewise.
9089
9090 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9091
9092         PR target/38904
9093         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
9094         LIBRARY name in, instead of hard-coding it.
9095         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
9096         extra target make frag to tmake_files according to EH model.
9097         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
9098         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
9099         frags that define makefile variable EH_MODEL appropriately.
9100         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
9101         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
9102         to "-sjlj" according to type of EH configured.
9103         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9104         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
9105         to "_sjlj" according to type of EH configured.
9106         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9107         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
9108         (SHLIB_LINK):  Add missing semicolon to if-else construct.
9109         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9110         string value of "pe_dll" command-line option.
9111         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
9112         (SHLIB_SONAME):  Use it when overriding t-cygming default.
9113         (SHLIB_IMPLIB):  Override t-cygming default.
9114         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9115         string value of "pe_dll" command-line option.
9116
9117 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9118
9119         PR target/38952
9120         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
9121         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
9122
9123 2009-01-31  Richard Guenther  <rguenther@suse.de>
9124
9125         PR tree-optimization/38937
9126         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
9127         computing the transitive closure.
9128
9129 2009-01-30  Richard Guenther  <rguenther@suse.de>
9130
9131         PR tree-optimization/39041
9132         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9133         Propagate variable indices only if the types match for this stmt.
9134
9135 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
9136
9137         PR target/39013
9138         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
9139         inline but never defined.
9140
9141 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
9142
9143         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
9144         (*insv_h_di_reg_extimm): New insn.
9145         (*insv_l<mode>_reg_extimm): New insn.
9146
9147 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9148
9149         * config/picochip/picochip.c (flag_conserve_stack): set
9150         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
9151         fconserve-stack. Reduce call-overhead used by inliner.
9152
9153 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9154
9155         PR/38157
9156         * common.opt (flag_conserve_stack): Initialised to zero.
9157
9158 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
9159
9160         PR/39002
9161         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
9162         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
9163         method.
9164
9165 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9166
9167         * ira-color.c (allocno_reload_assign): Update comments.
9168         * regmove.c (regmove_optimize): Likewise.
9169
9170         * ra.h: Removed.
9171
9172 2009-01-29  Robert Millan  <rmh@aybabtu.com>
9173
9174         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
9175         * config/i386/kopensolaris-gnu.h: New file.  Undefine
9176         `MD_UNWIND_SUPPORT'.
9177         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
9178
9179 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
9180
9181         PR tree-optimization/39007
9182         * tree-loop-distribution.c (generate_builtin): Use
9183         recompute_dominator to compute the immediate dominator of the
9184         basic block just after the loop.
9185
9186 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9187
9188         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
9189         (ASM_OUTPUT_DWARF_PCREL): Define.
9190
9191 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9192
9193         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
9194         * doc/passes.texi: Remove entries about regclass, local-alloc, and
9195         global.  Modify entries about regmove and IRA.
9196
9197         * ra-conflict.c: Remove the file.
9198
9199         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
9200
9201         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
9202         (pass_regclass_init): Rename to pass_reginfo_init.
9203
9204         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
9205
9206         * toplev.h (flag_ira): Remove.
9207
9208         * caller-save.c (setup_save_areas): Remove flag_ira.
9209
9210         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
9211
9212         * global.c: Remove the file.
9213
9214         * opts.c (decode_options): Remove flag_ira.
9215
9216         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
9217
9218         * regmove.c: Modify file description.
9219         (find_use_as_address, try_auto_increment): Define them only if
9220         AUTO_INC_DEC is defined.
9221         (replacement_quality, replace_in_call_usage, fixup_match_1,
9222         stable_and_no_regs_but_for_p): Remove.
9223         (reg_set_in_bb): Make it static.
9224         (regmove_optimize): Remove flag_ira and code which worked for
9225         !flag_ira.
9226
9227         * local-alloc.c: Remove the file.
9228
9229         * common.opt (fira): Remove.
9230
9231         * ira.c: Include except.h.
9232         (eliminable_regset): Move from global.c.
9233         (mark_elimination): Ditto.  Remove flag_ira.
9234         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9235         equiv_mem_modified, validate_equiv_mem_from_store,
9236         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9237         contains_replace_regs, memref_referenced_p, memref_used_between_p,
9238         no_equiv, recorded_label_ref): Move from local-alloc.c.
9239         (update_equiv_regs): Ditto.  Make it static.
9240         (print_insn_chain, print_insn_chains): Move it from global.c.
9241         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
9242         (build_insn_chain): Ditto.  Make it static.
9243         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
9244         Rename to init_live_subregs.
9245         (gate_ira): Remove flag_ira.
9246
9247         * regclass.c: Rename reginfo.c.  Change file description.
9248         (FORBIDDEN_INC_DEC_CLASSES): Remove.
9249         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
9250         (init_reg_sets_1): Remove code for evaluation of
9251         reg_class_superclasses and losing_caller_save_reg_set.
9252         (init_regs): Remove init_reg_autoinc.
9253         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9254         ok_for_base_p_nonstrict): Remove.
9255         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
9256         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
9257         corresponding entries.
9258         (dump_regclass, record_operand_costs, scan_one_insn,
9259         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9260         record_address_regs, auto_inc_dec_reg_p): Remove.
9261         (gt-regclass.h): Rename to gt-reginfo.h.
9262
9263         * rtl.h (dump_global_regs, retry_global_alloc,
9264         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
9265
9266         * Makefile.in (RA_H): Remove.
9267         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9268         Rename regclass.o to reginfo.o.
9269         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
9270         gt-reginfo.h.
9271         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9272         (GTFILES): Rename regclass.c to reginfo.c.
9273
9274         * passes.c (init_optimization_passes): Remove pass_local_alloc and
9275         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
9276
9277         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9278         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9279         Remove flag_ira.
9280         (finish_spills): Ditto.  Remove code for !flag_ira.
9281
9282 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
9283
9284         PR middle-end/35854
9285         * doc/invoke.texi (rtl debug options): Complete rewrite.
9286         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9287         to auto_inc_dec".
9288         * mode-switching.c (pass_mode_switching): Rename pass from
9289         "mode-sw" to "mode_sw".
9290         * except.c (pass_convert_to_eh_ranges): Rename pass from
9291         "eh-ranges" to "eh_ranges".
9292         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9293         to "subreg1".
9294
9295
9296 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
9297             Alexander Monakov  <amonakov@ispras.ru>
9298
9299         PR middle-end/38857
9300         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9301         register.
9302         (move_exprs_to_boundary): Change return type and pass through
9303         should_move from move_op.  Relax assert.  Update usage ...
9304         (schedule_expr_on_boundary): ... here.  Use should_move instead of
9305         cant_move.
9306         (move_op_orig_expr_found): Indicate that insn was disconnected from
9307         stream.
9308         (code_motion_process_successors): Do not call after_merge_succs
9309         callback if original expression was not found when traversing any of
9310         the branches.
9311         (code_motion_path_driver): Change return type.  Update prototype.
9312         (move_op): Update comment.  Add a new parameter (should_move).  Update
9313         prototype.  Set *should_move based on indication provided by
9314         move_op_orig_expr_found.
9315
9316 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9317
9318         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9319         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9320         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9321         * config/rs6000/rs6000.c (rs6000_override_options): Default
9322         avoid-indexed-addresses on for Power6, off for everything else.
9323         (avoiding_indexed_address_p): New function.
9324         (rs6000_legitimize_address): Use it.
9325         (rs6000_legitimate_address): Likewise.
9326         * config/rs6000/rs6000.md (movXX_updateX): Likewise
9327
9328 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
9329
9330         PR tree-optimization/38997
9331         * tree-loop-distribution.c (generate_memset_zero): Use
9332         POINTER_PLUS_EXPR for a pointer addition.
9333
9334 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9335
9336         * config/s390/s390.md (bswap<mode>2): New pattern added.
9337
9338 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9339
9340         * config/s390/s390.md (*tls_load_31): Added type attribute.
9341
9342 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9343
9344         * config/s390/s390.md: Fix a few comments.
9345
9346 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9347
9348         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9349         (*tm<mode>_full): Fixed z10prop attribute.
9350         (*tst<mode>_extimm): Fixed z10prop attribute.
9351         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9352         (*tstqiCCT_cconly): Fixed z10prop attribute.
9353         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9354         (*movsi_larl): Fixed z10prop attribute.
9355         (*movsi_zarch): Fixed z10prop attribute.
9356         (*movsi_eas): Fixed z10prop attribute.
9357         (*movhi): Fixed z10prop attribute.
9358         (*movqi): Fixed z10prop attribute.
9359         (*movstrictqi): Fixed z10prop attribute.
9360         (*mov<mode>): Fixed z10prop attribute.
9361         (*movcc): Fixed z10prop attribute.
9362         (*sethighpartdi_64): Fixed z10prop attribute.
9363         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9364         (*negdi2_sign_cc): Fixed z10prop attribute.
9365         (*negdi2_sign): Fixed z10prop attribute.
9366         (*absdi2_sign_cc): Fixed z10prop attribute.
9367         (*absdi2_sign): Fixed z10prop attribute.
9368         (*negabsdi2_sign_cc): Fixed z10prop attribute.
9369         (*negabsdi2_sign): Fixed z10prop attribute.
9370         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9371         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9372         (doloop_si64): Fixed z10prop attribute.
9373         (doloop_si31): Fixed z10prop attribute.
9374         (doloop_long): Fixed z10prop attribute.
9375         (indirect_jump): Fixed z10prop attribute.
9376         (nop): Fixed z10prop attribute.
9377         (main_base_64): Fixed z10prop attribute.
9378         (reload_base_64): Fixed z10prop attribute.
9379
9380 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9381
9382         PR rtl-optimization/38740
9383         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9384         if !optimize.
9385         * config/mips/mips.c (mips_reorg): Likewise.
9386
9387 2009-01-28  Richard Guenther  <rguenther@suse.de>
9388
9389         PR tree-optimization/38926
9390         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9391         with the correct value id to a value.
9392         (do_regular_insertion): Use the value number of edoubleprime
9393         for the value number of the expr.
9394
9395         Revert
9396         2008-08-21  Richard Guenther  <rguenther@suse.de>
9397
9398         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9399         a PHI ask VN if it is already available.
9400         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9401         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9402
9403 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9404
9405         PR middle-end/38934
9406         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9407         set to varying whenever max has TREE_OVERFLOW set, similarly
9408         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9409
9410 2009-01-28  Richard Guenther  <rguenther@suse.de>
9411
9412         PR middle-end/38908
9413         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9414         uninitialized aggregate uses in call arguments.
9415
9416 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
9417
9418         PR tree-optimization/38984
9419         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9420         the nothing_id variable if -fno-delete-null-pointer-checks.
9421
9422 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
9423
9424         PR target/38988
9425         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9426         (set_got_offset_rex64): Ditto.
9427
9428 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9429
9430         PR target/38941
9431         * doc/extend.texi: Improve local variable with asm reg.
9432
9433 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
9434
9435         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9436         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9437         was not supplied then set warn_packed_bitfield_compat to the
9438         default value of 1.
9439         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9440         against 1.
9441
9442 2009-01-27  Richard Guenther  <rguenther@suse.de>
9443
9444         PR tree-optimization/38503
9445         * cfgexpand.c (expand_gimple_basic_block): Ignore
9446         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9447         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9448         variables that cannot have TBAA applied.
9449         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9450         statements.
9451
9452 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
9453
9454         PR middle-end/38969
9455         * calls.c (initialize_argument_information): Do not wrap complex
9456         arguments in SAVE_EXPR.
9457
9458 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
9459
9460         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
9461         (INSTALL_LIBGCC): Revert typo commit.
9462
9463 2009-01-26  Richard Guenther  <rguenther@suse.de>
9464
9465         PR tree-optimization/38745
9466         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9467         from special handling.
9468
9469 2009-01-26  Richard Guenther  <rguenther@suse.de>
9470
9471         PR tree-optimization/38745
9472         * tree-ssa.c (execute_update_addresses_taken): Do not include
9473         variables that cannot possibly be a register in not_reg_needs.
9474         Do not clear TREE_ADDRESSABLE on vars that may not become
9475         registers.
9476         * tree-ssa.c (update_alias_info_1): Include those in the set
9477         of addressable vars.
9478
9479 2009-01-26  Richard Guenther  <rguenther@suse.de>
9480
9481         PR middle-end/38851
9482         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9483         * tree-ssa-dse.c: Include langhooks.h
9484         (execute_simple_dse): Remove stores with zero size.
9485
9486 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
9487
9488         PR c/38957
9489         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9490         as PLUS_EXPR.
9491
9492 2009-01-24  Julian Brown  <julian@codesourcery.com>
9493
9494         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9495         config/arm/linux-atomic.c.
9496         * config/arm/linux-atomic.c: New.
9497
9498 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9499
9500         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9501         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9502         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9503
9504 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9505
9506         PR c/38938
9507         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
9508         properly.
9509
9510 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
9511
9512         PR tree-optimization/38953
9513         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9514         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9515         (gloog): Split the exit of the scop when the scop exit is a loop exit.
9516         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9517         changed the CFG.
9518
9519 2009-01-24  Paul Brook  <paul@codesourcery.com>
9520
9521         * config/arm/neon.md (neon_type): Move to arm.md.
9522         (neon_mov<VSTRUCT>): Add neon_type attribute.
9523         * config/arm/arm.md (neon_type): Move to here.
9524         (conds): Add "unconditioal" and use as default for NEON insns.
9525
9526 2009-01-24  Ben Elliston  <bje@au.ibm.com>
9527
9528         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9529         void *' warning from -Wc++-compat.
9530         * Makefile.in (dominance.o-warn): Remove.
9531
9532 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
9533
9534         PR tree-optimization/38932
9535         * fold-const.c (fold_unary_ignore_overflow): New.
9536         * tree.h (fold_unary_ignore_overflow): Declare.
9537         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9538         * tree-ssa-sccvn.c (visit_reference_op_load,
9539         simplify_unary_expression): Likewise.
9540
9541 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
9542
9543         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9544         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
9545         regardless of their type.
9546         * c-common.c (handle_packed_attribute): Don't ignore packed on
9547         bitfields.
9548         * c.opt (Wpacked-bitfield-compat): New warning option.
9549         * stor-layout.c (place_field): Warn if offset of a field changed.
9550         * doc/extend.texi (packed): Mention the ABI change.
9551         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9552         (Warning Options): Add it to the list.
9553
9554 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9555
9556         * c-opts.c (c_common_post_options): Fix a typo in comments.
9557
9558 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
9559
9560         PR middle-end/38615
9561         * gimplify.c (gimplify_init_constructor): Fix promotion of const
9562         variables to static.
9563         * doc/invoke.texi (-fmerge-all-constants): Update description.
9564
9565 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
9566
9567         PR target/38931
9568         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9569         (*movdi_1_rex64): Use type "mmx" for alternative 5.
9570
9571 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
9572
9573         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9574         a word boundary.
9575         (LOCAL_ALIGNMENT): Similarly.
9576
9577 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9578             Joseph Myers  <joseph@codesourcery.com>
9579
9580         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9581         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9582         * config/arm/arm-tune.md: Regenerate.
9583         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9584         -march=iwmmxt2.
9585
9586 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9587
9588         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9589         version number to five.
9590
9591 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
9592
9593         PR c++/38930
9594         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
9595         * c-common.c (set_underlying_type): Likewise.
9596         (is_typedef_decl ): Likewise
9597         * tree.h: Likewise
9598         (set_underlying_type): Likewise.
9599         (is_typedef_type): Likewise.
9600
9601 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9602
9603         PR middle-end/38587
9604         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9605         crossing setjmps.
9606
9607 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9608
9609         PR bootstrap/37660
9610         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
9611         (LIBGCC_SPEC):  Don't define.
9612         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
9613
9614 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
9615
9616         PR rtl-optimization/38879
9617         * alias.c (base_alias_check): Unaligned access via AND address can
9618         alias all surrounding object types except those with sizes equal
9619         or wider than the size of unaligned access.
9620
9621 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
9622
9623         PR c++/26693
9624         * c-decl.c (clone_underlying_type): Move this ...
9625         * c-common.c (set_underlying_type): ... here.
9626         Also, make sure the function properly sets TYPE_STUB_DECL() on
9627         the newly created typedef variant type.
9628         (is_typedef_decl ): New entry point.
9629         * tree.h: Added a new member member_types_needing_access_check to
9630         struct tree_decl_non_common.
9631         (set_underlying_type): New entry point.
9632         (is_typedef_type): Likewise.
9633
9634 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
9635
9636         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9637         Check whether two instructions have memory references that
9638         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
9639         are helper functions for traversing.
9640         * alias.h (insn_alias_sets_confilict_p): New prototypes.
9641         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9642         not to draw dependency edge for instructions with non-conflicting
9643         alias sets.
9644
9645 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
9646
9647         PR other/38758
9648         * longlong.h: Update copyright years.  Use soft-fp license notice.
9649         Sync __clz_tab declaration with glibc.
9650
9651 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
9652
9653         PR target/30687
9654         * doc/extend.texi (syscall_linkage): New.
9655         (version_id): Modify.
9656
9657 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9658             Richard Guenther  <rguenther@suse.de>
9659
9660         PR tree-optimization/38747
9661         PR tree-optimization/38748
9662         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9663         conversion if the base address is an indirect reference and the
9664         aliasing sets could cause issues.
9665
9666 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9667
9668         * common.opt (fgraphite, fgraphite-identity): Add comment for
9669         explaining why these options are not documented.
9670
9671 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9672
9673         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9674         gimple_call_lhs is NULL.
9675
9676 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
9677
9678         PR target/38868
9679         * emit-rtl.c (adjust_address_1): Make sure memref is never
9680         overwritten.
9681
9682 2009-01-20  Ben Elliston  <bje@au.ibm.com>
9683
9684         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9685         const qualifier from arg parameter. Remove unnecessary cast to char *.
9686         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9687         const qualifier from arg 2.
9688
9689 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9690
9691         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
9692
9693 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
9694
9695         PR c/38869
9696         * rtl.h (reinit_regs): New prototype.
9697         * regclass.c: Include ira.h.
9698         (reinit_regs): New.
9699         * Makefile.in (regclass.o): Add ira.h.
9700         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9701
9702 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9703
9704         PR target/38736
9705         * c-common.c (handle_aligned_attribute): Use
9706         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9707         default alignment value.
9708
9709         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9710
9711         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9712         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9713
9714         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
9715         __BIGGEST_ALIGNMENT__.
9716
9717         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9718
9719 2009-01-18  Richard Guenther  <rguenther@suse.de>
9720
9721         PR tree-optimization/38819
9722         * tree-flow.h (operation_could_trap_helper_p): Declare.
9723         * tree-eh.c (operation_could_trap_helper_p): Export.
9724         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9725         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9726         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9727         are about to insert a possibly trapping instruction and fail
9728         in this case.
9729
9730 2009-01-18  Andreas Schwab  <schwab@suse.de>
9731
9732         * doc/install.texi (Configuration): Remove obsolete paragraph
9733         about use of --with-gnu-ld with --with-gnu-as.
9734
9735 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
9736
9737         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9738         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9739         Follow spelling conventions.
9740
9741 2009-01-18  Ben Elliston  <bje@au.ibm.com>
9742
9743         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9744         C++ warning about implicit conversion from void * to struct
9745         bitmap_head_def *.
9746         (bitmap_obstack_free): Likewise for bitmap_element *.
9747         * Makefile.in (bitmap.o-warn): Remove.
9748
9749 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9750
9751         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
9752
9753 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
9754             Tobias Grosser  <tobi.grosser@amd.com>
9755
9756         * graphite.c (graphite_trans_scop_block): Do not block single
9757         nested loops.
9758
9759 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
9760
9761         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9762         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9763         test with assertion.
9764
9765 2009-01-16  Richard Guenther  <rguenther@suse.de>
9766
9767         PR tree-optimization/38835
9768         PR middle-end/36227
9769         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9770         and INT + PTR -> (INT)(PTR p+ INT) folding.
9771         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9772
9773 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
9774
9775         PR target/38554
9776         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9777         the subreg from a lowpart subreg if it is also casting the value.
9778
9779 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9780             Tobias Grosser  <tobi.grosser@amd.com>
9781
9782         * graphite.c (compare_prefix_loops): New.
9783         (build_scop_canonical_schedules): Rewritten.
9784         (graphite_transform_loops): Move build_scop_canonical_schedules
9785         after build_scop_iteration_domain.
9786
9787 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9788             Tobias Grosser  <tobi.grosser@amd.com>
9789
9790         * graphite.c (add_conditions_to_domain): Add the loops to
9791         the dimension of the iteration domain.  Do copy the domain
9792         only when it exists.
9793         (build_scop_conditions_1): Do not call add_conditions_to_domain.
9794         (add_conditions_to_constraints): New.
9795         (can_generate_code_stmt, can_generate_code): Removed.
9796         (gloog): Do not call can_generate_code.
9797         (graphite_transform_loops): Call add_conditions_to_constraints
9798         after building the iteration domain.
9799
9800 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
9801
9802         PR tree-optimization/38789
9803         * tree-ssa-threadedge.c
9804         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9805         __builtin_constant_p.
9806
9807 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
9808
9809         * dce.c (delete_unmarked_insns): Reversed the order that insns are
9810         examined before deleting them.
9811
9812 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
9813
9814         * function.c (aggregate_value_p): Correctly extract the function
9815         type from CALL_EXPR_FN lookup.
9816
9817 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9818
9819         * config/picochip/picochip.c (picochip_override_options): Revert
9820         CFI asm flag disable commited previously.
9821
9822 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9823             Tobias Grosser  <tobi.grosser@amd.com>
9824             Jan Sjodin  <jan.sjodin@amd.com>
9825
9826         * graphite.c (scan_tree_for_params): On substractions negate
9827         all the coefficients of the term.
9828         (clast_to_gcc_expression_red): New.  Handle reduction expressions
9829         of more than two operands.
9830         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9831         (get_vdef_before_scop): Handle also the case of default definitions.
9832
9833 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
9834
9835         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9836         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9837         Also use them when walking CALL_INSN_FUNCTION_USAGE.
9838
9839 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
9840             Joey Ye  <joey.ye@intel.com>
9841
9842         PR middle-end/37843
9843         * cfgexpand.c (expand_stack_alignment): Don't update stack
9844         boundary nor check incoming stack boundary here.
9845         (gimple_expand_cfg): Update stack boundary and check incoming
9846         stack boundary here.
9847
9848 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
9849
9850         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
9851
9852 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
9853
9854         PR rtl-optimization/38245
9855         * calls.c (expand_call): Add stack arguments to
9856         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9857         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9858         in regs and partially in memory or BLKmode arguments.
9859         (emit_library_call_value_1): Add stack arguments to
9860         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9861         ACCUMULATE_OUTGOING_ARGS).
9862         * dce.c: Include tm_p.h.
9863         (find_call_stack_args): New function.
9864         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
9865         argument.
9866         (mark_insn): Call find_call_stack_args for CALL_Ps.
9867         (prescan_insns_for_dce): Walk insns backwards in bb rather than
9868         forwards.  Allocate and free arg_stores bitmap if needed, pass it
9869         down to deletable_insn_p, don't mark stores set in arg_stores
9870         bitmap, clear the bitmap at the beginning of each bb.
9871         * Makefile.in (dce.o): Depend on $(TM_P_H).
9872
9873 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
9874
9875         PR target/22599
9876         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9877         to make sure the insn is a conditional test (bug 22599).  Reformat a
9878         few long lines.
9879
9880 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
9881
9882         PR middle-end/38431
9883         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9884         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9885         (gloog): Do not call cleanup_tree_cfg.
9886         (graphite_transform_loops): Call cleanup_tree_cfg after all
9887         scops have been code generated.
9888
9889 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
9890         * doc/gty.texi (Invoking the garbage collector): Added new node
9891         and section documenting ggc_collect.
9892
9893 2009-01-14  Richard Guenther  <rguenther@suse.de>
9894
9895         PR tree-optimization/38826
9896         PR middle-end/38477
9897         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9898         initialization notes only if we actually emitted a warning.
9899         (intra_create_variable_infos): Add constraints for a result decl
9900         that is passed by hidden reference.
9901         (build_pred_graph): Mark all related variables non-direct on
9902         address-taking.
9903
9904 2009-01-14  Nick Clifton  <nickc@redhat.com>
9905
9906         * ira-conflicts.c: Include addresses.h for the definition of
9907         base_reg_class.
9908         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9909         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9910
9911 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
9912
9913         PR target/38811
9914         * Makefile.in (ira-lives.o): Add except.h.
9915
9916         * ira-lives.c: Include except.h.
9917         (process_bb_node_lives): Process can_throw_internal.
9918
9919 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
9920
9921         PR rtl-optimization/38774
9922         * combine.c (simplify_set): When undoing cc_use change, don't do
9923         PUT_CODE on the newly created comparison, but instead put back the
9924         old comparison.
9925
9926 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
9927
9928         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9929         values.  Remove duplicate arm8 entry.
9930
9931 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9932
9933         PR tree-optimization/38786
9934         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9935         the SSA_NAME case of expand_scalar_variables_expr.
9936         Set the type of an expression to the type of its assign statement.
9937         (expand_scalar_variables_expr): Also gather the scalar computation
9938         used to index the memory access.  Do not pass loop_p.
9939         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
9940         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
9941         the gimple_stmt_iterator where it inserts new code.
9942         Do not pass loop_p.
9943         (copy_bb_and_scalar_dependences): Do not pass loop_p.
9944         (translate_clast): Update call to copy_bb_and_scalar_dependences.
9945
9946 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9947
9948         * graphite.h (debug_value): Removed.
9949         * graphite.c (debug_value): Removed.
9950
9951 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9952
9953         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9954         ldrd/strd with two 32-bit instructions.
9955
9956 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9957
9958         * config/arm/arm.c (struct processors): Pass for speed down into
9959         cost helper functions.
9960         (const_ok_for_op): Handle COMPARE and inequality nodes.
9961         (arm_rtx_costs_1): Rewrite.
9962         (arm_size_rtx_costs): Update prototype.
9963         (arm_rtx_costs): Pass speed down to helper functions.
9964         (arm_slowmul_rtx_costs): Rework cost calculations.
9965         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9966         (arm_9e_rtx_costs): Likewise.
9967
9968 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
9969
9970         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
9971         relocations of local symbols wider than UNITS_PER_WORD are not valid.
9972         (alpha_legitimize_address): Do not split local symbols wider than
9973         UNITS_PER_WORD into HIGH/LO_SUM parts.
9974
9975 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
9976
9977         PR bootstrap/38580
9978         * gcc.c (process_command): Replace call to execvp with calls
9979         to pex_one and exit.
9980
9981 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
9982
9983         PR target/29141
9984         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9985         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9986         variant for devices with 3-byte PC.
9987         (__tablejump_elpm__): New.
9988
9989 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
9990
9991         PR c/32041
9992         * c-parser.c (c_parser_postfix_expression): Allow `->' in
9993         offsetof member-designator, handle it as `[0].'.
9994
9995 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9996
9997         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9998         function when not using named sections on targets with named sections
9999         if branch distance is less than 262132.
10000
10001 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
10002
10003         * combine.c (combine_instructions):  Recompute
10004         optimize_this_for_speed_p  for each BB in the main combine loop.
10005
10006 2009-01-12  Tomas Bily  <tbily@suse.cz>
10007
10008         PR middlend/38385
10009         * tree-loop-distribution.c (prop_phis): New function.
10010         (generate_builtin): Call prop_phis.
10011         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
10012
10013 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10014
10015         PR tree-optimization/38807
10016         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10017         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10018
10019 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
10020
10021         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10022         subreg of op0 to the original op0.
10023
10024 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
10025
10026         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
10027
10028 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
10029
10030         PR debug/7055
10031         * mips-tfile.c (parse_def): Fix parsing of def strings
10032         starting with digits.
10033
10034 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
10035
10036         PR target/38695
10037         * config/arm/arm.c (arm_is_long_call_p): Don't call
10038         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
10039
10040 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
10041
10042         * regrename.c (regrename_optimize): Fix dumping.
10043         (find_oldest_value_reg): Preserve REG_POINTER.
10044         (copy_hardreg_forward_1): Likewise.
10045
10046 2009-01-09  Diego Novillo  <dnovillo@google.com>
10047
10048         * gimple.h (struct gimple_statement_base) <uid>: Document
10049         the restrictions on its use.
10050         (gimple_uid): Tidy.
10051         (gimple_set_uid): Tidy.
10052
10053 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10054
10055         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
10056         zero guard even if align_bytes != 0 and count is smaller than
10057         size_needed.
10058
10059 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
10060
10061         PR rtl-optimization/38495
10062         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
10063         (add_range_and_copies_from_move_list): Print all added ranges.
10064         Add ranges to memory optimized destination.
10065
10066 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10067
10068         PR target/38686
10069         PR target/38708
10070         * config/i386/i386.c (override_options): Reject
10071         -mstringop-strategy=rep_8byte with -m32.
10072         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
10073         to 1.  Do count comparison against epilogue_size_needed at compile
10074         time even when count_exp was constant forced into register.  For
10075         size_needed don't jump to epilogue, instead just avoid aligning
10076         and invoke the body algorithm.  If need_zero_guard, add zero guard
10077         even if count is non-zero, but smaller than size_needed + number of
10078         bytes that could be stored for alignment.
10079         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
10080         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
10081         but smaller than size_needed + number of bytes that could be stored
10082         for alignment.  Compare size_needed with epilogue_size_needed instead
10083         of desired_align - align, don't adjust size_needed, pass
10084         epilogue_size_needed to the epilogue expanders.
10085
10086         PR c/35742
10087         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
10088
10089 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10090
10091         * pa.c (last_address): Change to unsigned.
10092         (update_total_code_bytes): Change argument to unsigned.  Don't
10093         check if insn addresses are set.
10094         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
10095         addresses are not set.
10096         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
10097
10098 2009-01-09  Nick Clifton  <nickc@redhat.com>
10099
10100         * config/sh/symbian.c: Replace uses of DECL_INLINE with
10101         DECL_DECLARED_INLINE_P.
10102
10103 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10104
10105         PR middle-end/38347
10106         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
10107         GET_MODE (op0) in operand_subword_force calls.
10108
10109         PR middle-end/38771
10110         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
10111         fold_convert arg0 operands to TREE_TYPE (op0) first.
10112
10113 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
10114
10115         * params.def (ira-max-conflict-table-size): Decrease default value
10116         to 1000.
10117
10118 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR tree-optimization/37031
10121         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
10122         on parameter_set.
10123         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
10124         allocate it using gc instead of heap, use VEC_quick_push instead of
10125         VEC_safe_push.
10126         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
10127         instead of heap, use VEC_quick_push instead of VEC_safe_push.
10128         * tree-data-ref.h (struct access_matrix): Change matrix to gc
10129         allocated vector from heap allocated.
10130         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
10131         * tree-loop-linear.c (linear_transform_loops): Allocate nest
10132         vector only after perfect_loop_nest_depth call.
10133
10134 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
10135             Jan Sjodin  <jan.sjodin@amd.com>
10136
10137         PR tree-optimization/38559
10138         * graphite.c (debug_value, copy_constraint,
10139         swap_constraint_variables, scale_constraint_variable, ): New.
10140         (get_lower_bound, get_upper_bound): Removed.
10141         (graphite_trans_bb_strip_mine): Clean up this code that works
10142         only for constant number of iterations.  Fully copy upper and
10143         lower bound constraints, not only the constant part of them.
10144         * graphite.h (debug_value): Declared.
10145
10146 2009-01-08  Ira Rosen  <irar@il.ibm.com>
10147
10148         PR tree-optimization/37194
10149         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
10150         Don't add the cost of cost model guard in prologue to scalar
10151         outside cost in case of known number of iterations.
10152
10153 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10154             Alan Modra  <amodra@bigpond.net.au>
10155
10156         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
10157         non-word-aligned REG+CONST addressing.
10158
10159 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10160
10161         PR target/38706
10162         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
10163         free_after_compilation when outputting a thunk.
10164         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
10165         Do not call free_after_compilation here.
10166
10167 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10168
10169         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
10170         (ix86_valid_target_attribute_inner_p): Ditto.
10171
10172 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
10173
10174         PR tree-optimization/38492
10175         PR tree-optimization/38498
10176         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
10177         * tree-chrec.h (scev_is_linear_expression): Declared.
10178         * graphite.c (graphite_cannot_represent_loop_niter): New.
10179         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
10180         (graphite_loop_normal_form): Use gcc_assert.
10181         (scan_tree_for_params): Use CASE_CONVERT.
10182         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
10183         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
10184         Use gcc_assert.  Discard scops that contain unhandled cases.
10185         (build_scop_conditions): Return a boolean status for unhandled cases.
10186         (strip_mine_profitable_p): Print the loop number, not its depth.
10187         (is_interchange_valid): Pass the depth of the loop nest, don't
10188         recompute it wrongly.
10189         (graphite_trans_bb_block): Same.
10190         (graphite_trans_bb_block): Print tentative of loop blocking.
10191         (graphite_trans_scop_block): Do not print that the loop has been
10192         blocked.
10193         (graphite_transform_loops): Do not handle scops that contain condition
10194         scalar phi nodes.
10195
10196 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10197
10198         AVX Programming Reference (December, 2008)
10199         * config/i386/avxintrin.h (_mm256_stream_si256): New.
10200         (_mm256_stream_pd): Likewise.
10201         (_mm256_stream_ps): Likewise.
10202
10203         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
10204         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
10205         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
10206         (bdesc_special_args): Add __builtin_ia32_movntdq256,
10207         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
10208         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
10209         (ix86_expand_special_args_builtin): Likewise.
10210
10211         * config/i386/sse.md (AVXMODEDI): New.
10212         (avx_movnt<mode>): Likewise.
10213         (avx_movnt<mode>): Likewise.
10214         (<sse>_movnt<mode>): Remove AVX support.
10215         (sse2_movntv2di): Likewise.
10216
10217 2009-01-07  Richard Guenther  <rguenther@suse.de>
10218
10219         PR middle-end/38751
10220         * fold-const.c (extract_muldiv): Remove obsolete comment.
10221         (fold_plusminus_mult_expr): Undo MINUS_EXPR
10222         to PLUS_EXPR canonicalization for the canonicalization.
10223
10224 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
10225
10226         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
10227         hosted cross-compilers generating less efficient code.
10228
10229 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10230
10231         * function.h (rtl_data): Add a dbr_scheduled_p field.
10232         * reorg.c (dbr_schedule): Set it.
10233         (gate_handle_delay_slots): Check it.
10234         * config/mips/mips.c (mips_base_delayed_branch): Delete.
10235         (mips_reorg): Check flag_delayed_branch instead of
10236         mips_base_delayed_branch.
10237         (mips_override_options): Don't set mips_base_delayed_branch
10238         or flag_delayed_branch.
10239
10240 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10241
10242         PR rtl-optimization/38426.
10243         * ira.c (ira): Set current_function_is_leaf earlier.
10244
10245 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
10246
10247         PR rtl-optimization/38722
10248         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10249         too early, only set a flag and modify after last possible
10250         undo_all point.
10251
10252 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
10253
10254         PR c/34252
10255         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10256         * real.c (decimal_single_format): Correct values of emin and emax.
10257         (decimal_double_format): Ditto.
10258         (decimal_quad_format): Ditto.
10259         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10260         computation of DECnn_MIN and DECnn_MAX for corrected values of
10261         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
10262         __DECnn_MIN__, and adjust its computation for the corrected value
10263         of emin.
10264
10265 2009-01-06  Jan Hubicka  <jh@suse.cz>
10266
10267         PR target/38744
10268         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
10269
10270 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10271
10272         * doc/contrib.texi (Contributors): Slightly adjust the end note.
10273         Add Robert Clark to the list of testers.
10274
10275 2009-01-06  Jan Hubicka  <jh@suse.cz>
10276             Kai Tietz  <kai.tietz@onevision.com>
10277
10278         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10279         * config/i386/i386.c (ix86_expand_call): Add clobbers.
10280
10281 2009-01-06  Jan Hubicka  <jh@suse.cz>
10282             Kai Tietz  <kai.tietz@onevision.com>
10283
10284         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10285         for w64 ABI.
10286         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
10287         (ix86_nsaved_regs): Count only general purpose regs.
10288         (ix86_nsaved_sseregs): New.
10289         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10290         to 16 for w64; compute padding and size of sse reg save area.
10291         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10292         general purpose regs.
10293         (ix86_emit_save_sse_regs_using_mov): New.
10294         (ix86_expand_prologue): Save SSE regs if needed.
10295         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10296         (ix86_emit_restore_sse_regs_using_mov): New.
10297         (ix86_expand_epilogue): Save SSE regs if needed.
10298
10299 2009-01-06  Jan Hubicka  <jh@suse.cz>
10300             Kai Tietz  <kai.tietz@onevision.com>
10301
10302         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10303         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10304         functions when accumulate outgoing args is off.
10305
10306 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10307
10308         PR bootstrap/38742
10309         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10310         before using pseudos_have_intersected_live_ranges_p.
10311
10312         * ira-int.h (ira_assert): Always define.
10313
10314 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10315
10316         AVX Programming Reference (December, 2008)
10317         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10318         (_mm256_permute2_pd): Likewise.
10319         (_mm_permute2_ps): Likewise.
10320         (_mm256_permute2_ps): Likewise.
10321         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10322         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10323
10324         * config/i386/i386.c (ix86_builtins): Remove
10325         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10326         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10327         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10328         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10329         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10330         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10331         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10332         __builtin_ia32_vpermil2ps256.
10333         (ix86_init_mmx_sse_builtins): Updated.
10334         (ix86_expand_args_builtin): Likewise.
10335
10336 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10337
10338         * pa.c (output_call): Relocate non-jump insns in the delay slot of
10339         long absolute calls when generating PA 2.0 code.
10340
10341 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
10342
10343         PR rtl-optimization/38583
10344         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10345
10346         * params.def (ira-max-conflict-table-size): New.
10347
10348         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
10349
10350         * ira.h (ira_conflicts_p): New external definition.
10351
10352         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10353         table.  Report this.  Return result of building.
10354         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
10355         building conflict table.
10356
10357         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
10358         (ira_color): Use ira_conflicts_p.
10359
10360         * global.c: Include ira.h.
10361         (pseudo_for_reload_consideration_p, build_insn_chain): Use
10362         ira_conflicts_p.
10363
10364         * Makefile.in (global.o): Add ira.h.
10365
10366         * ira-build.c (mark_all_loops_for_removal,
10367         propagate_some_info_from_allocno): New.
10368         (remove_unnecessary_allocnos): Call
10369         propagate_some_info_from_allocno.
10370         (remove_low_level_allocnos): New.
10371         (remove_unnecessary_regions): Add parameter.  Call
10372         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
10373         parameter to remove_unnecessary_regions.
10374         (ira_build): Remove all regions but root if the conflict table was
10375         not built.  Update conflict hard regs for allocnos crossing calls.
10376
10377         * ira.c (ira_conflicts_p): New global.
10378         (ira): Define and use ira_conflicts_p.
10379
10380         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10381         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
10382         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
10383
10384 2009-01-06  Ben Elliston  <bje@au.ibm.com>
10385
10386         * gengtype-lex.l (YY_NO_INPUT): Define.
10387
10388 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10389
10390         PR c/34911
10391         * c-common.c (handle_vector_size_attribute): Also reject
10392         BOOLEAN_TYPE types.
10393
10394 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
10395
10396         PR tree-optimization/38492
10397         * graphite.c (rename_map_elt, debug_rename_elt,
10398         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10399         rename_map_elt_info, eq_rename_map_elts,
10400         get_new_name_from_old_name, bb_in_sese_p): Moved around.
10401         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10402         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10403         (sese_build_livein_liveouts): New.
10404         (new_sese, free_sese): New.
10405         (new_scop): Call new_sese.
10406         (free_scop): Call free_sese.
10407         (rename_variables_from_edge, rename_phis_end_scop): Removed.
10408         (register_old_new_names): Renamed register_old_and_new_names.
10409         (register_scop_liveout_renames, add_loop_exit_phis,
10410         insert_loop_close_phis, struct igp,
10411         default_liveout_before_guard, add_guard_exit_phis,
10412         insert_guard_phis, copy_renames): New.
10413         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10414         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10415         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10416         (scop_adjust_phis_for_liveouts): New.
10417         (gloog): Call scop_adjust_phis_for_liveouts.
10418
10419         * graphite.h (struct sese): Documented.  Added fields liveout,
10420         num_ver and livein.
10421         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10422         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10423         (struct scop): Added field liveout_renames.
10424         (SCOP_LIVEOUT_RENAMES): New.
10425
10426 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10427
10428         PR tree-optimization/38510
10429         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10430         (translate_clast): Call recompute_all_dominators before
10431         graphite_verify.
10432         (gloog): Call recompute_all_dominators before graphite_verify.
10433
10434 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10435             Jan Sjodin  <jan.sjodin@amd.com>
10436
10437         PR tree-optimization/38500
10438         * graphite.c (create_sese_edges): Call fix_loop_structure after
10439         splitting blocks.
10440
10441 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10442
10443         * config.gcc: Add m32r*-*-rtems*.
10444         * config/m32r/rtems.h: New file.
10445
10446 2009-01-05  Ben Elliston  <bje@au.ibm.com>
10447
10448         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10449         (.po.pox): Likewise.
10450         (po/gcc.pot): Likewise.
10451
10452 2009-01-04  David S. Miller  <davem@davemloft.net>
10453
10454         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10455         (STARTING_FRAME_OFFSET): Always set to zero.
10456
10457 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10458
10459         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10460         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10461         fixed-point types, and vectors of the same.
10462
10463 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10464
10465         * config/mips/sync.md (*mb_barrier): Rename to...
10466         (*memory_barrier): ...this.
10467
10468 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10469
10470         * doc/extend.texi (Function Attributes): Move @cindex after @item
10471         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
10472         and put in alphabetical order. Fix 'target' name and put in order.
10473         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10474         typos.
10475
10476 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
10477
10478         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10479         (memory_barrier): Expand as unspec instead of unspec_volatile.
10480         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10481         (*memory_barrier): Define as unspec instead of unspec_volatile.
10482         Use (match_dup 0) as input operand.
10483
10484         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10485         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10486         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
10487         scratch register.  Remove operand 1.
10488         (*stbar): Define as unspec instead of unspec_volatile.
10489         Use (match_dup 0) as input operand, remove (const_int 8).
10490         (*membar): Define as unspec instead of unspec_volatile.
10491         Use (match_dup 0) as input operand, remove input operand 2.
10492
10493         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10494         (memory_barrier): Expand as unspec instead of unspec_volatile.
10495         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10496         (*memory_barrier): Define as unspec instead of unspec_volatile.
10497         Use (match_dup 0) as input operand.
10498
10499         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10500         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10501         Set volatile flag on operand 0.
10502         (*memory_barrier): New insn pattern.
10503
10504         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10505         insn operands.
10506         (*memory_barrier): Use (match_dup 0) as input operand.
10507
10508         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10509         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10510         Set volatile flag on operand 0.
10511         (*mb_internal): New insn pattern.
10512
10513         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10514
10515 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10516
10517         PR middle-end/38586
10518         * function.c (struct temp_slot): Move to the section of the file
10519         that deals with temp slots.  Remove field 'address'.
10520         (temp_slot_address_table): New hash table of address -> temp slot.
10521         (struct temp_slot_address_entry): New struct, items for the table.
10522         (temp_slot_address_compute_hash, temp_slot_address_hash,
10523         temp_slot_address_eq, insert_temp_slot_address): Support functions
10524         for the new table.
10525         (find_temp_slot_from_address): Rewrite to use the new hash table.
10526         (remove_unused_temp_slot_addresses): Remove addresses of temp
10527         slots that have been made available.
10528         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10529         worker function for remove_unused_temp_slot_addresses.
10530         (assign_stack_temp_for_type): Don't clear the temp slot address list.
10531         Add the temp slot address to the address -> temp slot map.
10532         (update_temp_slot_address): Update via insert_temp_slot_address.
10533         (free_temp_slots): Call remove_unused_temp_slot_addresses.
10534         (pop_temp_slots): Likewise.
10535         (init_temp_slots): Allocate the address -> temp slot map, or empty
10536         the map if it is already allocated.
10537         (prepare_function_start): Initialize temp slot processing.
10538
10539 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10540
10541         PR middle-end/38584
10542         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10543         Calculate the size of all stack vars assuming no packing of stack
10544         vars will happen, replacing a quadratic algorithm with a linear one.
10545
10546 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10547
10548         PR target/38707
10549         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10550         can't be used.
10551
10552 2009-01-03  Diego Novillo  <dnovillo@google.com>
10553
10554         * doc/contrib.texi: Update contributions.
10555
10556 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10557
10558         PR c++/38705
10559         * builtins.c (fold_builtin_memory_op): Give up if either operand
10560         is volatile.  Set srctype or desttype to non-qualified version
10561         of the other type.
10562
10563         PR c/38700
10564         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10565         and FUNCTION_DECLs.
10566
10567 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
10568
10569         PR rtl-optimization/35805
10570         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10571         problem if fast dce is able to remove any instructions.
10572         * dce.c (dce_process_block): Fix dump message.
10573
10574 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
10575
10576         PR 33649
10577         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10578
10579 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
10580
10581         PR middle-end/38690
10582         * tree-flow.h (op_code_prio, op_prio): New prototypes.
10583         * tree-pretty-print.c (op_code_prio): New function.
10584         (op_prio): No longer static.  Use op_code_prio.
10585         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10586         Use op_prio and op_code_prio to determine if () should be
10587         printed around operand(s) or not.
10588
10589         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10590         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10591         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10592         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10593         pp_character instead of pp_string for single letter printing.
10594
10595 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10596
10597         * doc/extend.texi: Fix '#pragma GCC option' typo.
10598
10599 2009-01-02  Richard Guenther  <rguenther@suse.de>
10600
10601         * doc/install.texi (--enable-checking): Mention different
10602         default for stage1.
10603         (--enable-stage1-checking): Document.
10604
10605 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
10606
10607         PR middle-end/30142
10608         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
10609         case to be an error.
10610
10611 2009-01-02  Ben Elliston  <bje@au.ibm.com>
10612
10613         * config/fp-bit.h (pack_d): Constify argument.
10614         * config/fp-bit.c (makenan): Constify return type. Remove casts.
10615         (isnan): Constify argument.
10616         (isinf): Likewise.
10617         (iszero): Likewise.
10618         (pack_d): Likewise.
10619         (_fpadd_parts): Constify return type.
10620         (_fpmul_parts): Likewise.
10621         (_fpdiv_parts): Likewise.
10622
10623 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
10624
10625         PR c/36489
10626         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
10627         warn about overwriting initializer with side-effects or
10628         -Woverride-init if !IMPLICIT.
10629         (output_init_element): Likewise.  Pass IMPLICIT down to
10630         add_pending_init.
10631         (process_init_element): Add IMPLICIT argument.  Pass it down
10632         to output_init_element.
10633         (push_init_element, pop_init_level, set_designator): Adjust
10634         process_init_element callers.
10635         (set_nonincremental_init, set_nonincremental_init_from_string):
10636         Adjust add_pending_init callers.
10637         (output_pending_init_elements): Adjust output_init_element callers.
10638         * c-tree.h (process_init_element): Adjust prototype.
10639         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10640         process_init_element callers.
10641
10642 \f
10643 Copyright (C) 2009 Free Software Foundation, Inc.
10644
10645 Copying and distribution of this file, with or without modification,
10646 are permitted in any medium without royalty provided the copyright
10647 notice and this notice are preserved.