OSDN Git Service

cf43e618a864ee533e65d0aa5140d085b1f35580
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4         XLR entry.
5         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
6         Handle -march=xlr.
7         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8         logical and signext.
9
10 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11
12         PR target/39767
13         * config/sh/predicates.md (arith_operand): Check if the operand
14         of TRUNCATE is a REG.
15
16 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
17
18         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
19         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
20
21 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
22
23         * tree-iterator.c (tsi_split_statement_list_after,
24         tsi_split_statement_list_before): Remove.
25         * tree-iterator.h: Remove the prototypes for
26         tsi_split_statement_list_after and
27         tsi_split_statement_list_before.
28
29 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
30
31         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
32         * tree-ssa-propagate.h: Remove the prototype for
33         stmt_makes_single_load.
34
35 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
36
37         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
38         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
39
40 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
41
42         * tree-iterator.c (EXPR_LAST_BODY): Remove.
43
44 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
45
46         * except.c (eh_region_outer_p): Remove.
47         * except.h: Remove the prototype for eh_region_outer_p.
48
49 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
50
51         * function.c (current_function_assembler_name): Remove.
52         * function.h: Remove the prototype for
53         current_function_assembler_name.
54
55 2009-04-16  Ian Lance Taylor  <iant@google.com>
56
57         * rtlanal.c (alloc_reg_note): New function, broken out of
58         add_reg_note.
59         (add_reg_note): Call alloc_reg_note.
60         * rtl.h (alloc_reg_note): Declare.
61         * combine.c (try_combine): Use alloc_reg_note.
62         (recog_for_combine, move_deaths): Likewise.
63         (distribute_notes): Use alloc_reg_note and add_reg_note.
64         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
65         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
66         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
67
68 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
69
70         PR rtl-optimization/39762
71         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
72         ira_may_move_out_cost): Add comments about way of their usage.
73         (ira_get_register_move_cost, ira_get_may_move_cost): New
74         functions.
75         
76         * ira-conflicts.c (process_regs_for_copy): Use function
77         ira_get_register_move_cost instead of global
78         ira_register_move_cost.
79
80         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
81         color_pass, move_spill_restore, update_curr_costs): Ditto.
82
83         * ira-lives.c (process_single_reg_class_operands): Ditto.
84
85         * ira-emit.c (emit_move_list): Ditto.
86
87         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
88         (record_reg_classes): Ditto.  Use functions
89         ira_get_register_move_cost and ira_get_may_move_cost instead of
90         global vars ira_register_move_cost, ira_may_move_out_cost and
91         ira_may_move_in_cost.
92         (record_address_regs): Don't call ira_init_register_move_cost.
93         Use function ira_get_may_move_cost instead of global
94         ira_may_move_in_cost.
95         (process_bb_node_for_hard_reg_moves): Use function
96         ira_get_register_move_cost instead of global
97         ira_register_move_cost.
98         (ira_costs): Don't call ira_init_register_move_cost.
99         
100 2009-04-16  Richard Guenther  <rguenther@suse.de>
101
102         * tree-cfg.c (verify_gimple_assign_binary):
103         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
104         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
105         (create_general_new_stmt): Note that this function is broken.
106
107 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
108
109         * common.opt (fhelp): Add Var(help_flag).
110         * gcc-plugin.h (plugin_info): Add help.
111         * plugin.c (plugin_name_args): Add help.
112         (register_plugin_info): Set plugin->help.
113         (print_help_one_plugin): New.
114         (print_plugins_help): New.
115         * plugin.h (print_plugins_help): New.
116         * toplev.c (toplev_main): Call print_plugins_help if needed.
117
118 2009-04-16  Richard Guenther  <rguenther@suse.de>
119
120         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
121         (gimple_ior_addresses_taken_1): New function.
122         (gimple_ior_addresses_taken): Likewise.
123         * gimple.h (struct gimple_statement_with_ops_base): Remove
124         addresses_taken member.
125         (gimple_ior_addresses_taken): Declare.
126         (gimple_addresses_taken, gimple_addresses_taken_ptr,
127         gimple_set_addresses_taken): Remove.
128         * ipa-reference.c (mark_address): New function.
129         (scan_stmt_for_static_refs): Use it for marking addresses taken.
130         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
131         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
132         (gimple_add_to_addresses_taken): Remove.
133         (get_tmr_operands): Call mark_address_taken.
134         (get_asm_expr_operands): Likewise.
135         (get_expr_operands): Likewise.
136         (build_ssa_operands): Do not clear the addresses_taken bitmap.
137         (free_stmt_operands): Do not free it.
138         * tree-ssa.c (delete_tree_ssa): Likewise.
139         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
140
141 2009-04-16  Richard Guenther  <rguenther@suse.de>
142
143         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
144         (walk_stmt_load_store_ops): Likewise.
145         * gimple.c (get_base_loadstore): New function.
146         (walk_stmt_load_store_addr_ops): Likewise.
147         (walk_stmt_load_store_ops): Likewise.
148         * ipa-pure-const.c (check_op): Simplify.
149         (check_load, check_store): New functions.
150         (check_stmt): Use walk_stmt_load_store_ops.
151         * ipa-reference.c (mark_load): Adjust signature.
152         (mark_store): Likewise.
153         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
154
155 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
156
157         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
158         (plugin_info): New.
159         * opts.c (common_handle_option): Don't call print_version.
160         * plugin.c (plugin_name_args): Add version.
161         (register_plugin_info): New.
162         (register_callback): Handle PLUGIN_INFO.
163         (try_init_one_plugin): New.
164         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
165         if failed to init.
166         (finalize_one_plugin): New.
167         (finalize_plugins): New.
168         (print_one_plugin): New.
169         (print_plugins_versions): New.
170         * plugin.h (print_plugins_versions): New.
171         (finalize_plugins): New.
172         * toplev.c (compile_file): Don't call initialize_plugins.
173         (print_version): Call print_plugins_versions.
174         (toplev_main): Call initialize_plugins. Print version if needed.
175         Call finalize_plugins.
176
177 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
178
179         * common.opt (fversion): New.
180         * gcc.c (print_version): New.
181         (process_command): Don't print the version. Just set print_version.
182         (main): Print version. Call subprocesses if print_version and
183         verbose_flag are set.
184         * opts.c (common_handle_option): Handle OPT_fversion.
185
186 2009-04-16  Richard Guenther  <rguenther@suse.de>
187         Ira Rosen  <irar@il.ibm.com>
188
189         PR tree-optimization/39698
190         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
191         type of the reduction variable.  Only generate the def if
192         it is needed.
193
194         * omp-low.c (expand_omp_for_generic): When converting to a pointer
195         make sure to first convert to an integer of the same precision.
196         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
197         the type of the evolution correctly in computing the new
198         induction variable base.
199
200 2009-04-16  Richard Guenther  <rguenther@suse.de>
201
202         PR middle-end/39625
203         * tree-cfg.c (make_blocks): Split statements with to-be
204         abnormal SSA names on the lhs.
205
206 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
207
208         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
209         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
210         * c-typeck.c (really_start_incremental_init): Likewise.
211         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
212         (TARGET_INITIALIZER): Remove it.
213         * target.h (struct target): Remove vector_opaque_p.
214         * tree.c (build_opaque_vector_type): New.
215         * tree.h (TYPE_VECTOR_OPAQUE): New.
216         (build_opaque_vector_type): Declare.
217         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
218         * config/rs6000/rs6000.c (build_opaque_vector_type,
219         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
220         (rs6000_init_builtins): Use build_opaque_vector_type for
221         opaque_V4SI_type_node.
222
223 2009-04-15  Catherine Moore  <clm@codesourcery.com>
224
225         * debug.h (set_name):  Declare.
226         * dwarf2out.c (dwarf2out_set_name): Declare.
227         (dwarf2_debug_hooks): Add set_name.
228         (find_AT_string): New.
229         (add_AT_string): Call find_AT_string.
230         (dwarf2out_set_name): New.
231         * cp/decl.c (grokdeclarator): Call set_name.
232         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
233         * debug.c (do_nothing_debug_hooks):  Likewise.
234         * dbxout.c (dbx_debug_hooks): Likewise.
235         * sdbout.c (sdb_debug_hooks): Likewise.
236
237 2009-04-15  Michael Eager <eager@eagercon.com>
238
239         * config/rs6000/rs6000.c: rs6000_function_value: set function return
240         reg for single-precision FPU
241         * config/rs6000/rs6000.md: (movsi_internal1): only for !TARGET_SINGLE_FPU
242         (movsi_internal1_single): New: add pattern to move SI values to/from
243         single-precision FP regs.
244
245 2009-04-15  Richard Guenther  <rguenther@suse.de>
246
247         * omp-low.c (lower_rec_input_clauses): Build correct address
248         expressions.
249         (expand_omp_for_generic): Fix multiplication type.
250         * tree-loop-distribution.c (build_size_arg): Build a
251         size_t argument.
252         (generate_memset_zero): Fix types.
253         * tree-profile.c (prepare_instrumented_value): Correctly
254         widen a pointer.
255
256 2009-04-15  Ian Lance Taylor  <iant@google.com>
257
258         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
259         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
260         for -Wall and for -Wc++-compat.
261         (c_common_post_options): For C++, set warn_enum_compare if not
262         already set.
263         * c-tree.h (struct c_expr): Add field original_type.
264         (build_external_ref): Update declaration.
265         * c-parser.c (c_parser_braced_init): Set original_type.
266         (c_parser_initelt): Likewise.
267         (c_parser_expr_no_commas): Likewise.
268         (c_parser_conditional_expression): Likewise.
269         (c_parser_cast_expression): Likewise.
270         (c_parser_unary_expression): Likewise.  Pull setting of
271         original_code to top of function.
272         (c_parser_sizeof_expression): Set original_type.
273         (c_parser_alignof_expression): Likewise.
274         (c_parser_postfix_expression): Likewise.  Pull setting of
275         original_code to top of function.
276         (c_parser_postfix_expression_after_paren_type): Set
277         original_type.
278         (c_parser_postfix_expression_after_primary): Likewise.
279         (c_parser_expression): Likewise.
280         * c-typeck.c (build_external_ref): Add type parameter.  Change all
281         callers.
282         (c_expr_sizeof_expr): Set original_type field.
283         (parser_build_unary_op): Likewise.
284         (parser_build_binary_op): Likewise.  Optionally warn about
285         comparisons of enums of different types.
286         (digest_init): Set original_type field.
287         (really_start_incremental_init): Likewise.
288         (push_init_level, pop_init_level): Likewise.
289         * doc/invoke.texi (Warning Options): -Wenum-compare now
290         supported in C.
291
292 2009-04-15  Richard Guenther  <rguenther@suse.de>
293
294         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
295         out a necessary conversion.
296         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
297         names we didn't value number.
298         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
299
300 2009-04-15  Richard Guenther  <rguenther@suse.de>
301
302         PR tree-optimization/39764
303         * tree-ssa-ccp.c (get_value): Canonicalize value with
304         canonicalize_float_value.
305
306 2009-04-15  Jan Hubicka  <jh@suse.cz>
307
308         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
309         Wrong version of patch.
310
311 2009-04-15  Jan Hubicka  <jh@suse.cz>
312
313         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
314
315 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
316
317         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
318         our distinct integral and vector types.
319
320 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
321
322         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
323         * init.c (build_vtbl_address): Remove call to assemble_external.
324
325 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
326
327         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
328         output for other floating point modes.
329
330 2009-04-14  Diego Novillo  <dnovillo@google.com>
331
332         * diagnostic.c (diagnostic_report_diagnostic): Do not
333         warn about loaded plugins for DK_ERROR and DK_WARNING.
334         * c-decl.c (declspecs_add_type): Move call to
335         invoke_plugin_callbacks ...
336         * c-parser.c (c_parser_declspecs): ... here.
337         * plugin.c (dump_active_plugins): Tidy output.
338
339 2009-04-14  Diego Novillo  <dnovillo@google.com>
340             Le-Chun Wu  <lcwu@google.com>
341
342         * configure.ac: Add --enable-plugin support.
343         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
344         * Makefile.in (PLUGIN_H): Define.
345         Export ENABLE_PLUGIN and GMPINC to site.exp.
346         Add PLUGINLIBS to link command.
347         Add/modify dependencies for plugin.o and files including plugin.h.
348         (plugin.o): New.
349         * config.in: Regenerate.
350         
351         * opts.c (common_handle_option): Handle OPT_fplugin_ and
352         OPT_fplugin_arg_.
353
354 2009-04-14  Le-Chun Wu  <lcwu@google.com>
355
356         * tree-pass.h (register_one_dump_file): Add a prototype for
357         register_one_dump_file.
358         * toplev.c (compile_file): Call initialize_plugins.
359         (do_compile): Call invoke_plugin_callbacks.
360         (toplev_main): Call invoke_plugin_callbacks.
361         * common.opt: Add -fplugin= and -fplugin-arg-.
362         * gcc-plugin.h: New public header file for plugins to include.
363         * plugin.c: New source file.
364         * plugin.h: New internal header file.
365         * passes.c (register_one_dump_file): Make it external.
366         
367         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
368
369 2009-04-14  Diego Novillo  <dnovillo@google.com>
370
371         * doc/plugins.texi: New.
372         * doc/gccint.texi: Add reference to Plugins chapter.
373         * doc/invoke.texi: Document -fplugin and -fplugin-arg
374         * diagnostic.c (diagnostic_report_diagnostic): Warn about
375         loaded plugins, if any.
376         * timevar.def (TV_PLUGIN_INIT): Define.
377         (TV_PLUGIN_RUN): Define.
378         * plugin.c: Include timevar.h
379         (plugins_active_p): New.
380         (dump_active_plugins): New.
381         (debug_active_plugins): New.
382
383 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
384
385         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
386         library paths.
387         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
388
389 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
390
391         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
392         the same as a minus without a shift.
393
394 2009-04-14  Nick Clifton  <nickc@redhat.com>
395
396         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
397         comparisons with small integers will always produce a short
398         branch.
399
400 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
401
402         Merge:
403
404         2008-12-19  Diego Novillo  <dnovillo@google.com>
405
406                 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
407
408 2000-04-14  Richard Guenther  <rguenther@suse.de>
409
410         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
411         verification.
412         (verify_gimple_assign_binary): Likewise.  Handle shifts and
413         rotates correctly.
414         (verify_gimple_phi): Print the mismatched argument position.
415         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
416         Fix types.
417         (vect_update_init_of_dr): Likewise.
418         * matrix-reorg.c (transform_access_sites): Do what the
419         comment suggests.
420         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
421
422 2009-04-13  Michael Eager <eager@eagercon.com>
423
424         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
425         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
426         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
427         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
428         remove duplicate config
429
430 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
431
432         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
433         file_name:line_number type locator of the call site.
434         
435 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
436
437         * genautomata.c: Put blank after comma.
438         (automaton_decls): New.
439         (struct unit_usage): Add comments to member next.
440         (store_alt_unit_usage): Keep the list ordered.
441         (unit_present_on_list_p, equal_alternatives_p): New.
442         (check_regexp_units_distribution): Check units distribution
443         correctness correctly.
444         (main): Don't write automata if error is found.  Return correct
445         exit code.
446         
447         * config/m68k/cf.md (cfv4_ds): Remove.
448         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
449         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
450
451         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
452         power4-load-ext, power4-store, power4-store-update,
453         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
454         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
455         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
456         power4-sqrt, power4-isync): Modify reservation to make correct
457         unit distribution to automata.
458
459         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
460         power5-store-update, power5-two, power5-three, power5-lmul,
461         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
462         
463 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
464
465         * except.c (pass_set_nothrow_function_flags): Set name and add
466         TODO_dump_func.
467         (set_nothrow_function_flags): Mention in the dump file when
468         changing a function to nothrow.
469
470 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
471
472         PR/39066
473         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
474         instead of unsigned long.
475
476 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
477
478         * config/arm/arm.c (return_used_this_function): Remove.
479         (arm_output_function_prologue): Remove use of
480         return_used_this_function.
481         (output_return_instruction): Replace use of
482         return_used_this_function
483         by cfun->machine->return_used_this_function.
484         (arm_output_epilogue): Likewise.
485         (arm_output_function_epilogue): Likewise.
486         (thumb_unexpanded_epilogue): Likewise.
487         * config/arm/arm.h (struct machine_function):
488         New member return_used_this_function.
489
490 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
491
492         * doc/install.texi: Correct description of default directory for
493         --with-gxx-include-dir.
494
495 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
496
497         * fold-const.c (build_range_check): Properly deal with enumeral and
498         boolean base types.
499
500 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
501
502         * doc/invoke.texi (max_gcse_passes): Remove documentation.
503         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
504         * params.h (MAX_GCSE_PASSES): Remove.
505         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
506         in sequence.  Remove ability to run multiple passes.
507         (bypass_jumps): Report run as third CPROP pass.
508
509 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
510
511         PR middle-end/39651
512         * except.c (can_throw_external): Look at each insn in a SEQUENCE
513         when deciding whether the whole SEQUENCE can throw.
514
515 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
516
517         PR target/39740
518         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
519         offseted label references.
520
521 2009-04-11  Jan Hubicka  <jh@suse.cz>
522
523         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
524
525 2009-04-11  Richard Guenther  <rguenther@suse.de>
526
527         PR middle-end/39732
528         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
529         return variables as TREE_ADDRESSABLE.
530
531 2009-04-11  Richard Guenther  <rguenther@suse.de>
532
533         PR tree-optimization/39713
534         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
535         reference trees have SSA_NAME operands.
536
537 2009-04-11  Richard Guenther  <rguenther@suse.de>
538
539         PR c/39712
540         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
541         address expressions.
542
543 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
544
545         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
546         match changes in Cygwin 1.7
547         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
548         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
549
550 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
551
552         PR tree-optimization/39701
553         * doc/invoke.texi (Optimization Options): Document change in
554         meaning and initialization of -fdelete-null-pointer-checks.
555
556 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
557
558         PR middle-end/39701
559         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
560
561         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
562         here.
563
564         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
565
566 2009-04-10  Chao-ying Fu  <fu@mips.com>
567
568         * doc/tm.texi (Instruction Output): Document
569         TARGET_ASM_FINAL_POSTSCAN_INSN.
570         * target.h (final_postscan_insn): New field in asm_out.
571         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
572         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
573         * final.c (final_scan_insn): Call
574         targetm.asm_out.final_postscan_insn after outputting
575         an asm macro and a normal instruction.
576
577         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
578         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
579         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
580         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
581         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
582
583 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
584
585         PR middle-end/39701
586         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
587         variables as non-NULL even with -fdelete-null-pointer-checks.
588
589 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
590
591         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
592
593 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
594
595         PR target/39678
596         * config/i386/i386.c (classify_argument): Handle SCmode with
597         (bit_offset % 64) != 0.
598
599 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
600
601         * doc/invoke.texi (Optimize Options): Add cross-reference to
602         -Q --help=optimizers examples.
603
604 2009-04-10  Ben Elliston  <bje@au.ibm.com>
605
606         PR target/36800
607         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
608         regalign for the reg == fpr and TDmode case.
609
610 2009-04-09  David Ayers  <ayers@fsfe.org>
611
612         PR objc/29200
613         * objc/objc-act.c (warn_with_method): Remove helper function.
614         (check_duplicates): Call warning and inform directly.
615         (really_start_method): Likewise.
616
617 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
618
619         * expmed.c (expand_divmod): Always use a comparison for a division
620         by a large unsigned integer.
621
622         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
623         for things others than variables or functions as nonzero.
624
625 2009-04-09  Nick Clifton  <nickc@redhat.com>
626
627         * unwind-compat.c: Change copyright header to refer to version
628         3 of the GNU General Public License with version 3.1 of the
629         GCC Runtime Library Exception and to point readers at the
630         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
631         * config/alpha/crtfastmath.c: Likewise.
632         * config/alpha/linux-unwind.h: Likewise.
633         * config/alpha/qrnnd.asm: Likewise.
634         * config/alpha/vms-crt0-64.c: Likewise.
635         * config/alpha/vms-crt0.c: Likewise.
636         * config/alpha/vms-dwarf2.asm: Likewise.
637         * config/alpha/vms-dwarf2eh.asm: Likewise.
638         * config/alpha/vms-psxcrt0-64.c: Likewise.
639         * config/alpha/vms-psxcrt0.c: Likewise.
640         * config/alpha/vms_tramp.asm: Likewise.
641         * config/arc/initfini.c: Likewise.
642         * config/arc/lib1funcs.asm: Likewise.
643         * config/arm/bpabi-v6m.S: Likewise.
644         * config/arm/bpabi.S: Likewise.
645         * config/arm/bpabi.c: Likewise.
646         * config/arm/crti.asm: Likewise.
647         * config/arm/crtn.asm: Likewise.
648         * config/arm/ieee754-df.S: Likewise.
649         * config/arm/ieee754-sf.S: Likewise.
650         * config/arm/lib1funcs.asm: Likewise.
651         * config/arm/libunwind.S: Likewise.
652         * config/arm/linux-atomic.c: Likewise.
653         * config/arm/mmintrin.h: Likewise.
654         * config/arm/pr-support.c: Likewise.
655         * config/arm/unaligned-funcs.c: Likewise.
656         * config/arm/unwind-arm.c: Likewise.
657         * config/arm/unwind-arm.h: Likewise.
658         * config/avr/libgcc.S: Likewise.
659         * config/bfin/crti.s: Likewise.
660         * config/bfin/crtlibid.s: Likewise.
661         * config/bfin/crtn.s: Likewise.
662         * config/bfin/lib1funcs.asm: Likewise.
663         * config/bfin/linux-unwind.h: Likewise.
664         * config/cris/arit.c: Likewise.
665         * config/cris/cris_abi_symbol.c: Likewise.
666         * config/darwin-64.c: Likewise.
667         * config/darwin-crt2.c: Likewise.
668         * config/darwin-crt3.c: Likewise.
669         * config/darwin.h: Likewise.
670         * config/dbxelf.h: Likewise.
671         * config/dfp-bit.c: Likewise.
672         * config/dfp-bit.h: Likewise.
673         * config/elfos.h: Likewise.
674         * config/fixed-bit.c: Likewise.
675         * config/fixed-bit.h: Likewise.
676         * config/fp-bit.c: Likewise.
677         * config/fp-bit.h: Likewise.
678         * config/fr30/crti.asm: Likewise.
679         * config/fr30/crtn.asm: Likewise.
680         * config/fr30/lib1funcs.asm: Likewise.
681         * config/freebsd-spec.h: Likewise.
682         * config/frv/cmovd.c: Likewise.
683         * config/frv/cmovh.c: Likewise.
684         * config/frv/cmovw.c: Likewise.
685         * config/frv/frvbegin.c: Likewise.
686         * config/frv/frvend.c: Likewise.
687         * config/frv/lib1funcs.asm: Likewise.
688         * config/glibc-stdint.h: Likewise.
689         * config/h8300/clzhi2.c: Likewise.
690         * config/h8300/crti.asm: Likewise.
691         * config/h8300/crtn.asm: Likewise.
692         * config/h8300/ctzhi2.c: Likewise.
693         * config/h8300/fixunssfsi.c: Likewise.
694         * config/h8300/lib1funcs.asm: Likewise.
695         * config/h8300/parityhi2.c: Likewise.
696         * config/h8300/popcounthi2.c: Likewise.
697         * config/i386/ammintrin.h: Likewise.
698         * config/i386/att.h: Likewise.
699         * config/i386/avxintrin.h: Likewise.
700         * config/i386/biarch64.h: Likewise.
701         * config/i386/bmmintrin.h: Likewise.
702         * config/i386/cpuid.h: Likewise.
703         * config/i386/cross-stdarg.h: Likewise.
704         * config/i386/crtfastmath.c: Likewise.
705         * config/i386/crtprec.c: Likewise.
706         * config/i386/cygming-crtbegin.c: Likewise.
707         * config/i386/cygming-crtend.c: Likewise.
708         * config/i386/cygwin.asm: Likewise.
709         * config/i386/emmintrin.h: Likewise.
710         * config/i386/gmm_malloc.h: Likewise.
711         * config/i386/gthr-win32.c: Likewise.
712         * config/i386/i386.h: Likewise.
713         * config/i386/immintrin.h: Likewise.
714         * config/i386/linux-unwind.h: Likewise.
715         * config/i386/linux64.h: Likewise.
716         * config/i386/mm3dnow.h: Likewise.
717         * config/i386/mmintrin-common.h: Likewise.
718         * config/i386/mmintrin.h: Likewise.
719         * config/i386/nmmintrin.h: Likewise.
720         * config/i386/pmm_malloc.h: Likewise.
721         * config/i386/pmmintrin.h: Likewise.
722         * config/i386/smmintrin.h: Likewise.
723         * config/i386/sol2-c1.asm: Likewise.
724         * config/i386/sol2-ci.asm: Likewise.
725         * config/i386/sol2-cn.asm: Likewise.
726         * config/i386/sol2-gc1.asm: Likewise.
727         * config/i386/tmmintrin.h: Likewise.
728         * config/i386/unix.h: Likewise.
729         * config/i386/w32-unwind.h: Likewise.
730         * config/i386/wmmintrin.h: Likewise.
731         * config/i386/x86-64.h: Likewise.
732         * config/i386/x86intrin.h: Likewise.
733         * config/i386/xmmintrin.h: Likewise.
734         * config/ia64/crtbegin.asm: Likewise.
735         * config/ia64/crtend.asm: Likewise.
736         * config/ia64/crtfastmath.c: Likewise.
737         * config/ia64/crti.asm: Likewise.
738         * config/ia64/crtn.asm: Likewise.
739         * config/ia64/fde-glibc.c: Likewise.
740         * config/ia64/lib1funcs.asm: Likewise.
741         * config/ia64/linux-unwind.h: Likewise.
742         * config/ia64/quadlib.c: Likewise.
743         * config/ia64/unwind-ia64.c: Likewise.
744         * config/linux.h: Likewise.
745         * config/m32c/m32c-lib1.S: Likewise.
746         * config/m32c/m32c-lib2-trapv.c: Likewise.
747         * config/m32c/m32c-lib2.c: Likewise.
748         * config/m32r/initfini.c: Likewise.
749         * config/m68hc11/larith.asm: Likewise.
750         * config/m68hc11/m68hc11-crt0.S: Likewise.
751         * config/m68k/cf.md: Likewise.
752         * config/m68k/crti.s: Likewise.
753         * config/m68k/crtn.s: Likewise.
754         * config/m68k/lb1sf68.asm: Likewise.
755         * config/m68k/linux-unwind.h: Likewise.
756         * config/mcore/crti.asm: Likewise.
757         * config/mcore/crtn.asm: Likewise.
758         * config/mcore/lib1.asm: Likewise.
759         * config/mips/linux-unwind.h: Likewise.
760         * config/mips/loongson.h: Likewise.
761         * config/mips/mips16.S: Likewise.
762         * config/mmix/crti.asm: Likewise.
763         * config/mmix/crtn.asm: Likewise.
764         * config/pa/fptr.c: Likewise.
765         * config/pa/hpux-unwind.h: Likewise.
766         * config/pa/lib2funcs.asm: Likewise.
767         * config/pa/linux-atomic.c: Likewise.
768         * config/pa/linux-unwind.h: Likewise.
769         * config/pa/milli64.S: Likewise.
770         * config/pa/quadlib.c: Likewise.
771         * config/pa/stublib.c: Likewise.
772         * config/picochip/libgccExtras/adddi3.asm: Likewise.
773         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
774         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
775         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
776         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
777         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
778         * config/picochip/libgccExtras/divmod15.asm: Likewise.
779         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
780         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
781         * config/picochip/libgccExtras/longjmp.asm: Likewise.
782         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
783         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
784         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
785         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
786         * config/picochip/libgccExtras/setjmp.asm: Likewise.
787         * config/picochip/libgccExtras/subdi3.asm: Likewise.
788         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
789         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
790         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
791         * config/rs6000/750cl.h: Likewise.
792         * config/rs6000/altivec.h: Likewise.
793         * config/rs6000/biarch64.h: Likewise.
794         * config/rs6000/crtresfpr.asm: Likewise.
795         * config/rs6000/crtresgpr.asm: Likewise.
796         * config/rs6000/crtresxfpr.asm: Likewise.
797         * config/rs6000/crtresxgpr.asm: Likewise.
798         * config/rs6000/crtsavfpr.asm: Likewise.
799         * config/rs6000/crtsavgpr.asm: Likewise.
800         * config/rs6000/darwin-asm.h: Likewise.
801         * config/rs6000/darwin-fallback.c: Likewise.
802         * config/rs6000/darwin-fpsave.asm: Likewise.
803         * config/rs6000/darwin-ldouble.c: Likewise.
804         * config/rs6000/darwin-tramp.asm: Likewise.
805         * config/rs6000/darwin-unwind.h: Likewise.
806         * config/rs6000/darwin-vecsave.asm: Likewise.
807         * config/rs6000/darwin-world.asm: Likewise.
808         * config/rs6000/e500crtres32gpr.asm: Likewise.
809         * config/rs6000/e500crtres64gpr.asm: Likewise.
810         * config/rs6000/e500crtres64gprctr.asm: Likewise.
811         * config/rs6000/e500crtrest32gpr.asm: Likewise.
812         * config/rs6000/e500crtrest64gpr.asm: Likewise.
813         * config/rs6000/e500crtresx32gpr.asm: Likewise.
814         * config/rs6000/e500crtresx64gpr.asm: Likewise.
815         * config/rs6000/e500crtsav32gpr.asm: Likewise.
816         * config/rs6000/e500crtsav64gpr.asm: Likewise.
817         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
818         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
819         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
820         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
821         * config/rs6000/eabi-ci.asm: Likewise.
822         * config/rs6000/eabi-cn.asm: Likewise.
823         * config/rs6000/eabi.asm: Likewise.
824         * config/rs6000/linux-unwind.h: Likewise.
825         * config/rs6000/linux64.h: Likewise.
826         * config/rs6000/paired.h: Likewise.
827         * config/rs6000/paired.md: Likewise.
828         * config/rs6000/ppc64-fp.c: Likewise.
829         * config/rs6000/ppu_intrinsics.h: Likewise.
830         * config/rs6000/rs6000.h: Likewise.
831         * config/rs6000/si2vmx.h: Likewise.
832         * config/rs6000/sol-ci.asm: Likewise.
833         * config/rs6000/sol-cn.asm: Likewise.
834         * config/rs6000/spe.h: Likewise.
835         * config/rs6000/spu2vmx.h: Likewise.
836         * config/rs6000/sysv4.h: Likewise.
837         * config/rs6000/tramp.asm: Likewise.
838         * config/rs6000/vec_types.h: Likewise.
839         * config/s390/linux-unwind.h: Likewise.
840         * config/s390/tpf-unwind.h: Likewise.
841         * config/score/crti.asm: Likewise.
842         * config/score/crtn.asm: Likewise.
843         * config/sh/crt1.asm: Likewise.
844         * config/sh/crti.asm: Likewise.
845         * config/sh/crtn.asm: Likewise.
846         * config/sh/divtab-sh4-300.c: Likewise.
847         * config/sh/divtab-sh4.c: Likewise.
848         * config/sh/divtab.c: Likewise.
849         * config/sh/lib1funcs-4-300.asm: Likewise.
850         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
851         * config/sh/lib1funcs.asm: Likewise.
852         * config/sh/lib1funcs.h: Likewise.
853         * config/sh/linux-atomic.asm: Likewise.
854         * config/sh/linux-unwind.h: Likewise.
855         * config/sh/shmedia.h: Likewise.
856         * config/sh/sshmedia.h: Likewise.
857         * config/sh/ushmedia.h: Likewise.
858         * config/sparc/crtfastmath.c: Likewise.
859         * config/sparc/linux-unwind.h: Likewise.
860         * config/sparc/sol2-c1.asm: Likewise.
861         * config/sparc/sol2-ci.asm: Likewise.
862         * config/sparc/sol2-cn.asm: Likewise.
863         * config/spu/divmodti4.c: Likewise.
864         * config/spu/divv2df3.c: Likewise.
865         * config/spu/float_disf.c: Likewise.
866         * config/spu/float_unsdidf.c: Likewise.
867         * config/spu/float_unsdisf.c: Likewise.
868         * config/spu/float_unssidf.c: Likewise.
869         * config/spu/mfc_multi_tag_release.c: Likewise.
870         * config/spu/mfc_multi_tag_reserve.c: Likewise.
871         * config/spu/mfc_tag_release.c: Likewise.
872         * config/spu/mfc_tag_reserve.c: Likewise.
873         * config/spu/mfc_tag_table.c: Likewise.
874         * config/spu/multi3.c: Likewise.
875         * config/spu/spu_internals.h: Likewise.
876         * config/spu/spu_intrinsics.h: Likewise.
877         * config/spu/spu_mfcio.h: Likewise.
878         * config/spu/vec_types.h: Likewise.
879         * config/spu/vmx2spu.h: Likewise.
880         * config/stormy16/stormy16-lib2.c: Likewise.
881         * config/svr4.h: Likewise.
882         * config/sync.c: Likewise.
883         * config/v850/lib1funcs.asm: Likewise.
884         * config/vxlib-tls.c: Likewise.
885         * config/vxlib.c: Likewise.
886         * config/vxworks-dummy.h: Likewise.
887         * config/xtensa/crti.asm: Likewise.
888         * config/xtensa/crtn.asm: Likewise.
889         * config/xtensa/ieee754-df.S: Likewise.
890         * config/xtensa/ieee754-sf.S: Likewise.
891         * config/xtensa/lib1funcs.asm: Likewise.
892         * config/xtensa/lib2funcs.S: Likewise.
893         * config/xtensa/linux-unwind.h: Likewise.
894         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
895         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
896         * coretypes.h: Likewise.
897         * crtstuff.c: Likewise.
898         * defaults.h: Likewise.
899         * dwarf2.h: Likewise.
900         * emutls.c: Likewise.
901         * gbl-ctors.h: Likewise.
902         * gcov-io.h: Likewise.
903         * ginclude/float.h: Likewise.
904         * ginclude/iso646.h: Likewise.
905         * ginclude/stdarg.h: Likewise.
906         * ginclude/stdbool.h: Likewise.
907         * ginclude/stddef.h: Likewise.
908         * ginclude/stdfix.h: Likewise.
909         * ginclude/stdint-gcc.h: Likewise.
910         * ginclude/tgmath.h: Likewise.
911         * gthr-aix.h: Likewise.
912         * gthr-dce.h: Likewise.
913         * gthr-gnat.c: Likewise.
914         * gthr-gnat.h: Likewise.
915         * gthr-lynx.h: Likewise.
916         * gthr-mipssde.h: Likewise.
917         * gthr-nks.h: Likewise.
918         * gthr-posix.c: Likewise.
919         * gthr-posix.h: Likewise.
920         * gthr-posix95.h: Likewise.
921         * gthr-rtems.h: Likewise.
922         * gthr-single.h: Likewise.
923         * gthr-solaris.h: Likewise.
924         * gthr-tpf.h: Likewise.
925         * gthr-vxworks.h: Likewise.
926         * gthr-win32.h: Likewise.
927         * gthr.h: Likewise.
928         * libgcc2.c: Likewise.
929         * libgcc2.h: Likewise.
930         * libgcov.c: Likewise.
931         * tsystem.h: Likewise.
932         * typeclass.h: Likewise.
933         * unwind-c.c: Likewise.
934         * unwind-compat.h: Likewise.
935         * unwind-dw2-fde-compat.c: Likewise.
936         * unwind-dw2-fde-darwin.c: Likewise.
937         * unwind-dw2-fde-glibc.c: Likewise.
938         * unwind-dw2-fde.c: Likewise.
939         * unwind-dw2-fde.h: Likewise.
940         * unwind-dw2.c: Likewise.
941         * unwind-dw2.h: Likewise.
942         * unwind-generic.h: Likewise.
943         * unwind-pe.h: Likewise.
944         * unwind-sjlj.c: Likewise.
945         * unwind.inc: Likewise.
946         * config/arm/neon-gen.ml: Change generated copyright header to
947         refer to version 3 of the GNU General Public License with
948         version 3.1 of the GCC Runtime Library Exception and to point
949         readers at the COPYING3 and COPYING3.RUNTIME files and the
950         FSF's license web page.
951         * config/arm/arm_neon.h: Regenerate.
952
953 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
954
955         * config/cris/cris.md: Change copyright header to refer to version
956         3 of the GNU General Public License.
957         * doc/install.texi2html: Change copyright header to refer to version
958         3 of the GNU General Public License and to point readers at the
959         COPYING3 file and the FSF's license web page.
960         * config/vax/linux.h: Likewise.
961
962 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
963
964         * config/i386/i386.md (cmpcc): New.
965         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
966         (sync_compare_and_swap_cc*): Delete.
967
968         * config/s390/s390.c (s390_compare_emitted): Remove.
969         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
970         s390_compare_emitted used to be handled.  Assert that modes match.
971         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
972         refer to sync_compare_and_swap_ccsi.
973         * config/s390/s390.h (s390_compare_emitted): Remove.
974         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
975         instead of s390_compare_emitted.
976         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
977         instead of s390_compare_emitted.
978         * config/s390/s390.md (cmpcc): New.
979         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
980         CC_REGNUM, do not pretend it's set.
981         (sync_compare_and_swap_cc*): Delete.
982         * config/s390/predicates.md (cc_reg_operand): New.
983
984         * expr.c (sync_compare_and_swap_cc): Delete.
985         * optabs.h (sync_compare_and_swap_cc): Delete.
986         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
987         is being used with can_compare_p.
988         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
989         (find_cc_set): New.
990         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
991         look for a MODE_CC set instead.  Use emit_store_flag.
992         (expand_compare_and_swap_loop): Likewise, with some additional
993         complication to avoid a force_reg when useless.  Use
994         emit_cmp_and_jump_insns.
995         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
996         * doc/md.texi (sync_compare_and_swap_cc): Merge with
997         sync_compare_and_swap documentation.
998
999 2009-04-09  Jan Hubicka  <jh@suse.cz>
1000
1001         * except.c (find_prev_try): Break out from ....
1002         (duplicate_eh_regions): ... here; properly update prev_try pointers
1003         when duplication part of tree.
1004         (dump_eh_tree): Improve dumping.
1005         (verify_eh_region): New.
1006         (verify_eh_tree): Use it.
1007
1008 2009-04-06  Richard Guenther  <rguenther@suse.de>
1009
1010         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1011         &ARRAY addresses by adjusting their types and prepending
1012         a conversion.
1013         * tree-cfg.c (verify_gimple_assign_single): Verify that
1014         addresses are correct.
1015
1016 2009-04-09  Richard Guenther  <rguenther@suse.de>
1017
1018         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1019         indices into an array reference if possible.
1020         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1021         Fold POINTER_PLUS_EXPR statements with invariant address.
1022
1023 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
1024
1025         PR target/39634
1026         * config.gcc (powerpc64-*-linux*): Always build biarch.
1027
1028 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
1029
1030         PR c/39613
1031         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
1032         it and pedwarn if this results in an INTEGER_CST.
1033
1034 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1035
1036         * doc/install.texi: Update minimum GMP version.  Remove obsolete
1037         text in MPFR section.
1038
1039 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1040
1041         * dwarf2out.c (class_scope_p): New static inline.
1042         (class_or_namespace_scope_p): Use it.
1043         (gen_variable_die): Use DW_TAG_member tag for static data member
1044         declarations instead of DW_TAG_variable.
1045
1046         PR middle-end/39573
1047         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
1048         variables.
1049
1050 2009-04-08  Richard Guenther  <rguenther@suse.de>
1051
1052         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
1053         valueize random data.
1054
1055 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
1056
1057         * config.gcc (aix tm_file):  Add aix-stdint.h.
1058         (aix tm clause use_gcc_stdint):  Set to wrap.
1059         * config/rs6000/aix-stdint.h:  New file.
1060         
1061 2009-04-08  Richard Guenther  <rguenther@suse.de>
1062
1063         PR middle-end/36291
1064         * tree-dfa.c (add_referenced_var): Do not recurse into
1065         global initializers.
1066         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
1067         exposed variables.
1068         (fold_const_aggregate_ref): Likewise.
1069
1070 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1071
1072         * recog.c (ordered_comparison_operator): New.
1073         * gensupport.c (std_preds): Add it.
1074         * doc/md.texi (Machine-Independent Predicates): Document it.
1075
1076 2009-04-08  Jan Hubicka  <jh@suse.cz>
1077
1078         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
1079         * function.h (rtl_eh): Remove exception_handler_label_map.
1080         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
1081         remove_exception_handler_label, for_each_eh_label_1): Remove.
1082         (rtl_remove_unreachable_regions): Remove.
1083         (convert_from_eh_region_ranges): Do not remove unreachable regions.
1084         (find_exception_handler_labels): Don't build the hashtable.
1085         (maybe_remove_eh_handler): Remove.
1086         (for_each_eh_label): Rewrite to walk the tree.
1087         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
1088         * except.h (maybe_remove_eh_handler): Remove.
1089         * passes.c (init_optimization_passes): Schedule second EH cleanup
1090         before out-of-ssa.
1091         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
1092         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
1093
1094 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1095
1096         * genoutput.c (validate_optab_operands): New.
1097         (gen_insn, gen_expand): Call it.
1098
1099         * genflags.c (gen_insn): Detect misused iterators.
1100         (main): Pass line_no to gen_insn, exit with status 1 on error.
1101
1102         * genextract.c (line_no): Make global.
1103         (VEC_safe_set_locstr): Change assertion to error message.
1104         (main): Exit with status 1 on error.
1105
1106 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
1107
1108         PR c/39614
1109         PR c/39673
1110         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1111         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1112         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
1113         * c-convert.c (convert): Do not call fold on results of conversion
1114         functions when the result is a C_MAYBE_CONST_EXPR.
1115         * c-parser.c (c_parser_postfix_expression): Do not fold condition
1116         of __builtin_choose_expr.
1117         * c-typeck.c (remove_c_maybe_const_expr): New.
1118         (build_unary_op, build_conditional_expr, build_compound_expr,
1119         build_binary_op, c_objc_common_truthvalue_conversion): Call
1120         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
1121         integer operands.
1122
1123 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
1124
1125         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
1126         CODE to produce a new one. Add a prototype to use fold_convert_const
1127
1128 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1129
1130         PR bootstrap/39660
1131         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
1132         mix declarations and code.
1133
1134 2009-04-08  Ben Elliston  <bje@au.ibm.com>
1135
1136         * gcc.c: Replace `CC' with `GCC' throughout.
1137
1138 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1139
1140         * doc/invoke.texi: Document Atom support.
1141
1142 2009-04-07  Jason Merrill  <jason@redhat.com>
1143
1144         PR c++/25185
1145         * c-common.h, c-common.c: Add flag_pretty_templates.
1146         * c-opts.c (c_common_handle_option): Set it.
1147         * c.opt: Add -fno-pretty-templates.
1148         * doc/invoke.texi (C++ Dialect Options): Likewise.
1149
1150 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
1151
1152         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
1153         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
1154         (ia64_expand_builtin): Likewise.
1155
1156 2009-04-07  Martin Jambor  <mjambor@suse.cz>
1157
1158         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
1159         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
1160         ADDR_EXPRS are include too.
1161
1162 2009-04-07  Richard Guenther  <rguenther@suse.de>
1163
1164         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
1165         decls are only used if passes as parameters or if they are
1166         local statics and the call is not to a builtin.
1167         (call_may_clobber_ref_p_1): Likewise.
1168
1169 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1170
1171         * expr.c (do_store_flag): Remove last argument.  Simplify code
1172         to avoid duplication of tests already done by can_compare_p.
1173         (expand_expr_real_1): Adjust caller.
1174
1175 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1176
1177         * optabs.c (can_compare_p): Test the predicate of a
1178         cbranch and cstore pattern.
1179
1180 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1181
1182         * expr.c (convert_move): Use emit_store_flag instead of
1183         "emulating" it.
1184
1185 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1186
1187         * config/i386/i386.c (ix86_compare_emitted): Remove.
1188         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
1189         ix86_compare_op0 like ix86_compare_emitted used to be handled.
1190         * config/i386/i386.h (ix86_compare_emitted): Remove.
1191         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
1192         instead of ix86_compare_emitted.
1193         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
1194
1195 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
1196
1197         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
1198         Add t-sysroot-suffix to tmake_file.
1199         * config/print-sysroot-suffix.sh: New file.
1200         * config/t-sysroot-suffix: New file.
1201
1202 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1203
1204         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
1205         as the latter produces a warning when the target does not support
1206         infinity.
1207
1208 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1209
1210         * dfp.c: Replace type punning assignments with memcpy throughout.
1211         * Makefile.in (dfp.o-warn): Remove.
1212         
1213 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
1214
1215         PR target/39634
1216         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
1217         Include soft-fp/t-softfp after rs6000/t-linux64.
1218
1219 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1220
1221         * stor-layout.c (set_sizetype): Use the full precision of their
1222         machine mode for bitsize types.
1223
1224 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1225
1226         * config/i386/i386.md: Revert 2 accidental checkins.
1227
1228 2009-04-06  Joey Ye  <joey.ye@intel.com>
1229             Xuepeng Guo <xuepeng.guo@intel.com>
1230             H.J. Lu  <hongjiu.lu@intel.com>
1231
1232         Atom pipeline model, tuning and insn selection.
1233         * config.gcc (atom): Add atom config options and target.
1234
1235         * config/i386/atom.md: New.
1236
1237         * config/i386/i386.c (atom_cost): New cost.
1238         (m_ATOM): New macro flag.
1239         (initial_ix86_tune_features): Set m_ATOM.
1240         (x86_accumulate_outgoing_args): Likewise.
1241         (x86_arch_always_fancy_math_387): Likewise.
1242         (processor_target): Add Atom cost.
1243         (cpu_names): Add Atom cpu name.
1244         (override_options): Set Atom ISA.
1245         (ix86_issue_rate): New case PROCESSOR_ATOM.
1246         (ix86_adjust_cost): Likewise.
1247
1248         * config/i386/i386.h (TARGET_ATOM): New target macro.
1249         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
1250         (TARGET_OPT_AGU): New target option.
1251         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
1252         (processor_type): Add PROCESSOR_ATOM.
1253
1254         * config/i386/i386.md (cpu): Add new value "atom".
1255         (use_carry, movu): New attr.
1256         (atom.md): Include atom.md.
1257         (adddi3_carry_rex64): Set attr "use_carry".
1258         (addqi3_carry): Likewise.
1259         (addhi3_carry): Likewise.
1260         (addsi3_carry): Likewise.
1261         (*addsi3_carry_zext): Likewise.
1262         (subdi3_carry_rex64): Likewise.
1263         (subqi3_carry): Likewise.
1264         (subhi3_carry): Likewise.
1265         (subsi3_carry): Likewise.
1266         (x86_movdicc_0_m1_rex64): Likewise.
1267         (*x86_movdicc_0_m1_se): Likewise.
1268         (x86_movsicc_0_m1): Likewise.
1269         (*x86_movsicc_0_m1_se): Likewise.
1270         (*adddi_1_rex64): Emit add insn as much as possible.
1271         (*addsi_1): Likewise.
1272         (return_internal): Set atom_unit.
1273         (return_internal_long): Likewise.
1274         (return_pop_internal): Likewise.
1275         (*rcpsf2_sse): Set atom_sse_attr attr.
1276         (*qrt<mode>2_sse): Likewise.
1277         (*prefetch_sse): Likewise.
1278
1279         * config/i386/i386-c.c (ix86_target_macros_internal): New case
1280         PROCESSOR_ATOM.
1281         (ix86_target_macros_internal): Likewise.
1282
1283         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
1284         (*prefetch_sse_rex): Likewise.
1285         (sse_rcpv4sf2): Likewise.
1286         (sse_vmrcpv4sf2): Likewise.
1287         (sse_sqrtv4sf2): Likewise.
1288         (<sse>_vmsqrt<mode>2): Likewise.
1289         (sse_ldmxcsr): Likewise.
1290         (sse_stmxcsr): Likewise.
1291         (*sse_sfence): Likewise.
1292         (sse2_clflush): Likewise.
1293         (*sse2_mfence): Likewise.
1294         (*sse2_lfence): Likewise.
1295         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
1296         (<sse>_movup<ssemodesuffixf2c>): Likewise.
1297         (avx_movdqu<avxmodesuffix>): Likewise.
1298         (avx_lddqu<avxmodesuffix>): Likewise.
1299         (sse2_movntv2di): Change attr "type" to "ssemov".
1300         (sse2_movntsi): Likewise.
1301         (rsqrtv8sf2): Change attr "type" to "sseadd".
1302         (sse3_addsubv2df3): Set attr "atom_unit".
1303         (sse3_h<plusminus_insn>v4sf3): Likewise.
1304         (*sse2_pmaddwd): Likewise.
1305         (*vec_extractv2di_1_rex64): Likewise.
1306         (*vec_extractv2di_1_avx): Likewise.
1307         (sse2_psadbw): Likewise.
1308         (ssse3_phaddwv8hi3): Likewise.
1309         (ssse3_phaddwv4hi3): Likewise.
1310         (ssse3_phadddv4si3): Likewise.
1311         (ssse3_phadddv2si3): Likewise.
1312         (ssse3_phaddswv8hi3): Likewise.
1313         (ssse3_phaddswv4hi3): Likewise.
1314         (ssse3_phsubwv8hi3): Likewise.
1315         (ssse3_phsubwv4hi3): Likewise.
1316         (ssse3_phsubdv4si3): Likewise.
1317         (ssse3_phsubdv2si3): Likewise.
1318         (ssse3_phsubswv8hi3): Likewise.
1319         (ssse3_phsubswv4hi3): Likewise.
1320         (ssse3_pmaddubsw128): Likewise.
1321         (sse3_pmaddubsw: Likewise.
1322         (ssse3_palignrti): Likewise.
1323         (ssse3_palignrdi): Likewise.
1324
1325 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
1326
1327         * doc/install.texi (Specific): Fix two cross-references to MinGW.
1328
1329 2009-04-06  Richard Guenther  <rguenther@suse.de>
1330
1331         PR tree-optimization/28868
1332         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
1333         of which PHI results we inserted.
1334         (insert_into_preds_of_block): Record inserted PHIs.
1335         (eliminate): Eliminate redundant PHI nodes.
1336         (init_pre): Init inserted_phi_names.
1337
1338 2009-04-06  Richard Guenther  <rguenther@suse.de>
1339
1340         PR tree-optimization/39643
1341         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
1342         IMAGPART_EXPRs of complex constants.
1343         (execute_fold_all_builtins): If we folded a call queue
1344         TODO_update_address_taken.
1345
1346 2009-04-06  Jan Hubicka  <jh@suse.cz>
1347
1348         PR middle-end/39659
1349         * except.c (remove_unreachable_regions): Propagate may_contain_throw
1350         flag.
1351
1352 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
1353
1354         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
1355         delay slot.
1356         (ic_invalidate_array): Likewise.
1357
1358 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
1359
1360         * calls.c (emit_library_call_value_1): Fix a problem with parameter
1361         alignment for library calls.
1362
1363 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
1364
1365         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
1366         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
1367         * config/i386/mingw-stdint.h:  New file.
1368
1369 2009-04-05  Richard Guenther  <rguenther@suse.de>
1370
1371         PR tree-optimization/39648
1372         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
1373         our &A vs. &A[0] IL deficiencies.
1374
1375 2009-04-04  Jan Hubicka  <jh@suse.cz>
1376
1377         * except.c (sjlj_find_directly_reachable_regions): Be ready for
1378         removed toplevel regions.
1379         (sjlj_mark_call_sites): Likewise.
1380
1381 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1382
1383         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
1384         (cygwin tm clause use_gcc_stdint):  Set to wrap.
1385         * config/i386/cygwin-stdint.h:  New file.
1386
1387 2009-04-04  Richard Guenther  <rguenther@suse.de>
1388
1389         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
1390         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
1391         single-argument PHIs if we are in loop-closed SSA form.
1392         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
1393         for the pre-condition.
1394         (slpeel_tree_peel_loop_to_edge): Likewise.
1395         (vect_build_loop_niters): Take an optional sequence to append stmts.
1396         (vect_generate_tmps_on_preheader): Likewise.
1397         (vect_do_peeling_for_loop_bound): Take extra guards for the
1398         pre-condition.
1399         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
1400         the cost model check.
1401         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
1402         guards if we are going to peel.  Do not apply versioning in that case.
1403         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
1404         (vect_do_peeling_for_loop_bound): Likewise.
1405         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
1406         loop bound only record extra pre-conditions, do not apply loop
1407         versioning.
1408
1409 2009-04-04  Richard Guenther  <rguenther@suse.de>
1410
1411         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
1412         renaming code.
1413
1414 2009-04-04  Jan Hubicka  <jh@suse.cz>
1415
1416         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
1417         last_basic_block for size of bb->index indexed array.
1418         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
1419         compute_out, link_btr_uses, build_btr_def_use_webs,
1420         build_btr_def_use_webs, migrate_btr_defs): Likewise.
1421
1422 2009-04-04  Jan Hubicka  <jh@suse.cz>
1423
1424         * except.c (remove_eh_handler_and_replace): Break out from ...
1425         (remove_eh_handler): ... here.
1426         (bring_to_root): New function.
1427         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
1428         handled ones, bring others to root of tree.
1429
1430 2009-04-04  Jan Hubicka  <jh@suse.cz>
1431
1432         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
1433         (all_phis_safe_to_merge): New function.
1434         (update_info): New structure.
1435         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
1436         (cleanup_empty_eh): Update SSA if possible.
1437
1438 2009-04-04  Richard Guenther  <rguenther@suse.de>
1439
1440         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
1441         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
1442         (append_vuse): Likewise.
1443
1444 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
1445
1446         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
1447         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
1448         instead of REG_UNSAVED for DW_CFA_undefined.
1449         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
1450         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
1451         outermost frame.
1452
1453 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
1454
1455         PR target/39501
1456         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
1457         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
1458         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
1459
1460 2009-04-04  Richard Guenther  <rguenther@suse.de>
1461
1462         PR tree-optimization/8781
1463         PR tree-optimization/37892
1464         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
1465         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
1466         (valueize_refs): Call it for *& valueizations.
1467         (shared_reference_ops_from_ref): Rename to ...
1468         (valueize_shared_reference_ops_from_ref): ... this and valueize.
1469         (shared_reference_ops_from_call): Rename to ...
1470         (valueize_shared_reference_ops_from_call): ... this and valueize.
1471         (vn_reference_lookup): Update.
1472         (visit_reference_op_call): Likewise.
1473         * tree-ssa-pre.c (phi_translate_1): Fold *&.
1474         (eliminate): Value-replace the call address in call statements.
1475
1476 2009-04-04  Richard Guenther  <rguenther@suse.de>
1477
1478         PR tree-optimization/39636
1479         * tree-ssa-forwprop.c
1480         (forward_propagate_addr_into_variable_array_index): Check for
1481         GIMPLE_ASSIGN before accessing the rhs code.
1482
1483 2009-04-03  Jason Merrill  <jason@redhat.com>
1484
1485         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
1486
1487 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
1488
1489         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
1490         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
1491         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
1492         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
1493         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
1494         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
1495         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
1496         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
1497         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
1498         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
1499         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
1500         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
1501         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
1502         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
1503         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
1504         Use fr_reg_or_fp01_operand instead of fr_register_operand
1505
1506         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
1507         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
1508         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
1509
1510 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
1511
1512         PR rtl-optimization/39607
1513         PR rtl-optimization/39631
1514
1515         Revert:
1516         
1517         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1518         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1519         instead of DF_LR_OUT.
1520         * ira-lives.c (process_bb_node_lives): Ditto.
1521         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1522         instead of DF_LR_{OUT,IN}.
1523         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1524         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1525
1526 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
1527
1528         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
1529         (execute_lower_omp): Always run but take the short way out if -fopenmp
1530         is not given.
1531         (gate_lower_omp): Remove, forcing the pass manager to always run the
1532         pass and always set PROP_gimple_lomp.
1533         (pass_lower_omp): Remove gate function.
1534         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
1535         PROP_trees.  Instead, require it.
1536         * ipa-cp.c (pass_ipa_cp): Likewise.
1537         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
1538         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
1539         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
1540         and PROP_gimple_leh.
1541
1542 2009-04-03  Richard Guenther  <rguenther@suse.de>
1543
1544         PR middle-end/13146
1545         PR tree-optimization/23940
1546         PR tree-optimization/33237
1547         PR middle-end/33974
1548         PR middle-end/34093
1549         PR tree-optimization/36201
1550         PR tree-optimization/36230
1551         PR tree-optimization/38049
1552         PR tree-optimization/38207
1553         PR tree-optimization/38230
1554         PR tree-optimization/38301
1555         PR tree-optimization/38585
1556         PR middle-end/38895
1557         PR tree-optimization/38985
1558         PR tree-optimization/39299
1559         * tree-ssa-structalias.h: Remove.
1560         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1561         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1562         (struct vuse_element_d): Remove.
1563         (struct vuse_vec_d): Likewise.
1564         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1565         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1566         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1567         VUSE_ELEMENT_VAR): Likewise.
1568         (struct voptype_d): Likewise.
1569         (NUM_VOP_FREE_BUCKETS): Likewise.
1570         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1571         (struct stmt_operands_d): Remove.
1572         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1573         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1574         VDEF_NUM, VDEF_VECT): Likewise.
1575         (copy_virtual_operands): Remove.
1576         (operand_build_cmp): Likewise.
1577         (create_ssa_artificial_load_stmt): Likewise.
1578         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1579         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1580         vuse_index and mayuse_index members.  Pack and move done and iter_type
1581         members to the front.
1582         (SSA_OP_VMAYUSE): Remove.
1583         (SSA_OP_VIRTUAL_USES): Adjust.
1584         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1585         (unlink_stmt_vdef): Declare.
1586         (add_to_addressable_set): Remove.
1587         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1588         (vrp_visit_stmt): Likewise.
1589         * doc/tree-ssa.texi (Alias analysis): Update.
1590         * doc/invoke.texi (max-aliased-vops): Remove docs.
1591         (avg-aliased-vops): Likewise.
1592         * tree-into-ssa.c (syms_to_rename): Remove.
1593         (need_to_update_vops_p): Likewise.
1594         (need_to_initialize_update_ssa_p): Rename to ...
1595         (update_ssa_initialized_fn): ... this.  Track function we are
1596         initialized for.
1597         (symbol_marked_for_renaming): Simplify.
1598         (add_new_name_mapping): Do not set need_to_update_vops_p.
1599         (dump_currdefs): Use SYMS_TO_RENAME.
1600         (rewrite_update_stmt): Always walk all uses/defs.
1601         (dump_update_ssa): Adjust.
1602         (init_update_ssa): Take function argument.  Track what we are
1603         initialized for.
1604         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1605         (create_new_def_for): Initialize for cfun, assert we are initialized
1606         for cfun.
1607         (mark_sym_for_renaming): Simplify.
1608         (mark_set_for_renaming): Do not initialize update-ssa.
1609         (need_ssa_update_p): Simplify.  Take function argument.
1610         (name_mappings_registered_p): Assert we ask for the correct function.
1611         (name_registered_for_update_p): Likewise.
1612         (ssa_names_to_replace): Likewise.
1613         (release_ssa_name_after_update_ssa): Likewise.
1614         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1615         (dump_decl_set): Do not print a newline.
1616         (debug_decl_set): Do it here.
1617         (dump_update_ssa): And here.
1618         * tree-ssa-loop-im.c (move_computations): Adjust.
1619         (movement_possibility): Likewise.
1620         (determine_max_movement): Likewise.
1621         (gather_mem_refs_stmt): Likewise.
1622         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1623         or NAME_MEMORY_TAG.
1624         * tree-complex.c (update_all_vops): Remove.
1625         (expand_complex_move): Adjust.
1626         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1627         Simplify test for memory referencing statement.  Exclude
1628         non-invariant ADDR_EXPRs.
1629         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1630         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1631         (rdg_flag_uses): Likewise.
1632         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1633         related code.
1634         (tree_optimize_tail_calls_1): Also split the
1635         edge from the entry block if we have degenerate PHI nodes in
1636         the first basic block.
1637         * tree.c (init_ttree): Remove memory-tag related code.
1638         (tree_code_size): Likewise.
1639         (tree_node_structure): Likewise.
1640         (build7_stat): Re-write to be build6_stat.
1641         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1642         (SSA_VAR_P): Adjust.
1643         (struct tree_memory_tag): Remove.
1644         (struct tree_memory_partition_tag): Likewise.
1645         (union tree_node): Adjust.
1646         (build7): Re-write to be build6.
1647         * tree-pass.h (pass_reset_cc_flags): Remove.
1648         (TODO_update_address_taken): New flag.
1649         (pass_simple_dse): Remove.
1650         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1651         * params.h (MAX_ALIASED_VOPS): Remove.
1652         (AVG_ALIASED_VOPS): Likewise.
1653         * omp-low.c (expand_omp_taskreg): Update SSA form.
1654         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1655         aliases the lhs in a copy stmt.
1656         * tree-ssa-dse.c (struct address_walk_data): Remove.
1657         (memory_ssa_name_same): Likewise.
1658         (memory_address_same): Likewise.
1659         (get_kill_of_stmt_lhs): Likewise.
1660         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1661         unused stores.  Look through PHI nodes into post-dominated regions.
1662         (dse_optimize_stmt): Simplify.  Properly remove stores.
1663         (tree_ssa_dse): Compute dominators.
1664         (execute_simple_dse): Remove.
1665         (pass_simple_dse): Likewise.
1666         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1667         gimple_loaded_syms and gimple_stored_syms computation.
1668         * toplev.c (dump_memory_report): Dump alias and pta stats.
1669         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1670         (vn_reference_eq): Likewise.
1671         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1672         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1673         valueize_vuses): Remove.
1674         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1675         (get_def_ref_stmt_vuse): ... this.
1676         (vn_reference_lookup_2): New function.
1677         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1678         walking equivalent vuses.  Simplify.
1679         (vn_reference_lookup): Likewise.
1680         (vn_reference_insert): Likewise.
1681         (vn_reference_insert_pieces): Likewise.
1682         (visit_reference_op_call): Simplify.
1683         (visit_reference_op_load): Likewise.
1684         (visit_reference_op_store): Likewise.
1685         (init_scc_vn): Remove shared_lookup_vuses initialization.
1686         (free_scc_vn): Remove shared_lookup_vuses freeing.
1687         (sort_vuses, sort_vuses_heap): Remove.
1688         (get_ref_from_reference_ops): Export.
1689         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1690         vector with single vuse pointer.
1691         (vn_reference_lookup_pieces, vn_reference_lookup,
1692         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1693         (shared_vuses_from_stmt): Remove.
1694         (get_ref_from_reference_ops): Declare.
1695         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1696         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1697         memory-tag related code.
1698         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1699         (likely_value): Add comment, skip static-chain of call statements.
1700         (surely_varying_stmt_p): Adjust.
1701         (gimplify_and_update_call_from_tree): Likewise.
1702         (execute_fold_all_builtins): Do not rebuild alias info.
1703         (gimplify_and_update_call_from_tree): Properly update VOPs.
1704         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1705         (copy_ref_info): Remove memory-tag related code.
1706         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1707         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1708         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1709         computation.
1710         * tree-ssa-dom.c (gimple_p): Remove typedef.
1711         (eliminate_redundant_computations): Adjust.
1712         (record_equivalences_from_stmt): Likewise.
1713         (avail_expr_hash): Likewise.
1714         (avail_expr_eq): Likewise.
1715         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1716         (stmt_makes_single_load): Likewise.
1717         (stmt_makes_single_store): Likewise.
1718         * tree-ssa-alias.c: Rewrite completely.
1719         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1720         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1721         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1722         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1723         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1724         Remove public functions.
1725         (pass_reset_cc_flags): Remove.
1726         (pass_build_alias): Move ...
1727         * tree-ssa-structalias.c (pass_build_alias): ... here.
1728         * tree-ssa-alias.c (may_be_aliased): Move ...
1729         * tree-flow-inline.h (may_be_aliased): ... here.
1730         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1731         count_uses_and_derefs): Move ...
1732         * gimple.c: ... here.
1733         * gimple.h (count_uses_and_derefs): Declare.
1734         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1735         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1736         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1737         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1738         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1739         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1740         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1741         New functions.
1742         * tree-dfa.c (refs_may_alias_p): Move ...
1743         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1744         * tree-ssa-alias.h: New file.
1745         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1746         (statement_sink_location): Likewise.
1747         * opts.c (decode_options): Do not adjust max-aliased-vops or
1748         avg-aliased-vops values.
1749         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1750         (TV_CALL_CLOBBER): Likewise.
1751         (TV_FLOW_SENSITIVE): Likewise.
1752         (TV_FLOW_INSENSITIVE): Likewise.
1753         (TV_MEMORY_PARTITIONING): Likewise.
1754         (TV_ALIAS_STMT_WALK): New timevar.
1755         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1756         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1757         (get_address_description): Remove memory-tag related code.
1758         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1759         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1760         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1761         and immediate uses in statements.  Document.
1762         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1763         (dump_symbols): Remove.
1764         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1765         * alias.c (get_deref_alias_set): New function split out from ...
1766         (get_alias_set): ... here.
1767         * alias.h (get_deref_alias_set): Declare.
1768         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1769         type parameter.  Remove restrict pointer handling.  Create a
1770         ref-all pointer in case type-based alias sets do not conflict.
1771         (vect_analyze_data_refs): Remove SMT related code.
1772         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1773         (vectorizable_load): Likewise.
1774         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1775         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1776         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1777         Ignore vops and SMTs.
1778         (dr_analyze_alias): Likewise..
1779         (free_data_ref): Likewise.
1780         (create_data_ref): Likewise.
1781         (analyze_all_data_dependences): Likewise.
1782         (get_references_in_stmt): Adjust.
1783         * tree-flow-inline.h (gimple_aliases_computed_p,
1784         gimple_addressable_vars, gimple_call_clobbered_vars,
1785         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1786         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1787         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1788         gimple_mem_ref_stats): Remove.
1789         (gimple_vop): New function.
1790         (op_iter_next_use): Remove vuses and mayuses cases.
1791         (op_iter_next_def): Remove vdefs case.
1792         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1793         (clear_and_done_ssa_iter): Do not set removed fields.
1794         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1795         Assert we are not iterating over vuses or vdefs if not also
1796         iterating over uses or defs.
1797         (op_iter_init_use): Likewise.
1798         (op_iter_init_def): Likewise.
1799         (op_iter_next_vdef): Remove.
1800         (op_iter_next_mustdef): Likewise.
1801         (op_iter_init_vdef): Likewise.
1802         (compare_ssa_operands_equal): Likewise.
1803         (link_use_stmts_after): Handle vuse operand.
1804         (is_call_used): Use is_call_clobbered.
1805         (is_call_clobbered): Global variables are always call clobbered,
1806         query the call-clobbers bitmap.
1807         (mark_call_clobbered): Ignore global variables.
1808         (clear_call_clobbered): Likewise.
1809         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1810         virtual operands sanity check.
1811         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1812         Remove.
1813         (TARGET_MEM_REF): Remove TMR_TAG operand.
1814         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1815         Remove call-clobber related code.
1816         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1817         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1818         partitions or escape reason.
1819         (get_single_def_stmt, get_single_def_stmt_from_phi,
1820         get_single_def_stmt_with_phi): Remove.
1821         (dump_referenced_vars): Tidy.
1822         (get_ref_base_and_extent): Allow bare decls.
1823         (collect_dfa_stats): Adjust.
1824         * graphite.c (rename_variables_in_stmt): Adjust.
1825         (graphite_copy_stmts_from_block): Likewise.
1826         (translate_clast): Likewise.
1827         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1828         (EXPR_DIES): New.
1829         (translate_vuse_through_block): Use the oracle.
1830         (phi_translate_1): Adjust.
1831         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1832         in EXPR_DIES.
1833         (valid_in_sets): Check if the VUSE for
1834         a REFERENCE is available.
1835         (eliminate): Do not remove stmts during elimination,
1836         instead queue and remove them afterwards.
1837         (do_pre): Do not rebuild alias info.
1838         (pass_pre): Run TODO_rebuild_alias before PRE.
1839         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1840         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1841         (mark_all_v_defs_stmt): Remove.
1842         (mark_all_v_defs_seq): Adjust.
1843         (sra_replace): Likewise.
1844         (scalarize_use): Likewise.
1845         (scalarize_copy): Likewise.
1846         (scalarize_init): Likewise.
1847         (scalarize_ldst): Likewise.
1848         (todoflags): Remove.
1849         (tree_sra): Do not rebuild alias info.
1850         (tree_sra_early): Adjust.
1851         (pass_sra): Run TODO_update_address_taken before SRA.
1852         * tree-predcom.c (set_alias_info): Remove.
1853         (prepare_initializers_chain): Do not call it.
1854         (mark_virtual_ops_for_renaming): Adjust.
1855         (mark_virtual_ops_for_renaming_list): Remove.
1856         (initialize_root_vars): Adjust.
1857         (initialize_root_vars_lm): Likewise.
1858         (prepare_initializers_chain): Likewise.
1859         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1860         (may_propagate_copy_into_stmt): Likewise.
1861         (merge_alias_info): Do nothing for now.
1862         (propagate_tree_value_into_stmt): Adjust.
1863         (stmt_may_generate_copy): Likewise.
1864         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1865         not mark symbols for renaming.
1866         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1867         with the same statement, make sure to update the new pointed-to one.
1868         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1869         call statements, do not mark symbols for renaming.
1870         (mark_operand_necessary): Dump something.
1871         (ref_may_be_aliased): New function.
1872         (mark_aliased_reaching_defs_necessary_1): New helper function.
1873         (mark_aliased_reaching_defs_necessary): Likewise.
1874         (mark_all_reaching_defs_necessary_1): Likewise.
1875         (mark_all_reaching_defs_necessary): Likewise.
1876         (propagate_necessity): Do not process virtual PHIs.  For
1877         non-aliased loads mark all reaching definitions as necessary.
1878         For aliased loads and stores mark the immediate dominating
1879         aliased clobbers as necessary.
1880         (visited): New global static.
1881         (perform_tree_ssa_dce): Free visited bitmap after propagating
1882         necessity.
1883         (remove_dead_phis): Perform simple dead virtual PHI removal.
1884         (remove_dead_stmt): Properly unlink virtual operands when
1885         removing stores.
1886         (eliminate_unnecessary_stmts): Schedule PHI removal after
1887         stmt removal.
1888         * tree-ssa-ter.c (is_replaceable_p): Adjust.
1889         (process_replaceable): Likewise.
1890         (find_replaceable_in_bb): Likewise.
1891         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
1892         based on the single gimple vop.
1893         (verify_flow_insensitive_alias_info): Remove.
1894         (verify_flow_sensitive_alias_info): Likewise.
1895         (verify_call_clobbering): Likewise.
1896         (verify_memory_partitions): Likewise.
1897         (verify_alias_info): Likewise.
1898         (verify_ssa): Adjust..
1899         (execute_update_addresses_taken): Export.  Update SSA
1900         manually.  Optimize only when optimizing.  Use a local bitmap.
1901         (pass_update_address_taken): Remove TODO_update_ssa, add
1902         TODO_dump_func.
1903         (pass_update_address_taken): Just use TODO_update_address_taken.
1904         (init_tree_ssa): Do not initialize addressable_vars.
1905         (verify_ssa): Verify new VUSE / VDEF properties.
1906         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
1907         Do not call verify_alias_info.
1908         (delete_tree_ssa): Clear the VUSE, VDEF operands.
1909         Do not free the loaded and stored syms bitmaps.  Reset the escaped
1910         and callused solutions.  Do not free addressable_vars.
1911         Remove memory-tag related code.
1912         (warn_uninitialized_var): Aliases are always available.
1913         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
1914         * lambda-code.c (can_put_in_inner_loop): Adjust.
1915         (can_put_after_inner_loop): Likewise.
1916         (perfect_nestify): Likewise.
1917         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
1918         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
1919         (vectorizable_conversion): Do not mark symbols for renaming.
1920         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
1921         (expand_call_inline): Unlink the calls virtual operands before
1922         replacing it.
1923         (tree_function_versioning): Do not call update_ssa if we are not
1924         updating clones.  Simplify.
1925         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
1926         (propagate_with_phi): Likewise..
1927         * tree-outof-ssa.c (create_temp): Remove memory tag and call
1928         clobber code.  Assert we are not aliased or global.
1929         * tree-flow.h: Include tree-ssa-alias.h
1930         (enum escape_type): Remove.
1931         (struct mem_sym_stats_d): Likewise.
1932         (struct mem_ref_stats_d): Likewise.
1933         (struct gimple_df): Add vop member.  Remove global_var,
1934         call_clobbered_vars, call_used_vars, addressable_vars,
1935         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
1936         escaped and callused members.
1937         (struct ptr_info_def): Remove all members, add points-to solution
1938         member pt.
1939         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
1940         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
1941         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
1942         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
1943         (tree-ssa-alias.o): Likewise.
1944         (toplev.o): Add tree-ssa-alias.h
1945         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
1946         * gimple.c (gimple_set_bb): Fix off-by-one error.
1947         (is_gimple_reg): Do not handle memory tags.
1948         (gimple_copy): Also copy virtual operands.
1949         Delay updating the statement.  Do not reset loaded and stored syms.
1950         (gimple_set_stored_syms): Remove.
1951         (gimple_set_loaded_syms): Likewise.
1952         (gimple_call_copy_skip_args): Copy the virtual operands
1953         and mark the new statement modified.
1954         * tree-ssa-structalias.c (may_alias_p): Remove.
1955         (set_uids_in_ptset): Take the alias set to prune with as
1956         parameter.  Fold in the alias test of may_alias_p.
1957         (compute_points_to_sets): Compute whether a ptr is dereferenced
1958         in a local sbitmap.
1959         (process_constraint): Deal with &ANYTHING on the lhs, reject all
1960         other ADDRESSOF constraints on the lhs.
1961         (get_constraint_for_component_ref): Assert that we don't get
1962         ADDRESSOF constraints from the base of the reference.
1963         Properly generate UNKNOWN_OFFSET for DEREF if needed.
1964         (struct variable_info): Remove collapsed_to member.
1965         (get_varinfo_fc): Remove.
1966         (new_var_info): Do not set collapsed_to.
1967         (dump_constraint): Do not follow cycles.
1968         (dump_constraint_graph): Likewise.
1969         (build_pred_graph): Likewise.
1970         (build_succ_graph): Likewise.
1971         (rewrite_constraints): Likewise.
1972         (do_simple_structure_copy): Remove.
1973         (do_rhs_deref_structure_copy): Remove.
1974         (do_lhs_deref_structure_copy): Remove.
1975         (collapse_rest_of_var): Remove.
1976         (do_structure_copy): Re-implement.
1977         (pta_stats): New global variable.
1978         (dump_pta_stats): New function.
1979         (struct constraint_expr): Make offset signed.
1980         (UNKNOWN_OFFSET): Define special value.
1981         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
1982         (solution_set_expand): New helper function split out from ...
1983         (do_sd_constraint): ... here.
1984         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
1985         (do_ds_constraint): Likewise.
1986         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
1987         and CALLUSED = *CALLUSED.
1988         (set_union_with_increment): Make inc argument signed.
1989         (type_safe): Remove.
1990         (get_constraint_for_ptr_offset): Handle unknown and negative
1991         constant offsets.
1992         (first_vi_for_offset): Handle offsets before start.  Bail
1993         out early for offsets beyond the variable extent.
1994         (first_or_preceding_vi_for_offset): New function.
1995         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
1996         Together with ESCAPED = *ESCAPED this properly computes reachability.
1997         (find_what_var_points_to): New function.
1998         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
1999         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2000         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2001         pt_solutions_intersect): New functions.
2002         (compute_call_used_vars): Remove.
2003         (compute_may_aliases): New main entry into PTA computation.
2004         * gimple.h (gimple_p): New typedef.
2005         (struct gimple_statement_base): Remove references_memory_p.
2006         (struct gimple_statement_with_memory_ops_base): Remove
2007         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
2008         members.
2009         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2010         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2011         gimple_set_references_memory): Remove.
2012         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2013         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2014         New functions.
2015         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2016         (verify_expr): Allow RESULT_DECL.
2017         (gimple_duplicate_bb): Do not copy virtual operands.
2018         (gimple_duplicate_sese_region): Adjust.
2019         (gimple_duplicate_sese_tail): Likewise.
2020         (mark_virtual_ops_in_region): Remove.
2021         (move_sese_region_to_fn): Do not call it.
2022         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2023         and pass_simple_dse.
2024         (execute_function_todo): Handle TODO_update_address_taken,
2025         call execute_update_addresses_taken for TODO_rebuild_alias.
2026         (execute_todo): Adjust.
2027         (execute_one_pass): Init dump files early.
2028         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
2029         call-clobbered.
2030         (create_general_new_stmt): Clear vops.
2031         * tree-ssa-reassoc.c (get_rank): Adjust.
2032         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
2033         symbols for renaming.
2034         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
2035         (PARAM_AVG_ALIASED_VOPS): Likewise.
2036         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
2037         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
2038         * tree-ssa-operands.c: Simplify for new virtual operand representation.
2039         (operand_build_cmp, copy_virtual_operands,
2040         create_ssa_artificial_load_stmt, add_to_addressable_set,
2041         gimple_add_to_addresses_taken): Remove public functions.
2042         (unlink_stmt_vdef): New function.
2043
2044 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2045
2046         * config.gcc (powerpc-*-linux*): Merge variants.
2047
2048 2009-04-02  Chao-ying Fu  <fu@mips.com>
2049             James Grosbach <james.grosbach@microchip.com>
2050
2051         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
2052         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
2053         cop0_sp_offset.
2054         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
2055         keep_interrupts_masked_p, use_debug_exception_return_p.
2056         (mips_attribute_table): Add interrupt, use_shadow_register_set,
2057         keep_interrupts_masked, use_debug_exception_return.
2058         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
2059         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
2060         New functions.
2061         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
2062         (mips_print_operand): Process COP0 registers to print $0 .. $31
2063         correctly for GAS to process.
2064         (mips_interrupt_extra_call_saved_reg_p): New function.
2065         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
2066         extra registers.
2067         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
2068         (mips_compute_frame_info): Add supports for interrupt context that
2069         includes doubleword accumulators and COP0 registers.
2070         (mips_for_each_saved_acc): New function.
2071         (mips_for_each_saved_gpr_and_fpr): Change the function name from
2072         mips_for_each_saved_reg.
2073         (mips_save_reg): Save accumulators.
2074         (mips_kernel_reg_p): A new for_each_rtx callback.
2075         (mips_expand_prologue): Support interrupt handlers.
2076         (mips_restore_reg): Restore accumulators.
2077         (mips_expand_epilogue): Support interrupt handlers.
2078         (mips_can_use_return_insn): Return false for interrupt handlers.
2079         (mips_epilogue_uses): New function.
2080         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
2081         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
2082         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
2083         cop0_move): New instructions.
2084         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
2085         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
2086         defines.
2087         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
2088         New defines.
2089         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
2090         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
2091         interrupt handlers, we use K0 as the temporary register.
2092         (EPILOGUE_USES): Change to a function call.
2093         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
2094         handlers, we use K0 as the temporary register.
2095         
2096         * doc/extend.texi (Function Attributes): Document interrupt,
2097         use_shadow_register_set, keep_interrupts_masked,
2098         use_debug_exception_return for MIPS attributes.
2099
2100 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2101
2102         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
2103         Remove a number of t-files from tmake_file.
2104         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
2105         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
2106         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2107         target_prototype, not TARGET_PROTOTYPE.
2108         (LINK_OS_GNU_SPEC): Define.
2109         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
2110         and darwin-ldoubdle.c.
2111
2112 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2113
2114         PR driver/39293
2115         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
2116         (cpp_options): Ditto.
2117         (default_compilers): Ditto.
2118         (display_help): Ditto.
2119         (process_command): Ditto.
2120         (do_spec_1): Ditto.
2121         (set_input): Use lbasename instead of duplicate code.
2122         (save_temps_prefix): New static for -save-temps=obj.
2123         (save_temps_length): Ditto.
2124         
2125         * doc/invoke.texi (-save-temps=obj): Document new variant to
2126         -save-temps switch.
2127
2128 2009-04-02  Jeff Law  <law@redhat.com>
2129
2130         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
2131         variable.
2132
2133 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2134
2135         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
2136         * configure: Regenerated.
2137
2138 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2139
2140         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
2141         share the argument list.
2142
2143 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2144
2145         Merge
2146
2147         2009-02-12  Diego Novillo  <dnovillo@google.com>
2148
2149         * varpool.c (debug_varpool): New.
2150         * cgraph.h (debug_varpool): Declare.
2151
2152 2009-04-02  Jan Hubicka  <jh@suse.cz>
2153
2154         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
2155         pass.
2156
2157 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2158
2159         * config/i386/i386.c (ix86_abi): Move initialization to ...
2160         (override_options): Here.
2161
2162 2009-04-02  Christian Bruel  <christian.bruel@st.com>
2163
2164         * config/sh/sh.c (sh_dwarf_register_span): New function.
2165         (TARGET_DWARF_REGISTER_SPAN): Define.
2166         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2167         
2168 2009-04-02  Ira Rosen  <irar@il.ibm.com>
2169
2170         PR tree-optimization/39595
2171         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
2172         interleaved loads group is not  greater than the SLP group size.
2173
2174 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2175
2176         * builtins.c (is_builtin_name): New.
2177         (called_as_built_in): Use is_builtin_name.
2178         * tree.h (is_builtin_name): New.
2179         * varasm.c (incorporeal_function_p): Use is_builtin_name
2180
2181 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
2182
2183         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
2184
2185 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
2186
2187         PR c++/26693
2188         * c-decl.c: (clone_underlying_type): Move this ...
2189         * c-common.c (set_underlying_type): ... here.
2190         Also, make sure the function properly sets TYPE_STUB_DECL() on
2191         the newly created typedef variant type.
2192         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
2193         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
2194         points.
2195
2196 2009-04-02  Richard Guenther  <rguenther@suse.de>
2197
2198         PR tree-optimization/37221
2199         * tree-flow.h (degenerate_phi_result): Declare.
2200         * tree-ssa-dom.c (degenerate_phi_result): Export.
2201         * tree-scalar-evolution.c (analyze_initial_condition): If
2202         the initial condition is defined by a degenerate PHI node
2203         use the degenerate value.
2204
2205 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
2206
2207         PR rtl-optimization/39588
2208         * combine.c (merge_outer_ops): Do not set the constant when this
2209         is not necessary.
2210         (simplify_shift_const_1): Do not modify it either in this case.
2211
2212 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
2213
2214         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
2215         tuning is deprecated if -mtune value is set to an Itanium1 variant.
2216
2217 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
2218
2219         PR c/29027
2220         * c-lex.c (interpret_float): Default (no suffix) is double.
2221
2222 2009-04-1  Xinliang David Li  <davidxl@google.com>
2223
2224         * config/i386/i386.c (legitimate_constant_p): Recognize
2225         all one vector constant.
2226
2227 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2228
2229         * gcc/config/vax/vax.c: Add #includes to silence warnings.
2230         Change #include order to silence two warnings.
2231
2232 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2233
2234         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
2235         (ASM_SPEC): Pass -k to the assembler for PIC code.
2236
2237 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2238
2239         * gcc/config.gcc: Add vax-*-linux* to the switch.
2240         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
2241         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
2242
2243 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2244
2245         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
2246         Use predicate macros instead of GET_CODE() == foo.
2247         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
2248         ashlsi3, rotrsi3, <unnamed>): Likewise.
2249
2250 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2251
2252         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
2253         jbbccihi, jbbccisi): Remova trailing whitespace.
2254         * gcc/config/vax/constraints.md: Likewise.
2255         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2256         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
2257         * gcc/config/vax/predicates.md: Likewise.
2258         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
2259         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
2260         * gcc/config/vax/vax.h: Likewise.
2261         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
2262
2263 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2264
2265         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
2266         (indirectable_address_p, adjacent_operands_p): Add spaces around
2267         braces.
2268         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
2269
2270 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2271
2272         * gcc/config/vax/vax.c (legitimate_constant_address_p,
2273         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
2274         index_term_p, reg_plus_index_p, legitimate_address_p,
2275         vax_mode_dependent_address_p): Update comments to match functions
2276         modified by the recent int->bool conversion.
2277
2278 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2279
2280         * gcc/config/vax/builtins.md: Update copyright message.
2281         * gcc/config/vax/constraints.md: Likewise.
2282         * gcc/config/vax/netbsd-elf.h: Likewise.
2283         * gcc/config/vax/predicates.md: Likewise.
2284         * gcc/config/vax/vax-protos.h: Likewise.
2285         * gcc/config/vax/vax.c: Likewise.
2286         * gcc/config/vax/vax.h: Likewise.
2287         * gcc/config/vax/vax.md: Likewise.
2288         * gcc/config/vax/vax.opt: Likewise.
2289
2290 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2291
2292         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
2293         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
2294         * gcc/config/vax/constraints.md (B, R): Likewise.
2295         * gcc/config/vax/predicates.md (external_memory_operand,
2296         nonimmediate_addsub_di_operand): Likewise.
2297         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
2298         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
2299         untyped_call): Likewise.
2300
2301 2009-04-01  Matt Thomas <matt@3am-software.com>
2302
2303         * config/vax/predicates.md: New file.
2304         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
2305         external_const_operand, nonsymbolic_operand, external_memory_operand,
2306         indirect_memory_operand, indexed_memory_operand,
2307         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
2308         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
2309         predicate.
2310         * config/vax/constraints.md: New file.
2311         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
2312         New constraint.
2313         * config/vax/builtins.md: New file.
2314         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
2315         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
2316         jbbccisi): Define.
2317         * config/vax/vax.opt (mqmath): Add option.
2318         * config/vax/vax.md (isfx): Extend with DI.
2319         (VAXintQH, VAXintQHSD): Define.
2320         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
2321         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
2322         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
2323         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
2324         (movdi): Update constraints and use vax_output_int_move().
2325         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
2326         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
2327         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
2328         nonlocal_goto): New.
2329         (mov<mode>): Extend accepted operand types.
2330         (subdi3_old): Rename from subdi3, change update constraints and use
2331         a new implementation.
2332         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
2333         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
2334         MOVE_RATIO, CLEAR_RATIO): Define.
2335         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
2336         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2337         (PRINT_OPERAND): Redefine using a function instead of inlined code.
2338         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2339         (split_quadword_operands): Make static and really allow variable
2340         splitting.
2341         (print_operand_address): Update for PIC generation.
2342         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
2343         indexable_address_p, fixup_mathdi_operand,
2344         vax_expand_addsub_di_operands, adjacent_operands_p): New.
2345         (vax_float_literal, legitimate_constant_p,
2346         indirectable_constant_address_p, index_term_p,
2347         reg_plus_index_p): Return bool instead of int.
2348         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
2349         where needed.
2350         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
2351         generation.
2352         (vax_output_conditional_branch): Indent.
2353         (legitimate_constant_address_p, indirectable_constant_address_p,
2354         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
2355         vax_mode_dependent_address_p): Return bool instead of int, update for
2356         PIC generation.
2357         * config/vax/vax-protos.h (legitimate_constant_address_p,
2358         legitimate_constant_p, legitimate_address_p,
2359         vax_mode_dependent_address_p): Change declaration to bool.
2360         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
2361         vax_expand_addsub_di_operands, vax_output_int_subtract,
2362         vax_output_movmemsi): Declare.
2363         (split_quadword_operands, vax_float_literal): Delete declaration.
2364         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
2365         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
2366         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
2367         ASM_OUTPUT_DWARF_PCREL): Define.
2368         (ASM_SPEC): Change definition to allow PIC generation.
2369
2370 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
2371
2372         * doc/sourcebuild.texi: Update front-end requirements.
2373
2374 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2375
2376         PR target/39226
2377         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
2378         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
2379         (booldi3_internal3): Use boolean_or_operator instead of
2380         boolean_operator.
2381
2382 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
2383
2384         PR c/39605
2385         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
2386         declarator whose size is not an integer constant expression but
2387         folds to an integer constant, then treat it as a constant
2388         subsequently.
2389
2390 2009-04-01  Richard Guenther  <rguenther@suse.de>
2391
2392         * fold-const.c (fold_plusminus_mult_expr): Do not fold
2393         i * 4 + 2 to (i * 2 + 1) * 2.
2394
2395 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2396
2397         PR c/37772
2398         * c-parser.c (c_parser_asm_statement): Skip until close paren and
2399         return if c_parser_asm_string_literal returned NULL.
2400
2401 2009-04-01  Nick Clifton  <nickc@redhat.com>
2402
2403         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
2404         already defined.
2405         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
2406         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
2407         other typedefs to avoid conflicts with libgcc2.c.  Define labels
2408         to gain 16-bit bit-manipulation functions from libgcc2.c and then
2409         include it.
2410         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
2411         to gain 16-bit trapping arithmetic functions from libgcc2.c and
2412         then include it.
2413
2414 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
2415
2416         * varasm.c (default_function_rodata_section): Declare DOT as
2417         const char*.
2418
2419 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
2420             Andrey Galkin <agalkin@hypercom.com>
2421
2422         PR/39492
2423         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
2424         Make object_name unique for each process.
2425
2426 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2427
2428         PR other/39591
2429         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
2430         addressable variables in the parallel that could go out of scope while
2431         running queued tasks.
2432
2433 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
2434
2435         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
2436         (CASE_VALUES_THRESHOLD): Redefine.
2437         * config/avr/avr.c (avr_override_options): Remove initialization of
2438         avr_case_values_threshold variable.
2439         (avr_case_values_threshold): Remove variable. Add new function.
2440         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
2441         * config/avr/avr.opt (mno-tablejump): Remove option.
2442         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
2443
2444 2009-04-01  DJ Delorie  <dj@redhat.com>
2445
2446         * varasm.c (default_function_rodata_section): Don't assume
2447         anything about where the first '.' in the section name is.
2448
2449 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2450
2451         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
2452         rs6000_emit_stack_tie.
2453
2454 2009-03-31  Ian Lance Taylor  <iant@google.com>
2455
2456         * tree-eh.c (tree_remove_unreachable_handlers): Compare
2457         gimple_code with GIMPLE_RESX, not RESX.
2458
2459 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2460
2461         * c-common.c (c_get_ident): New.
2462         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
2463
2464 2009-04-01  Ben Elliston  <bje@au.ibm.com>
2465
2466         * config/rs6000/sysv4.opt (msdata): Improve option description.
2467
2468 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
2469
2470         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
2471         (divdf3_internal_lat): Remove.
2472         (divxf3_internal_lat): Remove.
2473         (divxf3_internal_thr): Remove.
2474         (divxf): Use divxf3_internal.
2475         * config/ia64/div.md (divsf3_internal_lat): New.
2476         (divdf3_internal_lat): New.
2477         (divxf3_internal): New.
2478
2479 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2480
2481         PR c/448
2482         * Makefile.in (USE_GCC_STDINT): Define.
2483         (stmp-int-hdrs): Install stdint.h if applicable.
2484         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
2485         if known.
2486         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
2487         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
2488         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2489         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2490         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2491         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2492         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2493         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2494         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2495         (c_common_nodes_and_builtins): Initialize
2496         underlying_wchar_type_node.  Do not initialize
2497         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
2498         nodes for new types.
2499         (c_stddef_cpp_builtins): Define macros for new types.
2500         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
2501         Remove.
2502         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
2503         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
2504         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
2505         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
2506         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
2507         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
2508         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
2509         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
2510         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
2511         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
2512         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
2513         int16_type_node, int32_type_node, int64_type_node,
2514         uint8_type_node, uint16_type_node, c_uint32_type_node,
2515         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
2516         int_least32_type_node, int_least64_type_node,
2517         uint_least8_type_node, uint_least16_type_node,
2518         uint_least32_type_node, uint_least64_type_node,
2519         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
2520         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
2521         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
2522         uintptr_type_node): Define.
2523         * c-cppbuiltin.c (builtin_define_constants,
2524         builtin_define_type_minmax): New.
2525         (builtin_define_stdint_macros): Define more macros.
2526         (c_cpp_builtins): Define more limit macros.
2527         (type_suffix): New.
2528         (builtin_define_type_max): Define in terms of
2529         builtin_define_type_minmax.  Remove is_long parameter.  All
2530         callers changed.
2531         * config.gcc (use_gcc_stdint): Define.
2532         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
2533         Add newlib-stdint.h for generic targets.
2534         * config/glibc-stdint.h, config/newlib-stdint.h,
2535         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
2536         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
2537         * config/score/score.h (UINTPTR_TYPE): Define.
2538         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2539         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2540         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2541         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2542         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2543         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2544         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2545         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2546         * config/spu/spu.h (STDINT_LONG32): Define.
2547         * configure.ac (use_gcc_stdint): Substitute.
2548         * configure: Regenerate.
2549         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
2550         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
2551         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
2552         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
2553         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
2554         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2555         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2556         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2557         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2558         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2559         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2560         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2561         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2562         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2563         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2564         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2565         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2566         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2567         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2568         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2569         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2570         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2571         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2572         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2573         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2574         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2575         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2576         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2577         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2578
2579 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2580
2581         * loop-iv.c (suitable_set_for_replacement): Renamed from
2582         simplify_using_assignment; changed to return bool and to accept new
2583         args DEST and SRC.  Return true iff we find a source/destination pair
2584         that can be used to make a replacement, and fill SRC and DEST if so.
2585         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2586         changed.
2587         (simplify_using_initial_values): Deal with altered regs here and track
2588         more precisely the effect they have on the validity of our expression.
2589
2590         * loop-iv.c (simplify_using_condition): A condition of the form
2591         (EQ REG CONST) can be used to simply make a substitution.
2592         (simplify_using_initial_values): Keep track of conditions we have seen
2593         and keep using them to simplify new expressions, while applying the
2594         same substitutions to them as to the expression.
2595
2596         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2597         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2598         GEU/LTU reversed.
2599
2600         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2601         changed.  Use this when trying to improve the upper bound.
2602         Generate the comparison by using simplify_gen_relational.
2603
2604         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2605
2606         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2607         functions.
2608         (simplify_using_assignment, simplify_using_initial_values): Call 
2609         replace_in_expr to make replacements.  Call replace_single_def_regs
2610         once on the initial version of the expression.
2611
2612 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2613
2614         PR target/27237
2615         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2616         
2617 2009-03-31  Richard Guenther  <rguenther@suse.de>
2618
2619         PR middle-end/31029
2620         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2621         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2622
2623 2009-03-31  Richard Guenther  <rguenther@suse.de>
2624
2625         * tree.h (div_if_zero_remainder): Declare.
2626         * fold-const.c (div_if_zero_remainder): Export.
2627         * tree-ssa-forwprop.c
2628         (forward_propagate_addr_into_variable_array_index): Handle
2629         constant array index addition outside of the variable index.
2630
2631 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2632
2633         PR target/39592
2634         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2635         define_splits, floatunssi<mode>2): Require x87 conversions from
2636         DImode to be permitted.
2637
2638 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2639
2640         PR preprocessor/15638
2641         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2642
2643 2009-03-31  Richard Guenther  <rguenther@suse.de>
2644
2645         PR middle-end/23401
2646         PR middle-end/27810
2647         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2648         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2649         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2650         a separate statement.
2651         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2652         (lookup_tmp_var): Likewise.
2653         (is_gimple_formal_tmp_or_call_rhs): Remove.
2654         (is_gimple_reg_or_call_rhs): Rename to ...
2655         (is_gimple_reg_rhs_or_call): ... this.
2656         (is_gimple_mem_or_call_rhs): Rename to ...
2657         (is_gimple_mem_rhs_or_call): ... this.
2658         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2659         DECL_GIMPLE_REG_P only if is_formal is true.
2660         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2661         for non-proper post-modify expression gimplification.
2662         (gimplify_self_mod_expr): For post-modify expressions gimplify
2663         the lvalue to a minimal lvalue.
2664         (rhs_predicate_for): Remove formal temp case.
2665         (gimplify_modify_expr_rhs): Likewise.
2666         (gimplify_addr_expr): Use is_gimple_reg.
2667         (gimplify_expr): Remove formal temp cases.
2668         (gimple_regimplify_operands): Likewise.
2669         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2670         and FILTER_EXPR like constants.
2671         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2672         is_gimple_reg.
2673         (is_gimple_formal_tmp_rhs): Remove.
2674         (is_gimple_reg_rhs): Remove special casing.
2675         (is_gimple_mem_rhs): Fix.
2676         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2677         (is_gimple_formal_tmp_var): Remove.
2678         (is_gimple_formal_tmp_reg): Likewise.
2679         (is_gimple_min_lval): Allow invariant component ref parts.
2680         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2681         is_gimple_formal_tmp_reg): Remove declarations.
2682         * tree-cfg.c (verify_expr): Verify that variables with address
2683         taken do not have DECL_GIMPLE_REG_P set.
2684         * tree-mudflap.c (mf_build_check_statement_for): Use
2685         force_gimple_operand instead of gimplify_expr.
2686
2687 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2688
2689         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2690         schedulable rows to compute_split_row.
2691
2692 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2693
2694         PR target/31635
2695         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2696         OPT_mvrsave.
2697
2698 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2699
2700         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2701         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2702         * configure: Regenerate.
2703         * config.in: Regenerate.
2704         * config/rs6000/rs6000.opt (mtls-markers): Add.
2705         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2706         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2707         (tls_ld_aix, tls_ld_sysv): Likewise.
2708         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2709         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2710
2711 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2712
2713         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2714
2715 2009-03-30  Jan Hubicka  <jh@suse.cz>
2716
2717         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2718         out of RESX.
2719         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2720         detection and label handling.
2721
2722 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2723
2724         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2725         left_conflicts_size.
2726         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2727         ALLOCNO_LEFT_CONFLICTS_SIZE.
2728
2729         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2730         remove_allocno_from_bucket_and_push,
2731         allocno_spill_priority_compare, push_allocnos_to_stack,
2732         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2733         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2734         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2735         setup_allocno_left_conflicts_size.
2736         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2737         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2738         setup_allocno_left_conflicts_size instead of
2739         setup_allocno_left_conflicts_num.
2740
2741         * ira-build.c (ira_create_allocno): Use
2742         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2743         ALLOCNO_LEFT_CONFLICTS_NUM.
2744                 
2745 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2746
2747         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2748         instead of DF_LR_OUT.
2749
2750         * ira-lives.c (process_bb_node_lives): Ditto.
2751
2752         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2753         instead of DF_LR_{OUT,IN}.
2754
2755         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2756
2757         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2758
2759 2009-03-30  Jan Hubicka  <jh@suse.cz>
2760
2761         * except.c (label_to_region_map): Fix thinko.
2762
2763 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2764
2765         PR middle-end/38237
2766         * tree.h (tree_find_value): New declaration.
2767         * tree.c (tree_find_value): New function.
2768         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2769
2770 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2771
2772         PR debug/39563
2773         * c-decl.c (struct c_binding): Add locus field.
2774         (bind): Add locus argument, set locus field from it.
2775         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2776         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2777         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2778         implicitly_declare, undeclared_variable, lookup_label,
2779         declare_label, c_make_fname_decl, c_builtin_function,
2780         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2781         bind callers.
2782
2783 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2784
2785         PR target/38781
2786         * config/i386/i386.c (classify_argument): Check total size of
2787         structure.
2788
2789 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2790
2791         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2792         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2793         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2794         respectively.
2795
2796         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2797         seen_variable_array_ref while also traversing a union.
2798
2799         * tree-inline.c (optimize_inline_calls): Do not call
2800         cgraph_node_remove_callees.
2801         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2802         (pass_remove_cgraph_callee_edges): New variable.
2803         * passes.c (init_optimization_passes): Add
2804         pass_remove_cgraph_callee_edges after early inlining and before all
2805         late intraprocedural passes.
2806
2807         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2808
2809 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2810
2811         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2812         Fix typos in names.
2813
2814 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2815
2816         * combine.c (simplify_comparison): Use have_insn_for.
2817         * dojump.c (do_jump): Likewise.
2818
2819 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2820
2821         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2822         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2823         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2824         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2825         instead of sparc_compare_emitted.
2826         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2827         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2828         instead of sparc_compare_emitted.
2829
2830 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2831
2832         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2833         enter/exit cfglayout mode.
2834         (pass_partition_block): Require it.
2835         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2836         (combine_instructions): Track basic blocks instead of labels.
2837         (update_cfg_for_uncondjump): New.
2838         (try_combine): Use it.  Update jumps after rescanning.
2839         (pass_combine): Require PROP_cfglayout.
2840         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2841
2842 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2843
2844         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2845         Provide/destroy PROP_cfglayout respectively.
2846         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2847         * tree-pass.h (PROP_cfglayout): New.
2848
2849 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2850
2851         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2852         fold_convert_const_fixed_from_fixed,
2853         fold_convert_const_fixed_from_int,
2854         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2855         set TREE_CONSTANT_OVERFLOW.
2856         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2857         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2858
2859 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2860
2861         * tree-vect-loop-manip.c: New file.
2862         * tree-vectorizer.c: Update documentation and included files.
2863         (vect_loop_location): Make extern.
2864         (rename_use_op): Move to tree-vect-loop-manip.c
2865         (rename_variables_in_bb, rename_variables_in_loop, 
2866         slpeel_update_phis_for_duplicate_loop, 
2867         slpeel_update_phi_nodes_for_guard1,
2868         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2869         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2870         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2871         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2872         find_loop_location): Likewise.
2873         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2874         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2875         get_vectype_for_scalar_type, vect_is_simple_use,
2876         supportable_widening_operation, supportable_narrowing_operation):
2877         Likewise.
2878         (bb_in_loop_p): Move to tree-vect-loop.c.
2879         (new_loop_vec_info, destroy_loop_vec_info, 
2880         reduction_code_for_scalar_code, report_vect_op, 
2881         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
2882         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
2883         (vect_supportable_dr_alignment): Likewise.
2884         * tree-vectorizer.h (tree-data-ref.h): Include.
2885         (vect_loop_location): Declare.
2886         Reorganize function declarations according to the new file structure.
2887         * tree-vect-loop.c: New file.
2888         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
2889         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
2890         * tree-vect-data-refs.c: New file.
2891         * tree-vect-patterns.c (timevar.h): Don't include.
2892         * tree-vect-stmts.c: New file.
2893         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
2894         tree-vect-slp.c, tree-vect-loop.c.
2895         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
2896         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
2897         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
2898         (tree-vect-analyze.o): Remove.
2899         (tree-vect-transform.o): Likewise.
2900         (tree-vect-data-refs.o): Add rule.
2901         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
2902         tree-vect-slp.o): Likewise.
2903         (tree-vect-patterns.o): Remove redundant dependencies.
2904         (tree-vectorizer.o): Likewise.
2905         * tree-vect-slp.c: New file.
2906
2907 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2908
2909         * optc-gen.awk: Warn if an option flag has multiple different
2910         help strings.
2911
2912 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2913
2914         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
2915         -floop-block): Document dependences on PPL, CLooG and Graphite.
2916
2917 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2918
2919         PR rtl-optimization/323
2920         * c-common.c (c_fully_fold, convert_and_check,
2921         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
2922         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
2923         * c-common.def (EXCESS_PRECISION_EXPR): New.
2924         * c-cppbuiltin.c (builtin_define_float_constants): Define
2925         constants with enough digits for long double.
2926         * c-lex.c (interpret_float): Interpret constant with excess
2927         precision where appropriate.
2928         * c-opts.c (c_common_post_options): Set
2929         flag_excess_precision_cmdline.  Give an error for
2930         -fexcess-precision=standard for C++ for processors where the
2931         option is significant.
2932         * c-parser.c (c_parser_conditional_expression): Handle excess
2933         precision in condition.
2934         * c-typeck.c (convert_arguments): Handle arguments with excess
2935         precision.
2936         (build_unary_op): Move excess precision outside operation.
2937         (build_conditional_expr): Likewise.
2938         (build_compound_expr): Likewise.
2939         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
2940         (build_modify_expr): Handle excess precision in RHS.
2941         (convert_for_assignment): Handle excess precision in converted
2942         value.
2943         (digest_init, output_init_element, process_init_element): Handle
2944         excess precision in initializer.
2945         (c_finish_return): Handle excess precision in return value.
2946         (build_binary_op): Handle excess precision in operands and add
2947         excess precision as needed for operation.
2948         * common.opt (-fexcess-precision=): New option.
2949         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
2950         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2951         For standard excess precision, output explicit conversion to and
2952         truncation from XFmode.
2953         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
2954         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
2955         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
2956         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
2957         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
2958         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
2959         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
2960         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
2961         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
2962         define_splits, sqrt<mode>2): Disable where appropriate for
2963         standard excess precision.
2964         * convert.c (convert_to_real): Do not shorten arithmetic to type
2965         for which excess precision would be used.
2966         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
2967         * doc/invoke.texi (-fexcess-precision=): Document option.
2968         (-mfpmath=): Correct index entry.
2969         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
2970         flag_excess_precision): New.
2971         * langhooks.c (lhd_post_options): Set
2972         flag_excess_precision_cmdline.
2973         * opts.c (common_handle_option): Handle -fexcess-precision=.
2974         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
2975         init_excess_precision): New.
2976         (lang_dependent_init_target): Call init_excess_precision.
2977         * tree.c (excess_precision_type): New.
2978         * tree.h (excess_precision_type): Declare.
2979
2980 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2981
2982         PR c/35235
2983         * c-typeck.c (build_component_ref): Do not copy qualifiers from
2984         non-lvalue to component.
2985
2986 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2987
2988         PR preprocessor/34695
2989         * Makefile.in (c-opts.o): Depend on c-tree.h.
2990         * c-common.c: Move down include of diagnostic.h.
2991         (done_lexing, c_cpp_error): New.
2992         * c-common.h (done_lexing): Declare.
2993         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
2994         (parse_in).
2995         * c-opts.c: Include c-tree.h.
2996         (c_common_init_options): Set preprocessor error callback.
2997         (c_common_handle_option): Do not set preprocessor
2998         inhibit_warnings, warnings_are_errors, warn_system_headers,
2999         pedantic_errors or inhibit_warnings flags.
3000         (c_common_post_options): Do not check cpp_errors (parse_in).
3001         (c_common_finish): Do not output dependencies if there were
3002         errors.  Do not check return value of cpp_finish.
3003         * c-ppoutput.c (pp_file_change): Set input_location.
3004         * c-tree.h (c_cpp_error): Declare.
3005         * diagnostic.c (diagnostic_set_info_translated): Also initialize
3006         override_column.
3007         (diagnostic_build_prefix): Check override_column.
3008         * diagnostic.h (diagnostic_info): Add override_column field.
3009         (diagnostic_override_column): Define.
3010
3011 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
3012
3013         * c-common.c (c_expand_expr, c_staticp): Remove.
3014         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
3015         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
3016         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
3017         * c-gimplify.c (gimplify_compound_literal_expr,
3018         optimize_compound_literals_in_ctor): Remove.
3019         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
3020         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
3021         * c-semantics.c (emit_local_var): Remove.
3022
3023         * langhooks-def.h (lhd_expand_expr): Remove.
3024         * langhooks.c (lhd_expand_expr): Remove.
3025         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
3026
3027         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
3028         handling from c-semantics.c; don't call into langhook.
3029         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
3030         * gimplify.c (gimplify_compound_literal_expr,
3031         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
3032         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
3033         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
3034         as was done in c-gimplify.c.
3035         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
3036         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
3037         Move from c-common.h.
3038         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
3039
3040         * tree.c (staticp): Do not call langhook.
3041         * langhooks.c (lhd_staticp): Delete.
3042         * langhooks-def.h (lhd_staticp): Delete prototype.
3043         (LANG_HOOKS_STATICP): Delete.
3044         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
3045
3046         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
3047         instead of DECL_STMTs.
3048
3049 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3050
3051         PR c/456
3052         PR c/5675
3053         PR c/19976
3054         PR c/29116
3055         PR c/31871
3056         PR c/35198
3057         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
3058         void_type_node.
3059         (fold_call_expr): Return a NOP_EXPR from folding rather than the
3060         contained expression.
3061         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
3062         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
3063         conditional expressions for C.
3064         (decl_constant_value_for_optimization): Move from
3065         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
3066         whether optimizing and that the expression is a VAR_DECL not of
3067         array type instead of doing such checks in the caller.  Do not
3068         check pedantic.  Call gcc_unreachable for C++.
3069         * c-common.def (C_MAYBE_CONST_EXPR): New.
3070         * c-common.h (c_fully_fold, c_save_expr,
3071         decl_constant_value_for_optimization): New prototypes.
3072         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3073         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3074         EXPR_INT_CONST_OPERANDS): Define.
3075         * c-convert.c (convert): Strip nops from expression.
3076         * c-decl.c (groktypename): Take extra parameters expr and
3077         expr_const_operands.  Update call to grokdeclarator.
3078         (start_decl): Update call to grokdeclarator.  Add statement for
3079         expressions used in type of decl.
3080         (grokparm): Update call to grokdeclarator.
3081         (push_parm_decl): Update call to grokdeclarator.
3082         (build_compound_literal): Add parameter non_const and build a
3083         C_MAYBE_COSNT_EXPR if applicable.
3084         (grokdeclarator): Take extra parameters expr and
3085         expr_const_operands.  Track expressions used in declaration
3086         specifiers and declarators.  Fold array sizes and track whether
3087         they are constant expressions and whether they are integer
3088         constant expressions.
3089         (parser_xref_tag): Set expr and expr_const_operands fields in
3090         return value.
3091         (grokfield): Update call to grokdeclarator.
3092         (start_function): Update call to grokdeclarator.
3093         (build_null_declspecs): Set expr and expr_const_operands fields in
3094         return value.
3095         (declspecs_add_type): Handle expressions in typeof specifiers.
3096         * c-parser.c (c_parser_declspecs): Set expr and
3097         expr_const_operands fields for declaration specifiers.
3098         (c_parser_enum_specifier): Likewise.
3099         (c_parser_struct_or_union_specifier): Likewise.
3100         (c_parser_typeof_specifier): Likewise.  Update call to
3101         groktypename.  Fold expression as needed.  Return expressions with
3102         type instead of adding statements.
3103         (c_parser_attributes): Update calls to c_parser_expr_list.
3104         (c_parser_statement_after_labels): Fold expression before passing
3105         to objc_build_throw_stmt.
3106         (c_parser_condition): Fold expression.
3107         (c_parser_asm_operands): Fold expression.
3108         (c_parser_conditional_expression): Use c_save_expr.  Update call
3109         to build_conditional_expr.
3110         (c_parser_alignof_expression): Update call to groktypename.
3111         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
3112         original_code.  Fold expression argument of va_arg.  Create
3113         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
3114         argument to va_arg.  Update calls to groktypename.  Fold array
3115         index for offsetof.  Verify that first argument to
3116         __builtin_choose_expr has integer type.
3117         (c_parser_postfix_expression_after_paren_type): Update calls to
3118         groktypename and build_compound_literal.  Handle expressions with
3119         side effects in type name.
3120         (c_parser_postfix_expression_after_primary): Update call to
3121         c_parser_expr_list.  Set original_code for calls to
3122         __builtin_constant_p.
3123         (c_parser_expr_list): Take extra parameter fold_p.  Fold
3124         expressions if requested.
3125         (c_parser_objc_type_name): Update call to groktypename.
3126         (c_parser_objc_synchronized_statement): Fold expression.
3127         (c_parser_objc_receiver): Fold expression.
3128         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
3129         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
3130         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
3131         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
3132         (struct c_typespec): Add elements expr and expr_const_operands.
3133         (struct c_declspecs): Add elements expr and expr_const_operands.
3134         (groktypename, build_conditional_expr, build_compound_literal):
3135         Update prototypes.
3136         (in_late_binary_op): Declare.
3137         * c-typeck.c (note_integer_operands): New function.
3138         (in_late_binary_op): New variable.
3139         (decl_constant_value_for_broken_optimization): Move to c-common.c
3140         and rename to decl_constant_value_for_optimization.
3141         (default_function_array_conversion): Do not strip nops.
3142         (default_conversion): Do not call
3143         decl_constant_value_for_broken_optimization.
3144         (build_array_ref): Do not fold result.
3145         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
3146         result when operand is a VLA.
3147         (c_expr_sizeof_type): Update call to groktypename.  Handle
3148         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
3149         result when operand names a VLA type.
3150         (build_function_call): Update call to build_compound_literal.
3151         Only fold result for calls to __builtin_* functions.  Strip
3152         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
3153         the function designator.
3154         (convert_arguments): Fold arguments.  Update call to
3155         convert_for_assignment.
3156         (build_unary_op): Handle increment and decrement of
3157         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
3158         decrement earlier.  Fold operand of increment and decrement.
3159         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
3160         built for integer operand.  Wrap returns that are INTEGER_CSTs
3161         without being integer constant expressions or that have integer
3162         constant operands without being INTEGER_CSTs.
3163         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
3164         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
3165         result is an integer constant expression or can be used in
3166         unevaluated parts of one and avoid folding and wrap as
3167         appropriate.  Fold operands before possibly doing -Wsign-compare
3168         warnings.
3169         (build_compound_expr): Wrap result for C99 if operands can be used
3170         in integer constant expressions.
3171         (build_c_cast): Update call to digest_init.  Do not ignore
3172         overflow from casting floating-point constants to integers.  Wrap
3173         results that could be confused with integer constant expressions,
3174         null pointer constants or floating-point constants.
3175         (c_cast_expr): Update call to groktypename.  Handle expressions
3176         included in type name.
3177         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
3178         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
3179         Update calls to convert_for_assignment.
3180         (convert_for_assignment): Take new parameter
3181         null_pointer_constant.  Do not strip nops or call
3182         decl_constant_value_for_broken_optimization.  Set
3183         in_late_binary_op for conversions to boolean.
3184         (store_init_value): Update call to digest_init.
3185         (digest_init): Take new parameter null_pointer_constant.  Do not
3186         call decl_constant_value_for_broken_optimization.  pedwarn for
3187         initializers not constant expressions.  Update calls to
3188         convert_for_assignment.
3189         (constructor_nonconst): New.
3190         (struct constructor_stack): Add nonconst element.
3191         (really_start_incremental_init, push_init_level, pop_init_level):
3192         Handle constructor_nonconst and nonconst element.
3193         (set_init_index): Call constant_expression_warning for array
3194         designators.
3195         (output_init_element): Fold value.  Set constructor_nonconst as
3196         applicable.  pedwarn for initializers not constant expressions.
3197         Update call to digest_init.  Call constant_expression_warning
3198         where constant initializers are required.
3199         (process_init_element): Use c_save_expr.
3200         (c_finish_goto_ptr): Fold expression.
3201         (c_finish_return): Fold return value.  Update call to
3202         convert_for_assignment.
3203         (c_start_case): Fold switch expression.
3204         (c_process_expr_stmt): Fold expression.
3205         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
3206         ensure statement expression is not evaluated in constant expression.
3207         (build_binary_op): Track whether results are integer constant
3208         expressions or may occur in such, disable folding and wrap results
3209         as applicable.  Fold operands for -Wsign-compare warnings unless
3210         in_late_binary_op.
3211         (c_objc_common_truthvalue_conversion): Handle results folded to
3212         integer constants that are not integer constant expressions.
3213         * doc/extend.texi: Document when typeof operands are evaluated,
3214         that condition of __builtin_choose_expr is an integer constant
3215         expression, and more about use of __builtin_constant_p in
3216         initializers.
3217
3218 2009-03-29  Richard Guenther  <rguenther@suse.de>
3219
3220         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3221         propagate addresses of array references.
3222
3223 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
3224
3225         * regmove.c (perhaps_ends_bb_p): Remove.
3226         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
3227         from INSN and check that the main loop stays within that basic block.
3228         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
3229         (regmove_forward_pass): Split out from regmove_optimize.  Use
3230         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
3231         (regmove_backward_pass): Split out from regmove_optimize.  Use
3232         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
3233         (regmove_optimize): Simplify.
3234
3235 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
3236
3237         PR target/39545
3238         * config/i386/i386.c (classify_argument): Ignore flexible array
3239         member in struct and warn ABI change.
3240
3241 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
3242
3243         * config/i386/i386-protos.h (ix86_agi_dependent): New.
3244
3245         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
3246         (ix86_adjust_cost): Updated.
3247
3248 2009-03-29  Jan Hubicka  <jh@suse.cz>
3249
3250         PR middle-end/28850
3251         * tree-pass.h (pass_cleanup_eh): New function.
3252         (remove_unreachable_regions): Break code handling RTL
3253         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
3254         that can not be reached by runtime.
3255         (can_be_reached_by_runtime): New function.
3256         (label_to_region_map): New function.
3257         (num_eh_regions): New function.
3258         (rtl_remove_unreachable_regions): New function.
3259         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
3260         (remove_eh_region): New function.
3261         * except.h: Include sbitmap and vecprim.
3262         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
3263         num_eh_regions): Declare.
3264         * passes.c (init_optimization_passes): Schedule cleanup_eh.
3265         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
3266         * tree-eh.c (tree_remove_unreachable_handlers): New function.
3267         (tree_empty_eh_handler_p): New function.
3268         (cleanup_empty_eh): New function.
3269         (cleanup_eh): New function.
3270         (pass_cleanup_eh): New function.
3271
3272 2009-03-29  Jan Hubicka  <jh@suse.cz>
3273
3274         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
3275         for removed regions.
3276
3277 2009-03-29  Jan Hubicka  <jh@suse.cz>
3278
3279         * except.c (dump_eh_tree): Dump all datastructures.
3280
3281 2009-03-29  Jan Hubicka  <jh@suse.cz>
3282
3283         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
3284         (duplicate_eh_regions_1): Likewise.
3285         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
3286         vector; call EH verification.
3287         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3288         Be ready for region being removed.
3289
3290 2009-03-29  Jan Hubicka  <jh@suse.cz>
3291
3292         * bitmap.c (bitmap_last_set_bit): New function.
3293         * bitmap.h (bitmap_last_set_bit): Declare.
3294
3295 2009-03-29  David Ayers  <ayers@fsfe.org>
3296
3297         PR objc/27377
3298         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
3299         by calling objc_compare_types and surpress warnings about
3300         incompatible C pointers that are compatible ObjC pointers.
3301         
3302 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
3303
3304         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
3305         call initialize_inline_failed.
3306         (initialize_inline_failed): Move it from here ...
3307         * cgraph.c (initialize_inline_failed): ... to here.
3308         (cgraph_create_edge): Call initialize_inline_failed rather than
3309         setting inline_failed directly.
3310
3311 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3312
3313         PR target/32542
3314         * sysv4.opt (msdata): Improve comment.
3315         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
3316         * sysv4.h (SVR4_ASM_SPEC): Likewise.
3317
3318 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3319
3320         PR target/30451
3321         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
3322         load and store attributes.
3323
3324 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3325
3326         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
3327         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
3328         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
3329         * doc/extend.texi (X86 Built-in Functions): Add index entries for
3330         __builtin_infq and __builtin_huge_valq.
3331
3332 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
3333
3334         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
3335         atmega8m1 devices.
3336         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3337         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
3338
3339 2009-03-28  Xinliang David Li  <davidxl@google.com>
3340
3341         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
3342         (do_dbg_cnt): New function.
3343
3344 2009-03-28  Jan Hubicka  <jh@suse.cz>
3345
3346         Merge from pretty-ipa:
3347
3348         2009-03-27  Jan Hubicka  <jh@suse.cz>
3349
3350         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3351         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
3352         * passes.c (function_called_by_processed_nodes_p): New.
3353         * ipa-pure-const.c (check_call): Fix handling of operands.
3354         (analyze_function): Dump debug output for skipped bodies.
3355         (local_pure_const): Use function_called_by_processed_nodes_p.
3356         * dwarf2out.c (reference_to_unused): Use output.
3357         * passes.c (do_per_function_toporder): Likewise.
3358
3359         2008-11-12  Jan Hubicka  <jh@suse.cz>
3360
3361         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
3362         * ipa-pure-const.c (funct_state_d): Add can throw field; make
3363         state_set_in_source enum
3364         (check_decl): Ignore memory tags; do not set fake looping flags;
3365         dump diagnostics.
3366         (check_operand, check_tree, check_rhs_var, check_lhs_var,
3367         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
3368         (check_call, analyze_function): Rewrite.
3369         (check_stmt): New.
3370         (add_new_function): Update call of analyze_function.
3371         (generate_summary): Add call of analyze_function.
3372         (propagate): Propagate can_throw; handle state_set_in_source correctly.
3373         (local_pure_const): New function.
3374         (pass_local_pure_const): New pass.
3375         * ipa-inline.c (inline_transform): Set after_inlining.
3376         * tree-eh.c (stmt_can_throw_external): New.
3377         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
3378         work with aliasing built.
3379         * tree-flow.h (stmt_can_throw_external): New.
3380         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
3381         and local pure/const pass in early and late optimization queue.
3382
3383 2009-03-28  Martin Jambor  <mjambor@suse.cz>
3384
3385         * fold-const.c (get_pointer_modulus_and_residue): New parameter
3386         allow_func_align.
3387         (fold_binary): Allow function decl aligment consideration is the
3388         second argument is integer constant one.
3389         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
3390         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
3391         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
3392
3393 2009-03-28  Jan Hubicka  <jh@suse.cz>
3394
3395         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
3396         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
3397         * function.h (rtl_data): Add nothrow flag.
3398         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
3399         set DECL_NOTHROW for AVAILABLE functions.
3400
3401 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
3402
3403         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
3404         following vector keyword has expansion starting with pixel or bool
3405         keyword, expand vector to __vector and pixel or bool to __pixel or
3406         __bool.
3407
3408         PR c++/39554
3409         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
3410         warn_if_disallowed_function_p): Removed.
3411         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
3412         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
3413         warning_if_disallowed_function_p.
3414         * flags.h (warn_if_disallowed_function_p,
3415         warn_disallowed_functions): Removed.
3416         * common.opt (Wdisallowed-function-list=): Removed.
3417         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
3418
3419 2009-03-28  Richard Guenther  <rguenther@suse.de>
3420
3421         PR tree-optimization/38723
3422         * tree-ssa-pre.c (compute_avail): Add all default definitions to
3423         the entry block.
3424
3425 2009-03-28  Jan Hubicka  <jh@suse.cz>
3426
3427         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
3428         test introduced by my previous patch.
3429
3430 2009-03-28  Richard Guenther  <rguenther@suse.de>
3431
3432         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
3433         the PHIs value undefined.
3434
3435 2009-03-28  Jan Hubicka  <jh@suse.cz>
3436
3437         * tree-pass.h (pass_fixup_cfg): New pass.
3438         * ipa-inline.c (inline_transform): Set
3439         always_inline_functions_inlined/after_inlining.
3440         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
3441         (pass_fixup_cfg): New pass.
3442         * passes.c (init_optimization_passes): Add fixup_cfg.
3443
3444 2009-03-28  Richard Guenther  <rguenther@suse.de>
3445
3446         PR tree-optimization/38458
3447         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
3448         argument use the arguments copy-of value.
3449
3450 2009-03-28  Richard Guenther  <rguenther@suse.de>
3451
3452         PR tree-optimization/38180
3453         * tree-ssa-ccp.c (get_default_value): Simplify.
3454         (likely_value): Likewise.
3455         (surely_varying_stmt_p): Properly handle VOP case.
3456         (ccp_initialize): Likewise.
3457         (ccp_fold): Handle propagating through *&.
3458         (fold_const_aggregate_ref): Also handle decls.
3459
3460 2009-03-28  Jan Hubicka  <jh@suse.cz>
3461
3462         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3463         * cgraph.h (cgraph_node): Likewise.
3464         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
3465         (cgraph_reset_node): Use process flag.
3466         (cgraph_mark_functions_to_output): Likewise.
3467         (cgraph_expand_function): Likewise.
3468         (cgraph_expand_all_functions): Likewise.
3469         (cgraph_output_in_order): Likewise.
3470         * dwarf2out.c (reference_to_unused): Likewise.
3471         * passes.c do_per_function_toporder): Likewise.
3472
3473 2009-03-28  Jan Hubicka  <jh@suse.cz>
3474
3475         Bring from lto-branch:
3476
3477         2008-09-03  Doug Kwan  <dougkwan@google.com>
3478
3479         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
3480         enums instead of reason strings.
3481         * cgraph.c (cgraph_create_edge): Same.
3482         (cgraph_inline_failed_string): New function.
3483         * cgraph.h (cgraph_inline_failed_t): New enum type.
3484         (cgraph_inline_failed_string): New prototype.
3485         (struct cgraph_edge): Change type of INLINED_FAILED from constant
3486         char pointer to cgraph_inline_failed_t.
3487         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
3488         (cgraph_default_inline_p): Ditto.
3489         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
3490         to cgraph_inline_failed_t pointer.
3491         * cif-code.def: New file.
3492         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
3493         reason string.
3494         (cgraph_check_inline_limits): Change type of REASON to pointer to
3495         cgraph_inline_failed_t.  Replace reason strings with enums.
3496         (cgraph_default_inline_p): Ditto.
3497         (cgraph_recursive_inlining_p): Ditto.
3498         (update_caller_keys): Change type of FAILED_REASON to
3499         cgraph_inline_failed_t.
3500         (cgraph_set_inline_failed): Change type of REASON to pointer to
3501         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
3502         convert enums to strings for text output.
3503         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
3504         to be of type cgraph_inline_failed_t.  Replace reason strings with
3505         enums.  Call cgraph_inline_failed_string to covert enums
3506         to strings for text output.
3507         (cgraph_decide_inlining): Replace reason strings with enums.
3508         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
3509         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
3510         for text output.
3511         * tree-inline.c (expand_call_inline): Change type of REASON
3512         to cgraph_inline_failed_t.  Replace reason strings with enums.
3513         Call cgraph_inline_failed_string for text output.
3514         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
3515         (cgraph.o): Ditto.
3516
3517 2009-03-28  Jan Hubicka  <jh@suse.cz>
3518
3519         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
3520         cgraph_clone_node): Remove master clone handling.
3521         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3522         * cgraph.h (master_clone): Remove.
3523         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3524         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
3525         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
3526
3527 2009-03-28  Jan Hubicka  <jh@suse.cz>
3528
3529         * cgraph.c (cgraph_function_body_availability): Functions declared
3530         inline are always safe to assume that it is not going to be replaced.
3531
3532 2009-03-28  Richard Guenther  <rguenther@suse.de>
3533
3534         PR tree-optimization/38513
3535         * tree-ssa-pre.c (eliminate): Remove redundant stores.
3536         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3537         EXC_PTR_EXPR and FILTER_EXPR.
3538         (get_ref_from_reference_ops): Likewise.
3539
3540 2009-03-28  Richard Guenther  <rguenther@suse.de>
3541
3542         PR tree-optimization/38968
3543         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3544         Use FLOOR_MOD_EXPR to compute misalignment.
3545
3546 2009-03-28  Richard Guenther  <rguenther@suse.de>
3547
3548         PR tree-optimization/37795
3549         * tree.h (combine_comparisons): Declare.
3550         * fold-const.c (combine_comparisons): Export.
3551         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
3552         comparisons.
3553         (ifcombine_iforif): Use combine_comparisons.
3554
3555 2009-03-28  Jan Hubicka  <jh@suse.cz>
3556
3557         * tree-eh.c (inlinable_call_p): New function.
3558         (make_eh_edges): Use it.
3559         (verify_eh_edges): Use it.
3560         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
3561         * except.c (reachable_next_level): Add inlinable_function argument
3562         (sjlj_find_directly_reachable_regions): Update.
3563         (add_reachable_handler): Do not set saw_any_handlers.
3564         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
3565         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3566         Add new inlinable call parameter.
3567         (can_throw_internal, can_throw_external): Update.
3568         * except.h (can_throw_internal_1, can_throw_external_1,
3569         foreach_reachable_handler): Update declaration.
3570
3571 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
3572
3573         * config/arm/t-arm-coff, config/h8300/coff.h,
3574         config/i386/i386-aout.h, config/i386/i386-coff.h,
3575         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
3576         config/pdp11/2bsd.h, config/rs6000/aix41.h,
3577         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
3578         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
3579         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
3580         sys-types.h: Remove.
3581         * Makefile.in: Remove protoize and fixproto support and references
3582         in comments.
3583         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
3584         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
3585         Remove.
3586         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
3587         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
3588         unprotoize$(exeext).
3589         (rest.encap): Don't depend on $(STMP_FIXPROTO)
3590         (.PHONY): Don't depend on proto.
3591         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3592         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3593         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3594         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3595         build/gen-protos.o, build/scan.o, xsys-protos.h,
3596         build/fix-header$(build_exeext), build/fix-header.o,
3597         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3598         stmp-install-fixproto): Remove.
3599         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3600         SYSCALLS.c or fixproto files.
3601         (install-common): Don't install protoize.
3602         (install-headers-tar, install-headers-cpio, install-headers-cp):
3603         Don't depend on $(STMP_FIXPROTO).
3604         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3605         install fixproto files or write out fixproto settings.
3606         (uninstall): Don't uninstall protoize.
3607         * config.gcc (use_fixproto): Remove.
3608         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3609         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3610         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3611         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3612         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3613         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3614         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3615         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3616         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3617         * config/t-vxworks (STMP_FIXPROTO): Remove.
3618         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3619         STMP_FIXPROTO): Remove.
3620         * config.in, configure: Regenerate.
3621         * crtstuff.c (gid_t, uid_t): Don't undefine.
3622         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3623         (arm-*-coff, arm-*-aout: Remove target entries.
3624         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3625         Remove mention of AIX 4.1.
3626         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3627         * doc/invoke.texi (Running Protoize): Remove.
3628         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3629         (Protoize Caveats): Remove.
3630         * tsystem.h: Update comments on headers assumed to exist.
3631
3632 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3633
3634         * genautomata.c: Add a new year to the copyright.  Add a new
3635         reference.
3636         (struct insn_reserv_decl): Add comments for member bypass_list.
3637         (find_bypass): Remove.
3638         (insert_bypass): New.
3639         (process_decls): Use insert_bypass.
3640         (output_internal_insn_latency_func): Output all bypasses with the
3641         same input insn in one switch case.
3642
3643         * rtl.def (define_bypass): Describe bypass choice.
3644         * doc/md.texi (define_bypass): Ditto.
3645
3646 2009-03-27  Richard Guenther  <rguenther@suse.de>
3647
3648         * gimplify.c (mark_addressable): Export.
3649         * tree-flow.h (mark_addressable): Declare.
3650         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3651         * tree-ssa.c (verify_phi_args): Verify that address taken
3652         variables have TREE_ADDRESSABLE set.
3653
3654 2009-03-27  Richard Guenther  <rguenther@suse.de>
3655
3656         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3657         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3658         Do not mark decls TREE_ADDRESSABLE.
3659         (build_fold_addr_expr): Adjust.
3660         (fold_addr_expr): Remove.
3661         (fold_unary): Use build_fold_addr_expr.
3662         (fold_comparison): Likewise.
3663         (split_address_to_core_and_offset): Likewise.
3664         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3665         TREE_ADDRESSABLE.
3666         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3667         (gimplify_modify_expr_to_memcpy): Mark source and destination
3668         addressable.
3669         * omp-low.c (create_omp_child_function): Mark the object decl
3670         TREE_ADDRESSABLE.
3671         (lower_rec_input_clauses): Mark the var we take the address of
3672         TREE_ADDRESSABLE.
3673         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3674
3675 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3676
3677         PR middle-end/39315
3678         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3679         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3680
3681 2009-03-27  Richard Guenther  <rguenther@suse.de>
3682
3683         PR tree-optimization/39120
3684         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3685         constraints.
3686         (handle_lhs_call): Process return constraints.  Add escape
3687         constraints if necessary.
3688         (handle_const_call): Fill out return constraints.  Make nested
3689         case more precise.  Avoid consttmp if possible.
3690         (handle_pure_call): Fill out return constraints.  Avoid
3691         callused if possible.
3692         (find_func_aliases): Simplify call handling.
3693
3694 2009-03-27  Richard Guenther  <rguenther@suse.de>
3695
3696         PR tree-optimization/39120
3697         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3698         as a representative.
3699         (solve_graph): Do propagate CALLUSED.
3700         (handle_pure_call): Use a scalar constraint from CALLUSED for
3701         the return value.
3702         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3703         solutions.
3704
3705 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3706
3707         PR c/39323
3708         * c-common.c (handle_aligned_attribute): Properly check alignment
3709         overflow.  Use (1U << i) instead of (1 << i).
3710
3711         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3712
3713         * expr.h (get_mem_align_offset): Updated.
3714
3715         * tree.h (tree_decl_common): Change align to "unsigned int" and
3716         move it before pointer_alias_set.
3717
3718 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3719             Jakub Jelinek  <jakub@redhat.com>
3720
3721         PR target/38034
3722         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3723         gr_register_operand with gr_reg_or_0_operand.
3724         (cmpxchg_rel_di): Likewise.
3725         (sync_lock_test_and_set<mode>): Likewise.
3726
3727 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3728
3729         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3730         (true_regnum): Likewise.
3731
3732         * rtlanal.c (subreg_info): Moved to ...
3733         * rtl.h (subreg_info): Here.  New.
3734         (subreg_get_info): New.
3735
3736         * rtlanal.c (subreg_get_info): Make it extern.
3737
3738 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3739
3740         PR target/39472
3741         * config/i386/i386.c (ix86_abi): New.
3742         (override_options): Handle -mabi=.
3743         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3744         (ix86_call_abi_override): Likewise.
3745         (init_cumulative_args): Likewise.
3746         (function_arg_advance): Likewise.
3747         (function_arg_64): Likewise.
3748         (function_arg): Likewise.
3749         (ix86_pass_by_reference): Likewise.
3750         (ix86_function_value_regno_p): Likewise.
3751         (ix86_build_builtin_va_list_abi): Likewise.
3752         (setup_incoming_varargs_64): Likewise.
3753         (is_va_list_char_pointer): Likewise.
3754         (ix86_init_machine_status): Likewise.
3755         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3756         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3757         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3758         (ix86_function_abi): Make it static and return enum calling_abi.
3759         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3760         with ix86_abi.
3761         (ix86_fn_abi_va_list): Updated.
3762
3763         * config/i386/i386.h (ix86_abi): New.
3764         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3765         (CONDITIONAL_REGISTER_USAGE): Likewise.
3766         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3767         (machine_function): Likewise.
3768
3769         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3770         with ix86_abi.
3771         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3772         (STACK_BOUNDARY): Likewise.
3773         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3774
3775         * config/i386/i386.opt (mabi=): New.
3776
3777         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3778         return enum calling_abi.
3779         (ix86_function_type_abi): Likewise.
3780         (ix86_function_abi): Removed.
3781
3782         * doc/invoke.texi: Document -mabi= option for x86.
3783
3784 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3785
3786         * builtins.c (real_dconstp): Delete.
3787         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3788
3789 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3790             Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR debug/37959
3793         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3794         (gen_subprogram_die): When a function is explicit, generate the
3795         DW_AT_explicit attribute.
3796         * langhooks.h (struct lang_hooks_for_decls): Add
3797         function_decl_explicit_p langhook.
3798         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3799         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3800
3801 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3802
3803         * builtins.c (fold_builtin_memory_op): Optimize memmove
3804         into memcpy if we can prove source and destination don't overlap.
3805
3806         * tree-inline.c: Include gt-tree-inline.h.
3807         (clone_fn_id_num): New variable.
3808         (clone_function_name): New function.
3809         (tree_function_versioning): Use it.
3810         * Makefile.in (GTFILES): Add tree-inline.c.
3811
3812 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3813
3814         * BASE-VER: Change to 4.5.0.
3815
3816 2009-03-27  Xinliang David Li  <davidxl@google.com>
3817
3818         PR tree-optimization/39557
3819         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3820
3821 2009-03-27  Xinliang David Li  <davidxl@google.com>
3822
3823         PR tree-optimization/39548
3824         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3825         candidate check.
3826
3827 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         * c-common.c (pointer_int_sum): Use %wd on return from
3830         tree_low_cst.
3831
3832 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3833
3834         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3835         on return from tree_low_cst.
3836
3837 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3838
3839         PR c++/36799
3840         * ginclude/stdarg.h (va_copy): Define also for
3841         __GXX_EXPERIMENTAL_CXX0X__.
3842
3843 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3844
3845         PR c++/35652
3846         * builtins.h (c_strlen): Do not warn here.
3847         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3848         * c-common.c (pointer_int_sum): Take an explicit location.
3849         Warn about offsets out of bounds.
3850         * c-common.h (pointer_int_sum): Adjust declaration.
3851
3852 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3853
3854         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3855         markup glitch.
3856
3857 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3858
3859         PR c++/39554
3860         * opts.c (warn_if_disallowed_function_p): Don't assume
3861         get_callee_fndecl must return non-NULL.
3862
3863 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3864
3865         PR rtl-optimization/39522
3866         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3867         when reg_reloaded_valid is set.
3868
3869 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3870
3871         * config/spu/divv2df3.c: New file.
3872         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3873         (DPBIT_FUNCS): Filter out _div_df.
3874
3875 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3876
3877         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3878         a jump insn, count that jump in the distance to the loop start.
3879
3880 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3881
3882         PR target/39523
3883         * config/sh/sh.c (calc_live_regs): Fix condition for global
3884         registers except PIC_OFFSET_TABLE_REGNUM.
3885
3886 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
3887
3888         PR/39518
3889         * doc/invoke.texi (-mconsole): New.
3890         (-mcygwin): New.
3891         (-mno-cygwin): New.
3892         (-mdll): New.
3893         (-mnop-fun-dllimport): New.
3894         (-mthread): New.
3895         (-mwin32): New.
3896         (-mwindows): New.
3897         (sub section "i386 and x86-64 Windows Options"): New.
3898
3899 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
3900
3901         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
3902         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
3903
3904 2009-03-25  Richard Guenther  <rguenther@suse.de>
3905
3906         PR middle-end/39497
3907         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
3908         of -Wno-error.
3909
3910 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
3911
3912         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
3913         neither of haifa/selective schedulers are working.
3914
3915 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3916
3917         * doc/invoke.texi (Debugging Options): Fix description of
3918         -fno-merge-debug-strings.
3919
3920 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
3921
3922         * config/cris/libgcc.ver: New version-script.
3923         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
3924
3925         * configure.ac <GAS features, nop mnemonic>: Add pattern
3926         crisv32-*-* for "nop".
3927         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
3928         * configure: Regenerate.
3929
3930 2009-03-24  Ira Rosen  <irar@il.ibm.com>
3931
3932         PR tree-optimization/39529
3933         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3934         mark_sym_for_renaming for the tag copied to the new vector
3935         pointer.
3936
3937 2009-03-24  Arthur Loiret  <aloiret@debian.org>
3938
3939         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
3940         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
3941         EXTRA_SPEC_FUNCTIONS.
3942         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
3943         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
3944         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
3945         -march and -mtune options.
3946
3947 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
3948
3949         * config/m68k/t-rtems: Add m5329 multilib.
3950
3951 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
3952             Jakub Jelinek  <jakub@redhat.com>
3953
3954         PR debug/39524
3955         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
3956         nodes.
3957
3958 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3959
3960         PR c/39495
3961         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
3962         instead of c_parser_expression_conv, if original_code isn't one of the
3963         4 allowed comparison codes, fail.
3964
3965 2009-03-23  Richard Guenther  <rguenther@suse.de>
3966
3967         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
3968         * tree.h (struct tree_type): Likewise.
3969         * reload.h (struct insn_chain): Likewise.
3970         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
3971         * function.h (struct function): Likewise.
3972         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
3973
3974 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3975
3976         PR tree-optimization/39516
3977         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
3978
3979 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
3980
3981         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
3982         should be set true if BITS_PER_WORD of target is bigger than 32
3983
3984 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
3985
3986         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
3987         Translate -B-options to -rpath-link.  Correct existing
3988         rpath-link and conditionalize on !nostdlib.
3989
3990 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3991
3992         * doc/extend.texi (Function Attributes, Variable Attributes):
3993         Fix typos.
3994         * doc/invoke.texi (Debugging Options, Optimize Options)
3995         (i386 and x86-64 Options, MCore Options): Likewise.
3996
3997 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
3998
3999         PR debug/37890
4000         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
4001         it for block local namespace aliases.
4002         (gen_decl_die): Pass context_die to gen_namespace_die.
4003
4004 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4005
4006         PR c/39495
4007         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
4008         minimum or maximum value.
4009
4010 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
4011
4012         * reginfo.c (globalize_reg): Recompute derived reg sets.
4013
4014 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
4015
4016         PR target/39063
4017         * libgcc2.c (mprotect): Do not use signed arguments for
4018         VirtualProtect, use DWORD arguments.  Also fix the 'may
4019         be used uninitialized' warning for the np variable.
4020
4021 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4022
4023         PR target/39496
4024         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
4025         functions using regparm calling conventions when not optimizing.
4026         (ix86_function_sseregparm): Similarly for sseregparm calling
4027         conventions.
4028
4029 2009-03-19  Li Feng  <nemokingdom@gmail.com>
4030
4031         PR middle-end/39500
4032         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
4033         dependence if the first conflict is after niter iterations.
4034
4035 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
4036
4037         PR middle-end/38609
4038         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
4039         functions with dynamic stack-pointer adjustments.
4040
4041 2009-03-19  Ben Elliston  <bje@au.ibm.com>
4042
4043         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
4044         option; change to -msdata=data.
4045
4046 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4047
4048         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
4049         and -fopenmp.
4050
4051 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
4052
4053         PR target/35180
4054         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
4055
4056 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
4057
4058         * doc/invoke.texi (Code Gen Options): Expand discussion of
4059         -fno-common.
4060
4061 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
4062
4063         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
4064         * matrix-reorg.c (struct matrix_info): Likewise.
4065         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
4066         * rtl.h (struct mem_attrs): Likewise.
4067         * df.h (struct df): Likewise.
4068         * tree-data-ref.h (struct data_dependence_relation): Likewise.
4069         * ira-int.h (struct ira_allocno): Likewise.
4070         * df-scan.c (struct df_collection_rec): Likewise.
4071         * ira.c (struct equivalence): Likewise.
4072         * function.c (struct temp_slot): Likewise.
4073         * cfgloop.h (struct loop): Likewise.
4074
4075         PR debug/39485
4076         * function.c (use_register_for_decl): When not optimizing, disregard
4077         register keyword for variables with types containing methods.
4078
4079 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
4080
4081         PR middle-end/39447
4082         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
4083         (is_simple_operand): Call contains_component_ref_p before calling data
4084         reference analysis that would fail on COMPONENT_REFs.
4085
4086         * tree-vrp.c (search_for_addr_array): Fix formatting.
4087
4088 2009-03-18  Richard Guenther  <rguenther@suse.de>
4089
4090         * tree-vect-transform.c (vect_loop_versioning): Fold the
4091         generated comparisons.
4092         * tree-vectorizer.c (set_prologue_iterations): Likewise.
4093         (slpeel_tree_peel_loop_to_edge): Likewise.
4094
4095 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4096
4097         PR middle-end/37805
4098         * opts.c (print_specific_help): In addition to `undocumented',
4099         accept `separate' and `joined' flags if passed alone.  Describe
4100         output by the first matched one of those.
4101         (common_handle_option): Skip over empty strings.
4102         * gcc.c (display_help): Fix help string for `--help='.
4103         * doc/invoke.texi (Option Summary, Overall Options): With
4104         `--help=', classes and qualifiers can both be repeated, but
4105         only the latter can be negated.  One should not pass only
4106         negated qualifiers.  Fix markup and examples.
4107
4108         Revert
4109         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
4110         PR middle-end/37805
4111         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
4112         and -fhelp=separate.
4113
4114 2009-03-17  Jing Yu  <jingyu@google.com>
4115
4116         PR middle-end/39378
4117         * function.h (struct rtl_data): Move is_thunk from here...
4118         (struct function): ...to here.
4119         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
4120         * varasm.c (assemble_start_function): Change is_thunk from crtl to
4121         cfun.
4122         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
4123         cfun.
4124         (alpha_does_function_need_gp, alpha_start_function): Likewise.
4125         (alpha_output_function_end_prologue): Likewise.
4126         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
4127         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
4128         (rs6000_output_function_epilogue): Likewise.
4129         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
4130
4131 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
4132
4133         PR target/39482
4134         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
4135         from different units in a single alternative.
4136         (*truncdfsf_i387): Ditto.
4137         (*truncxfsf2_mixed): Ditto.
4138         (*truncxfdf2_mixed): Ditto.
4139
4140 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
4141
4142         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
4143         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
4144
4145         PR debug/39474
4146         * tree-ssa-live.c (remove_unused_locals): Don't remove local
4147         unused non-artificial variables when not optimizing.
4148
4149         PR debug/39471
4150         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
4151         DW_TAG_imported_module even if decl is IMPORTED_DECL with
4152         NAMESPACE_DECL in its DECL_INITIAL.
4153
4154         PR middle-end/39443
4155         * optabs.c (set_user_assembler_libfunc): New function.
4156         * expr.h (set_user_assembler_libfunc): New prototype.
4157         * c-common.c: Include libfuncs.h.
4158         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
4159         for memcmp, memset, memcpy, memmove and abort.
4160         * Makefile.in (c-common.o): Depend on libfuncs.h.
4161
4162         PR debug/39412
4163         * dwarf2out.c (gen_inlined_enumeration_type_die,
4164         gen_inlined_structure_type_die, gen_inlined_union_type_die,
4165         gen_tagged_type_instantiation_die): Removed.
4166         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
4167         do nothing.
4168
4169 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
4170
4171         PR testsuite/38526
4172         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
4173         its use.
4174         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
4175         (check-parallel-%): Ditto.
4176         (check-consistency): Ditto.
4177
4178 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
4179
4180         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
4181         local variable rhs by NULL_TREE.
4182
4183 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4184
4185         PR target/39477
4186         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
4187
4188 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4189
4190         PR target/39476
4191         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
4192
4193 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4194
4195         PR target/39473
4196         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
4197         for ms->sysv ABI calls only in 64bit mode.
4198
4199         * config/i386/i386.md (untyped_call): Support 32bit.
4200
4201 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4202
4203         * doc/extend.texi: Replace x86_65 with x86_64.
4204
4205 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
4206
4207         PR tree-optimization/39455
4208         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
4209         mismatches for POINTER_TYPE_P (type).
4210         (number_of_iterations_le): Likewise.
4211
4212 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
4213
4214         * config/picochip/picochip.c: Removed profiling support.
4215         * config/picochip/picochip.md: Removed profiling instruction.
4216         * config/picochip/picochip.h: Removed profiling builtin.
4217
4218 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
4219
4220         * doc/install.texi (--with-host-libstdcxx): Document.
4221
4222 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
4223
4224         PR target/34299
4225         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
4226         generate a warning if the function name does not begin with
4227         "__vector" and the function has either the 'signal' or 'interrupt'
4228         attribute, from here to ...
4229         (avr_declare_function_name): ...here. New function.
4230         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
4231         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
4232
4233 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
4234
4235         PR bootstrap/39454
4236         * cse.c (fold_rtx): Don't modify original const_arg1 when
4237         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
4238         separate variable instead.
4239         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
4240         from out of range shift counts.
4241         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
4242
4243 2008-03-13  Catherine Moore  <clm@codesourcery.com>
4244
4245         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
4246         diagnostic.h with $(DIAGNOSTIC_H).
4247
4248 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4249
4250         PR target/39431
4251         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
4252         predicate.
4253         * config/i386/sync.md (sync_compare_and_swap<mode>,
4254         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
4255         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
4256         into a register.
4257         (sync_double_compare_and_swapdi_pic,
4258         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
4259         cmpxchg8b_pic_memory_operand instead of just memory_operand.
4260
4261 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4262
4263         PR target/39445
4264         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
4265
4266 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4267
4268         PR target/39327
4269         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4270         (avx_addsubv4df3): Likewise.
4271         (*avx_addsubv4sf3): Likewise.
4272         (sse3_addsubv4sf3): Likewise.
4273
4274 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4275
4276         PR target/38824
4277         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
4278
4279 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
4280
4281         PR debug/39432
4282         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
4283         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4284         registers for allocnos created from user-defined variables.
4285
4286 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4287
4288         PR target/39181
4289         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
4290         of non-integer mode as well.
4291
4292 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
4293
4294         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
4295         for functions for which the parameter types are unknown.
4296
4297 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
4298
4299         PR target/39137
4300         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
4301         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
4302         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
4303         * config/i386/i386.c (ix86_local_alignment): For
4304         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
4305         long long variables on the stack to avoid dynamic realignment.
4306         Allow the first argument to be a decl rather than type.
4307         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
4308
4309 2009-03-11  Nick Clifton  <nickc@redhat.com>
4310
4311         PR target/5362
4312         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
4313         options.
4314         Add description to mno-lsim option.
4315         * config/mcore/mcore.h: Remove comment about deprecated m4align
4316         option.
4317         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
4318         * doc/invoke.texi: Add description of mno-lsim and
4319         mstack-increment options.
4320
4321         * config/fr30/fr30.opt: Document the -mno-lsim option.
4322         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
4323         and -mno-lsim options.
4324
4325 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4326
4327         * fold-const.c (fold_comparison): Only call fold_inf_compare
4328         if the mode supports infinities.
4329
4330 2009-03-11  Jason Merrill  <jason@redhat.com>
4331
4332         PR debug/39086
4333         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
4334         end already did.  Notice GIMPLE_CALL modifications of the result.
4335         Don't copy debug information from an ignored decl or a decl from
4336         another function.
4337
4338 2009-03-10  Richard Guenther  <rguenther@suse.de>
4339             Nathan Froyd  <froydnj@codesourcery.com>
4340
4341         PR middle-end/37850
4342         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
4343         (__divMODE3): Likewise.
4344
4345 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
4346
4347         PR tree-optimization/39394
4348         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
4349         DECL_SIZE_UNIT of variable length FIELD_DECLs.
4350
4351 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4352
4353         * recog.c (verfiy_changes): Disallow renaming of hard regs in
4354         inline asms for register asm ("") declarations.
4355
4356 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
4357
4358         * fold-const.c (fold_unary): Fix comment.
4359
4360 2009-03-07  Jan Hubicka  <jh@suse.cz>
4361
4362         PR target/39361
4363         * tree-inline.c (setup_one_parameter): Do replacement of const
4364         argument by constant in SSA form.
4365
4366 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4367
4368         PR middle-end/38028
4369         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
4370         determine alignment passed to assign_stack_local.
4371         (assign_parms_unsplit_complex): Likewise.
4372         * except.c (sjlj_build_landing_pads): Likewise.
4373
4374 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
4375
4376         PR middle-end/39360
4377         * tree-flow.h (add_referenced_var): Return bool instead of void.
4378         * tree-dfa.c (add_referenced_var): Return result of
4379         referenced_var_check_and_insert call.
4380         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
4381         of referenced_var_check_and_insert.
4382
4383         PR debug/39372
4384         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
4385         (gen_variable_die): Emit DW_AT_location on abstract static variable's
4386         DIE, don't emit it if abstract origin already has it.
4387         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
4388         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
4389
4390 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4391
4392         * genpreds.c (needs_variable): Fix parentheses at variable name
4393         detection.
4394         (write_tm_constrs_h): Indent generated code.
4395
4396 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4397
4398         * doc/extend.texi (Function Attributes): Add documentation
4399         for isr attributes.
4400
4401 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
4402
4403         PR debug/39387
4404         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
4405         take locus from its DECL_SOURCE_LOCATION instead of input_location.
4406
4407 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4408
4409         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
4410         the loop as bad.
4411
4412 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
4413
4414         PR debug/39379
4415         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
4416         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
4417
4418 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
4419
4420         * config/i386/i386.md (R8_REG, R9_REG): New constants.
4421         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
4422         constants instead of magic numbers.
4423         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
4424         (QI_REG_P): Ditto.
4425         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
4426         (x86_64_ms_abi_int_parameter_registers): Ditto.
4427         (x86_64_int_return_registers): Ditto.
4428         (ix86_maybe_switch_abi): Ditto.
4429         (ix86_expand_call): Ditto for clobbered_registers array.
4430         (ix86_hard_regno_mode_ok): Ditto.
4431         (x86_extended_QIreg_mentioned_p): Ditto.
4432
4433 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
4434
4435         PR tree-optimization/39349
4436         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
4437
4438         * combine.c (gen_lowpart_for_combine): Use omode when generating
4439         clobber.
4440
4441 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
4442
4443         PR rtl-optimization/39235
4444         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
4445
4446 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4447
4448         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
4449
4450 2009-03-04  Richard Guenther  <rguenther@suse.de>
4451
4452         PR tree-optimization/39362
4453         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
4454         that occur in abnormal PHIs should be varying.
4455
4456 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4457
4458         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
4459         Extend comments.
4460         (simple_iv):  Take loop as an argument instead of statement.
4461         * tree-scalar-evolution.h (simple_iv): Declaration changed.
4462         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
4463         to simple_iv.
4464         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
4465         Ditto.
4466         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
4467         * matrix-reorg.c (analyze_transpose): Ditto.
4468         * tree-data-ref.c (dr_analyze_innermost): Ditto.
4469         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
4470         * tree-predcom.c (ref_at_iteration): Ditto.
4471         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
4472
4473 2009-03-04  Richard Guenther  <rguenther@suse.de>
4474
4475         PR tree-optimization/39358
4476         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
4477         escaped_id and callused_id.
4478         (solve_graph): Likewise.
4479
4480 2009-03-04  Richard Guenther  <rguenther@suse.de>
4481
4482         PR tree-optimization/39339
4483         * tree-sra.c (try_instantiate_multiple_fields): Make it
4484         no longer ICE on the above.
4485
4486 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
4487
4488         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
4489         that fits within Pmode.
4490
4491 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4492
4493         PR middle-end/10109
4494         * tm.texi (LIBCALL_VALUE): Update description.
4495
4496 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4497
4498         PR middle-end/34443
4499         * doc/extend.texi (section): Update description.
4500
4501 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
4502
4503         PR middle-end/39345
4504         * tree-inline.c (remapped_type): New.
4505         (can_be_nonlocal): Call remapped_type instead of remap_type.
4506
4507 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4508
4509         PR fortran/39354
4510         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
4511         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
4512
4513 2009-03-03  Richard Guenther  <rguenther@suse.de>
4514
4515         PR middle-end/39272
4516         * tree.c (tree_nonartificial_location): New function.
4517         * tree.h (tree_nonartificial_location): Declare.
4518         * builtins.c (expand_builtin_memory_chk): Provide location
4519         of the call location for artificial function pieces.
4520         (maybe_emit_chk_warning): Likewise.
4521         (maybe_emit_sprintf_chk_warning): Likewise.
4522         (maybe_emit_free_warning): Likewise.
4523         * expr.c (expand_expr_real_1): Likewise.
4524
4525 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4526
4527         PR tree-optimization/39343
4528         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
4529         COMPONENT_REF t has ARRAY_TYPE.
4530
4531 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4532
4533         PR middle-end/39335
4534         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
4535         when the type precision of the induction variable should be
4536         larger than the type precision of nit.
4537         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
4538         * graphite.c (graphite_loop_normal_form): Same.
4539         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
4540
4541 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4542
4543         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
4544         (*call_1_rex64_ms_sysv): Use named constants instead of magic
4545         numbers to describe clobbered registers.
4546         (*call_value_0_rex64_ms_sysv): Ditto.
4547         * config/i386/mmx.md (mmx_emms): Ditto.
4548         (mmx_femms): Ditto.
4549
4550 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
4551
4552         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
4553         of ABI_64.
4554
4555 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4556
4557         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
4558         (spu_section_type_flags): New function.
4559
4560 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4561
4562         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
4563         reg_class_contents of FLOAT_REGS into a temporary.
4564
4565 2009-03-02  Richard Guenther  <rguenther@suse.de>
4566             Ira Rosen  <irar@il.ibm.com>
4567
4568         PR tree-optimization/39318
4569         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
4570         information to the vectorized statement.
4571
4572 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
4573
4574         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
4575         variable.  Use defined names instead of magic constants for REX SSE
4576         registers.
4577
4578 2009-03-01  Richard Guenther  <rguenther@suse.de>
4579
4580         PR tree-optimization/39331
4581         * omp-low.c (lower_send_shared_vars): Do not receive new
4582         values for the reference of DECL_BY_REFERENCE parms or results.
4583
4584 2009-03-01  Jan Hubicka  <jh@suse.cz>
4585
4586         PR debug/39267
4587         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
4588         BLOCK_NONLOCALIZED_VAR): New macros.
4589         (tree_block): Add nonlocalized_vars.
4590         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
4591         gen_decl_die): Add origin argument.  Allow generation of die with
4592         origin at hand only.
4593         (gen_member_die, gen_type_die_with_usage, force_decl_die,
4594         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
4595         of gen_*.
4596         (gen_block_die): Fix checking for unused blocks.
4597         (process_scope_var): Break out from .... ; work with origins only.
4598         (decls_for_scope) ... here; process nonlocalized list.
4599         (dwarf2out_ignore_block): Look for nonlocalized vars.
4600         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
4601         vars.
4602         (dump_scope_block): Dump them.
4603         * tree-inline.c (remap_decls): Handle nonlocalized vars.
4604         (remap_block): Likewise.
4605         (can_be_nonlocal): New predicate.
4606         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
4607
4608 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4609
4610         * configure: Regenerate.
4611
4612 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4613
4614         * optc-gen.awk: No need to duplicate option flags twice.
4615         Reuse help texts for duplicate options which do not have any.
4616
4617         * gcc.c (display_help): Document --version.
4618
4619         * gcc.c (main): If print_help_list and verbose_flag, ensure
4620         driver output comes before subprocess output.
4621
4622         * optc-gen.awk: Assign all remaining fields to help string,
4623         space-separated, for multi-line help in *.opt.
4624
4625         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
4626         -Wno-pedantic-ms-format is for MinGW targets only.
4627
4628         * doc/options.texi (Option file format): Fix bad indentation,
4629         restoring dropped sentence.
4630
4631 2009-02-28  Jan Hubicka  <jh@suse.cz>
4632
4633         * tree-inline.c (tree_function_versioning): Output debug info.
4634
4635 2009-02-28  Jan Hubicka  <jh@suse.cz>
4636
4637         PR debug/39267
4638         * tree-inline.c (setup_one_parameter): Do not copy propagate
4639         arguments when not optimizing.
4640
4641 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4642
4643         PR target/39327
4644         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4645         (avx_addsubv4df3): Likewise.
4646         (*avx_addsubv4sf3): Likewise.
4647         (sse3_addsubv4sf3): Likewise.
4648         (*avx_addsubv2df3): Likewise.
4649         (sse3_addsubv2df3): Likewise.
4650         (avx_unpckhps256): Correct item selectors.
4651         (avx_unpcklps256): Likewise.
4652         (avx_unpckhpd256): Likewise.
4653         (avx_unpcklpd256): Likewise.
4654
4655 2009-02-28  Jan Hubicka  <jh@suse.cz>
4656
4657         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
4658         static vars.
4659         (copy_arguments_for_versioning): If var is declared don't declare it.
4660         (tree_function_versioning): First setup substitutions and then copy
4661         args.
4662
4663 2009-02-27  Jan Hubicka  <jh@suse.cz>
4664
4665         PR debug/39267
4666         * cgraph.h (varpool_output_debug_info): Remove.
4667         * cgraphunit.c (varpool_output_debug_info): Remove.
4668         * dwarf2out.c (deferred_locations_struct): New struct
4669         (deferred_locations): New type.
4670         (deferred_locations_list): New static var.
4671         (deffer_location): New function.
4672         (gen_variable_die): Use it.
4673         (decls_for_scope): Output info on local static vars.
4674         (dwarf2out_finish): Process deferred locations.
4675         * varpool.c (varpool_output_debug_info): Remove.
4676
4677 2009-02-27  Jan Hubicka  <jh@suse.cz>
4678
4679         PR debug/39267
4680         * tree.h (TREE_PROTECTED): Fix comment.
4681         (BLOCK_HANDLER_BLOCK): Remove.
4682         (struct tree_block): Remove handler_block add body_block.
4683         (inlined_function_outer_scope_p): New.
4684         (is_body_block): Remove.
4685         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
4686         * dwarf2out.c (is_inlined_entry_point): Remove.
4687         (add_high_low_attributes): Use inlined_function_outer_scope_p.
4688         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
4689         code.
4690         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
4691         * gimplify.c (gimplify_expr): Gimplify body blocks.
4692         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
4693         block with multiple subblocks.
4694         (dump_scope_block): Prettier output; dump more flags and info.
4695         (dump_scope_blocks): New.
4696         (remove_unused_locals): Use dump_scope_blocks.
4697         * tree-flow.h (dump_scope_blocks): Declare.
4698         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
4699         * stmt.c (is_body_block): Remove.
4700         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
4701         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
4702
4703 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
4704
4705         PR middle-end/39308
4706         * graphite.c (graphite_loop_normal_form): Do not call 
4707         number_of_iterations_exit from a gcc_assert.
4708
4709 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4710
4711         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
4712         jumps if COND is NULL.
4713         (find_cond_jump): New function.
4714         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
4715         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
4716
4717 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
4718
4719         * config/alpha/alpha.h (alpha_expand_mov): Return false if
4720         force_const_mem returns NULL_RTX.
4721
4722 2009-02-26  Jan Hubicka  <jh@suse.cz>
4723
4724         PR debug/39267
4725         * cgraph.h (varpool_output_debug_info): Remove.
4726         * cgraphunit.c (varpool_output_debug_info): Remove.
4727         * dwarf2out.c (deferred_locations_struct): New struct
4728         (deferred_locations): New type.
4729         (deferred_locations_list): New static var.
4730         (deffer_location): New function.
4731         (gen_variable_die): Use it.
4732         (decls_for_scope): Output info on local static vars.
4733         (dwarf2out_finish): Process deferred locations.
4734         * varpool.c (varpool_output_debug_info): Remove.
4735
4736 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4737
4738         PR rtl-optimization/39241
4739         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
4740         to subreg_offset_representable_p.
4741
4742 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4743
4744         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
4745         execute function prototype.  Get f and nregs from max_reg_num
4746         and get_insns.  Remove the first backward pass as it's dead,
4747         guard the forward pass by flag_expensive_optimizations.
4748         (rest_of_handle_regmove): Delete.
4749         (pass_regmove): Replace it with regmove_optimize.
4750
4751 2009-02-25  Martin Jambor  <mjambor@suse.cz>
4752
4753         PR tree-optimization/39259
4754         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
4755         calls_alloca function flags.
4756         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
4757         calls are detected.
4758
4759 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4760
4761         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
4762         flags_set_1_rtx, flags_set_1_set): Delete.
4763         (regmove_optimize): Do not call mark_flags_life_zones.
4764
4765 2009-02-24  Julian Brown  <julian@codesourcery.com>
4766
4767         PR target/35965
4768         * config/arm/arm.c (require_pic_register): Only set
4769         cfun->machine->pic_reg once per function.
4770
4771 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
4772
4773         * doc/invoke.texi (Link Options): Document an easier way to pass
4774         options that take arguments to the GNU linker using -Xlinker and -Wl.
4775
4776 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
4777
4778         PR target/33785
4779         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
4780
4781 2009-02-24  Richard Guenther  <rguenther@suse.de>
4782
4783         PR debug/39285
4784         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
4785
4786 2009-02-24  Richard Guenther  <rguenther@suse.de>
4787             Zdenek Dvorak  <ook@ucw.cz>
4788
4789         PR tree-optimization/39233
4790         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
4791         from converting them to a generic type.
4792
4793 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
4794
4795         PR tree-optimization/39260
4796         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
4797         contains a condition with a real type.
4798         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
4799
4800 2009-02-23  Jason Merrill  <jason@redhat.com>
4801
4802         PR c++/38880
4803         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
4804         narrowing_initializer_constant_valid_p.
4805         (narrowing_initializer_constant_valid_p): Don't return 
4806         null_pointer_node for adding a pointer to itself.
4807
4808 2009-02-23  Jan Hubicka  <jh@suse.cz>
4809
4810         PR c/12245
4811         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
4812         resizing.
4813
4814 2009-02-23  Jan Hubicka  <jh@suse.cz>
4815
4816         PR tree-optimization/37709
4817         * tree.c (block_ultimate_origin): Move here from dwarf2out.
4818         * tree.h (block_ultimate_origin): Declare.
4819         * dwarf2out.c (block_ultimate_origin): Move to tree.c
4820         * tree-ssa-live.c (remove_unused_scope_block_p):
4821         Eliminate blocks containig no instructions nor live variables nor
4822         nested blocks.
4823         (dump_scope_block): New function.
4824         (remove_unused_locals): Enable removal of dead blocks by default;
4825         enable dumping at TDF_DETAILS.
4826
4827 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4828
4829         * config/i386/i386.c (classify_argument): Don't allow COImode
4830         and OImode.
4831         (function_arg_advance_32): Don't allow OImode.
4832         (function_arg_32): Likewise.
4833         (function_value_32): Likewise.
4834         (return_in_memory_32): Likewise.
4835         (function_arg_64): Remove OImode comment.
4836
4837 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4838
4839         PR target/39261
4840         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4841         ix86_expand_vector_set for V4DImode in 64bit mode only.
4842         (ix86_expand_vector_init_one_var): Likewise.
4843
4844 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
4845
4846         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
4847
4848 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4849
4850         PR bootstrap/39257
4851         * loop-iv.c: Revert last change.
4852         * emit-rtl.c: Likewise.
4853
4854 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4855
4856         PR target/39256
4857         * config/i386/i386.c (type_natural_mode): Remove an extra
4858         space in the warning message.
4859         (function_value_32): Handle 32-byte vector modes.
4860         (return_in_memory_32): Likewise.
4861
4862 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4863
4864         * loop-iv.c (truncate_value): New function.
4865         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
4866         of lowpart_subreg.
4867         (lowpart_subreg): Move to...
4868         * emit-rtl.c: ...here.
4869
4870 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4871
4872         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
4873         accidental and undocumented change at revision 140860.
4874
4875 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
4876
4877         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
4878         take gimple_seq * arguments.
4879         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
4880         types_compatible_p langhook.
4881
4882 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
4883             Joseph Myers  <joseph@codesourcery.com>
4884
4885         * config/arm/arm.c (arm_builtin_va_list): New function.
4886         (arm_expand_builtin_va_start): Likewise.
4887         (arm_gimplify_va_arg_expr): Likewise.
4888         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
4889         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
4890         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
4891         (va_list_type): New variable.
4892         (arm_mangle_type): Mangle va_list_type appropriately.
4893
4894 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4895
4896         PR middle-end/39157
4897         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
4898         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
4899         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
4900         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
4901         parameter to 1000 for -O1 by default.
4902         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
4903         parameter.
4904         * loop-invariant.c: Include params.h.
4905         (move_loop_invariants): Don't call move_single_loop_invariants on
4906         very large loops.
4907
4908 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
4909
4910         * calls.c (emit_library_call_value_1): Use slot_offset instead of
4911         offset when calculating bounds for indexing stack_usage_map.  Fixes
4912         a buffer overflow with certain target setups.
4913
4914 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR target/39240
4917         * calls.c (expand_call): Clear try_tail_call if caller and callee
4918         disagree in promotion of function return value.
4919
4920 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
4921
4922         PR target/39175
4923         * c-common.c (c_determine_visibility): If visibility changed and
4924         DECL_RTL has been already set, call make_decl_rtl to update symbol
4925         flags.
4926
4927 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4928
4929         PR c++/39188
4930         * varasm.c (assemble_variable): Don't check DECL_NAME when
4931         globalizing a variable.
4932
4933 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
4934
4935         PR c/38483
4936         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
4937         expression before any __builtin_trap call.
4938         * c-typeck.c (build_function_call): Convert and check function
4939         arguments before generating a call to a trap.  Evaluate the
4940         function arguments before the trap.
4941
4942 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
4943
4944         PR target/39228
4945         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
4946         (UNSPEC_FXAM_MEM): New unspec.
4947         (fxam<mode>2_i387_with_temp): New insn and split pattern.
4948         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
4949         memory using fxam<mode>2_i387_with_temp to remove excess precision.
4950
4951 2009-02-19  Richard Guenther  <rguenther@suse.de>
4952
4953         PR tree-optimization/39207
4954         PR tree-optimization/39074
4955         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
4956         storedanything_tree): New.
4957         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
4958         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
4959         (build_succ_graph): Add edges from STOREDANYTHING to all
4960         non-direct nodes.
4961         (init_base_vars): Initialize STOREDANYTHING.
4962         (compute_points_to_sets): Free substitution info after
4963         building the succ graph.
4964         (ipa_pta_execute): Likewise.
4965
4966         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
4967         field.
4968         (do_ds_constraint): Do not add to special var or non-pointer
4969         field solutions.
4970         (type_could_have_pointers): Split out from ...
4971         (could_have_pointers): ... here.  For arrays use the element type.
4972         (create_variable_info_for): Initialize may_have_pointers.
4973         (new_var_info): Likewise.
4974         (handle_lhs_call): Make the HEAP variable unknown-sized.
4975         (intra_create_variable_infos): Use a type with pointers for
4976         PARM_NOALIAS, make it unknown-sized.
4977
4978 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
4979
4980         PR target/39224
4981         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
4982
4983 2009-02-18  Jason Merrill  <jason@redhat.com>
4984
4985         PR target/39179
4986         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
4987         value if DECL_EXTERNAL.
4988         * tree-sra.c (sra_walk_gimple_assign): Likewise.
4989         * target.h (gcc_target::binds_local_p): Clarify "module".
4990         * tree.h (TREE_PUBLIC): Clarify "module".
4991
4992 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
4993
4994         PR target/38891
4995         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
4996         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
4997
4998 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
4999
5000         PR target/39082
5001         * c.opt (Wabi): Support C and ObjC.
5002         (Wpsabi): New.
5003
5004         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
5005
5006         * config/i386/i386.c (classify_argument): Warn once about the ABI
5007         change when passing union with long double.
5008
5009         * doc/invoke.texi: Update -Wabi for warning psABI changes.
5010
5011 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
5012
5013         PR c/35447
5014         * c-parser.c (c_parser_compound_statement): Always enter and leave
5015         a scope.
5016
5017 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5018
5019         PR target/34587
5020         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
5021
5022 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
5023
5024         PR tree-optimization/36922
5025         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
5026         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
5027         Likewise.
5028
5029 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5030
5031         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
5032         to 0 for EABI64.
5033
5034 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5035
5036         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
5037
5038 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5039
5040         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
5041         tree sharing.
5042
5043 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
5044             Richard Sandiford  <rdsandiford@googlemail.com>
5045
5046         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
5047         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
5048         (loongson_biadd): ...this.
5049
5050 2009-02-17  Richard Guenther  <rguenther@suse.de>
5051
5052         PR tree-optimization/39202
5053         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
5054         a var make sure to follow existing collapses.
5055
5056 2009-02-17  Richard Guenther  <rguenther@suse.de>
5057
5058         PR middle-end/39214
5059         * langhooks.c (lhd_print_error_function): Check for NULL block.
5060
5061 2009-02-17  Richard Guenther  <rguenther@suse.de>
5062
5063         PR tree-optimization/39204
5064         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
5065         of the PHI arg.
5066
5067 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
5068
5069         * config/soft-fp/double.h: Update from glibc CVS.
5070
5071 2009-02-17  Richard Guenther  <rguenther@suse.de>
5072
5073         PR tree-optimization/39207
5074         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
5075         strict-aliasing warnings for pointers pointing to NULL.
5076
5077 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
5078
5079         PR c/35446
5080         * c-parser.c (c_parser_braced_init): Call pop_init_level when
5081         skipping until next close brace.
5082
5083 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
5084
5085         PR target/37049
5086         * config/i386/i386.c (ix86_expand_push): Set memory alignment
5087         to function argument boundary.
5088
5089 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5090
5091         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
5092         in the lea_add. Reload eventually constraints it properly.
5093         * config/picochip/constraints.md : Remove the target constraint
5094         "b", since it is not needed anymore.
5095
5096 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
5097
5098         * gthr-dce.h: Uglify function parameter and local variable names.
5099         * gthr-gnat.h: Likewise.
5100         * gthr-mipssde.h: Likewise.
5101         * gthr-nks.h: Likewise.
5102         * gthr-posix95.h: Likewise.
5103         * gthr-posix.h: Likewise.
5104         * gthr-rtems.h: Likewise.
5105         * gthr-single.h: Likewise.
5106         * gthr-solaris.h: Likewise.
5107         * gthr-tpf.h: Likewise.
5108         * gthr-vxworks.h: Likewise.
5109         * gthr-win32.h: Likewise.
5110
5111 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5112
5113         PR target/39196
5114         * config/i386/i386.md: Restrict the new peephole2 to move
5115         between MMX/SSE registers.
5116
5117 2009-02-15  Richard Guenther  <rguenther@suse.de>
5118
5119         Revert
5120         2009-02-13  Richard Guenther  <rguenther@suse.de>
5121
5122         * configure.ac: Enable LFS.
5123         * configure: Re-generate.
5124         * config.in: Likewise.
5125
5126 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5127
5128         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
5129         spu_srqwbyte, spu_srqwbytebc): Define.
5130         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
5131         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
5132         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
5133         "shrqby_<mode>"): New insn-and-split patterns.
5134         * config/spu/spu.c (expand_builtin_args): Determine and return
5135         number of operands using spu_builtin_description data.
5136         (spu_expand_builtin_1): Use it.
5137
5138 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
5139
5140         PR target/38056
5141         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
5142         TARGET_CONST_GP.
5143
5144 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5145
5146         PR target/39149
5147         * config/i386/i386.c (override_options): Correct warning
5148         messages for -malign-loops, -malign-jumps and -malign-functions.
5149
5150 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5151
5152         PR target/39152
5153         * config/i386/i386.md: Restrict the new peephole2 to move
5154         between the general purpose registers.
5155
5156 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5157
5158         PR target/39162
5159         * config/i386/i386.c (type_natural_mode): Add a new argument.
5160         Return the original mode and warn ABI change if vector size is 32byte.
5161         (function_arg_advance): Updated.
5162         (function_arg): Likewise.
5163         (ix86_function_value): Likewise.
5164         (ix86_return_in_memory): Likewise.
5165         (ix86_sol10_return_in_memory): Likewise.
5166         (ix86_gimplify_va_arg): Likewise.
5167         (function_arg_32): Don't warn ABX ABI change here.
5168         (function_arg_64): Likewise.
5169
5170 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5171
5172         * loop-iv.c (implies_p): In the final case, test that operands 0
5173         of the two comparisons match.
5174
5175         * config/bfin/bfin.c (find_prev_insn_start): New function.
5176         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
5177         (find_next_insn_start): Move.
5178
5179 2009-02-13  Richard Guenther  <rguenther@suse.de>
5180
5181         * configure.ac: Enable LFS.
5182         * configure: Re-generate.
5183         * config.in: Likewise.
5184
5185 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
5186
5187         PR c/35444
5188         * c-parser.c (c_parser_parms_list_declarator): Discard pending
5189         sizes on syntax error after some arguments have been parsed.
5190
5191 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
5192
5193         * doc/invoke.texi (-fira): Remove.
5194
5195 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5196
5197         * caller-save.c: Replace regclass.c with reginfo.c in comments.
5198         * recog.c: Likewise.
5199         * rtl.h: Likewise.
5200
5201 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
5202
5203         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
5204         (umul_ppmm): Likewise.
5205         (count_leading_zeros): Likewise.
5206         (count_trailing_zeros): Likewise.
5207         (UMUL_TIME): Likewise.
5208
5209 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5210
5211         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
5212         soft-fp/t-softfp to tmake_file.
5213
5214         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
5215         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
5216         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
5217         IA64_BUILTIN_INFQ]: New.
5218         (ia64_init_builtins): Initialize __builtin_infq,
5219         __builtin_fabsq and __builtin_copysignq if not HPUX.
5220         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
5221         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
5222
5223         * config/ia64/lib1funcs.asm (__divtf3): Define only if
5224         SHARED is defined.
5225         (__fixtfti): Likewise.
5226         (__fixunstfti): Likewise.
5227         (__floattitf): Likewise.
5228
5229         * config/ia64/libgcc-glibc.ver: New.
5230         * config/ia64/t-fprules-softfp: Likewise.
5231         * config/ia64/sfp-machine.h: Likewise.
5232
5233         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
5234         (LIBGCC2_TF_CEXT): Likewise.
5235         (TF_SIZE): Likewise.
5236         (TARGET_INIT_LIBFUNCS): Likewise.
5237
5238         * config/ia64/t-glibc (SHLINB_MAPFILES):
5239         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
5240
5241 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5242
5243         * config/i386/i386.c (construct_container): Rewrite processing
5244         BLKmode with X86_64_SSE_CLASS.
5245
5246 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
5247
5248         PR target/39152
5249         * config/i386/i386.md: Replace simplify_replace_rtx with
5250         replace_rtx in the new peephole2.
5251
5252 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
5253
5254         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
5255         loop unrolling do not happen at -O2.
5256
5257 2009-02-12  Michael Matz  <matz@suse.de>
5258
5259         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
5260
5261 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
5262
5263         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
5264         for -g3.
5265
5266 2009-02-12  Ben Elliston  <bje@au.ibm.com>
5267
5268         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
5269         patterns when updating the back chain.  Missed in the 2009-02-10
5270         change.
5271
5272 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
5273
5274         * doc/extend.texi (Decimal Floating Types): Update identifier of
5275         draft TR and list of missing support.
5276
5277 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
5278
5279         PR middle-end/39154
5280         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
5281         bit to variable length decl's flags, add it also to its
5282         pointer replacement variable.
5283
5284 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
5285             Jakub Jelinek  <jakub@redhat.com>
5286
5287         PR target/39118
5288         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
5289         (memory_blockage): New expander.
5290         (*memory_blockage): New insn pattern.
5291         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
5292         instead of general blockage at the end of function prologue when
5293         frame pointer is used to access red zone area.  Do not emit blockage
5294         when profiling, it is emitted in generic code.
5295         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
5296         function epilogue when frame pointer is used to access red zone area.
5297
5298 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
5299
5300         PR target/38824
5301         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
5302         by arithmetic with memory operands.
5303         * config/i386/predicates.md (commutative_operator): New.
5304
5305 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
5306
5307         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
5308         bulleted lists.
5309
5310 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
5311
5312         * alias.h (record_alias_subset): Declare.
5313         * alias.c (record_alias_subset): Make global.
5314
5315 2009-02-10  Nick Clifton  <nickc@redhat.com>
5316
5317         * tree-parloops.c: Change license to GPLv3.
5318         * ipa-struct-reorg.c: Change license to GPLv3.
5319         * ipa-struct-reorg.h: Change license to GPLv3.
5320
5321 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
5322
5323         PR c/39084
5324         * c-decl.c (start_struct): Return NULL on error.
5325
5326 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
5327
5328         PR middle-end/39124
5329         * cfgloopmanip.c (remove_path): Call remove_bbs after
5330         cancel_loop_tree, not before it.
5331
5332         PR target/39139
5333         * function.h (struct function): Add has_local_explicit_reg_vars bit.
5334         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
5335         VAR_DECLs were seen.
5336         * tree-ssa-live.c (remove_unused_locals): Recompute
5337         cfun->has_local_explicit_reg_vars.
5338         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
5339         copies or clearings if cfun->has_local_explicit_reg_vars.
5340
5341 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
5342
5343         PR target/39118
5344         * config/i386/i386.c (expand_prologue): Emit blockage at the end
5345         of function prologue when frame pointer is used to access
5346         red zone area.
5347
5348 2009-02-10  Richard Guenther  <rguenther@suse.de>
5349
5350         PR middle-end/39127
5351         * gimplify.c (gimple_regimplify_operands): Always look if
5352         we need to create a temporary.
5353
5354 2009-02-10  Richard Guenther  <rguenther@suse.de>
5355
5356         PR tree-optimization/39132
5357         * tree-loop-distribution.c (todo): New global var.
5358         (generate_memset_zero): Trigger TODO_rebuild_alias.
5359         (tree_loop_distribution): Return todo.
5360
5361 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
5362
5363         PR target/39119
5364         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
5365         (x86_64_reg_class_name): Removed.
5366         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
5367         first one isn't X86_64_SSE_CLASS or any other ones aren't
5368         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
5369         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
5370         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
5371         and 3 X86_64_SSEUP_CLASS.
5372         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
5373         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
5374
5375 2009-02-10  Ben Elliston  <bje@au.ibm.com>
5376
5377         * config/rs6000/rs6000.md (allocate_stack): Always use an update
5378         form instruction to update the stack back chain word, even if the
5379         user has disabled the generation of update instructions.
5380         (movdi_<mode>_update_stack): New.
5381         (movsi_update_stack): Likewise.
5382         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
5383         always use an update form instruction to update the stack back
5384         chain word.
5385
5386 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
5387
5388         PR middle-end/38953
5389         * graphite.c (if_region_set_false_region): After moving a region in
5390         the false branch of a condition, remove the empty dummy basic block.
5391         (gloog): Remove wrong fix for PR38953.
5392
5393 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5394
5395         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
5396         generation due to implicit sign extension.
5397
5398 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
5399
5400         PR middle-end/38981
5401         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
5402         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
5403
5404 2009-02-09  Richard Guenther  <rguenther@suse.de>
5405
5406         PR middle-end/35202
5407         * convert.c (convert_to_real): Disable (float)fn((double)x)
5408         to fnf(x) conversion if errno differences may occur and
5409         -fmath-errno is set.
5410
5411 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
5412
5413         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
5414         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5415         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5416
5417 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5418
5419         PR c/35434
5420         * c-common.c (handle_alias_attribute): Disallow attribute for
5421         anything not a FUNCTION_DECL or VAR_DECL.
5422
5423 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
5424
5425         PR c/39035
5426         * real.c (do_compare): Special-case compare of zero against
5427         decimal float value.
5428
5429 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5430
5431         PR c/36432
5432         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
5433         as indicating flexible array members unless the field itself is
5434         being declarared as the incomplete array.
5435
5436 2009-02-06  Jan Hubicka  <jh@suse.cz>
5437
5438         PR tree-optimization/38844
5439         * ipa-inline.c (try_inline): Stop inlining recursion when edge
5440         is already inlined.
5441
5442 2009-02-06  Richard Guenther  <rguenther@suse.de>
5443
5444         PR middle-end/38977
5445         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
5446         fork because we may expand it as __gcov_fork.
5447
5448 2009-02-06  Nick Clifton  <nickc@redhat.com>
5449
5450         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
5451
5452 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
5453
5454         PR tree-optimization/35659
5455         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
5456         vn_phi_eq): Shortcut if hashcode does not match.
5457         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
5458         NULL operands.
5459         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
5460         and avoid iterative_hash_expr.
5461         (FOR_EACH_VALUE_ID_IN_SET): New.
5462         (value_id_compare): Remove.
5463         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
5464         sort expressions by value id.
5465
5466 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5467
5468         PR target/38991
5469         * config/sh/predicates.md (general_movsrc_operand): Don't check
5470         the subreg of system registers here.
5471
5472 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
5473
5474         PR c++/39106
5475         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
5476         on the copied decl.
5477
5478 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
5479
5480         PR rtl-optimization/39110
5481         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
5482         addresses, not aligned ones.
5483
5484 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
5485             Richard Guenther  <rguenther@suse.de>
5486
5487         PR tree-optimization/39100
5488         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
5489         comment says and add edges.
5490
5491 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
5492
5493         PR c/35435
5494         * c-common.c (handle_tls_model_attribute): Ignore attribute for
5495         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
5496
5497 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
5498
5499         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
5500         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
5501         register_bb_in_sese, new_sese, free_sese): Moved.
5502         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
5503         outermost_loop_in_scop, build_scop_iteration_domain,
5504         expand_scalar_variables_ssa_name, get_vdef_before_scop,
5505         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
5506         Use loop_in_sese_p instead of loop_in_scop_p.
5507         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
5508         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
5509         (scopdet_basic_block_info): Fix bug in scop detection.
5510         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
5511         eq_loop_to_cloog_loop): Remove.
5512         (nb_loops_around_loop_in_scop, nb_loop
5513         ref_nb_loops): Moved here...
5514         * graphite.h (ref_nb_loops): ... from here.
5515         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
5516         (loop_domain_dim, loop_iteration_vector_dim): Remove.
5517         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
5518         * testsuite/gcc.dg/graphite/scop-19.c: New
5519
5520 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
5521             Hans-Peter Nilsson  <hp@axis.com>
5522
5523         PR rtl-optimization/37889
5524         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
5525         Move offset handling from PLUS to before the switch.  Use new
5526         arguments when considering SYMBOL_REFs too.
5527         (rtx_addr_can_trap_p): Pass dummy offset and size.
5528         (enum may_trap_p_flags): Remove.
5529         (may_trap_p_1): Pass size from MEM_SIZE.
5530
5531         PR rtl-optimization/38921
5532         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
5533         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
5534         * rtlanal.c (may_trap_after_code_motion_p): Delete.
5535         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
5536
5537 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
5538
5539         AVX Programming Reference (January, 2009)
5540         * config/i386/sse.md (*vpclmulqdq): New.
5541
5542 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
5543
5544         PR tree-optimization/38977
5545         PR gcov-profile/38292
5546         * calls.c (special_function_p): Disregard __builtin_ prefix.
5547
5548 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
5549
5550         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
5551         non-indexable addresses even before reload.
5552
5553 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5554
5555         PR c/29129
5556         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
5557         as having variable size.  Do not give an error for unnamed
5558         parameters with [*] declarators.  Give a warning for type names
5559         with [*] declarators and mark them as variable size.
5560         * c-parser.c (c_parser_sizeof_expression): Do not give an error
5561         for sizeof applied to [*] type names.
5562
5563 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5564
5565         PR C++/36607
5566         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
5567
5568 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5569
5570         * gcc.c (process_command): Update copyright notice dates.
5571         * gcov.c (print_version): Likewise.
5572         * gcov-dump.c (print_version): Likewise.
5573         * mips-tfile.c (main): Likewise.
5574         * mips-tdump.c (main): Likewise.
5575
5576 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5577
5578         PR c/35433
5579         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
5580         for composite type involving a zero-length array type.
5581
5582 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5583
5584         PR target/35318
5585         * function.c (match_asm_constraints_1): Skip over
5586         initial optional % in the constraint.
5587
5588         PR inline-asm/39059
5589         * c-parser.c (c_parser_postfix_expression): If fixed point is not
5590         supported, don't accept FIXED_CSTs.
5591         * c-decl.c (finish_declspecs): Error if fixed point is not supported
5592         and _Sat is used without _Fract/_Accum.  Set specs->type to
5593         integer_type_node for cts_fract/cts_accum if fixed point is not
5594         supported.
5595
5596 2009-02-02  Catherine Moore  <clm@codesourcery.com>
5597
5598         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
5599
5600 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5601
5602         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
5603         (ABI_HAS_64BIT_SYMBOLS): Use it.
5604         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
5605
5606 2009-02-02  Paul Brook  <paul@codesourcery.com>
5607
5608         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
5609
5610 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
5611
5612         PR inline-asm/39058
5613         * recog.h (asm_operand_ok): Add constraints argument.
5614         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
5615         recurse on matching constraint.
5616         (check_asm_operands): Pass constraints as 3rd argument to
5617         asm_operand_ok.  Don't look up matching constraint here.
5618         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
5619         to asm_operand_ok.
5620
5621 2009-02-02  Ben Elliston  <bje@au.ibm.com>
5622
5623         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
5624         TARGET_NARROW_VOLATILE_BITFIELD macro names.
5625
5626 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5627
5628         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
5629         information.  Remove some obsolete information.  Reorganize.
5630
5631         * config/pa/fptr.c: Revert license to GPL 2.
5632         * config/pa/milli64.S: Likewise.
5633
5634 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5635
5636         PR target/38904
5637         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
5638         LIBRARY name in, instead of hard-coding it.
5639         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
5640         extra target make frag to tmake_files according to EH model.
5641         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
5642         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
5643         frags that define makefile variable EH_MODEL appropriately.
5644         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
5645         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
5646         to "-sjlj" according to type of EH configured.
5647         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5648         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
5649         to "_sjlj" according to type of EH configured.
5650         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5651         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
5652         (SHLIB_LINK):  Add missing semicolon to if-else construct.
5653         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5654         string value of "pe_dll" command-line option.
5655         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
5656         (SHLIB_SONAME):  Use it when overriding t-cygming default.
5657         (SHLIB_IMPLIB):  Override t-cygming default.
5658         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5659         string value of "pe_dll" command-line option.
5660
5661 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5662
5663         PR target/38952
5664         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
5665         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
5666
5667 2009-01-31  Richard Guenther  <rguenther@suse.de>
5668
5669         PR tree-optimization/38937
5670         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
5671         computing the transitive closure.
5672
5673 2009-01-30  Richard Guenther  <rguenther@suse.de>
5674
5675         PR tree-optimization/39041
5676         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
5677         Propagate variable indices only if the types match for this stmt.
5678
5679 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
5680
5681         PR target/39013
5682         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
5683         inline but never defined.
5684
5685 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
5686
5687         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
5688         (*insv_h_di_reg_extimm): New insn.
5689         (*insv_l<mode>_reg_extimm): New insn.
5690
5691 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5692
5693         * config/picochip/picochip.c (flag_conserve_stack): set
5694         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
5695         fconserve-stack. Reduce call-overhead used by inliner.
5696
5697 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5698
5699         PR/38157
5700         * common.opt (flag_conserve_stack): Initialised to zero.
5701
5702 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
5703
5704         PR/39002
5705         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
5706         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
5707         method.
5708
5709 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
5710
5711         * ira-color.c (allocno_reload_assign): Update comments.
5712         * regmove.c (regmove_optimize): Likewise.
5713
5714         * ra.h: Removed.
5715
5716 2009-01-29  Robert Millan  <rmh@aybabtu.com>
5717
5718         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
5719         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
5720         `MD_UNWIND_SUPPORT'.
5721         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
5722
5723 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
5724
5725         PR tree-optimization/39007
5726         * tree-loop-distribution.c (generate_builtin): Use
5727         recompute_dominator to compute the immediate dominator of the
5728         basic block just after the loop.
5729
5730 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5731
5732         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
5733         (ASM_OUTPUT_DWARF_PCREL): Define.
5734
5735 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
5736
5737         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
5738         * doc/passes.texi: Remove entries about regclass, local-alloc, and
5739         global.  Modify entries about regmove and IRA.
5740
5741         * ra-conflict.c: Remove the file.
5742
5743         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
5744
5745         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
5746         (pass_regclass_init): Rename to pass_reginfo_init.
5747
5748         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
5749
5750         * toplev.h (flag_ira): Remove.
5751
5752         * caller-save.c (setup_save_areas): Remove flag_ira.
5753
5754         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
5755
5756         * global.c: Remove the file.
5757
5758         * opts.c (decode_options): Remove flag_ira.
5759
5760         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
5761
5762         * regmove.c: Modify file description.
5763         (find_use_as_address, try_auto_increment): Define them only if
5764         AUTO_INC_DEC is defined.
5765         (replacement_quality, replace_in_call_usage, fixup_match_1,
5766         stable_and_no_regs_but_for_p): Remove.
5767         (reg_set_in_bb): Make it static.
5768         (regmove_optimize): Remove flag_ira and code which worked for
5769         !flag_ira.
5770
5771         * local-alloc.c: Remove the file.
5772
5773         * common.opt (fira): Remove.
5774
5775         * ira.c: Include except.h.
5776         (eliminable_regset): Move from global.c.
5777         (mark_elimination): Ditto.  Remove flag_ira.
5778         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
5779         equiv_mem_modified, validate_equiv_mem_from_store,
5780         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
5781         contains_replace_regs, memref_referenced_p, memref_used_between_p,
5782         no_equiv, recorded_label_ref): Move from local-alloc.c.
5783         (update_equiv_regs): Ditto.  Make it static.
5784         (print_insn_chain, print_insn_chains): Move it from global.c.
5785         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
5786         (build_insn_chain): Ditto.  Make it static.
5787         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
5788         Rename to init_live_subregs.
5789         (gate_ira): Remove flag_ira.
5790
5791         * regclass.c: Rename reginfo.c.  Change file description.
5792         (FORBIDDEN_INC_DEC_CLASSES): Remove.
5793         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
5794         (init_reg_sets_1): Remove code for evaluation of
5795         reg_class_superclasses and losing_caller_save_reg_set.
5796         (init_regs): Remove init_reg_autoinc.
5797         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
5798         ok_for_base_p_nonstrict): Remove.
5799         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
5800         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
5801         corresponding entries.
5802         (dump_regclass, record_operand_costs, scan_one_insn,
5803         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
5804         record_address_regs, auto_inc_dec_reg_p): Remove.
5805         (gt-regclass.h): Rename to gt-reginfo.h.
5806
5807         * rtl.h (dump_global_regs, retry_global_alloc,
5808         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
5809
5810         * Makefile.in (RA_H): Remove.
5811         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
5812         Rename regclass.o to reginfo.o.
5813         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
5814         gt-reginfo.h.
5815         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
5816         (GTFILES): Rename regclass.c to reginfo.c.
5817
5818         * passes.c (init_optimization_passes): Remove pass_local_alloc and
5819         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
5820
5821         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5822         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
5823         Remove flag_ira.
5824         (finish_spills): Ditto.  Remove code for !flag_ira.
5825         
5826 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
5827
5828         PR middle-end/35854
5829         * doc/invoke.texi (rtl debug options): Complete rewrite.
5830         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
5831         to auto_inc_dec".
5832         * mode-switching.c (pass_mode_switching): Rename pass from
5833         "mode-sw" to "mode_sw".
5834         * except.c (pass_convert_to_eh_ranges): Rename pass from
5835         "eh-ranges" to "eh_ranges".
5836         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
5837         to "subreg1".
5838                 
5839         
5840 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
5841             Alexander Monakov  <amonakov@ispras.ru>
5842
5843         PR middle-end/38857
5844         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
5845         register.
5846         (move_exprs_to_boundary): Change return type and pass through
5847         should_move from move_op.  Relax assert.  Update usage ...
5848         (schedule_expr_on_boundary): ... here.  Use should_move instead of
5849         cant_move.
5850         (move_op_orig_expr_found): Indicate that insn was disconnected from
5851         stream.
5852         (code_motion_process_successors): Do not call after_merge_succs
5853         callback if original expression was not found when traversing any of
5854         the branches.
5855         (code_motion_path_driver): Change return type.  Update prototype.
5856         (move_op): Update comment.  Add a new parameter (should_move).  Update
5857         prototype.  Set *should_move based on indication provided by
5858         move_op_orig_expr_found.
5859
5860 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
5861
5862         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
5863         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
5864         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
5865         * config/rs6000/rs6000.c (rs6000_override_options): Default
5866         avoid-indexed-addresses on for Power6, off for everything else.
5867         (avoiding_indexed_address_p): New function.
5868         (rs6000_legitimize_address): Use it.
5869         (rs6000_legitimate_address): Likewise.
5870         * config/rs6000/rs6000.md (movXX_updateX): Likewise
5871
5872 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
5873
5874         PR tree-optimization/38997
5875         * tree-loop-distribution.c (generate_memset_zero): Use
5876         POINTER_PLUS_EXPR for a pointer addition.
5877
5878 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5879
5880         * config/s390/s390.md (bswap<mode>2): New pattern added.
5881
5882 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5883
5884         * config/s390/s390.md (*tls_load_31): Added type attribute.
5885
5886 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5887
5888         * config/s390/s390.md: Fix a few comments.
5889
5890 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5891
5892         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
5893         (*tm<mode>_full): Fixed z10prop attribute.
5894         (*tst<mode>_extimm): Fixed z10prop attribute.
5895         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
5896         (*tstqiCCT_cconly): Fixed z10prop attribute.
5897         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
5898         (*movsi_larl): Fixed z10prop attribute.
5899         (*movsi_zarch): Fixed z10prop attribute.
5900         (*movsi_eas): Fixed z10prop attribute.
5901         (*movhi): Fixed z10prop attribute.
5902         (*movqi): Fixed z10prop attribute.
5903         (*movstrictqi): Fixed z10prop attribute.
5904         (*mov<mode>): Fixed z10prop attribute.
5905         (*movcc): Fixed z10prop attribute.
5906         (*sethighpartdi_64): Fixed z10prop attribute.
5907         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
5908         (*negdi2_sign_cc): Fixed z10prop attribute.
5909         (*negdi2_sign): Fixed z10prop attribute.
5910         (*absdi2_sign_cc): Fixed z10prop attribute.
5911         (*absdi2_sign): Fixed z10prop attribute.
5912         (*negabsdi2_sign_cc): Fixed z10prop attribute.
5913         (*negabsdi2_sign): Fixed z10prop attribute.
5914         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
5915         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
5916         (doloop_si64): Fixed z10prop attribute.
5917         (doloop_si31): Fixed z10prop attribute.
5918         (doloop_long): Fixed z10prop attribute.
5919         (indirect_jump): Fixed z10prop attribute.
5920         (nop): Fixed z10prop attribute.
5921         (main_base_64): Fixed z10prop attribute.
5922         (reload_base_64): Fixed z10prop attribute.
5923
5924 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5925
5926         PR rtl-optimization/38740
5927         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
5928         if !optimize.
5929         * config/mips/mips.c (mips_reorg): Likewise.
5930
5931 2009-01-28  Richard Guenther  <rguenther@suse.de>
5932
5933         PR tree-optimization/38926
5934         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
5935         with the correct value id to a value.
5936         (do_regular_insertion): Use the value number of edoubleprime
5937         for the value number of the expr.
5938
5939         Revert
5940         2008-08-21  Richard Guenther  <rguenther@suse.de>
5941
5942         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
5943         a PHI ask VN if it is already available.
5944         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
5945         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
5946
5947 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5948
5949         PR middle-end/38934
5950         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
5951         set to varying whenever max has TREE_OVERFLOW set, similarly
5952         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
5953
5954 2009-01-28  Richard Guenther  <rguenther@suse.de>
5955
5956         PR middle-end/38908
5957         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
5958         uninitialized aggregate uses in call arguments.
5959
5960 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
5961
5962         PR tree-optimization/38984
5963         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
5964         the nothing_id variable if -fno-delete-null-pointer-checks.
5965
5966 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
5967
5968         PR target/38988
5969         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
5970         (set_got_offset_rex64): Ditto.
5971
5972 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
5973
5974         PR target/38941
5975         * doc/extend.texi: Improve local variable with asm reg.
5976
5977 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
5978
5979         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
5980         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
5981         was not supplied then set warn_packed_bitfield_compat to the
5982         default value of 1.
5983         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
5984         against 1.
5985
5986 2009-01-27  Richard Guenther  <rguenther@suse.de>
5987
5988         PR tree-optimization/38503
5989         * cfgexpand.c (expand_gimple_basic_block): Ignore
5990         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
5991         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
5992         variables that cannot have TBAA applied.
5993         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
5994         statements.
5995
5996 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
5997
5998         PR middle-end/38969
5999         * calls.c (initialize_argument_information): Do not wrap complex
6000         arguments in SAVE_EXPR.
6001
6002 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
6003
6004         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
6005         (INSTALL_LIBGCC): Revert typo commit.
6006
6007 2009-01-26  Richard Guenther  <rguenther@suse.de>
6008
6009         PR tree-optimization/38745
6010         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
6011         from special handling.
6012
6013 2009-01-26  Richard Guenther  <rguenther@suse.de>
6014
6015         PR tree-optimization/38745
6016         * tree-ssa.c (execute_update_addresses_taken): Do not include
6017         variables that cannot possibly be a register in not_reg_needs.
6018         Do not clear TREE_ADDRESSABLE on vars that may not become
6019         registers.
6020         * tree-ssa.c (update_alias_info_1): Include those in the set
6021         of addressable vars.
6022
6023 2009-01-26  Richard Guenther  <rguenther@suse.de>
6024
6025         PR middle-end/38851
6026         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
6027         * tree-ssa-dse.c: Include langhooks.h
6028         (execute_simple_dse): Remove stores with zero size.
6029
6030 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
6031
6032         PR c/38957
6033         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
6034         as PLUS_EXPR.
6035
6036 2009-01-24  Julian Brown  <julian@codesourcery.com>
6037
6038         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
6039         config/arm/linux-atomic.c.
6040         * config/arm/linux-atomic.c: New.
6041
6042 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
6043
6044         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
6045         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
6046         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
6047
6048 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6049
6050         PR c/38938
6051         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
6052         properly.
6053
6054 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
6055
6056         PR tree-optimization/38953
6057         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
6058         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
6059         (gloog): Split the exit of the scop when the scop exit is a loop exit.
6060         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
6061         changed the CFG.
6062
6063 2009-01-24  Paul Brook  <paul@codesourcery.com>
6064
6065         * config/arm/neon.md (neon_type): Move to arm.md.
6066         (neon_mov<VSTRUCT>): Add neon_type attribute.
6067         * config/arm/arm.md (neon_type): Move to here.
6068         (conds): Add "unconditioal" and use as default for NEON insns.
6069
6070 2009-01-24  Ben Elliston  <bje@au.ibm.com>
6071
6072         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
6073         void *' warning from -Wc++-compat.
6074         * Makefile.in (dominance.o-warn): Remove.
6075
6076 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
6077
6078         PR tree-optimization/38932
6079         * fold-const.c (fold_unary_ignore_overflow): New.
6080         * tree.h (fold_unary_ignore_overflow): Declare.
6081         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
6082         * tree-ssa-sccvn.c (visit_reference_op_load,
6083         simplify_unary_expression): Likewise.
6084
6085 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
6086
6087         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
6088         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
6089         regardless of their type.
6090         * c-common.c (handle_packed_attribute): Don't ignore packed on
6091         bitfields.
6092         * c.opt (Wpacked-bitfield-compat): New warning option.
6093         * stor-layout.c (place_field): Warn if offset of a field changed.
6094         * doc/extend.texi (packed): Mention the ABI change.
6095         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
6096         (Warning Options): Add it to the list.
6097
6098 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6099
6100         * c-opts.c (c_common_post_options): Fix a typo in comments.
6101
6102 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
6103
6104         PR middle-end/38615
6105         * gimplify.c (gimplify_init_constructor): Fix promotion of const
6106         variables to static.
6107         * doc/invoke.texi (-fmerge-all-constants): Update description.
6108
6109 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
6110
6111         PR target/38931
6112         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
6113         (*movdi_1_rex64): Use type "mmx" for alternative 5.
6114
6115 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
6116
6117         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
6118         a word boundary.
6119         (LOCAL_ALIGNMENT): Similarly.
6120
6121 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6122             Joseph Myers  <joseph@codesourcery.com>
6123
6124         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
6125         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
6126         * config/arm/arm-tune.md: Regenerate.
6127         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
6128         -march=iwmmxt2.
6129
6130 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6131
6132         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
6133         version number to five.
6134
6135 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
6136
6137         PR c++/38930
6138         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
6139         * c-common.c (set_underlying_type): Likewise.
6140         (is_typedef_decl ): Likewise
6141         * tree.h: Likewise
6142         (set_underlying_type): Likewise.
6143         (is_typedef_type): Likewise.
6144
6145 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
6146
6147         PR middle-end/38587
6148         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
6149         crossing setjmps.
6150
6151 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
6152
6153         PR bootstrap/37660
6154         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
6155         (LIBGCC_SPEC):  Don't define.
6156         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
6157
6158 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
6159
6160         PR rtl-optimization/38879
6161         * alias.c (base_alias_check): Unaligned access via AND address can
6162         alias all surrounding object types except those with sizes equal
6163         or wider than the size of unaligned access.
6164
6165 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
6166
6167         PR c++/26693
6168         * c-decl.c (clone_underlying_type): Move this ...
6169         * c-common.c (set_underlying_type): ... here.
6170         Also, make sure the function properly sets TYPE_STUB_DECL() on
6171         the newly created typedef variant type.
6172         (is_typedef_decl ): New entry point.
6173         * tree.h: Added a new member member_types_needing_access_check to
6174         struct tree_decl_non_common.
6175         (set_underlying_type): New entry point.
6176         (is_typedef_type): Likewise.
6177
6178 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
6179
6180         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
6181         Check whether two instructions have memory references that
6182         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
6183         are helper functions for traversing.
6184         * alias.h (insn_alias_sets_confilict_p): New prototypes.
6185         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
6186         not to draw dependency edge for instructions with non-conflicting
6187         alias sets.
6188
6189 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
6190
6191         PR other/38758
6192         * longlong.h: Update copyright years.  Use soft-fp license notice.
6193         Sync __clz_tab declaration with glibc.
6194
6195 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
6196
6197         PR target/30687
6198         * doc/extend.texi (syscall_linkage): New.
6199         (version_id): Modify.
6200
6201 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6202             Richard Guenther  <rguenther@suse.de>
6203
6204         PR tree-optimization/38747
6205         PR tree-optimization/38748
6206         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
6207         conversion if the base address is an indirect reference and the
6208         aliasing sets could cause issues.
6209
6210 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6211
6212         * common.opt (fgraphite, fgraphite-identity): Add comment for 
6213         explaining why these options are not documented.
6214
6215 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6216
6217         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
6218         gimple_call_lhs is NULL.
6219
6220 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
6221
6222         PR target/38868
6223         * emit-rtl.c (adjust_address_1): Make sure memref is never
6224         overwritten.
6225
6226 2009-01-20  Ben Elliston  <bje@au.ibm.com>
6227
6228         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6229         const qualifier from arg parameter. Remove unnecessary cast to char *.
6230         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6231         const qualifier from arg 2.
6232
6233 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6234
6235         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
6236
6237 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
6238
6239         PR c/38869
6240         * rtl.h (reinit_regs): New prototype.
6241         * regclass.c: Include ira.h.
6242         (reinit_regs): New.
6243         * Makefile.in (regclass.o): Add ira.h.
6244         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
6245
6246 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
6247
6248         PR target/38736
6249         * c-common.c (handle_aligned_attribute): Use
6250         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
6251         default alignment value.
6252
6253         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
6254
6255         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
6256         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
6257
6258         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
6259         __BIGGEST_ALIGNMENT__.
6260
6261         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
6262
6263 2009-01-18  Richard Guenther  <rguenther@suse.de>
6264
6265         PR tree-optimization/38819
6266         * tree-flow.h (operation_could_trap_helper_p): Declare.
6267         * tree-eh.c (operation_could_trap_helper_p): Export.
6268         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
6269         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
6270         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
6271         are about to insert a possibly trapping instruction and fail
6272         in this case.
6273
6274 2009-01-18  Andreas Schwab  <schwab@suse.de>
6275
6276         * doc/install.texi (Configuration): Remove obsolete paragraph
6277         about use of --with-gnu-ld with --with-gnu-as.
6278
6279 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
6280
6281         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
6282         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
6283         Follow spelling conventions.
6284
6285 2009-01-18  Ben Elliston  <bje@au.ibm.com>
6286
6287         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
6288         C++ warning about implicit conversion from void * to struct
6289         bitmap_head_def *.
6290         (bitmap_obstack_free): Likewise for bitmap_element *.
6291         * Makefile.in (bitmap.o-warn): Remove.
6292
6293 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6294
6295         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
6296
6297 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
6298             Tobias Grosser  <tobi.grosser@amd.com>
6299
6300         * graphite.c (graphite_trans_scop_block): Do not block single
6301         nested loops.
6302
6303 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
6304
6305         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
6306         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
6307         test with assertion.
6308
6309 2009-01-16  Richard Guenther  <rguenther@suse.de>
6310
6311         PR tree-optimization/38835
6312         PR middle-end/36227
6313         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
6314         and INT + PTR -> (INT)(PTR p+ INT) folding.
6315         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
6316
6317 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
6318
6319         PR target/38554
6320         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
6321         the subreg from a lowpart subreg if it is also casting the value.
6322
6323 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6324             Tobias Grosser  <tobi.grosser@amd.com>
6325
6326         * graphite.c (compare_prefix_loops): New.
6327         (build_scop_canonical_schedules): Rewritten.
6328         (graphite_transform_loops): Move build_scop_canonical_schedules
6329         after build_scop_iteration_domain.
6330
6331 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6332             Tobias Grosser  <tobi.grosser@amd.com>
6333
6334         * graphite.c (add_conditions_to_domain): Add the loops to 
6335         the dimension of the iteration domain.  Do copy the domain
6336         only when it exists.
6337         (build_scop_conditions_1): Do not call add_conditions_to_domain.
6338         (add_conditions_to_constraints): New.
6339         (can_generate_code_stmt, can_generate_code): Removed.
6340         (gloog): Do not call can_generate_code.
6341         (graphite_transform_loops): Call add_conditions_to_constraints
6342         after building the iteration domain.
6343
6344 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
6345
6346         PR tree-optimization/38789
6347         * tree-ssa-threadedge.c
6348         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
6349         __builtin_constant_p.
6350
6351 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
6352
6353         * dce.c (delete_unmarked_insns): Reversed the order that insns are
6354         examined before deleting them.
6355         
6356 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
6357
6358         * function.c (aggregate_value_p): Correctly extract the function
6359         type from CALL_EXPR_FN lookup.
6360
6361 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
6362
6363         * config/picochip/picochip.c (picochip_override_options): Revert
6364         CFI asm flag disable commited previously.
6365
6366 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
6367             Tobias Grosser  <tobi.grosser@amd.com>
6368             Jan Sjodin  <jan.sjodin@amd.com>
6369
6370         * graphite.c (scan_tree_for_params): On substractions negate
6371         all the coefficients of the term.
6372         (clast_to_gcc_expression_red): New.  Handle reduction expressions
6373         of more than two operands.
6374         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
6375         (get_vdef_before_scop): Handle also the case of default definitions.
6376
6377 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
6378
6379         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
6380         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
6381         Also use them when walking CALL_INSN_FUNCTION_USAGE.
6382
6383 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
6384             Joey Ye  <joey.ye@intel.com>
6385
6386         PR middle-end/37843
6387         * cfgexpand.c (expand_stack_alignment): Don't update stack
6388         boundary nor check incoming stack boundary here.
6389         (gimple_expand_cfg): Update stack boundary and check incoming
6390         stack boundary here.
6391
6392 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
6393
6394         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
6395         
6396 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
6397
6398         PR rtl-optimization/38245
6399         * calls.c (expand_call): Add stack arguments to
6400         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6401         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
6402         in regs and partially in memory or BLKmode arguments.
6403         (emit_library_call_value_1): Add stack arguments to
6404         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6405         ACCUMULATE_OUTGOING_ARGS).
6406         * dce.c: Include tm_p.h.
6407         (find_call_stack_args): New function.
6408         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
6409         argument.
6410         (mark_insn): Call find_call_stack_args for CALL_Ps.
6411         (prescan_insns_for_dce): Walk insns backwards in bb rather than
6412         forwards.  Allocate and free arg_stores bitmap if needed, pass it
6413         down to deletable_insn_p, don't mark stores set in arg_stores
6414         bitmap, clear the bitmap at the beginning of each bb.
6415         * Makefile.in (dce.o): Depend on $(TM_P_H).
6416
6417 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
6418
6419         PR target/22599
6420         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
6421         to make sure the insn is a conditional test (bug 22599).  Reformat a
6422         few long lines.
6423
6424 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
6425
6426         PR middle-end/38431
6427         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
6428         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
6429         (gloog): Do not call cleanup_tree_cfg.
6430         (graphite_transform_loops): Call cleanup_tree_cfg after all 
6431         scops have been code generated.
6432
6433 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
6434         * doc/gty.texi (Invoking the garbage collector): Added new node
6435         and section documenting ggc_collect.
6436
6437 2009-01-14  Richard Guenther  <rguenther@suse.de>
6438
6439         PR tree-optimization/38826
6440         PR middle-end/38477
6441         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
6442         initialization notes only if we actually emitted a warning.
6443         (intra_create_variable_infos): Add constraints for a result decl
6444         that is passed by hidden reference.
6445         (build_pred_graph): Mark all related variables non-direct on
6446         address-taking.
6447
6448 2009-01-14  Nick Clifton  <nickc@redhat.com>
6449
6450         * ira-conflicts.c: Include addresses.h for the definition of
6451         base_reg_class.
6452         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
6453         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
6454
6455 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
6456
6457         PR target/38811
6458         * Makefile.in (ira-lives.o): Add except.h.
6459
6460         * ira-lives.c: Include except.h.
6461         (process_bb_node_lives): Process can_throw_internal.
6462
6463 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
6464
6465         PR rtl-optimization/38774
6466         * combine.c (simplify_set): When undoing cc_use change, don't do
6467         PUT_CODE on the newly created comparison, but instead put back the
6468         old comparison.
6469
6470 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
6471
6472         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
6473         values.  Remove duplicate arm8 entry.
6474
6475 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6476
6477         PR tree-optimization/38786
6478         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
6479         the SSA_NAME case of expand_scalar_variables_expr.
6480         Set the type of an expression to the type of its assign statement.
6481         (expand_scalar_variables_expr): Also gather the scalar computation
6482         used to index the memory access.  Do not pass loop_p.
6483         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
6484         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
6485         the gimple_stmt_iterator where it inserts new code.
6486         Do not pass loop_p.
6487         (copy_bb_and_scalar_dependences): Do not pass loop_p.
6488         (translate_clast): Update call to copy_bb_and_scalar_dependences.
6489
6490 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6491
6492         * graphite.h (debug_value): Removed.
6493         * graphite.c (debug_value): Removed.
6494
6495 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6496
6497         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
6498         ldrd/strd with two 32-bit instructions.
6499
6500 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6501
6502         * config/arm/arm.c (struct processors): Pass for speed down into
6503         cost helper functions.
6504         (const_ok_for_op): Handle COMPARE and inequality nodes.
6505         (arm_rtx_costs_1): Rewrite.
6506         (arm_size_rtx_costs): Update prototype.
6507         (arm_rtx_costs): Pass speed down to helper functions.
6508         (arm_slowmul_rtx_costs): Rework cost calculations.
6509         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
6510         (arm_9e_rtx_costs): Likewise.
6511
6512 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
6513
6514         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
6515         relocations of local symbols wider than UNITS_PER_WORD are not valid.
6516         (alpha_legitimize_address): Do not split local symbols wider than
6517         UNITS_PER_WORD into HIGH/LO_SUM parts.
6518
6519 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
6520
6521         PR bootstrap/38580
6522         * gcc.c (process_command): Replace call to execvp with calls
6523         to pex_one and exit.
6524
6525 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
6526
6527         PR target/29141
6528         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
6529         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
6530         variant for devices with 3-byte PC.
6531         (__tablejump_elpm__): New.
6532
6533 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6534
6535         PR c/32041
6536         * c-parser.c (c_parser_postfix_expression): Allow `->' in
6537         offsetof member-designator, handle it as `[0].'.
6538
6539 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6540
6541         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
6542         function when not using named sections on targets with named sections
6543         if branch distance is less than 262132.
6544
6545 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
6546
6547         * combine.c (combine_instructions):  Recompute
6548         optimize_this_for_speed_p  for each BB in the main combine loop.
6549
6550 2009-01-12  Tomas Bily  <tbily@suse.cz>
6551
6552         PR middlend/38385
6553         * tree-loop-distribution.c (prop_phis): New function.
6554         (generate_builtin): Call prop_phis.
6555         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
6556
6557 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6558
6559         PR tree-optimization/38807
6560         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
6561         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
6562
6563 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
6564
6565         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
6566         subreg of op0 to the original op0.
6567
6568 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
6569
6570         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
6571         
6572 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
6573
6574         PR debug/7055
6575         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
6576         starting with digits.
6577
6578 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
6579
6580         PR target/38695
6581         * config/arm/arm.c (arm_is_long_call_p): Don't call
6582         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
6583
6584 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
6585
6586         * regrename.c (regrename_optimize): Fix dumping.
6587         (find_oldest_value_reg): Preserve REG_POINTER.
6588         (copy_hardreg_forward_1): Likewise.
6589
6590 2009-01-09  Diego Novillo  <dnovillo@google.com>
6591
6592         * gimple.h (struct gimple_statement_base) <uid>: Document
6593         the restrictions on its use.
6594         (gimple_uid): Tidy.
6595         (gimple_set_uid): Tidy.
6596
6597 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6598
6599         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
6600         zero guard even if align_bytes != 0 and count is smaller than
6601         size_needed.
6602
6603 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
6604
6605         PR rtl-optimization/38495
6606         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
6607         (add_range_and_copies_from_move_list): Print all added ranges.
6608         Add ranges to memory optimized destination.
6609
6610 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6611
6612         PR target/38686
6613         PR target/38708
6614         * config/i386/i386.c (override_options): Reject
6615         -mstringop-strategy=rep_8byte with -m32.
6616         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
6617         to 1.  Do count comparison against epilogue_size_needed at compile
6618         time even when count_exp was constant forced into register.  For
6619         size_needed don't jump to epilogue, instead just avoid aligning
6620         and invoke the body algorithm.  If need_zero_guard, add zero guard
6621         even if count is non-zero, but smaller than size_needed + number of
6622         bytes that could be stored for alignment.
6623         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
6624         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
6625         but smaller than size_needed + number of bytes that could be stored
6626         for alignment.  Compare size_needed with epilogue_size_needed instead
6627         of desired_align - align, don't adjust size_needed, pass
6628         epilogue_size_needed to the epilogue expanders.
6629
6630         PR c/35742
6631         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
6632
6633 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6634
6635         * pa.c (last_address): Change to unsigned.
6636         (update_total_code_bytes): Change argument to unsigned.  Don't
6637         check if insn addresses are set.
6638         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
6639         addresses are not set.
6640         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
6641
6642 2009-01-09  Nick Clifton  <nickc@redhat.com>
6643
6644         * config/sh/symbian.c: Replace uses of DECL_INLINE with
6645         DECL_DECLARED_INLINE_P.
6646
6647 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6648
6649         PR middle-end/38347
6650         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
6651         GET_MODE (op0) in operand_subword_force calls.
6652
6653         PR middle-end/38771
6654         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
6655         fold_convert arg0 operands to TREE_TYPE (op0) first.
6656
6657 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
6658
6659         * params.def (ira-max-conflict-table-size): Decrease default value
6660         to 1000.
6661
6662 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
6663
6664         PR tree-optimization/37031
6665         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
6666         on parameter_set.
6667         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
6668         allocate it using gc instead of heap, use VEC_quick_push instead of
6669         VEC_safe_push.
6670         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
6671         instead of heap, use VEC_quick_push instead of VEC_safe_push.
6672         * tree-data-ref.h (struct access_matrix): Change matrix to gc
6673         allocated vector from heap allocated.
6674         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
6675         * tree-loop-linear.c (linear_transform_loops): Allocate nest
6676         vector only after perfect_loop_nest_depth call.
6677
6678 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
6679             Jan Sjodin  <jan.sjodin@amd.com>
6680
6681         PR tree-optimization/38559
6682         * graphite.c (debug_value, copy_constraint,
6683         swap_constraint_variables, scale_constraint_variable, ): New.
6684         (get_lower_bound, get_upper_bound): Removed.
6685         (graphite_trans_bb_strip_mine): Clean up this code that works
6686         only for constant number of iterations.  Fully copy upper and
6687         lower bound constraints, not only the constant part of them.
6688         * graphite.h (debug_value): Declared.
6689
6690 2009-01-08  Ira Rosen  <irar@il.ibm.com>
6691
6692         PR tree-optimization/37194
6693         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
6694         Don't add the cost of cost model guard in prologue to scalar 
6695         outside cost in case of known number of iterations.
6696
6697 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6698             Alan Modra  <amodra@bigpond.net.au>
6699
6700         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
6701         non-word-aligned REG+CONST addressing.
6702
6703 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6704
6705         PR target/38706
6706         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
6707         free_after_compilation when outputting a thunk.
6708         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
6709         Do not call free_after_compilation here.
6710
6711 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6712
6713         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
6714         (ix86_valid_target_attribute_inner_p): Ditto.
6715
6716 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
6717
6718         PR tree-optimization/38492
6719         PR tree-optimization/38498
6720         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
6721         * tree-chrec.h (scev_is_linear_expression): Declared.
6722         * graphite.c (graphite_cannot_represent_loop_niter): New.
6723         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
6724         (graphite_loop_normal_form): Use gcc_assert.
6725         (scan_tree_for_params): Use CASE_CONVERT.
6726         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
6727         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
6728         Use gcc_assert.  Discard scops that contain unhandled cases.
6729         (build_scop_conditions): Return a boolean status for unhandled cases.
6730         (strip_mine_profitable_p): Print the loop number, not its depth.
6731         (is_interchange_valid): Pass the depth of the loop nest, don't
6732         recompute it wrongly.
6733         (graphite_trans_bb_block): Same.
6734         (graphite_trans_bb_block): Print tentative of loop blocking.
6735         (graphite_trans_scop_block): Do not print that the loop has been
6736         blocked.
6737         (graphite_transform_loops): Do not handle scops that contain condition
6738         scalar phi nodes.
6739
6740 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6741
6742         AVX Programming Reference (December, 2008)
6743         * config/i386/avxintrin.h (_mm256_stream_si256): New.
6744         (_mm256_stream_pd): Likewise.
6745         (_mm256_stream_ps): Likewise.
6746
6747         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
6748         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
6749         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
6750         (bdesc_special_args): Add __builtin_ia32_movntdq256,
6751         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
6752         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
6753         (ix86_expand_special_args_builtin): Likewise.
6754
6755         * config/i386/sse.md (AVXMODEDI): New.
6756         (avx_movnt<mode>): Likewise.
6757         (avx_movnt<mode>): Likewise.
6758         (<sse>_movnt<mode>): Remove AVX support.
6759         (sse2_movntv2di): Likewise.
6760
6761 2009-01-07  Richard Guenther  <rguenther@suse.de>
6762
6763         PR middle-end/38751
6764         * fold-const.c (extract_muldiv): Remove obsolete comment.
6765         (fold_plusminus_mult_expr): Undo MINUS_EXPR
6766         to PLUS_EXPR canonicalization for the canonicalization.
6767
6768 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
6769
6770         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
6771         hosted cross-compilers generating less efficient code.
6772
6773 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6774
6775         * function.h (rtl_data): Add a dbr_scheduled_p field.
6776         * reorg.c (dbr_schedule): Set it.
6777         (gate_handle_delay_slots): Check it.
6778         * config/mips/mips.c (mips_base_delayed_branch): Delete.
6779         (mips_reorg): Check flag_delayed_branch instead of
6780         mips_base_delayed_branch.
6781         (mips_override_options): Don't set mips_base_delayed_branch
6782         or flag_delayed_branch.
6783
6784 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6785
6786         PR rtl-optimization/38426.
6787         * ira.c (ira): Set current_function_is_leaf earlier.
6788
6789 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
6790
6791         PR rtl-optimization/38722
6792         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
6793         too early, only set a flag and modify after last possible
6794         undo_all point.
6795
6796 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
6797
6798         PR c/34252
6799         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
6800         * real.c (decimal_single_format): Correct values of emin and emax.
6801         (decimal_double_format): Ditto.
6802         (decimal_quad_format): Ditto.
6803         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
6804         computation of DECnn_MIN and DECnn_MAX for corrected values of
6805         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
6806         __DECnn_MIN__, and adjust its computation for the corrected value
6807         of emin.
6808
6809 2009-01-06  Jan Hubicka  <jh@suse.cz>
6810
6811         PR target/38744
6812         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
6813
6814 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
6815
6816         * doc/contrib.texi (Contributors): Slightly adjust the end note.
6817         Add Robert Clark to the list of testers.
6818
6819 2009-01-06  Jan Hubicka  <jh@suse.cz>
6820             Kai Tietz  <kai.tietz@onevision.com>
6821
6822         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
6823         * config/i386/i386.c (ix86_expand_call): Add clobbers.
6824
6825 2009-01-06  Jan Hubicka  <jh@suse.cz>
6826             Kai Tietz  <kai.tietz@onevision.com>
6827
6828         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
6829         for w64 ABI.
6830         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
6831         (ix86_nsaved_regs): Count only general purpose regs.
6832         (ix86_nsaved_sseregs): New.
6833         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
6834         to 16 for w64; compute padding and size of sse reg save area.
6835         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
6836         general purpose regs.
6837         (ix86_emit_save_sse_regs_using_mov): New.
6838         (ix86_expand_prologue): Save SSE regs if needed.
6839         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
6840         (ix86_emit_restore_sse_regs_using_mov): New.
6841         (ix86_expand_epilogue): Save SSE regs if needed.
6842
6843 2009-01-06  Jan Hubicka  <jh@suse.cz>
6844             Kai Tietz  <kai.tietz@onevision.com>
6845
6846         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
6847         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
6848         functions when accumulate outgoing args is off.
6849
6850 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6851
6852         PR bootstrap/38742
6853         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
6854         before using pseudos_have_intersected_live_ranges_p.
6855
6856         * ira-int.h (ira_assert): Always define.
6857
6858 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6859
6860         AVX Programming Reference (December, 2008)
6861         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
6862         (_mm256_permute2_pd): Likewise.
6863         (_mm_permute2_ps): Likewise.
6864         (_mm256_permute2_ps): Likewise.
6865         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
6866         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
6867
6868         * config/i386/i386.c (ix86_builtins): Remove
6869         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6870         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
6871         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
6872         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
6873         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6874         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
6875         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
6876         __builtin_ia32_vpermil2ps256.
6877         (ix86_init_mmx_sse_builtins): Updated.
6878         (ix86_expand_args_builtin): Likewise.
6879
6880 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6881
6882         * pa.c (output_call): Relocate non-jump insns in the delay slot of
6883         long absolute calls when generating PA 2.0 code.
6884
6885 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
6886
6887         PR rtl-optimization/38583
6888         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
6889
6890         * params.def (ira-max-conflict-table-size): New.
6891
6892         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
6893         
6894         * ira.h (ira_conflicts_p): New external definition.
6895         
6896         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
6897         table.  Report this.  Return result of building.
6898         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
6899         building conflict table.
6900
6901         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
6902         (ira_color): Use ira_conflicts_p.
6903         
6904         * global.c: Include ira.h.
6905         (pseudo_for_reload_consideration_p, build_insn_chain): Use
6906         ira_conflicts_p.
6907
6908         * Makefile.in (global.o): Add ira.h.
6909         
6910         * ira-build.c (mark_all_loops_for_removal,
6911         propagate_some_info_from_allocno): New.
6912         (remove_unnecessary_allocnos): Call
6913         propagate_some_info_from_allocno.
6914         (remove_low_level_allocnos): New.
6915         (remove_unnecessary_regions): Add parameter.  Call
6916         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
6917         parameter to remove_unnecessary_regions.
6918         (ira_build): Remove all regions but root if the conflict table was
6919         not built.  Update conflict hard regs for allocnos crossing calls.
6920
6921         * ira.c (ira_conflicts_p): New global.
6922         (ira): Define and use ira_conflicts_p.
6923
6924         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6925         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
6926         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
6927         
6928 2009-01-06  Ben Elliston  <bje@au.ibm.com>
6929
6930         * gengtype-lex.l (YY_NO_INPUT): Define.
6931
6932 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6933
6934         PR c/34911
6935         * c-common.c (handle_vector_size_attribute): Also reject
6936         BOOLEAN_TYPE types.
6937
6938 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
6939
6940         PR tree-optimization/38492
6941         * graphite.c (rename_map_elt, debug_rename_elt,
6942         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
6943         rename_map_elt_info, eq_rename_map_elts,
6944         get_new_name_from_old_name, bb_in_sese_p): Moved around.
6945         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
6946         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
6947         (sese_build_livein_liveouts): New.
6948         (new_sese, free_sese): New.
6949         (new_scop): Call new_sese.
6950         (free_scop): Call free_sese.
6951         (rename_variables_from_edge, rename_phis_end_scop): Removed.
6952         (register_old_new_names): Renamed register_old_and_new_names.
6953         (register_scop_liveout_renames, add_loop_exit_phis,
6954         insert_loop_close_phis, struct igp,
6955         default_liveout_before_guard, add_guard_exit_phis,
6956         insert_guard_phis, copy_renames): New.
6957         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
6958         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
6959         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
6960         (scop_adjust_phis_for_liveouts): New.
6961         (gloog): Call scop_adjust_phis_for_liveouts.
6962
6963         * graphite.h (struct sese): Documented.  Added fields liveout,
6964         num_ver and livein.
6965         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
6966         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
6967         (struct scop): Added field liveout_renames.
6968         (SCOP_LIVEOUT_RENAMES): New.
6969
6970 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6971
6972         PR tree-optimization/38510
6973         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
6974         (translate_clast): Call recompute_all_dominators before
6975         graphite_verify.
6976         (gloog): Call recompute_all_dominators before graphite_verify.
6977
6978 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6979             Jan Sjodin  <jan.sjodin@amd.com>
6980
6981         PR tree-optimization/38500
6982         * graphite.c (create_sese_edges): Call fix_loop_structure after
6983         splitting blocks.
6984
6985 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
6986
6987         * config.gcc: Add m32r*-*-rtems*.
6988         * config/m32r/rtems.h: New file.
6989
6990 2009-01-05  Ben Elliston  <bje@au.ibm.com>
6991
6992         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
6993         (.po.pox): Likewise.
6994         (po/gcc.pot): Likewise.
6995
6996 2009-01-04  David S. Miller  <davem@davemloft.net>
6997
6998         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
6999         (STARTING_FRAME_OFFSET): Always set to zero.
7000
7001 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7002
7003         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
7004         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
7005         fixed-point types, and vectors of the same.
7006
7007 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7008
7009         * config/mips/sync.md (*mb_barrier): Rename to...
7010         (*memory_barrier): ...this.
7011
7012 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7013
7014         * doc/extend.texi (Function Attributes): Move @cindex after @item
7015         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
7016         and put in alphabetical order. Fix 'target' name and put in order.
7017         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
7018         typos.
7019
7020 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
7021
7022         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
7023         (memory_barrier): Expand as unspec instead of unspec_volatile.
7024         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7025         (*memory_barrier): Define as unspec instead of unspec_volatile.
7026         Use (match_dup 0) as input operand.
7027
7028         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
7029         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
7030         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
7031         scratch register.  Remove operand 1.
7032         (*stbar): Define as unspec instead of unspec_volatile.
7033         Use (match_dup 0) as input operand, remove (const_int 8).
7034         (*membar): Define as unspec instead of unspec_volatile.
7035         Use (match_dup 0) as input operand, remove input operand 2.
7036
7037         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
7038         (memory_barrier): Expand as unspec instead of unspec_volatile.
7039         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7040         (*memory_barrier): Define as unspec instead of unspec_volatile.
7041         Use (match_dup 0) as input operand.
7042
7043         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
7044         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7045         Set volatile flag on operand 0.
7046         (*memory_barrier): New insn pattern.
7047
7048         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
7049         insn operands.
7050         (*memory_barrier): Use (match_dup 0) as input operand.
7051
7052         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
7053         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7054         Set volatile flag on operand 0.
7055         (*mb_internal): New insn pattern.
7056
7057         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
7058
7059 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7060
7061         PR middle-end/38586
7062         * function.c (struct temp_slot): Move to the section of the file
7063         that deals with temp slots.  Remove field 'address'.
7064         (temp_slot_address_table): New hash table of address -> temp slot.
7065         (struct temp_slot_address_entry): New struct, items for the table.
7066         (temp_slot_address_compute_hash, temp_slot_address_hash,
7067         temp_slot_address_eq, insert_temp_slot_address): Support functions
7068         for the new table.
7069         (find_temp_slot_from_address): Rewrite to use the new hash table.
7070         (remove_unused_temp_slot_addresses): Remove addresses of temp
7071         slots that have been made available.
7072         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
7073         worker function for remove_unused_temp_slot_addresses.
7074         (assign_stack_temp_for_type): Don't clear the temp slot address list.
7075         Add the temp slot address to the address -> temp slot map.
7076         (update_temp_slot_address): Update via insert_temp_slot_address.
7077         (free_temp_slots): Call remove_unused_temp_slot_addresses.
7078         (pop_temp_slots): Likewise.
7079         (init_temp_slots): Allocate the address -> temp slot map, or empty
7080         the map if it is already allocated.
7081         (prepare_function_start): Initialize temp slot processing.
7082
7083 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7084
7085         PR middle-end/38584
7086         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
7087         Calculate the size of all stack vars assuming no packing of stack
7088         vars will happen, replacing a quadratic algorithm with a linear one.
7089
7090 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7091
7092         PR target/38707
7093         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
7094         can't be used.
7095
7096 2009-01-03  Diego Novillo  <dnovillo@google.com>
7097
7098         * doc/contrib.texi: Update contributions.
7099
7100 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7101
7102         PR c++/38705
7103         * builtins.c (fold_builtin_memory_op): Give up if either operand
7104         is volatile.  Set srctype or desttype to non-qualified version
7105         of the other type.
7106
7107         PR c/38700
7108         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
7109         and FUNCTION_DECLs.
7110
7111 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
7112
7113         PR rtl-optimization/35805
7114         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
7115         problem if fast dce is able to remove any instructions.
7116         * dce.c (dce_process_block): Fix dump message.
7117         
7118 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
7119
7120         PR 33649
7121         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
7122
7123 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR middle-end/38690
7126         * tree-flow.h (op_code_prio, op_prio): New prototypes.
7127         * tree-pretty-print.c (op_code_prio): New function.
7128         (op_prio): No longer static.  Use op_code_prio.
7129         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
7130         Use op_prio and op_code_prio to determine if () should be
7131         printed around operand(s) or not.
7132
7133         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
7134         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
7135         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
7136         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
7137         pp_character instead of pp_string for single letter printing.
7138
7139 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7140
7141         * doc/extend.texi: Fix '#pragma GCC option' typo.
7142
7143 2009-01-02  Richard Guenther  <rguenther@suse.de>
7144
7145         * doc/install.texi (--enable-checking): Mention different
7146         default for stage1.
7147         (--enable-stage1-checking): Document.
7148
7149 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
7150
7151         PR middle-end/30142
7152         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
7153         case to be an error.
7154
7155 2009-01-02  Ben Elliston  <bje@au.ibm.com>
7156
7157         * config/fp-bit.h (pack_d): Constify argument.
7158         * config/fp-bit.c (makenan): Constify return type. Remove casts.
7159         (isnan): Constify argument.
7160         (isinf): Likewise.
7161         (iszero): Likewise.
7162         (pack_d): Likewise.
7163         (_fpadd_parts): Constify return type.
7164         (_fpmul_parts): Likewise.
7165         (_fpdiv_parts): Likewise.
7166
7167 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
7168
7169         PR c/36489
7170         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
7171         warn about overwriting initializer with side-effects or
7172         -Woverride-init if !IMPLICIT.
7173         (output_init_element): Likewise.  Pass IMPLICIT down to
7174         add_pending_init.
7175         (process_init_element): Add IMPLICIT argument.  Pass it down
7176         to output_init_element.
7177         (push_init_element, pop_init_level, set_designator): Adjust
7178         process_init_element callers.
7179         (set_nonincremental_init, set_nonincremental_init_from_string):
7180         Adjust add_pending_init callers.
7181         (output_pending_init_elements): Adjust output_init_element callers.
7182         * c-tree.h (process_init_element): Adjust prototype.
7183         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
7184         process_init_element callers.