OSDN Git Service

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