OSDN Git Service

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