OSDN Git Service

* config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-12-12  Olivier Hainque  <hainque@adacore.com>
2
3         * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
4
5 2006-12-12  Olivier Hainque  <hainque@adacore.com>
6
7         * config/vxlib.c: Extract tls related routines into ...
8         * config/vxlib-tls.c: New file. 
9         * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA.
10         
11 2006-12-12  Sa Liu  <saliu@de.ibm.com>
12             Ben Elliston  <bje@au.ibm.com>
13
14         * config/spu/spu.opt (mfixed-range): New option.
15         * config/spu/spu.h (spu_fixed_range_string): Declare.
16         * config/spu/spu.c (spu_override_options): Handle -mfixed-range.
17         (fix_range): New function.
18         * doc/invoke.texi (SPU Options): Document -mfixed-range.
19         * testsuite/gcc.target/spu/fixed-range.c: New.
20         * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto.
21
22 2006-12-11  H.J. Lu  <hongjiu.lu@intel.com>
23
24         PR middle-end/17982
25         PR middle-end/20218
26         * cgraphunit.c (cgraph_optimize): Remove call to
27         process_pending_assemble_externals.
28
29         * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
30
31         * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
32
33         * config/ia64/ia64.c (ia64_asm_output_external): Rewritten.
34         (ia64_hpux_add_extern_decl): Removed.
35         (ia64_hpux_file_end): Likewise.
36         (extern_func_list): Likewise.
37         (extern_func_head): Likewise.
38
39         * output.h (assemble_external): Update comments.
40         (default_elf_asm_output_external): New.
41         (maybe_assemble_visibility): New.
42
43         * toplev.c (compile_file): Update comment.
44
45         * varasm.c (assemble_external): Always put it on
46         pending_assemble_externals.
47         (maybe_assemble_visibility): Make it extern and return int.
48         (default_elf_asm_output_external): New.
49
50 2006-12-11  Daniel Berlin  <dberlin@dberlin.org>
51
52         * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
53         can't handle the pointer arithmetic.
54
55 2006-12-11  Diego Novillo  <dnovillo@redhat.com>
56
57         * doc/tree-ssa.texi: Update documentation for virtual operands
58         and the use of push_stmt_changes/pop_stmt_changes.
59         * doc/invoke.texi: Remove documentation for params
60         global-var-threshold.
61         Update documentation on max-aliased-vops.
62
63         * tree-into-ssa.c: Cleanup comments, variables and
64         spacing in various functions.
65         (regs_to_rename): Declare.
66         (mem_syms_to_rename): Declare.
67         (dump_update_ssa): Declare.
68         (debug_update_ssa): Declare.
69         (dump_names_replaced_by): Declare.
70         (debug_names_replaced_by): Declare.
71         (dump_def_blocks): Declare.
72         (debug_def_blocks): Declare.
73         (dump_defs_stack): Declare.
74         (debug_defs_stack): Declare.
75         (dump_currdefs): Declare.
76         (debug_currdefs): Declare.
77         (mark_def_sites): Do not handle virtual operands.
78         (compute_idf): Rename from find_idf.  Update users.
79         (register_new_def): Make local.  Convert second argument
80         to 'tree'.
81         Use BLOCK_DEFS_STACK directly.
82         If pushing a non-register, also push the underlying
83         symbol.
84         (rewrite_stmt): Do not handle virtual operands.
85         (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack,
86         dump_currdefs and dump_tree_ssa_stats.
87         (dump_tree_ssa_stats): Also dump REPL_TBL.
88         (replace_use): Remove.  Update all users to call SET_USE
89         instead.
90         (rewrite_blocks): Move code to free memory to
91         fini_ssa_renamer.
92         (mark_def_site_blocks): Move initialization code to
93         init_ssa_renamer.
94         (init_ssa_renamer): New.
95         (fini_ssa_renamer): New.
96         (rewrite_into_ssa): Call them.
97         (prepare_block_for_update): Process SSA_OP_ALL_USES first
98         and SSA_OP_ALL_DEFS later.  Do not process virtual
99         operands separately.
100         (dump_update_ssa): Call dump_decl_set.
101         (init_update_ssa): Initialize regs_to_rename and
102         mem_syms_to_rename.
103         Call init_ssa_renamer.
104         (delete_update_ssa): Call fini_ssa_renamer.
105         Free blocks_with_phis_to_rewrite.
106         (mark_sym_for_renaming): If the variable has
107         sub-variables, also mark them.
108         If the variable belongs to a partition, also mark it.
109         (mark_set_for_renaming): Call mark_sym_for_renaming on
110         every symbol in the set.
111         (switch_virtuals_to_full_rewrite): Call
112         mark_set_for_renaming.
113         (update_ssa): Separate syms_to_rename into regs_to_rename
114         and mem_syms_to_rename.
115
116         * tree-dump.c (dump_options): Add TDF_MEMSYMS.
117         * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS.
118         (debug_generic_stmt): Likewise.
119         (debug_tree_chain): Likewise.
120         (dump_symbols): New.
121         (dump_generic_node): Check for TDF_MEMSYMS.
122         Handle MEMORY_PARTITION_TAG.
123         If the statement references memory and TDF_MEMSYMS is
124         given, call dump_symbols.
125         Indicate default names with (D).
126         (dump_vops): Update for new virtual operator format.
127
128         * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to
129         tree_contains_struct.
130         (tree_code_size): Handle MEMORY_PARTITION_TAG.
131         (tree_node_structure): Likewise.
132         (needs_to_live_in_memory): Handle SSA names.
133         * tree.h (MTAG_P): Likewise.
134         (struct tree_memory_partition_tag): Declare.
135         (MPT_SYMBOLS): Define.
136         (union tree_node): Add field 'mpt'.
137         * treestruct.def (TS_MEMORY_PARTITION_TAG): Define.
138         * tree.def (MEMORY_PARTITION_TAG): Define.
139
140         * tree-pass.h (TDF_MEMSYMS): Define.
141
142         * params.h (GLOBAL_VAR_THRESHOLD): Remove.
143
144         * tree-ssa-alias.c: Include pointer-set.h
145         (struct alias_map_d): Remove fields total_alias_vops,
146         grouped_p and may_aliases.  Update all users.
147         (struct mp_info_def): Declare.
148         (mp_info_t): New type.
149         (get_smt_for): Rename from get_tmt_for.  Update all
150         users.
151         (add_may_alias): Add argument ALREADY_ADDED.  If given,
152         use it to avoid adding duplicate entries to alias sets.
153         (replace_may_alias): Remove.  Update all users.
154         (total_alias_vops_cmp): Remove.  Update all users.
155         (group_aliases_into): Remove.  Update all users.
156         (tree_pointer_compare): Remove.  Update all users.
157         (compact_name_tags): Remove.  Update all users.
158         (group_aliases): Remove.  Update all users.
159         (mark_non_addressable): Move from tree-flow-inline.h.
160         Remove the symbol from the partition holding it, if
161         needed.
162         (dump_mp_info): New.
163         (debug_mp_info): New.
164         (sort_mp_info): New.
165         (create_partition_for): New.
166         (rewrite_alias_set_for): New.
167         (compute_memory_partitions): New.
168         (compute_may_aliases): Call it.
169         (init_alias_info): If computing aliases for the first
170         time, mark every memory symbol for renaming.
171         (have_common_aliases_p): New.
172         (compute_flow_insensitive_aliasing): Call it.
173         (setup_pointers_and_addressables): Do not cache
174         num_referenced_vars.
175         For register promoted symbols, mark their former
176         partition for renaming.
177         (maybe_create_global_var): Only create .GLOBAL_VAR if
178         there are no call-clobbered variables and a mix of pure
179         and non-pure functions were found.
180         (may_alias_p): Tidy comments.
181         (create_tag_raw): Remove unused variable new_type.
182         (dump_alias_info): call dump_memory_partitions.
183         (dump_points_to_info_for): Call dump_decl_set.
184         (may_be_aliased): Tidy comments and formatting.
185
186         * timevar.def (TV_MEMORY_PARTITIONING): Define.
187         * tree-vectorizer.c (vect_memsyms_to_rename): Rename from
188         vect_vnames_to_rename.  Set DECL_UIDs instead of SSA name
189         versions in it.
190         (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs.
191         * tree-vect-transform.c (vect_transform_loop): Call
192         mark_set_for_renaming with vect_memsyms_to_rename.
193         * tree-flow-inline.h (zero_imm_uses_p): New.
194         (memory_partition): New.
195         (set_memory_partition): New.
196         (factoring_name_p): New.
197         (symbol_mem_tag): New.  Update every function that used
198         to access the annotation directly.
199         (set_symbol_mem_tag): Likewise.
200
201         * tree-ssa-copy.c (may_propagate_copy): Allow copies
202         between a partition and a symbol as long as the symbol
203         belongs to the partition.
204         (merge_alias_info): Ignore merge requests when memory
205         partitions are involved.
206
207         * tree-ssa.c (verify_ssa_name): Check that default
208         definitions have empty defining statements.
209         (verify_use): Remove argument IS_VIRTUAL.
210         Don't call verify_ssa_name.
211         (verify_phi_args): Call verify_ssa_name.
212         (verify_flow_insensitive_alias_info): Handle MPTs.
213         (verify_flow_sensitive_alias_info): Likewise.
214         (verify_name_tags): Likewise.
215         (verify_call_clobbering): Likewise.
216         (verify_ssa): Check for VOPs only after aliasing
217         information is available.
218         Check virtuals and real operands separately.
219         Call verify_ssa_name on every operand.
220         (stmt_references_memory_p): Move to tree-ssa-operands.c.
221         (walk_use_def_chains_1): Guard against NULL PHI
222         arguments.
223
224         * tree-ssa-operands.c (stmt_references_memory_p): Move from
225         tree-ssa.c.
226         (get_mpt_for): New.
227         (dump_memory_partitions): New.
228         (debug_memory_partitions): New.
229
230         * tree-flow.h (struct var_ann_d): Add field mpt.
231         (struct stmt_ann_d): Add bitfield references_memory.
232         * Makefile.in (tree-ssa-structalias.o): Include
233         pointer-set.h
234         (tree-ssa-alias.o): Likewise.
235         * tree-ssa-structalias.c: (update_alias_info): Use
236         STORED_SYMS to determine which variables are being
237         written to by the store operation.
238         * tree-ssa-structalias.h (struct alias_info)
239         <total_alias_vops>: Remove.  Update all users.
240         <written_vars>: Change to a pointer set.  Update all
241         users.
242         <dereferenced_ptrs_store>: Likewise.
243         <dereferenced_ptrs_load>: Likewise.
244         (NUM_REFERENCES): Remove.  Update all users.
245         (NUM_REFERENCES_CLEAR): Remove.  Update all users.
246         (NUM_REFERENCES_INC): Remove.  Update all users.
247         (NUM_REFERENCES_SET): Remove.  Update all users.
248
249         * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
250         Update all users.
251         (PARAM_MAX_ALIASED_VOPS): Set to 10.
252         * tree-ssanames.c (make_ssa_name): Initialize
253         SSA_NAME_IS_DEFAULT_DEF to 0.
254
255 2006-12-11  Aldy Hernandez  <aldyh@redhat.com>
256
257         * tree-ssa-dse.c (aggregate_vardecl_d): New.
258         (dse_global_data): Add aggregate_vardecl field.
259         (dse_possible_dead_store_p): New.
260         Add prev_defvar variable.
261         Allow immediate uses and previous immediate uses to differ
262         if they are setting different parts of the whole.
263         (get_aggregate_vardecl): New.
264         (dse_record_partial_aggregate_store): New.
265         (dse_whole_aggregate_clobbered_p): New.
266         (dse_partial_kill_p): New.
267         (dse_optimize_stmt): Abstract code checking a possible dead store
268         into new function dse_possible_dead_store_p().
269         Call dse_maybe_record_aggregate_store().
270         When checking whether a STMT and its USE_STMT refer to the
271         same memory address, check also for partial kills that clobber
272         the whole.
273         Move some variable definitions to the block where they are used.
274         (aggregate_vardecl_hash): New.
275         (aggregate_vardecl_eq): New.
276         (aggregate_vardecl_free): New.
277         (aggregate_whole_store_p): New.
278         (tree_ssa_dse): Initialize and free aggregate_vardecl.
279         Mark which aggregate stores we care about.
280
281 2006-12-11  Andrew Macleod  <amacleod@redhat.com>
282
283         * tree-ssa-operands.h (struct vuse_element_d): Declare.
284         (vuse_element_t): Declare.
285         (struct vuse_vec_d): Declare.
286         (vuse_vec_p): Declare.
287         (VUSE_VECT_NUM_ELEM): Define.
288         (VUSE_VECT_ELEMENT_NC): Define.
289         (VUSE_ELEMENT_PTR_NC): Define.
290         (VUSE_ELEMENT_VAR_NC): Define.
291         (VUSE_VECT_ELEMENT): Define.
292         (VUSE_ELEMENT_PTR): Define.
293         (VUSE_ELEMENT_VAR): Define.
294         (struct maydef_optype_d) <use_var>: Remove.
295         <use_ptr>: Remove.
296         <usev>: Add.
297         (struct vuse_optype_d) <kill_var>: Remove.
298         <use_ptr>: Remove.
299         <usev>: Add.
300         (struct mustdef_optype_d) <kill_var>: Remove.
301         <use_ptr>: Remove.
302         <usev>: Add.
303         (VUSE_OP_PTR): Add argument.  Use VUSE_ELEMENT_PTR.
304         (VUSE_OP): Add argument.  Use VUSE_ELEMENT_PTR.
305         (VUSE_NUM): Define.
306         (VUSE_VECT): Define.
307         (MAYDEF_OP_PTR): Add argument.  Use VUSE_OP_PTR.
308         (MAYDEF_OP): Add argument.  Use VUSE_OP.
309         (MAYDEF_NUM): Define.
310         (MAYDEF_VECT): Define.
311         (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR.
312         (MUSTDEF_KILL): Use VUSE_OP.
313         (MUSTDEF_NUM): Define.
314         (MUSTDEF_VECT): Define.
315         (realloc_maydef): Declare.
316         (realloc_vuse): Declare.
317         (struct ssa_operand_iterator_d) <vuse_index>: Add.
318         <mayuse_index>: Add.
319         (LOADED_SYMS): Define.
320         (STORED_SYMS): Define.
321         (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef.
322         * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE
323         operators.
324         * tree-pretty-print.c: Likewise.
325         * tree-ssa-dse.c: Likewise.
326         * tree-flow-inline.h: Likewise.
327         (op_iter_next_mustdef): New.
328         * tree-ssa-operands.c: Likewise.
329         (ALLOC_OPTYPE): Remove.
330         Update all users.
331         (alloc_def): New.
332         (alloc_use): New.
333         (alloc_maydef): New.
334         (alloc_vuse): New.
335         (alloc_mustdef): New.
336         (realloc_maydef): New.
337         (realloc_vuse): New.
338
339 2006-12-11  Aldy Hernandez  <aldyh@redhat.com>
340
341         * tree-ssa-operands.c: Remove build_v_must_defs.
342         (init_ssa_operands): Delete build_v_must_defs.
343         (finalize_ssa_v_must_def_ops): Remove.
344         (finalize_ssa_v_must_defs): Remove.
345         (finalize_ssa_stmt_operands): Do not call
346         finalize_ssa_v_must_defs.
347         (start_ssa_stmt_operands): Do not check build_v_must_defs.
348         (append_v_must_def): Delete.
349         (copy_virtual_operands): Do not copy V_MUST_DEFs.
350         (get_modify_expr_operands): Remove reference to V_MUST_DEF from
351         comment.  Remove opf_kill_def.
352         (build_ssa_operands): Remove references to v_must_defs.
353         (copy_virtual_operands): Same.
354         (copy_virtual_operands): Same.
355         (fini_ssa_operands): Same.
356         (free_ssa_operands): Same.
357         (add_mustdef_op): Remove.
358         Remove mustdef_optype_p.
359         (alloc_mustdef): Remove.
360         Remove references to V_MUST_DEFs in comment at top of file.
361         (get_expr_operands): Remove opf_kill_def.
362         (opf_kill_def): Remove.
363         (add_virtual_operand): Remove opf_kill_def.
364         (get_indirect_ref_operands): Same.
365         (get_tmr_operands): Same.
366
367         * tree-vectorizer.c (rename_variables_in_bb): Remove
368         SSA_OP_ALL_KILLS.
369
370         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
371         SSA_OP_ALL_KILLS.
372         (check_loop_closed_ssa_stmt): Same.
373
374         * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
375         (verify_use): Same.
376         (verify_ssa): Remove V_MUST_DEFs traces.
377         (verify_ssa): Remove SSA_OP_ALL_KILLS.
378
379         * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
380         SSA_OP_VMAYDEF.
381         (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
382         (rewrite_stmt): Remove SSA_OP_ALL_KILLS.
383
384         * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
385         references.
386         (MUSTDEF_OPS): Remove.
387         (SSA_OP_VMUSTDEF): Remove.
388         (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove.
389         (struct mustdef_optype_d): Remove.
390         Remove mustdef_optype_p.
391         (struct stmt_operands_d): Remove mustdef_ops.
392         (ssa_operand_iterator_d): Remove mustdefs and mustkills.
393         (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF.
394         (MUSTDEF_RESULT_PTR): Remove.
395         (MUSTDEF_RESULT): Remove.
396         (MUSTDEF_KILL_PTR): Remove.
397         (MUSTDEF_KILL): Remove.
398         (MUSTDEF_NUM): Remove.
399         (MUSTDEF_VECT): Remove.
400         (SSA_OP_VIRTUAL_KILLS): Remove.
401         (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS.
402         (SSA_OP_VMUSTKILL): Remove.
403         (SSA_OP_ALL_KILLS): Remove.
404         (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS.
405
406         * tree-flow-inline.h (op_iter_init_def): Remove
407         SSA_OP_VIRTUAL_KILLS.
408         (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS.
409
410         * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
411         SSA_OP_VIRTUAL_KILLS.
412
413         * tree-ssa-loop-im.c (determine_max_movement): Remove
414         SSA_OP_VIRTUAL_KILLS.
415         (gather_mem_refs_stmt): Same.
416         (gather_mem_refs_stmt): Same.
417
418         * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete.
419         (perform_tree_ssa_dce): Remove call to
420         mark_really_necessary_kill_operand_phis.
421
422         * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
423         and mustkills.
424         (op_iter_next_use): Do not check mustkills.
425         (op_iter_next_def): Do not check mustdefs.
426         (op_iter_next_tree): Do not check mustkills or mustdefs.
427         (clear_and_done_ssa_iter): Do not set mustdefs or mustkills.
428         (op_iter_next_maymustdef): Do not check mustkills.
429         (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL.
430         (op_iter_init_mustdef): Remove.
431
432         * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
433         SSA_OP_VMAYDEF.
434
435         * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.
436
437         * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
438         (visit_assignment): Same.
439
440         * tree-ssa-copy.c (copy_prop_visit_assignment): Same.
441
442         * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.
443
444         * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.
445
446         * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
447         Remove kill_p variable.
448
449         * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs.
450         (dump_dfa_stats): Remove code related to V_MUST_DEFs.
451         (collect_dfa_stats_r): Do not set num_v_must_defs.
452         (mark_new_vars_to_rename): Remove v_must_defs_{before,after}
453         code.
454
455         * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
456         SSA_OP_VMAYUSE.
457
458         * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
459         SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.
460
461         * tree-ssa-propagate.c (stmt_makes_single_store): Remove
462         SSA_OP_VMUSTDEF.
463
464 2006-12-11  Zdenek Dvorak <dvorakz@suse.cz>
465
466         PR rtl-optimization/30113
467         * loop-iv.c (implies_p): Require the mode of the operands to be
468         scalar.
469
470 2006-12-11  Diego Novillo  <dnovillo@redhat.com>
471
472         * tree-ssa-operands.h (create_ssa_artificial_load_stmt):
473         Rename from create_ssa_artficial_load_stmt.  Update all users.
474         * tree-into-ssa.c (register_new_def): Make static.
475         * tree.c (is_global_var): Handle SSA_NAMEs.
476         * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define.  Update all users
477         that used to call gimple_default_def.
478         * tree-ssa-operands.c (push_stmt_changes): New.
479         (pop_stmt_changes): New.  Update every pass that modifies
480         statements to bracket modifications with
481         push_stmt_changes/pop_stmt_changes.
482         (discard_stmt_changes): New.
483         * tree-ssa-dom.c (stmts_to_rescan): Change to stack of
484         'tree *' instead of 'tree'.  Update all users.
485         * tree-flow-inline.h (zero_imm_uses_p): New.
486         (symbol_mem_tag): New.  Update every function that used
487         to access the annotation directly.
488         (set_symbol_mem_tag): Likewise.
489         * tree-dfa.c (dump_variable): Always show the escape mask.
490         (mark_symbols_for_renaming): Rename from
491         mark_new_vars_to_rename.  Update all users.
492         Only mark to rename naked symbols in real and virtual
493         operands.
494
495 2006-12-11  Andreas Schwab  <schwab@suse.de>
496
497         * varasm.c (elf_record_gcc_switches): Cast second argument of
498         ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
499
500 2006-12-11  Diego Novillo  <dnovillo@redhat.com>
501
502         * tree-scalar-evolution.c (scev_const_prop):
503         * tree-phinodes.c (remove_phi_node): Add argument
504         RELEASE_LHS_P.  If given, release the SSA name on the LHS of
505         the PHI node.
506         Update all users.
507         * tree-ssa-dce.c: Remove forward declarations for static
508         functions.  Re-arrange functions bodies as needed.
509         (find_obviously_necessary_stmts): Never mark PHI nodes as
510         obviously necessary.
511
512 2006-12-11  Carlos O'Donell  <carlos@codesourcery.com>
513
514         * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
515
516 2006-12-11  Jan Hubicka  <jh@suse.cz>
517
518         * value-prof.c (tree_stringops_transform): New.
519         (tree_value_profile_transformations): Require count to be non-zero;
520         call stringop transform; reset stmt BSI after BB changed.
521         (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label.
522         (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New.
523         (tree_stringops_values_to_profile): New.
524         (tree_values_to_profile): Call tree_stringops_values_to_profile.
525         * tree.h (build_string_literal): Tidy prototype.
526         (validate_arglist, builtin_memset_read_str, get_pointer_alignment):
527         Declare.
528         * builtins.c (validate_arglist, builtin_memset_read_str,
529         get_pointer_alignment): Export.
530
531 2006-12-11  Uros Bizjak  <ubizjak@gmail.com>
532
533         PR target/30120
534         Revert:
535         2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
536
537         * config/i386/i386.opt: New target option -mx87regparm.
538
539         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
540         float_in_x87: Add new variables. mmx_words, sse_words: Remove.
541         (X87_REGPARM_MAX): Define.
542
543         * config/i386/i386.c (override_options): Error out for
544         -mx87regparm but no 80387 support.
545         (ix86_attribute_table): Add x87regparm.
546         (ix86_handle_cconv_attribute): Update comments for x87regparm.
547         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
548         (ix86_function_x87regparm): New function.
549         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
550         point registers.
551         (init_cumulative_args): Initialize x87_nregs and float_in_x87
552         variables.
553         (function_arg_advance): Process x87_nregs and x87_regno when
554         floating point argument is to be passed in 80387 register.
555         (function_arg): Pass XFmode arguments in 80387 registers for local
556         functions.  Pass SFmode and DFmode arguments to local functions
557         in 80387 registers when flag_unsafe_math_optimizations is set.
558
559         * reg-stack.c (convert_regs_entry): Disable NaN load for
560         stack registers that are used for argument passing.
561
562         * doc/extend.texi: Document x87regparm function attribute.
563         * doc/invoke.texi: Document -mx87regparm.
564
565 2006-12-11  Jan Hubicka  <jh@suse.cz>
566
567         Move all varpool routines out of cgraph/cgraphunit to varpool.c
568         * cgraph.c: Update comments.
569         (cgraph_varpool_hash,
570         cgraph_varpool_nodes, cgraph_varpool_last_needed_node
571         cgraph_varpool_node_name, cgraph_varpool_node,
572         cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node,
573         cgraph_variable_initializer_availability): Move to
574         varpool.c and drop cgraph_ prefixes.
575         (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue,
576         cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl):
577         move to varpool.c; drop cgraph_ prefix; make static.
578         (dump_cgraph_varpool_node): Move to varpool.c under name
579         dump_varpool_node.
580         (dump_varpool, hash_varpool_node, eq_varpool_node,
581         decide_is_variable_needed): Move to varpool.c
582         (decl_assembler_name_equal): Move to tree.c.
583         (availability_names): Rename to ...
584         (cgraph_availability_names): ... this one.
585         (dump_cgraph_node): Update.
586         * cgraph.h: Reorder declarations now in varpool.c
587         (cgraph_vailablity_names): Declare.
588         (struct cgraph_varpool_node): Rename to ...
589         (struct varpool_node): ... this one.
590         (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue,
591         cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node,
592         cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node,
593         cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node,
594         cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls,
595         cgraph_variable_initializer_availability): Rename to ...
596         (varpool_first_unanalyzed_node, varpool_nodes_queue,
597         varpool_first_unanalyzed_node, varpool_node,
598         varpool_node_for_asm, varpool_mark_needed_node,
599         varpool_finalize_decl, varpool_enqueue_needed_node,
600         varpool_assemble_pending_decls, variable_initializer_availability):
601         Rename to ...
602         * tree.c (decl_assembler_name_equal): Move here from cgraph.c.
603         * tree.h (decl_assembler_name_equal): Declare.
604         * omp-low.c (lower_omp_critical): Update.
605         * ipa-reference (analyze_variable, static_execute): Likewise.
606         * toplev.c (wrapup_global_declaration_2, compile_file): Update.
607         * cgraphunit.c: Update comments.
608         (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name
609         varpool_assembled_nodes_queue.
610         (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name
611         varpool_analyze_pending_decls.
612         (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name
613         varpool_remove_unreferenced_decls.
614         (record_reference): Update.
615         (cgraph_create_edges): Update.
616         (record_referneces_in_initializer): New function.
617         (cgraph_varpool_assemble_decl): Move to varpool.c under name
618         varpool_assemble_decl; make global.
619         (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name
620         varpool_assemble_pending_decls.
621         (process_function_and_variable_attributes, cgraph_finalize_compilation_unit,
622         struct cgraph_order_sort, cgraph_output_in_order,
623         cgraph_function_and_variable_invisibility, cgraph_optimize,
624         cgraph_increase_alignment): Update.
625         * dwarf2out.c (decls_for_scope): Likewise.
626         * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise.
627         * except.c (output_ttype): Likewise.
628         * varasm.c (mark_decl_referenced): Likewise.
629         (find_decl_and_mark_referenced, assemble_alias): update.
630         * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c
631         * passes.c (rest_of_decl_compilation): Update.
632
633 2006-12-11  Ira Rosen  <irar@il.ibm.com>
634
635         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use 
636         GIMPLE_STMT_OPERAND.
637         * tree-vect-transform.c (vect_permute_store_chain): Likewise.
638         (vect_setup_realignment): Likewise.
639
640 2006-12-11  Sa Liu  <saliu@de.ibm.com>
641             Ben Elliston  <bje@au.ibm.com>
642
643         * config/spu/spu-elf.h (STARTFILE_SPEC): Update.
644         (ENDFILE_SPEC): Likewise.
645         * config/spu/spu.opt (mstdmain): New option.
646         * config/spu/crti.asm: Remove.
647         * config/spu/crtn.asm: Likewise.
648         * config/spu/crt0.c: Likewise.
649         * config/spu/crtend.c: Likewise.
650         * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files
651         listed above.
652         ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
653         * doc/invoke.texi (SPU Options): Document -mstdmain.
654
655 2006-12-10  Zdenek Dvorak <dvorakz@suse.cz>
656
657         * doc/loop.texi: Document number_of_latch_executions and
658         number_of_cond_exit_executions.
659         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
660         chrec_is_positive, number_of_iterations_for_all_loops,
661         scev_const_prop): Use number_of_latch_executions.
662         (set_nb_iterations_in_loop): Do not increase the value of the
663         number of iterations.
664         (number_of_iterations_in_loop): Renamed to ...
665         (number_of_latch_executions): ... this.
666         (number_of_exit_cond_executions): New function.
667         * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration
668         removed.
669         (number_of_latch_executions, number_of_exit_cond_executions): Declare.
670         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use
671         number_of_latch_executions.
672         * tree-data-ref.c (get_number_of_iters_for_loop): Use
673         number_of_exit_cond_executions.
674         * tree-vect-analyze.c (vect_get_loop_niters): Ditto.
675         * cfgloop.h (struct loop): Improve description of the nb_iterations
676         field.
677
678 2006-12-10  Daniel Berlin  <dberlin@dberlin.org>
679
680         * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
681         (tree_pointer_compare): Remove.
682
683 2006-12-10  Zdenek Dvorak <dvorakz@suse.cz>
684
685         * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
686         * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
687         * tree-loop-linear.c (linear_transform_loops): Ditto.
688         * tree-ssa-loop-im.c (determine_lsm): Ditto.
689         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
690         free_numbers_of_iterations_estimates): Ditto.
691         * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
692         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
693         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
694         * modulo-sched.c (sms_schedule): Ditto.
695         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
696         tree_unroll_loops_completely): Ditto.
697         * predict.c (predict_loops): Ditto.
698         * tree-if-conv.c (main_tree_if_conversion): Ditto.
699         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
700         decide_unrolling_and_peeling): Ditto.
701         * cfgloopmanip.c (unloop): Use delete_loop.
702         (place_new_loop): Access larray vector instead of parray.
703         (create_preheaders, force_single_succ_latches,
704         fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
705         * loop-doloop.c (doloop_optimize_loops): Ditto.
706         * loop-invariant.c (move_loop_invariants): Ditto.
707         * tree-cfg.c (replace_uses_by): Ditto.
708         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
709         * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
710         Moved to ...
711         * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
712         ... here.
713         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
714         compute_overall_effect_of_inner_loop, chrec_is_positive): Use
715         get_loop and get_chrec_loop.
716         (number_of_iterations_for_all_loops): Use number_of_loops.
717         (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
718         * tree-scalar-evolution.h (get_chrec_loop): New inline function.
719         * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
720         and FOR_EACH_LOOP.
721         * tree-chrec.c (evolution_function_is_invariant_rec_p,
722         chrec_convert_1): Use get_loop and get_chrec_loop.
723         * loop-init.c (loop_optimizer_init): Use number_of_loops.
724         (loop_optimizer_init): Use FOR_EACH_LOOP.
725         * tree-vectorizer.c (vect_loops_num): Removed.
726         (vectorize_loops): Store number of loops locally.  Use
727         FOR_EACH_LOOP and get_loop.
728         * tree-vectorizer.h (vect_loops_num): Removed.
729         * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
730         (find_data_references_in_loop): Do not set parallel_p.
731         * tree-data-ref.h: Do not declare VEC(loop_p).
732         * cfgloop.c (flow_loops_dump, mark_single_exit_loops,
733         verify_loop_structure): Use FOR_EACH_LOOP.
734         (flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
735         (initialize_loops_parallel_p): Removed.
736         (flow_loops_find): Push the loops into a vector.
737         (delete_loop): New function.
738         (cancel_loop): Use delete_loop.
739         * cfgloop.h: Declare VEC(loop_p).
740         (struct loop): Remove parallel_p field.
741         (struct loops): Replace num and parray field by larray vector.
742         Remove shared_headers field.
743         (delete_loop): Declare.
744         (get_loop, get_loops, number_of_loops, fel_next, fel_init,
745         FOR_EACH_LOOP): New.
746         * doc/loop.tex: Document new accessor functions.
747
748 2006-12-10  Andrew MacLeod  <amacleod@redhat.com>
749
750         * common.opt (-ftree-lrs): Remove live range splitting option.
751         * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
752         * opts.c (decode_options): Remove flag_tree_live_range_split.
753         * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
754         * tree-flow-inline.h (single_imm_use_p): New.  Check for single use.
755         * tree-outof-ssa.c: Remove header files which aren't needed.
756         (SSANORM_*): Remove flags.
757         (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, 
758         coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
759         (coalesce_ssa_name): Move to tree-ssa-coalesce.c.
760         (assign_vars): Use Basevar instead of root_var structure.
761         (replace_def_variable): Dont do anything if def is replaceable.
762         (remove_ssa_form): Integrate functional changes.
763         (rewrite_out_of_ssa): Remove live-range_split option.
764         * tree-ssa-coalesce.c: New File for ssa-name coalescing.
765         (coalesce_cost): Calculate the cost of a coalesce.
766         (coalesce_cost_bb): Calculate the coalesce cost within a BB.
767         (coalesce_cost_edge): Calculate the coalesce cost on an edge.
768         (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
769         (pop_best_coalesce): Remove the best coalesce from the list.
770         (coalesce_pair_map_hash): Calculate coalesce pair hash.
771         (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
772         (create_coalesce_list): Create a coalesce list object.
773         (delete_coalesce_list): Free a coalesce list object.
774         (find_coalesce_pair): Find matching pair in the coalesce list.
775         (add_cost_one_coalesce): Add a coalesce to the "cost one" list.
776         (add_coalesce): Add a coalesce to the coalesce list.
777         (compare_pairs): Comparision function to determine pair sorted order.
778         (num_coalesce_pairs): Number of coalesced pairs.
779         (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
780         Coalesce pair iterator functions.
781         (sort_coalesce_list): Sort coalesce pairs in order of expense.
782         (dump_coalesce_list): Show coalesce list.
783         (ssa_conflicts_new): Create an SSA conflict graph.
784         (ssa_conflicts_delete): Delete an SSA conflict graph.
785         (ssa_conflicts_test_p): Test for conflicts.
786         (ssa_conflicts_add_one): Add a single conflict.
787         (ssa_conflicts_add): Add a conflict pair.
788         (ssa_conflicts_merge): Merge conflicts.
789         (struct live_track_d): Struct for tracking live partitions.
790         (new_live_track): Create new live_track object.
791         (delete_live_track): Delete a live_track object.
792         (live_track_remove_partition): Remove a partition from the live list.
793         (live_track_add_partition): Add a partition from the live list.
794         (live_track_clear_var): Take VAR from the live list.
795         (live_track_live_p): Is var live?
796         (live_track_process_use): Make var come alive.
797         (live_track_process_def): Make var go dead, add conflicts.
798         (live_track_init): Initialize to a live on exit set.
799         (live_track_clear_base_vars): Clear live partitions.
800         (build_ssa_conflict_graph): Build a conflict graph.
801         (print_exprs): Common debug output routine.
802         (abnormal_corrupt): Output info about a failed coalesce across an
803         abnormal edge.
804         (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
805         (create_outofssa_var_map): Create a var map and coalesce list.
806         (attempt_coalesce): Coalesce a pair.
807         (coalesce_partitions): Coalesce all pairs in a coalesce list.
808         (coalesce_ssa_name): Entry point.  Determine what ssa_names to coalesce.
809         * tree-ssa-live.c: Remove header files which aren't needed.
810         (var_map_base_init): New.  Initialize a basevar list.
811         (var_map_base_fini): New.  Finish a basevar list.
812         (init_var_map): Initialize new fields.
813         (delete_var_map): Free new fields.
814         (var_union): Use renamed fields.
815         (compact_var_map): Remove.
816         (partition_to_view_init): Use renamed fields, change order of an if.
817         (partition_view_fini): Use renamed fields.
818         (partition_view_normal): Create basevar list if requested.
819         (partition_view_bitmap): Create a view based on a bitmap of partitions.
820         (change_partition_var): Use renamed fields.
821         (create_ssa_var_map): Remove.
822         (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
823         root_var_init): Remove.
824         (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
825         delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
826         compare_pairs, num_coalesce_pairs, first_partition_pair,
827         end_partition_pair_p, next_partition_pair, sort_coalesce_list,
828         pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
829         build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
830         tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
831         (dump_var_map): Use renamed fields.
832         * tree-ssa-live.h (struct  _var_map): Modify fields.
833         (partition_to_var, version_to_var, var_to_partition): Use renamed 
834         fields.
835         (basevar_index): New.  Index of the base variable of a partition.
836         (num_basevars): New.  Number of unique base variables in partition map.
837         (register_ssa_partition): Use renamed fields.
838         (struct tree_partition_associator_d): Remove.
839         (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
840         tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
841         root_var, root_var_first_partition, root_var_next_partition,
842         root_var_dump, root_var_delete, root_var_remove_partition, 
843         root_var_find, root_var_compact, root_var_decompact): Remove.
844         (struct partition_pair, struct coalesce_list_d): Moved to 
845         tree-ssa-coalesce.c
846         * tree-ssa-ter.c: Remove header files which aren't needed.
847
848 2006-12-10  Steven Bosscher  <steven@gcc.gnu.org>
849
850         * cse.c: (struct cse_basic_block_data): Remove LAST field.
851         (struct branch_path): Remove BRANCH and TAKEN fields. Add new
852         BB field.
853         (cse_visited_basic_blocks): New static bitmap.
854         (cse_end_of_basic_block, cse_basic_block): Remove.
855         (cse_find_path, cse_dump_path, cse_prescan_path,
856         cse_extended_basic_block): New static functions.
857         (cse_insn): Don't CSE over setjmp calls.  Use the CFG to find
858         basic block boundaries.  Don't record jump equivalences here.
859         Update the CFG after doing in-place replacement of the SET_SRC.
860         (cse_main): Rewrite.  Look for extended basic block headers
861         and call cse_extended_basic_block on them until all paths that
862         start at this header are exhausted.
863         (rest_of_handle_cse): Verify that the CFG is incrementally updated
864         and correct after cse_main.
865         Don't call delete_trivially_dead_insns, let cfgcleanup do that.
866         (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
867         (pass_cse): Add TODO_verify_flow.
868         (pass_cse2): Likewise.
869
870 2006-12-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>
871
872         * reload1.c (choose_reload_regs): Don't set byte offset when
873         resolving subregs of hard regs.
874
875 2006-12-09  Zack Weinberg  <zackw@panix.com>
876
877         * c-opts.c (c_common_parse_file): Unconditionally give a warning,
878         suitable for the language, if set_yydebug is true.
879         * c-pragma.h: Define enum pragma_omp_clause here.  Don't define
880         YYDEBUG or declare yydebug.
881         * c-parser.c (yydebug, enum pragma_omp_clause): Delete.
882
883 2006-12-09  Jan Hubicka  <jh@suse.cz>
884
885         * cgraph.c: Update copyright.
886         * cgraph.h: Likewise
887         (cgraph_update_pending_function): Remove prototype.
888         * cgraphunit.c: Update copyright; update overall comment.
889         (cgraph_assemble_pending_functions): Make local.
890
891 2006-12-09  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
892
893         * haifa-sched.c (schedule_block): Remove excessive sanity check.
894
895 2006-12-08  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
896
897         * config/spu/spu-protos.h (spu_split_immediate): Renamed from
898         spu_split_address.
899         (cpat_const_p, gen_cpat_const): Add.
900         * config/spu/spu.c (immediate_class): New enum.
901         (cpat_info, classify_immediate): New.
902         (print_operand): Use S, D, T instead of F, G, H.  Use
903         classify_immediate.  Handle cpat cases.
904         (spu_split_immediate):  Renamed from spu_split_address.  Split all
905         immediates that can be split.
906         (immediate_load_p): Use classify_immediate.
907         (spu_legitimate_constant_p): Accept everything except some cases of
908         CONST_VECTOR.
909         (spu_expand_move): Use spu_split_immedate.
910         (fsmbi_const_p): Use classify_immediate.
911         (cpat_const_p): New.
912         (gen_cpat_const: New.
913         * config/spu/constraints.md (j,k,l): New constraints for cpat
914         instructions.
915         * config/spu/spu.md (unnamed splitter): Change address splitter to
916         handle all immediates.
917         (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat
918         instructions.
919         (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
920         when possible.
921
922 2006-12-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
923
924         PR target/30039
925         * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
926         patterns.  Correct length of high:DI instruction sequence.
927
928 2006-12-08  Mike Stump  <mrs@apple.com>
929
930         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
931         libgcc with -mmacosx-version-min=10.4.
932         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
933         G4 for 10.5+ unless doing kernel builds.
934
935 2006-12-08  Uros Bizjak  <ubizjak@gmail.com>
936
937         PR target/30120
938         * reg-stack.c (convert_regs_entry): Mark current argument passing
939         registers as live.
940
941         * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
942         of float arguments in x87 registers.
943
944 2006-12-08  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
945
946         * pa.h (LEGITIMATE_CONSTANT_P): Simplify.
947
948 2006-12-08  Mark Shinwell  <shinwell@codesourcery.com>
949
950         * recog.c (mode_dependent_address_p): Identify pre-increment,
951         pre-decrement, post-increment and post-decrement addressing as always
952         being mode-dependent.
953         * config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
954         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
955         * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
956         * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
957         PRE_INC and POST_INC checks.
958         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
959         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
960         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
961         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
962         * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
963         PRE_INC, POST_DEC and POST_INC cases.
964         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
965         Delete POST_INC and PRE_DEC cases.
966         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
967         no-op.
968         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
969         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
970         no-op.
971         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
972         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
973         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
974         PRE_INC and PRE_DEC cases.
975         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
976         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
977         * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
978         (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
979         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
980         * config/vax/vax.c (vax_mode_dependent_address_p): Delete
981         auto-increment cases.
982         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
983         auto-increment cases.
984         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
985
986 2006-12-08  Andrew MacLeod  <amacleod@redhat.com>
987
988         * Makefile.in: Add new file tree-ssa-ter.c.
989         * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
990         free_temp_expr_table, add_value_to_version_list,
991         add_value_to_partition_list, remove_value_from_partition_list,
992         add_dependence, check_replaceable, finish_expr, mark_replaceable,
993         kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
994         find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
995         * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
996         prototypes.
997         * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
998         (struct value_expr_d): Remove.
999         (struct temp_expr_table_d): Rename fields, add explicit vector of
1000         replaceable expressions instead of sharing.  Change value_expr_p's to
1001         bitmap.  Delete free_list.
1002         (new_temp_expr_table): Rename fields, count number of ssa_names in
1003         each partition.
1004         (free_temp_expr_table): Rename field, free new fields.
1005         (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
1006         add_info_to_list, remove_value_from_list): Delete.
1007         (version_to_be_replaced_p): New.  Is an ssa-name replaceable?
1008         (make_dependent_on_partition): New.  Set bit in version list, allocating
1009         a bitmap if need be.
1010         (add_to_partition_kill_list): New.  Set bit in the partition list,
1011         allocating a bitmap if need be.
1012         (remove_from_partition_kill_list): New.  Remove a bit from the
1013         partition list, free the bitmap if it is empty.
1014         (add_dependence): Use renamed field, cleanup.  Don't add a dependence
1015         on partitions with only one member.
1016         (is_replaceable_p): New.  Split out replaceability check from
1017         check_replaceable.
1018         (process_replaceable): New.  Code split from check_replaceable.
1019         (check_replaceable): Removed.
1020         (finished_with_expr): Renamed from finish_expr.
1021         (kill_expr): Use renamed fields and less parameters.
1022         (kill_virtual_exprs): Less parameters.
1023         (mark_replaceable): Use renamed fields.
1024         (find_replaceable_in_bb): Use renamed fields, cleanup.
1025         (find_replaceable_exprs): Use renamed routines, cleanup.
1026         (dump_replaceable_exprs): Don't go past end of ssa_names list.
1027         (debug_ter): New.  Debug routine to dump state.
1028
1029 2006-12-08  Bernd Schmidt  <bernd.schmidt@analog.com>
1030
1031         * config/bfin/bfin.c (effective_address_32bit_p): Return true for
1032         anything involving the GOT.
1033         (bfin_adjust_cost): Don't take the REGNO of a MEM.
1034         (trapping_loads_p): Look inside the pattern of an insn to find the
1035         SET.
1036         * config/bfin/bfin.md (attr "type"): Add movcc.
1037         (insn_reservation "alu"): Likewise.
1038         (movsicc_insn1, movsicc_insn2): Change type to movcc.
1039
1040 2006-12-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1041
1042         * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
1043         (spu_resolve_overloaded_builtin): Check for non scalar instead
1044         of vector type and check the function call argument type also for
1045         non scalar.
1046         Call build_function_call instead of spu_build_overload_builtin.
1047
1048 2006-12-07  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1049
1050         * config/spu/spu.c (array_to_constant): Correct the order of arguments
1051         to the calls of hwint_to_const_double.
1052
1053 2006-12-07  Nick Clifton  <nickc@redhat.com>
1054
1055         * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
1056         elf_record_gcc_switches.
1057
1058 2006-12-07  Andrew Macleod  <amacleod@redhat.com>
1059
1060         * expr.c (string_constant): Account for non-zero lower bound arrays.
1061
1062 2006-12-07  Richard Guenther  <rguenther@suse.de>
1063
1064         * builtins.c (expand_builtin_pow): Adjust predicates for
1065         pow to cbrt expansion to unsafe math and !HONOR_NANS for
1066         negative base.
1067
1068 2006-12-07  Jan Hubicka  <jh@suse.cz>
1069
1070         * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
1071         codegen.
1072
1073 2006-12-07  Jan Hubicka  <jh@suse.cz>
1074
1075         * tree-vrp.c (compare_values): Short circuit INTEGER_CST;
1076         use fold_constant_to_binary; tolerate wrong type constants.
1077         (value_intersect_p): Do just two tests.
1078
1079 2006-12-07  Bernd Schmidt  <bernd.schmidt@analog.com>
1080
1081         * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
1082         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
1083         lshifthi3): Use it, and fix the order of alternatives.
1084
1085 2006-12-07  Nick Clifton  <nickc@redhat.com>
1086
1087         * common.opt (record-gcc-switches): New command line switch.
1088         * target.h (print_switch_type): New enum.
1089         (print_switch_fn_type): New typedef for a function pointer.
1090         (struct gcc_target): Add record_gcc_switches and
1091         record_gcc_switches_section fields.
1092         * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
1093         default definition.
1094         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
1095         definition.
1096         * toplev.c (print_single_switch): Simplify by providing a
1097         pointer to function that will format and output the switch
1098         appropriately.
1099         (print_switch_values): Likewise.
1100         (print_to_asm_out_file): New function.
1101         (print_to_stderr): New function.
1102         (init_asm_output): If flag_record_gcc_switches is set then if
1103         the target supports recording the switches then emit them into
1104         the assembler output file, otherwise tell the user that the
1105         switch is not supported.
1106         * varasm.c (eld_record_gcc_switches): New function.  Example
1107         handler for the record_gcc_switches target hook.
1108         * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
1109         target hook.
1110         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
1111         * doc/invoke.texi (-frecord-gcc-switches): Document.
1112
1113 2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1114
1115         PR target/29794
1116         * sched-rgn.c (add_block1): Use correct initializer.
1117
1118 2006-12-07  Richard Guenther  <rguenther@suse.de>
1119
1120         * tree-vect-transform.c (vectorizable_call): Fix leftover of
1121         TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
1122
1123 2006-12-06  Aldy Hernandez  <aldyh@redhat.com>
1124
1125         PR/30079
1126         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
1127         not GIMPLE_MODIFY_STMT.
1128
1129 2006-12-06  Jan Hubicka  <jh@suse.cz>
1130
1131         * tree-vrp.c (operand_less_p): New.
1132         (compare_values, value_inside_range): Rewrite in terms of
1133         operand_less_p.
1134
1135 2006-12-06 Uros Bizjak <ubizjak@gmail.com>
1136
1137         * config/i386/i386.md (DIRFLAG_REG): Remove constant.
1138         (type): Remove cld.
1139         (length_immediate): Do not depend on cld type attribute.
1140         (length_address): Ditto.
1141         (modrm): Ditto.
1142         (memory): Ditto.
1143         (cld): Remove insn pattern.
1144         (strmov_singleop): Do not use DIRFLAG_REG.
1145         (*strmovdi_rex_1): Ditto.
1146         (*strmovsi_1): Ditto.
1147         (*strmovsi_rex_1): Ditto.
1148         (*strmovhi_1): Ditto.
1149         (*strmovhi_rex_1): Ditto.
1150         (*strmovqi_1): Ditto.
1151         (*strmovqi_rex_1): Ditto.
1152         (rep_mov): Ditto.
1153         (*rep_movdi_rex64): Ditto.
1154         (*rep_movsi): Ditto.
1155         (*rep_movsi_rex64): Ditto.
1156         (*rep_movqi): Ditto.
1157         (*rep_movqi_rex64): Ditto.
1158         (strset_singleop): Ditto.
1159         (*strsetdi_rex_1): Ditto.
1160         (*strsetsi_1): Ditto.
1161         (*strsetsi_rex_1): Ditto.
1162         (*strsethi_1): Ditto.
1163         (*strsethi_rex_1): Ditto.
1164         (*strsetqi_1): Ditto.
1165         (*strsetqi_rex_1): Ditto.
1166         (rep_stos): Ditto.
1167         (*rep_stosdi_rex64): Ditto.
1168         (*rep_stossi): Ditto.
1169         (*rep_stossi_rex64): Ditto.
1170         (*rep_stosqi): Ditto.
1171         (*rep_stosqi_rex64): Ditto.
1172         (cmpstrnsi): Do not generate cld insn.
1173         (cmpstrnqi_nz_1): Do not use DIRFLAG_REG.
1174         (*cmpstrnqi_nz_1): Ditto.
1175         (*cmpstrnqi_nz_rex_1): Ditto.
1176         (cmpstrnqi_1): Ditto.
1177         (*cmpstrnqi_1): Ditto.
1178         (*cmpstrnqi_rex_1): Ditto.
1179         (strlenqi_1): Ditto.
1180         (*strlenqi_1): Ditto.
1181         (*strlenqi_rex_1): Ditto.
1182
1183         * config/i386/geode.md (shift): Do not depend on cld type attribute.
1184         * config/i386/pentium.md (pent_cld): Remove insn reservation.
1185         * config/i386/athlon.md (athlon_decode): Do not depend on cld
1186         type attribute.
1187         * config/i386/ppro.md (ppro_cld): Remove insn reservation.
1188         * config/i386/k6.md (k6_alux_only): Do not depend on cld type
1189         attribute.
1190         (k6_alux_only_load): Ditto.
1191         (k6_alux_only_store): Ditto.
1192
1193         * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean.
1194         Do not emit cld instruction.
1195         (ix86_expand_setmem): Ditto.
1196         (ix86_expand_strlen): Do not emit cld instruction.
1197
1198 2006-12-06  Bernd Schmidt  <bernd.schmidt@analog.com>
1199
1200         * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
1201         old ones.
1202
1203 2006-12-06  Diego Novillo  <dnovillo@redhat.com>
1204
1205         * gdbinit.in: Set complaints to 0.
1206
1207 2006-12-06  Jan Hubicka  <jh@suse.cz>
1208
1209         * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
1210         ALONE_MEM_STAT_DECL): New macros.
1211         * bitmap.h: Include statistics.h
1212         (struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
1213         (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
1214         (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
1215         * bitmap.c: Include hashtab.h
1216         (bitmap_descriptor): New.
1217         (bitmap_hash): New static variable
1218         (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
1219         New static functions.
1220         (bitmap_register): New.
1221         (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
1222         bitmap_obstack_release): Do accounting.
1223         (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
1224         accounting.
1225         (bitmap_gc_alloc_stat): Likewise.
1226         (bitmap_obstack_free, bitmap_find_bit): Do statictics.
1227         (print_statistics, dump_bitmap_statistics): New functions.
1228         * toplev.c (finalize): Dump bitmap statistics.
1229
1230 2006-12-06  Bernd Schmidt  <bernd.schmidt@analog.com>
1231
1232         * reload1.c (delete_output_reload): Count occurrences in
1233         CALL_INSN_FUNCTION_USAGE.
1234         * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
1235         crashing at the end of the list.
1236
1237 2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
1238
1239         * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
1240         Optimize to avoid marking more SMT's as used when they aren't.
1241
1242 2006-12-05  Eric Christopher  <echristo@apple.com>
1243
1244         * config/i386/i386.c (x86_output_aligned_bss): Move out
1245         of COMMON_ASM_OP ifdef.
1246
1247 2006-12-05  Eric Christopher  <echristo@apple.com>
1248
1249         * config/darwin.h (DARWIN_EXTRA_SPECS): New.
1250         (STARTFILE_SPEC): Use.
1251         (DARWIN_DYLIB1_SPEC): New.
1252         (DARWIN_CRT1_SPEC): New.
1253         * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
1254         DARWIN_EXTRA_SPECS.
1255         * config/i386/darwin.h: Ditto.
1256         * config/rs6000/darwin.h: Ditto.
1257
1258 2006-12-05  Daniel Berlin  <dberlin@dberlin.org>
1259
1260         * tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
1261         * tree-complex.c (pass_lower_complex): Ditto.
1262         * tree-ssa-ccp.c (pass_ccp): Ditto.
1263         (pass_store_ccp): Ditto.
1264         * tree-ssa-dom.c (pass_dominator): Ditto.
1265         (pass_phi_only_cprop): Ditto.
1266         * tree-sra.c (pass_sra): Ditto.
1267         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
1268         * tree-flow.h (updating_used_alone): Remove.
1269         (updating_used_alone): Ditto.
1270         * tree-ssa-alias.c (updating_used_alone): Remove variable.
1271         (lhs_may_store_to): Remove function.
1272         (recalculate_used_alone): Ditto.
1273         (compute_may_aliases): Remove used_alone calculation.
1274         * tree.h (struct tree_memory_tag): Remove is_used_alone and
1275         old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
1276         * tree-pass.h (PROP_smt_usage): Remove.
1277         * passes.c (execute_todo): Remove used alone recalculation.
1278         (execute_one_pass): Ditto.
1279         * tree-ssa-operands.c (add_virtual_operand): Remove used_alone
1280         stuff.
1281
1282 2006-12-05  Brooks Moses  <brooks.moses@codesourcery.com>
1283
1284         * doc/include/texinfo.tex: Update to version 2006-11-08.17.
1285
1286 2006-12-05  Zdenek Dvorak <dvorakz@suse.cz>
1287
1288         PR tree-optimization/14784
1289         * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
1290
1291 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
1292
1293         Merge from gimple-tuples-branch.
1294
1295         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1296
1297         * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
1298         GIMPLE_MODIFY_STMT.
1299         (s390_gimplify_va_arg): Same.
1300         * config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
1301         * config/sh/sh.c (sh_va_start): Same.
1302         (sh_gimplify_va_arg_expr): Same.
1303         * config/xtensa/xtensa.c (xtensa_va_start): Same.
1304         (xtensa_gimplify_va_arg_expr): Same.
1305         * config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
1306         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
1307         * config/mips/mips.c (mips_va_start): Same.
1308         (mips_gimplify_va_arg_expr): Same.
1309
1310         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1311
1312         * Merge from mainline at revision 119445.
1313
1314         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1315
1316         * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
1317         GIMPLE_MODIFY_STMT.
1318         (spu_gimplify_va_arg_expr): Same.
1319
1320         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1321
1322         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1323         Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
1324         (xstormy16_expand_builtin_va_arg): Same.
1325
1326         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1327
1328         * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
1329         to GIMPLE_MODIFY_STMT.
1330
1331         2006-12-04  Aldy Hernandez  <aldyh@redhat.com>
1332
1333         * config/alpha/alpha.c (va_list_skip_additions): Change all
1334         occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
1335         (alpha_va_start): Same.
1336         (alpha_gimplify_va_arg_1): Same.
1337         (alpha_gimplify_va_arg): Same.
1338
1339         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
1340
1341         * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
1342
1343         2006-12-01  Aldy Hernandez  <aldyh@redhat.com>
1344
1345         * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
1346         GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
1347         GENERIC_TREE_TYPE.
1348         * tree-complex.c: Same.
1349         * tree-pretty-print.c: Same.
1350         * tree.c: Same.
1351         * tree.h: Same.
1352         * builtins.c: Same.
1353         * fold-const.c: Same.
1354         * tree-ssa-dom.c: Same.
1355         * tree-ssa-propagate.c: Same.
1356         * tree-ssa-alias.c: Same.
1357         * gimple-low.c: Same.
1358         * dwarf2out.c: Same.
1359         * c-pretty-print.c: Same.
1360         * gimplify.c: Same.
1361         * tree-inline.c: Same.
1362         * tree-outof-ssa.c: Same.
1363         * tree-ssa-structalias.c: Same.
1364         * tree-ssa-reassoc.c: Same.
1365         * stmt.c: Same.
1366
1367         2006-11-16  Aldy Hernandez  <aldyh@redhat.com>
1368
1369         * tree.c (build2_stat): Fix comment.
1370
1371         2006-11-13  Aldy Hernandez  <aldyh@redhat.com>
1372
1373         * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
1374         TREE_OPERAND when appropriate.
1375
1376         2006-11-04  Aldy Hernandez  <aldyh@redhat.com>
1377
1378         * java/java-tree.h (lang_tree_node): Handle gimple tuples.
1379         (EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
1380         (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
1381         * java/java-gimplify.c (java_gimplify_expr): Comment on why we do
1382         not handle GIMPLE_MODIFY_STMT in the switch statement.
1383         (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
1384         (java_gimplify_new_array_init): Same.
1385
1386         2006-11-03  Aldy Hernandez  <aldyh@redhat.com>
1387
1388         * gimplify.c (gimplify_omp_for): Allow gimple statements.
1389         * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
1390         * fold-const.c (fold_binary): Allow gimple statements.
1391         (fold): Same.
1392         * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
1393         Rename from gfc_conv_descriptor_data_set.
1394         Call gfc_add_modify instead of gfc_add_modify_expr.
1395         * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
1396         Rename from gfc_conv_descriptor_data_set.
1397         (gfc_conv_descriptor_data_set): New macro.
1398         (gfc_conv_descriptor_data_set_tuples): New macros.
1399         * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
1400         gfc_conv_descriptor_data_set_tuples.
1401         * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
1402         Generate GIMPLE_MODIFY_STMT when appropriate.
1403         * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
1404         (gfc_add_modify_expr): New macro.
1405         (gfc_add_modify_stmt): New macro.
1406         * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
1407
1408         2006-11-01  Aldy Hernandez  <aldyh@redhat.com>
1409
1410         * Merge from mainline at revision 118200.
1411
1412         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
1413
1414         * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
1415         accordingly.
1416
1417         2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
1418
1419         * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
1420         enable checking.
1421         Also, add __extension__ to GCC versions.
1422         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
1423         * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
1424         patrol.
1425
1426         2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
1427
1428         * tree-complex.c (expand_complex_libcall): Adjust for
1429         GIMPLE_MODIFY_STMT.
1430         (expand_complex_comparison): Same.
1431         * tree-pretty-print.c (dump_generic_node): Is_expr should include
1432         GIMPLE_STMT_P statements.
1433         * value-prof.c (tree_divmod_fixed_value_transform): Adjust for
1434         GIMPLE_MODIFY_STMT.
1435         (tree_mod_pow2_value_transform): Same.
1436         (tree_mod_subtract_transform): Same.
1437         * tree.c (build2_stat): Check for gimplified function in cfun.
1438         * tree.h (DECL_GIMPLIFIED): Delete.
1439         (struct tree_function_decl): Remove gimplified_flag.
1440         * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
1441         * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
1442         (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
1443         (cxx_omp_clause_copy_ctor): Same.
1444         (cxx_omp_clause_assign_op): Same.
1445         * c-pretty-print.c (pp_c_conditional_expression): Same.
1446         (pp_c_expression): Same.
1447         * langhooks.c (lhd_omp_predetermined_sharing): Same.
1448         * function.h (struct function): Add gimplified field.
1449         * tree-if-conv.c (add_to_dst_predicate_list): Adjust for
1450         GIMPLE_MODIFY_STMT.
1451         (find_phi_replacement_condition): Same.
1452         * gimplify.c (gimplify_modify_expr_to_memcpy): Same.
1453         (gimplify_modify_expr_to_memset): Same.
1454         (gimplify_init_ctor_eval_range): Same.
1455         (gimplify_modify_expr_complex_part): Same.
1456         (tree_to_gimple_tuple): Same.
1457         (gimplify_modify_expr): Same.
1458         (gimple_push_cleanup): Same.
1459         (gimplify_omp_for): Same.
1460         (gimplify_omp_atomic_pipeline): Same.
1461         (gimplify_omp_atomic_mutex): Same.
1462         (gimplify_expr): Same.
1463         (gimplify_one_sizepos): Same.
1464         (gimplify_function_tree): Same.
1465         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
1466         (vect_recog_widen_sum_pattern): Same.
1467         * tree-vect-transform.c (get_initial_def_for_reduction): Same.
1468         (vect_create_epilog_for_reduction): Same.
1469         (vectorizable_reduction): Same.
1470
1471         2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
1472
1473         * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
1474         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
1475         (ifc_temp_var): Same.
1476         * tree-vect-analyze.c (vect_determine_vectorization_factor): Check
1477         for gimple statements.
1478         (vect_analyze_operations): Same.
1479         (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
1480         * gimplify.c (gimplify_return_expr): Handle gimple statements.
1481         * lambda-code.c (can_put_in_inner_loop): Same.
1482         (can_put_after_inner_loop): Same.
1483         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
1484         (vect_create_data_ref_ptr): Same.
1485         (vect_init_vector): Same.
1486         (vect_get_vec_def_for_operand): Same.
1487         (vect_create_epilog_for_reduction): Same.
1488         (vectorizable_reduction): Same.
1489         (vectorizable_assignment): Same.
1490         (vectorizable_operation): Same.
1491         (vectorizable_load): Same.
1492         (vectorizable_condition): Same.
1493         * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
1494         (rs6000_gimplify_va_arg): Same.
1495
1496         2006-09-25  Aldy Hernandez  <aldyh@redhat.com>
1497
1498         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use
1499         GIMPLE_STMT_OPERAND.
1500         (simplify_abs_using_ranges): Same.
1501         * tree-complex.c (expand_complex_operations_1): Use
1502         PROTECTED_TREE_OPERAND.
1503         * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
1504         stmt.
1505         (get_val_for): Use GIMPLE_STMT_OPERAND.
1506         * tree-tailcall.c (adjust_accumulator_values): Same.
1507         (adjust_return_value): Same.
1508         * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
1509         case.  Remove special case for tcc_gimple_stmt.
1510         * tree.h (CAN_HAVE_LOCATION_P): New.
1511         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
1512         GIMPLE_STMT_P.
1513         * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
1514         * tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
1515         * tree-nrv.c (execute_return_slot_opt): Same.
1516         * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
1517         * tree-vn.c (set_value_handle): Same.
1518         (get_value_handle): Same.
1519         * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
1520         * tree-vectorizer.c (find_loop_location): Same.
1521         * c-typeck.c (c_process_expr_stmt): Same.
1522         (c_finish_stmt_expr): Same.
1523         * gimplify.c (should_carry_locus_p): Same.
1524         (tree_to_gimple_tuple): Delete definition and use of unecessary
1525         variable save_tree_block.
1526         * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
1527         (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
1528         (realify_fake_stores): Same.
1529         * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
1530         Use TREE_OPERAND.
1531         * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
1532         (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
1533         * tree-cfg.c (move_stmt_r): Use EXPR_P.  Check for GIMPLE_STMT_P.
1534         * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
1535         (c_parser_statement_after_labels): Same.
1536         (c_parser_paren_condition): Same.
1537         (c_parser_for_statement): Same.
1538         (c_parser_omp_for_loop): Same.
1539         * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
1540         (linearize_expr_tree): Same.
1541         * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
1542         * function.c (instantiate_expr): Same.
1543
1544         2006-09-22  Aldy Hernandez  <aldyh@redhat.com>
1545
1546         * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
1547         (set_expr_location): Same.
1548         (expr_locus): Same.
1549         (set_expr_locus): Same.
1550         (expr_filename): Same.
1551         (expr_lineno): Same.
1552         (tree_block): Use GIMPLE_STMT_BLOCK.
1553         (protected_tree_operand): Use GIMPLE_STMT_OPERAND.
1554         * tree.h (struct gimple_stmt): Remove prev and next.
1555         (GIMPLE_STMT_OPERAND_CHECK): New.
1556         (TREE_TO_GIMPLE_STMT): Delete.
1557         (GIMPLE_STMT_TO_TREE): Delete.
1558         (GIMPLE_STMT_OPERAND): Use union, not cast.
1559         (GIMPLE_STMT_LOCUS): New.
1560         (GIMPLE_STMT_BLOCK): New.
1561         * gimplify.c (tree_to_gimple_tuple): Use union.  Do not cast
1562         to tree_base.
1563         * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
1564
1565         2006-09-21  Aldy Hernandez  <aldyh@redhat.com>
1566
1567         * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
1568         to base.
1569         * tree-tailcall.c (adjust_return_value): Same.
1570         * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
1571         (copy_node_stat): Change common.base to base.
1572         (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
1573         Remove GIMPLE_STATEMENT_LIST case.
1574         * tree.h (struct gimple_stmt): Make operands of type tree.
1575         (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
1576         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
1577         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
1578         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
1579         TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
1580         TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
1581         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
1582         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
1583         TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
1584         CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
1585         TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
1586         TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
1587         SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
1588         Change common.base to base.
1589         (GIMPLE_STATEMENT_LIST*): Remove.
1590         (union tree_node): Add base.  Remove gimple_statement_list.
1591         Remove pointer from gstmt.
1592         * tree-ssa-propagate.c (set_rhs): Change common.base to base.
1593         * treestruct.def: Add TS_BASE.  Remove TS_GIMPLE_STATEMENT_LIST.
1594         * tree-vn.c (vn_compute): Change common.base to base.
1595         * tree-eh.c (verify_eh_throw_stmt_node): Same.
1596         * tree-flow-inline.h (var_ann): Same.
1597         (function_ann): Same.
1598         (stmt_ann): Same.
1599         (mark_non_addressable): Same.
1600         * gimplify.c (tree_to_gimple_tuple): Same.
1601         * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
1602         * tree-dfa.c (create_var_ann): Change common.base to base.
1603         (create_function_ann): Same.
1604         (create_stmt_ann): Same.
1605         (create_tree_ann): Same.
1606         (collect_dfa_stats_r): Same.
1607         * tree-ssa-pre.c (NECESSARY): Change common.base to base.
1608         * tree-ssa-dce.c (NECESSARY): Same.
1609         * tree-ssa.c (delete_tree_ssa): Same.
1610         * tree-optimize.c (execute_free_cfg_annotations): Same.
1611         * tree-flow.h: Same.
1612
1613         2006-09-19  Aldy Hernandez  <aldyh@redhat.com>
1614
1615         * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
1616         (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
1617         GIMPLE_MODIFY_STMT.
1618         * tree.h (struct gimple_stmt): Add prev and next fields.
1619         (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
1620         (GIMPLE_STATEMENT_LIST_HEAD): New.
1621         (GIMPLE_STATEMENT_LIST_TAIL): New.
1622         (struct gimple_statement_list): New.
1623         (union tree_node): Add gimple_stmt_list and gstmt.
1624         * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
1625         * tree.def: Add GIMPLE_STATEMENT_LIST.
1626
1627         2006-09-06  Aldy Hernandez  <aldyh@redhat.com>
1628
1629         * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
1630         * tree-vrp.c (build_assert_expr_for): Change uses of
1631         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1632         (find_assert_locations): Same.
1633         (remove_range_assertions): Same.
1634         (stmt_interesting_for_vrp): Same.
1635         (vrp_visit_assignment): Same.
1636         (vrp_visit_stmt): Same.
1637         (simplify_cond_using_ranges): Same.
1638         * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
1639         tree structure.
1640         * tree-ssa-loop-im.c (movement_possibility): Change uses of
1641         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1642         (stmt_cost): Same.
1643         (determine_invariantness_stmt): Same.
1644         (schedule_sm): Same.
1645         (gather_mem_refs_stmt): Same.
1646         * tree-complex.c (init_dont_simulate_again): Same.
1647         (complex_visit_stmt): Same.
1648         (set_component_ssa_name): Same.
1649         (expand_complex_move): Same.
1650         (expand_complex_div_wide): Same.
1651         (expand_complex_comparison): Same.
1652         (expand_complex_operations_1): Same.
1653         * tree-ssa-loop-niter.c (expand_simple_operations): Same.
1654         (chain_of_csts_start): Same.
1655         (infer_loop_bounds_from_undefined): Same.
1656         * tree-pretty-print.c (dump_generic_node): Same.
1657         (op_prio): Same.
1658         (op_symbol_1): Same.
1659         * tree-ssa-loop-manip.c (create_iv): Same.
1660         * value-prof.c (tree_divmod_fixed_value): Same.
1661         (tree_divmod_fixed_value_transform): Same.
1662         (tree_mod_pow2): Same.
1663         (tree_mod_pow2_value_transform): Same.
1664         (tree_mod_subtract): Same.
1665         (tree_mod_subtract_transform): Same.
1666         (tree_divmod_values_to_profile): Same.
1667         * tree-tailcall.c (process_assignment): Same.
1668         (find_tail_calls): Same.
1669         (adjust_accumulator_values): Same.
1670         (adjust_return_value): Same.
1671         (eliminate_tail_call): Same.
1672         * tree.c (tree_code_size): Handle tcc_gimple_stmt.
1673         (make_node_stat): Same.
1674         (copy_node_stat): Handle gimple tuples.
1675         (expr_align): Handle GIMPLE_MODIFY_STMT.  Abort on MODIFY_EXPR.
1676         (tree_node_structure): Handle tcc_gimple_stmt.
1677         (build2_stat): Abort on MODIFY_EXPR after gimplification.  Handle
1678         tcc_gimple_stmt.
1679         (build2_gimple_stat): New.
1680         (expr_location): New.
1681         (set_expr_location): New.
1682         (expr_has_location): New.
1683         (expr_locus): New.
1684         (set_expr_locus): New.
1685         (expr_filename): New.
1686         (expr_lineno): New.
1687         (walk_tree): Handle tcc_gimple_stmt.
1688         (tree_block): New.
1689         (protected_tree_operand): New.
1690         (protected_tree_type): New.
1691         (tree_code_kind): Add gimple statements.
1692         * tree.h (tree_code_class): Add tcc_gimple_stmt.
1693         (IS_GIMPLE_STMT_CODE_CLASS): New.
1694         (struct tree_base): New.
1695         (struct tree_common): Shrink.
1696         (struct gimple_stmt): New.
1697         (struct gimple_expr): New.
1698         (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
1699         CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
1700         TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
1701         TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
1702         TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
1703         FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
1704         TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
1705         BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
1706         TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
1707         DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
1708         TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
1709         IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
1710         TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
1711         TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
1712         Adjust for new `common' layout.
1713         (struct tree_function_decl): Add gimplified_flag.
1714         (DECL_GIMPLIFIED): NEW.
1715         (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
1716         SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
1717         EXPR_HAS_LOCATION): Call corresponding function.
1718         (GIMPLE_STMT_CHECK): New.
1719         (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
1720         (TREE_BLOCK): Call tree_block.
1721         (GIMPLE_STMT_P): New.
1722         (GIMPLE_TUPLE_P): New.
1723         (TREE_TO_GIMPLE_STMT): New.
1724         (GIMPLE_STMT_TO_TREE): New.
1725         (GIMPLE_STMT_OPERAND): New.
1726         (GIMPLE_TUPLE_HAS_LOCUS_P): New.
1727         (PROTECTED_TREE_OPERAND): New.
1728         (PROTECTED_TREE_TYPE): New.
1729         (build2_gimple_stat): Protoize.
1730         (build2_gimple): New.
1731         (expr_location): Protoize.
1732         (set_expr_location): Protoize.
1733         (expr_has_location): Protoize.
1734         (expr_locus): Protoize.
1735         (set_expr_locus): Protoize.
1736         (expr_filename): Protoize.
1737         (expr_lineno): Protoize.
1738         (tree_block): Protoize.
1739         (protected_tree_operand): Protoize.
1740         (protected_tree_type): Protoize.
1741         (enum tree_node_kind): Add gimple_stmt_kind.
1742         * c-decl.c (union lang_tree_node): Tuples do not have a
1743         TREE_CHAIN.
1744         * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
1745         GIMPLE_MODIFY_STMT and adjust accordingly.
1746         * tree-scalar-evolution.c (follow_ssa_edge): Same.
1747         (interpret_condition_phi): Same.
1748         (pointer_used_p): Same.
1749         (analyze_scalar_evolution_1): Same.
1750         (scev_const_prop): Same.
1751         (interpret_rhs_modify_stmt): Rename from
1752         interpret_rhs_modify_expr.
1753         * builtins.c (std_expand_builtin_va_start): Change uses of
1754         MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
1755         (std_gimplify_va_arg_expr): Same.
1756         (expand_builtin_va_copy): Same.
1757         (integer_valued_real_p): Same.
1758         * fold-const.c (maybe_lvalue_p): Same.
1759         (fold_unary): Same.
1760         (tree_expr_nonnegative_p): Same.
1761         (tree_expr_nonzero_p): Same.
1762         * omp-low.c (extract_omp_for_data): Same.
1763         (lower_rec_input_clauses): Same.
1764         (lower_reduction_clauses): Same.
1765         (lower_copyprivate_clauses): Same.
1766         (lower_send_clauses): Same.
1767         (lower_send_shared_vars): Same.
1768         (expand_parallel_call): Same.
1769         (expand_omp_parallel): Same.
1770         (expand_omp_for_generic): Same.
1771         (expand_omp_for_static_nochunk): Same.
1772         (expand_omp_for_static_chunk): Same.
1773         (expand_omp_sections): Same.
1774         (lower_omp_single_copy): Same.
1775         (lower_omp_parallel): Same.
1776         * tree-ssa-dse.c (memory_address_same): Same.
1777         (dse_optimize_stmt): Same.
1778         * ipa-reference.c (scan_for_static_refs): Same.
1779         * tree-gimple.c (is_gimple_reg_rhs): Same.
1780         (get_call_expr_in): Same.
1781         (recalculate_side_effects): Same.
1782         * cgraphunit.c (cgraph_create_edges): Same.
1783         * tree-ssa-copyrename.c (rename_ssa_copies): Same.
1784         * tree-ssa-ccp.c (get_default_value): Same.
1785         (likely_value): Same.
1786         (visit_assignment): Same.
1787         (ccp_visit_stmt): Same.
1788         (get_maxval_strlen): Same.
1789         (ccp_fold_builtin): Same.
1790         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
1791         (find_givs_in_stmt): Same.
1792         (find_interesting_uses_op): Same.
1793         (find_interesting_uses_stmt): Same.
1794         (rewrite_use_nonlinear_expr): Same.
1795         * ipa-pure-const.c (scan_function): Same.
1796         * tree-stdarg.c (va_list_counter_bump): Same.
1797         (check_all_va_list_escapes): Same.
1798         (execute_optimize_stdarg): Same.
1799         * tree-ssa-math-opts.c (compute_merit): Same.
1800         (insert_reciprocals): Same.
1801         (execute_cse_reciprocals): Same.
1802         * tree-ssa-dom.c (initialize_hash_element): Same.
1803         (simple_iv_increment_p): Same.
1804         (record_equivalences_from_stmt): Same.
1805         (optimize_stmt): Same.
1806         (remove_stmt_or_phi): Same.
1807         (get_rhs_or_phi_arg): Same.
1808         (get_lhs_or_phi_result): Same.
1809         (propagate_rhs_into_lhs): Same.
1810         * tree-nrv.c (tree_nrv): Same.
1811         (execute_return_slot_opt): Same.
1812         * tree-ssa-propagate.c (get_rhs): Same.
1813         (set_rhs): Same.
1814         (stmt_makes_single_load): Same.
1815         (stmt_makes_single_store): Same.
1816         (replace_vuses_in): Same.
1817         (fold_predicate_in): Same.
1818         (substitute_and_fold): Same.
1819         * tree-ssa-alias.c (compute_call_clobbered): Same.
1820         (recalculate_used_alone): Same.
1821         (count_uses_and_derefs): Same.
1822         (is_escape_site): Same.
1823         (find_used_portions): Same.
1824         * gimple-low.c (lower_stmt): Same.
1825         (block_may_fallthru): Same.
1826         (lower_return_expr): Same.
1827         * tree-ssa-sink.c (is_hidden_global_store): Same.
1828         (statement_sink_location): Same.
1829         * dwarf2out.c (loc_descriptor_from_tree_1): Same.
1830         * expr.c (safe_from_p): Same.
1831         (expand_expr_real): Same.
1832         (expand_expr_real_1): Same.
1833         * tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
1834         * predict.c (expr_expected_value): Same.
1835         (strip_builtin_expect): Same.
1836         (apply_return_prediction): Same.
1837         (tree_bb_level_predictions): Same.
1838         (tree_estimate_probability): Same.
1839         * tree-vn.c (vn_compute): Same.
1840         * tree-eh.c (add_stmt_to_eh_region_fn): Same.
1841         (remove_stmt_from_eh_region_fn): Same.
1842         (do_return_redirection): Same.
1843         (honor_protect_cleanup_actions): Same.
1844         (lower_try_finally_switch): Same.
1845         (lower_eh_constructs_1): Same.
1846         (tree_could_throw_p): Same.
1847         (verify_eh_throw_stmt_node): Same.
1848         * function.c (gimplify_parameters): Same.
1849         * tree-vectorizer.c (vect_is_simple_use): Same.
1850         (vect_is_simple_reduction): Same.
1851         * ipa-type-escape.c (scan_for_refs): Same.
1852         * tree-if-conv.c (tree_if_conversion): Same.
1853         (tree_if_convert_stmt): Same.
1854         (if_convertible_gimplify_modify_stmt_p): Rename from
1855         if_convertible_modify_expr_p.
1856         (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
1857         (ifc_temp_var): Same.
1858         (replace_phi_with_cond_modify_stmt): Rename from
1859         replace_phi_with_cond_modify_expr.
1860         (process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
1861         * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
1862         * tree-data-ref.c (find_data_references_in_loop): Adjust for
1863         GIMPLE_MODIFY_STMT.
1864         * tree-flow-inline.h (var_ann): Same.
1865         (function_ann): Same.
1866         (stmt_ann): Same.
1867         (mark_non_addressable): Same.
1868         * tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
1869         * gimplify.c (tree_to_gimple_tuple): New.
1870         (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
1871         (gimplify_return_expr): Same.
1872         (gimplify_decl_expr): Same.
1873         (gimplify_self_mod_expr): Same.
1874         (gimplify_cond_expr): Same.
1875         (gimplify_init_constructor): Same.
1876         (gimplify_modify_expr): Same.
1877         (gimplify_expr): Same.
1878         (gimplify_function_tree): Same.
1879         (force_gimple_operand): Same.
1880         * tree-ssa-phiopt.c (conditional_replacement): Same.
1881         (minmax_replacement): Same.
1882         (abs_replacement): Same.
1883         * tree-dfa.c (create_var_ann): Same.
1884         (create_function_ann): Same.
1885         (create_stmt_ann): Same.
1886         (create_tree_ann): Same.
1887         (collect_dfa_stats_r): Same.
1888         * tree-ssa-pre.c (find_or_generate_expression): Same.
1889         (create_expression_by_pieces): Same.
1890         (try_look_through_load): Same.
1891         (insert_fake_stores): Same.
1892         (realify_fake_stores): Same.
1893         (compute_avail): Same.
1894         (eliminate): Same.
1895         (init_pre): Same.
1896         (poolify_modify_stmt): Rename from poolify_modify_stmt.
1897         Adjust for GIMPLE_MODIFY_STMT.
1898         (NECESSARY): Adjust for new `common' layout.
1899         * tree-ssa-live.c (build_tree_conflict_graph): Adjust for
1900         GIMPLE_MODIFY_STMT.
1901         * tree-sra.c (sra_walk_modify_stmt): Rename from
1902         sra_walk_modify_expr.
1903         (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
1904         (generate_copy_inout): Same.
1905         (generate_element_copy): Same.
1906         (generate_element_zero): Same.
1907         (scalarize_copy): Same.
1908         * tree-mudflap.c (mf_decl_cache_locals): Same.
1909         (mf_build_check_statement_for): Same.
1910         (mf_xform_derefs): Same.
1911         * ipa-prop.c (ipa_method_modify_stmt): Same.
1912         * print-tree.c (print_node): Handle gimple tuples.
1913         Add case for tcc_gimple_stmt.
1914         * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
1915         GIMPLE_MODIFY_STMT.
1916         (copy_prop_visit_assignment): Same.
1917         (copy_prop_visit_stmt): Same.
1918         (init_copy_prop): Same.
1919         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
1920         (forward_propagate_into_cond_1): Same.
1921         (find_equivalent_equality_comparison): Same.
1922         (tidy_after_forward_propagate_addr): Same.
1923         (forward_propagate_addr_expr_1): Same.
1924         (simplify_not_neg_expr): Same.
1925         (simplify_switch_expr): Same.
1926         * tree-ssa-dce.c (find_pdom): Same.
1927         (mark_stmt_if_obviously_necessary): Same.
1928         (NECESSARY): Adjust for new `common' layout.
1929         * tree-flow.h: Same.
1930         * tree-vect-patterns.c (widened_name_p): Adjust for
1931         GIMPLE_MODIFY_STMT.
1932         (vect_recog_dot_prod_pattern): Same.
1933         (vect_recog_widen_sum_pattern): Same.
1934         (vect_pattern_recog_1): Same.
1935         * tree-nested.c (init_tmp_var): Same.
1936         (save_tmp_var): Same.
1937         (walk_stmts): Same.
1938         (convert_call_expr): Same.
1939         (finalize_nesting_tree_1): Same.
1940         * tree-ssa.c (verify_ssa): Same.
1941         (delete_tree_ssa): Same.
1942         * lambda-code.c (lbv_to_gcc_expression): Same.
1943         (lle_to_gcc_expression): Same.
1944         (lambda_loopnest_to_gcc_loopnest): Same.
1945         (can_put_in_inner_loop): Same.
1946         (can_convert_to_perfect_nest): Same.
1947         (perfect_nestify): Same.
1948         * tree-ssa-loop-prefetch.c (gather_memory_references): Same.
1949         * tree-inline.c (copy_body_r): Same.
1950         (setup_one_parameter): Same.
1951         (initialize_inlined_parameters): Same.
1952         (estimate_num_insns_1): Same.
1953         (expand_call_inline): Same.
1954         (gimple_expand_calls_inline): Same.
1955         (copy_tree_r): Same.
1956         * tree-optimize.c (execute_free_cfg_annotations): Same.
1957         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
1958         (vect_align_data_ref): Same.
1959         (vect_create_data_ref_ptr): Same.
1960         (vect_init_vector): Same.
1961         (vect_create_epilog_for_reduction): Same.
1962         (vectorizable_reduction): Same.
1963         (vectorizable_assignment): Same.
1964         (vectorizable_operation): Same.
1965         (vectorizable_store): Same.
1966         (vectorizable_load): Same.
1967         (vectorizable_live_operation): Same.
1968         (vectorizable_condition): Same.
1969         (vect_generate_tmps_on_preheader): Same.
1970         (vect_create_cond_for_align_checks): Same.
1971         * tree-object-size.c (collect_object_sizes_for): Same.
1972         (check_for_plus_in_loops_1): Same.
1973         (check_for_plus_in_loops): Same.
1974         * tree-outof-ssa.c (insert_copy_on_edge): Same.
1975         (replace_use_variable): Same.
1976         (check_replaceable): Same.
1977         (rewrite_trees): Same.
1978         (identical_copies_p): Same.
1979         (insert_backedge_copies): Same.
1980         * tree-profile.c (tree_gen_edge_profiler): Same.
1981         * tree-vect-generic.c (expand_vector_operations_1): Same.
1982         * tree-ssa-structalias.c (update_alias_info): Same.
1983         (find_func_aliases): Same.
1984         * tree-cfg.c (factor_computed_gotos): Same.
1985         (make_edges): Same.
1986         (make_goto_expr_edges): Same.
1987         (tree_merge_blocks): Same.
1988         (remove_useless_stmts_cond): Same.
1989         (remove_useless_stmts_1): Same.
1990         (tree_find_edge_insert_loc): Same.
1991         (verify_expr): Same.
1992         (gimplify_val): Same.
1993         (verify_gimple_tuples_1): New.
1994         (verify_gimple_tuples): New.
1995         (verify_stmts): Call verify_gimple_tuples.
1996         * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
1997         (get_unary_op): Same.
1998         (linearize_expr): Same.
1999         (get_single_immediate_use): Same.
2000         (negate_value): Same.
2001         (should_break_up_subtract): Same.
2002         (break_up_subtract): Same.
2003         (repropagate_negates): Same.
2004         (break_up_subtract_bb): Same.
2005         (reassociate_bb): Same.
2006         * config/i386/i386.c (ix86_va_start): Same.
2007         (ix86_gimplify_va_arg): Same.
2008         * stmt.c (expand_expr_stmt): Same.
2009         (warn_if_unused_value): Same.
2010         (expand_return): Same.
2011         * tree-ssanames.c (make_ssa_name): Same.
2012         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
2013         * tree-ssa-operands.c (finalize_ssa_defs): Same.
2014         (add_virtual_operand): Same.
2015         (get_expr_operands): Same.
2016         (parse_ssa_operands): Same.
2017         (get_modify_stmt_operands): Rename from get_modify_expr_operands.
2018
2019 2006-12-05  H.J. Lu  <hongjiu.lu@intel.com>
2020
2021         * config.host: Remove extra blank line.
2022
2023 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2024
2025         * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
2026         target is also an x86 variant.
2027
2028 2006-12-05  Richard Guenther  <rguenther@suse.de>
2029
2030         * config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
2031         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
2032         (ix86_builtin_vectorized_function): New function to vectorize
2033         sqrt.
2034
2035 2006-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2036
2037         * config/bfin/bfin.c (output_file_start): Fix comment which referred to
2038         ia64_override_options.
2039
2040 2006-12-04  Jan Hubicka  <jh@suse.cz>
2041
2042         * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
2043         really_expand.
2044
2045 2006-12-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2046
2047         * rtlanal.c (note_uses): Deal with SEQUENCEs.
2048         * config/bfin/bfin.c: Include "timevar.h".
2049         (bfin_flag_schedule_insns2, splitting_for_sched,
2050         bfin_flag_var_tracking): New variables.
2051         (print_operand): Handle '%!'.
2052         (override_options): Disable normal sched2 pass, instead set
2053         bfin_flag_schedule_insns2 for reorg to handle it.
2054         (output_file_start): Likewise for var-tracking.
2055         (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
2056         (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
2057         New functions.
2058         (bfin_reorg): Do second scheduling pass here, and call
2059         bfin_gen_bundles.  Use type_for_anomaly and trapping_loads_p instead
2060         of examining insns directly.  If bfin_flag_var_tracking, call
2061         var-tracking pass when done with everything else.
2062         * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
2063         * config/bfin/bfin.md (UNSPEC_32BIT): New constant.
2064         (movsi_insn32): New pattern, with two new splits to create it
2065         before the final scheduling pass.
2066         (neghi2): Not a dsp32 insn, rather alu0.
2067         (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
2068         movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
2069         extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
2070         mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
2071         ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
2072         movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
2073         movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
2074         ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
2075         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
2076         subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
2077         addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
2078         flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
2079         flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
2080         flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
2081         flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
2082         flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
2083         mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
2084         lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
2085         variants instead of ';'.
2086         (ror_one, rol_one): Likewise.  Make them dsp32 insns.
2087         (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
2088         (align8, align16, align24): Now named patterns; also using '%!'.
2089         (mnop): New insn.
2090
2091 2006-12-05  Kazu Hirata  <kazu@codesourcery.com>
2092
2093         * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
2094         tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.
2095
2096 2006-12-04  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2097
2098         * config/spu/spu-protos.c (spu_split_address): Add.
2099         * config/spu/spu.c (spu_split_address): Add.
2100         (print_operand): Handle HIGH.
2101         (spu_legitimate_address):  Don't test for aligned CONST.
2102         (spu_expand_mov):  Don't split addresses here.
2103         * config/spu/constraints.md (A): Don't test legitimate_const.
2104         * config/spu/spu.md: Add split of movsi patterns for PIC mode.
2105         (ceq_di): Use correct predicates.
2106
2107 2006-12-04  Eric Christopher  <echristo@apple.com>
2108
2109         * config/darwin.h: Update copyright notice.
2110         * config/i386/darwin.h: Ditto.
2111
2112 2006-12-04  Jan Hubicka  <jh@suse.cz>
2113
2114         * builtins.c (fold_builtin_memory_op): Check that expr_size match.
2115         * explow.c (expr_size, int_expr_size): Assert that size is non_NULL.
2116
2117 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
2118
2119         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
2120         set_used_smts.
2121         * tree-ssa-structalias.c (set_used_smts): Export.
2122         (find_what_p_points_to): Don't call set_used_smts here.
2123         * tree-ssa-structalias.h (set_used_smts): Add prototype.
2124
2125 2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
2126
2127         * tree-ssa-alias.c (compute_may_aliases):
2128         Compute flow sensitive before flow insensitive.
2129         (compute_flow_sensitive_aliasing): Don't try to add
2130         a symbol memory tag to itself.
2131
2132         * alias.h (alias_set_subset_of): New prototype.
2133
2134         * alias.c (alias_set_subset_of): New function.
2135
2136         * tree-ssa-structalias.c: Update comments.
2137         (struct variable_info): Add finished_solution.
2138         (new_varinfo): Set finished solution to NULL.
2139         (var_escaped_vars): Remove.
2140         (escaped_vars_tree): Remove.
2141         (escaped_vars_id): Remove.
2142         (nonlocal_vars_id): Remove.
2143         (constraint_expr_type): Add INCLUDES.
2144         (graph_size): Removed.
2145         (dump_constraint): Support INCLUDES.
2146         (build_constraint_graph): Ditto.
2147         (collapse_nodes): Add merge_solutions argument.
2148         Don't merge attributes.
2149         (process_unification_queue): Just use collapse_nodes.
2150         (perform_var_substitution): Update call to collapse_nodes.
2151         (get_constraint_exp_from_ssa_var): Use INCLUDES.
2152         (process_constraint): Fix non-field sensitive handling
2153         Handle includes.
2154         (get_constraint_for): Use INCLUDES.
2155         (make_constraint_from_anything): Renamed from
2156         make_constraint_from_escaped.
2157         (make_constraint_to_escaped): Removed.
2158         (find_global_initializers): Removed.
2159         (create_variable_info_for): Do not make constraints to escaped
2160         vars anymore.
2161         (dump_solution_for_var): Don't print out the equivalent points-to
2162         sets, just use the name of the variable it shares it with.
2163         (intra_create_variable_infos): Use INCLUDES.
2164         Change nonlocal variable sets to anything sets.
2165         (init_base_vars): Remove escaped_vars and nonlocal_var
2166         initialization.
2167         (find_escape_constraints): Removed.
2168         (delete_points_to_sets): Remove dead code.
2169         (used_smt_calculated): New variable.
2170         (set_used_smts): New function.
2171         (merge_smts_into): New function.
2172         (find_what_p_points_to): Modify to use SMTs.
2173         (create_nonlocal_var): Remove.
2174
2175         * tree-ssa-operands.c (access_can_touch_variable): Remove
2176         reference to nonlocal_all.
2177
2178         * tree-ssa.c (verify_name_tags): Remove.
2179
2180 2006-12-04  Carlos O'Donell  <carlos@codesourcery.com>
2181
2182         * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
2183         (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
2184
2185 2006-12-04  Andrew MacLeod  <amacleod@redhat.com>
2186
2187         * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
2188         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
2189         (add_livein_if_notdef): Delete.
2190         (loe_visit_block): New.  Propogate live on entry info for a block into
2191         each predecessor.  If it changes, make sure it is visited again.
2192         (live_worklist): Visit every block and update the live on entry info
2193         for preds.  Iterate over any that changed.
2194         (set_var_live_on_entry): Populate the live on entry blocks with bits
2195         based on the immediate uses of a var.
2196         (calculate_live_on_entry): Remove.
2197         (calculate_live_on_exit): Calculate live on exit based on the newly
2198         oriented live on entry bits.
2199         (calculate_live_ranges): Build live on entry and exit vectors.
2200         (dump_live_info): Use new orientation of live on entry bitmaps.
2201         (verify_live_on_entry): New.  Split out verification code from old
2202         calculate_live_on_entry routine.
2203         * tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
2204         (live_entry_blocks): Rename to live_on_entry and return bitmap for a
2205         basic_block instead of for a partition.
2206         (live_merge_and_clear): Add asserts.
2207         (make_live_on_entry): Set partition bit in basic block vector.
2208
2209 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
2210
2211         PR libgomp/29947
2212         * omp-low.c (expand_omp_for_static_nochunk,
2213         expand_omp_for_static_chunk): Do all arithmetics in signed rather than
2214         unsigned type.
2215
2216         PR middle-end/29965
2217         * omp-low.c (determine_parallel_type): Don't try to optimize combined
2218         parallels if region->exit or region->inner->exit is NULL.
2219         (expand_omp_parallel): Handle NULL region->exit even if cfg is already
2220         built.
2221         (expand_omp_for_generic): Handle NULL region->cond and region->exit.
2222         (expand_omp_for): Use expand_omp_for_generic if either region->cond
2223         or region->exit is NULL.
2224         (expand_omp_sections): Handle NULL region->cond or region->exit.
2225         (expand_omp_synch):
2226
2227 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2228
2229         * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
2230         * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2231
2232 2006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
2233
2234         * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
2235         TYPE_MAX_VALUE for scalar types here but...
2236         (walk_tree): ...there instead.  Return NULL_TREE if the TYPE_DECL
2237         is attached an error mark, and the return value of the callback
2238         if it is not NULL_TREE.
2239
2240 2006-12-04  Ben Elliston  <bje@au.ibm.com>
2241
2242         * config/spu/spu.md (_mulv4si3): Remove unused local variables.
2243
2244 2006-12-03  Eric Christopher  <echristo@apple.com>
2245
2246         PR target/24598
2247         * config/t-slibgcc-darwin: Pass -install_name.
2248         * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
2249         libtool. Only pass through options that the linker recognizes.
2250         (LINK_SPEC): Update comment. Translate options.
2251         (STARTFILE_SPEC): Add dylib1.o for shared libraries.
2252         * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.
2253
2254 2006-12-03  Dorit Nuzman  <dorit@il.ibm.com>
2255
2256         * config/spu/spu.md (smaxv4sf3, sminv4sf3): New.
2257
2258 2006-12-03  Uros Bizjak  <ubizjak@gmail.com>
2259
2260         PR target/30041
2261         * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
2262         operands[1] in insn constraint.  Correct type attribute to sselog1.
2263
2264 2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2265
2266         PR target/30040
2267         * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
2268         (bit_SSSE3): New.
2269         (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
2270         processor detection.
2271
2272         * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
2273         -march=native if there is no -mtune=*.
2274
2275         * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
2276         coretypes.h.
2277
2278 2006-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2279
2280         * doc/install.texi: Update recommended MPFR version.  Remove
2281         obsolete reference to cumulative patch.
2282
2283 2006-12-02  Lee Millward  <lee.millward@codesourcery.com>
2284
2285         PR c/27953
2286         * c-decl.c (store_parm_decls_oldstyle): Robustify.
2287
2288 2006-11-30  Jan Hubicka  <jh@suse.cz>
2289             Uros Bizjak  <ubizjak@gmail.com>
2290
2291         * config/i386/i386.c (pentium4_cost, nocona_cost): Update
2292         32bit memcpy/memset decriptors.
2293         (decide_alg): With -minline-all-stringops and sizes that are best
2294         to be copied via libcall still work hard enough to pick non-libcall
2295         strategy.
2296
2297 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
2298
2299         * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
2300
2301         * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
2302         config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
2303         config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
2304         config/sh/sh4-300.md, config/spu/spu-builtins.def,
2305         config/spu/spu-c.c, config/spu/spu-modes.def,
2306         config/spu/spu.c, config/spu/spu.md,
2307         config/spu/spu_internals.h, config/spu/vmx2spu.h,
2308         fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
2309         tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2310         tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
2311         tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
2312         spelling conventions.
2313
2314         * config/i386/i386.c: Fix a comment typo.
2315
2316 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2317
2318         * config/spu/spu.c (spu_immediate): Remove trailing comma.
2319         (reloc_diagnostic): Call warning when -mwarn-reloc is specified.
2320         * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
2321         better optimization.
2322         (floatv4siv4sf2): New.
2323         (fix_truncv4sfv4si2): New.
2324         (floatunsv4siv4sf2): New.
2325         (fixuns_truncv4sfv4si2): New.
2326         (addv16qi3): New.
2327         (subv16qi3): New.
2328         (negv16qi2): New.
2329         (mulv8hi3): New.
2330         (mulsi3): Remove.
2331         (mul<mode>3): New.
2332         (_mulv4si3): New.
2333         (cmp<mode>): Don't accept constant arguments for DI, TI and SF.
2334         * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
2335         spu_resolve_overloaded_builtin instead of static inline functions.
2336
2337 2006-12-01  Eric Botcazou  <ebotcazou@adacore.com>
2338
2339         * fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
2340         type instead of the size of its mode to compute the highest and
2341         lowest possible values.  Still check the size of the mode before
2342         flipping the signedness of the comparison.
2343
2344 2006-12-01  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2345
2346         * config/spu/predicates.md (spu_mov_operand): Add.
2347         * config/spu/spu.c (spu_expand_extv): Remove unused code.
2348         (print_operand_address, print_operand): Handle addresses containing AND.
2349         (spu_split_load, spu_split_store): Use updated movti pattern.
2350         * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
2351         stores in mov patterns for correct operation of reload.
2352         (lq, lq_<mode>, stq, stq_<mode>): Remove.
2353
2354 2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2355
2356         PR c++/30021
2357         * c-common.c (check_main_parameter_types): Check for error_mark_node.
2358
2359 2006-12-01  Andrew MacLeod  <amacleod@redhat.com>
2360
2361         * common.opt (ftree-combine-temps): Remove.
2362         * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
2363         (coalesce_ssa_name): Don't check for combine-temps.
2364         (coalesce_vars): Remove.
2365         (check_replaceable): Use num_imm_uses.
2366         (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't
2367         check for combine-temps.
2368         (rewrite_out_of_ssa): Never create a ref_count in the var_map.
2369         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
2370         to register_ssa_partition calls.
2371         * tree-ssa-live.c (register_ssa_partition): Remove prototype.
2372         (init_var_map, delete_var_map): remove refernces to ref_count.
2373         (create_ssa_var_map): Never calculate a ref count.
2374         (type_var_init): Remove.
2375         * tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
2376         (SSA_VAR_MAP_REF_COUNT): Delete.
2377         (create_ssa_var_map): Change Prototype to have no parameters.
2378         (version_ref_count): Delete.
2379         (register_ssa_partition): Remove 'is_use' paramater and don't set the
2380         ref_count vector.
2381         (type_var_num, type_var, type_var_first_partition,
2382         type_var_next_partition, type_var_dump, type_var_delete,
2383         type_var_remove_partition, type_var_find, type_var_compact,
2384         type_var_decompact): Remove.
2385
2386 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
2387
2388         * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
2389         attribute.
2390
2391 2006-12-01  Richard Guenther  <rguenther@suse.de>
2392
2393         PR c++/29433
2394         * dwarf2out.c (struct pubname_struct): Make name const.
2395         (add_pubtype): Do not xstrdup identifiers.
2396
2397 2006-12-01  Bernd Schmidt  <bernd.schmidt@analog.com>
2398
2399         * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
2400         multiword accesses are in range.
2401
2402 2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>
2403
2404         PR tree-optimization/29921
2405         * tree-ssa-ccp.c (canonicalize_float_value): New function.
2406         (set_lattice_value): Use canonicalize_float_value.
2407
2408 2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2409
2410         * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
2411         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
2412         (spu_cpu_cpp_builtins): Remove.
2413         (spu_override_options): Don't set warn_main.
2414         (spu_force_reg): Move from spu-c.c.
2415         (spu_check_builtin_parm): Likewise.
2416         (expand_builtin_args): Likewise.
2417         (spu_expand_builtin_1): Likewise.
2418         (spu_expand_builtin): Likewise.
2419         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
2420         warn_main and targetm.resolve_overloaded_builtin.
2421         * config/spu/spu-c.c (spu_builtin_range): Remove.
2422         (spu_check_builtin_parm): Remove.
2423         (expand_builtin_args): Remove.
2424         (spu_expand_builtin_1): Remove.
2425         (spu_expand_builtin): Remove.
2426         (spu_cpu_cpp_builtins): Moved from spu.c
2427         (spu_force_reg): Remove.
2428
2429 2006-12-01  Joseph Myers  <joseph@codesourcery.com>
2430             David Edelsohn  <edelsohn@gnu.org>
2431
2432         PR target/24036
2433         * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
2434         HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
2435         * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
2436         HARD_REGNO_NREGS_WITH_PADDING): Define.
2437         * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
2438         HARD_REGNO_NREGS_WITH_PADDING): Define.
2439         * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
2440         Use new macros to detect modes with holes; do not look at integer
2441         units.
2442         (subreg_offset_representable_p): Check for and disallow cases
2443         where the modes use different numbers of bits from registers.
2444         * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
2445         constant for soft-float.
2446         (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
2447         containing doubles.
2448         (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
2449         in E500 double case.
2450         * config/rs6000/rs6000.md (movtf): Allow soft-float.
2451         (movtf_softfloat): New.
2452
2453 2006-11-30  Richard Sandiford  <richard@codesourcery.com>
2454
2455         * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
2456         simplify_gen_subreg.
2457
2458 2006-11-30  Andrew Macleod  <amacleod@redhat.com>
2459
2460         * tree-ssa-live.c (create_coalesce_list): Create a hash table.
2461         (COALESCE_HASH_FN): New.  Define hash function.
2462         (partition_pair_map_hash): New.  Hash value for a partition pair.
2463         (partition_pair_map_eq): New.  Equality for hash pairs.
2464         (create_coalesce_list): Create hash table.
2465         (delete_coalesce_list): Free hash table.
2466         (find_partition_pair): Find/create pairs in hash table.
2467         (compare_pairs):  Sort pairs in ascending order now.
2468         (num_coalesce_pairs): New.  Number of pairs in hash table.
2469         (struct partition_pair_iterator): Iterator struct for pair table.
2470         (first_partition_pair): Iterator function for first pair.
2471         (end_partition_pair_p): Iterator function for end of iteration.
2472         (next_partition_pair): Iterator function for next pair.
2473         (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
2474         (sort_coalesce_list): Sort pairs from hash table into an array.
2475         (pop_best_coalesce): Take pairs from the array.
2476         (dump_coalesce_list): Update to use hash table or sorted array.
2477         * tree-ssa-live.h (struct partition_pair_d): Remove next field.
2478         (struct coalesce_list_d): Add hash table related fields.
2479
2480 2006-11-30  Jan Hubicka  <jh@suse.cz>
2481
2482         PR middle-end/30028
2483         * builtins.c (fold_builtin_memory_op): Fix typo in the check for
2484         memmove/bcopy->memcpy conversion.
2485
2486 2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>
2487
2488         * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
2489         * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT):
2490         Default is the largest alignment supported for 32-bit ELF and
2491         representable on a 32-bit host.
2492
2493 2006-11-30  Janis Johnson  <janis187@us.ibm.com>
2494
2495         * config/dfp-bit.c (DFP_TO_INT): Use wider precision.
2496
2497 2006-11-30  Jan Hubicka  <jh@suse.cz>
2498
2499         * tree-ssa-operands.h (struct ssa_operands): New.
2500         * tree-flow-inline.h (gimple_ssa_operands): New function.
2501         * tree-flow.h: (struct gimple_df): Add ssa_operands.
2502         * Makefile.in: Remove gt-tree-ssa-operands.h
2503         * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
2504         (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
2505         operand_memory, operand_memory_index, ops_active): Remove statics.
2506         (ALLOC_OPTYPE): Update.
2507         (operand_build_sort_virtual): Update.
2508         (ssa_operands_active): Update.
2509         (init_ssa_operands): Update.
2510         (fini_ssa_operands): Update.
2511         (ssa_operand_alloc): Update.
2512         (INITIALIZE_USE): Update.
2513         (finalize_ssa_use_ops): Update.
2514         (finalize_ssa_v_may_def_ops): Update.
2515         (finalize_ssa_vuse_ops): Update.
2516         (finalize_ssa_v_must_def_ops): Update.
2517
2518 2006-11-30  Richard Guenther  <rguenther@suse.de>
2519
2520         * tree-vectorizer.h (vectorizable_function): Export.
2521         * tree-vect-transform.c (vectorizable_function): Likewise.
2522         * tree-vect-patterns.c (vect_recog_pow_pattern): Set
2523         type_in to scalar type in recognition of squaring.
2524         Make sure the target can vectorize sqrt in recognition
2525         of sqrt, set type_in to vector type in this case.
2526
2527 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
2528
2529         * config/i386/i386.md (R10_REG): New constant.
2530         * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
2531         (ix86_emit_restore_regs_using_mov): Ditto.
2532         (ix86_expand_call): Ditto.
2533         (x86_output_mi_thunk): Ditto. Also use R10_REG.
2534
2535 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
2536
2537         * cselib.c (cselib_init): Use special MEM rtx form for callmem.
2538         * alias.c (canon_true_dependence): Update comment.
2539
2540 2006-11-30  Steven Bosscher  <steven@gcc.gnu.org>
2541
2542         * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
2543         at the end of a diagnostics message.
2544
2545         * alloc-pool.c (pool_free): Postpone clearing the pool entry
2546         until after asserting that it was allocated in the right pool.
2547
2548         * cfgrtl.c (print_rtl_with_bb): Print predecessor and
2549         successor edge information as well.  Make output of live regs
2550         on exit consistent with live regs on entry.
2551
2552 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
2553
2554         PR target/29852
2555         * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
2556         insn patterns for TARGET_80387.
2557         (*truncxfsf2_i387, *truncxfdf2_i387): Remove.
2558         (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
2559         (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
2560         (fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
2561         Generate truncxf<mode>2 insn patterns for strict SSE math.
2562
2563 2006-11-30  Uros Bizjak  <ubizjak@gmail.com>
2564
2565         * config/i386/i386.md (movsf_1): Enable pattern for standard
2566         80387 constants before reload when optimizing for size.
2567         (*movdf_nointeger, *movdf_integer): Ditto.
2568         (*movxf_nointeger, *movxf_integer): Disable patterns for standard
2569         80387 constants before reload when not optimizing for size.
2570
2571         (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
2572         extension of XFmode input operands.
2573
2574 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2575
2576         * config/spu/crt0.c (__dso_handle): Define.
2577
2578 2006-11-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2579
2580         * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
2581         when clearing the used flags.
2582
2583 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2584
2585         * config/spu/spu.md (extend_compare): Fix whitespace formatting.
2586
2587 2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2588
2589         PR target/29945
2590         * config/spu/spu.md  (extend_compare<mode>): New pattern.
2591         (extend_compare): Change to expand and use the above pattern.
2592
2593 2006-11-29  Janis Johnson  <janis187@us.ibm.com>
2594
2595         * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
2596
2597         * config/dfp-bit.h (CONTEXT_ROUND): Delete.
2598         (DFP_INIT_ROUNDMODE): Define.
2599         * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
2600         * mklibgcc.in: Fix dependencies for dfp-bit.c.
2601
2602 2006-11-29  Tehila Meyzels  <tehila@il.ibm.com>
2603
2604         * haifa-sched.c: Remove define LINE_NOTE(INSN).  Remove line_note_head.
2605         Update documentation.
2606         (associate_line_notes_with_blocks): Kill.
2607         (extend_bb): Remove basic block argument, put void instead.
2608         Remove line number handling for each bb.
2609         (save_line_notes): Kill.
2610         (restore_line_notes): Kill.
2611         (sched_init): Remove line_note_head initialization.
2612         Change extend_bb call.
2613         (sched_finish): Remove free of line_note_head.
2614         (add_block): Change extend_bb call.
2615         * sched-ebb.c (schedule_ebb): Remove save_line_notes,
2616         rm_line_notes and restore_line_notes calls.
2617         (schedule_ebbs): Remove rm_redundant_line_notes.
2618         * sched-int.h (struct haifa_insn_data): Remove line_note.
2619         (save_line_notes): Remove declaration.
2620         (restore_line_notes): Remove declaration.
2621         * modulo-sched.c (loop_canon_p): Update debug info printing
2622         by using insn locators instead of line note.
2623         (sms_schedule): Update debug info printing, by using insn
2624         locators instead of line note.
2625         * sched-rgn.c (debug_dependencies): Remove handling of case
2626         n>0 (line number), since it's a dead code.
2627         (schedule_region): Remove save_line_notes and
2628         restore_line_notes calls.
2629
2630 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
2631
2632         * config/rs6000/predicates.md (gpc_reg_operand): Check
2633         invalid_e500_subreg.
2634         * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
2635         SImode subregs of SPE vectors.
2636         * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
2637         * jump.c (true_regnum): Require subregs to satisfy
2638         subreg_offset_representable_p.
2639
2640 2006-11-29  Daniel Berlin  <dberlin@dberlin.org>
2641             Steven Bosscher <stevenb.gcc@gmail.com>
2642
2643         * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
2644         since it no longer exists.
2645
2646 2006-11-29  Duncan Sands  <baldrick@free.fr>
2647
2648         PR tree-optimization/23744
2649         * tree-vrp.c (vrp_meet): do not require ranges to intersect.
2650
2651 2006-11-29  Duncan Sands  <baldrick@free.fr>
2652
2653         PR tree-optimization/23744
2654         * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
2655
2656 2006-11-29  Duncan Sands  <baldrick@free.fr>
2657
2658         PR tree-optimization/23744
2659         * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
2660
2661 2006-11-29  Jie Zhang  <jie.zhang@analog.com>
2662
2663         * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
2664
2665 2006-11-29  J"orn Rennecke  <joern.rennecke@st.com>
2666
2667         * sh.opt (minline-ic_invalidate): New option.
2668         (musermode): Adjust comment.
2669         * sh.c (sh_initialize_trampoline): Emit library call unless
2670         is set; if it is set, don't emit library call if we can use icbi
2671         instead.
2672         * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
2673         icbi for TARGET_SH4_300.
2674         * t-sh (LIB1ASMFUNCS_CACHE): Set.
2675         * doc/invoke.texi: Document -minline-ic_invalidate; Update
2676         -musermode documentation.
2677
2678 2006-11-29  Jim Tison  <jtison@us.ibm.com>
2679
2680         * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
2681         __gthread_recursive_mutex_init): Define.
2682
2683 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
2684
2685         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
2686         STRICT_ALIGNMENT and the type is more aligned than the saved
2687         registers, copy via a temporary.
2688
2689 2006-11-28  Andrew Pinski  <pinskia@gmail.com>
2690
2691         PR tree-opt/29984
2692         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
2693         and MIN_EXRP.
2694
2695 2006-11-28  Bob Wilson  <bob.wilson@acm.org>
2696
2697         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
2698
2699 2006-11-28  Jan Hubicka  <jh@suse.cz>
2700
2701         Privatize SSA variables into gimple_df.
2702         * tree-flow-inline.h
2703         (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
2704         gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
2705         gimple_nonlocal_all): New accessors.
2706         (first_referenced_var): Update.
2707         (mark_stmt_modified): Update.
2708         (is_call_clobbered): Update.
2709         (mark_call_clobbered): Update.
2710         (clear_call_clobbered): Update.
2711         (mark_non_addressable): Update.
2712         * tree-vrp.c (get_value_range): Update.
2713         * tree-into-ssa.c (in_ssa_p): Kill.
2714         (get_default_def_for): Update.
2715         (rewrite_into_ssa): Update.
2716         * tree-complex.c (init_parameter_lattice_values): Update.
2717         (update_complex_assignment): Update.
2718         (update_parameter_components): Update.
2719         (expand_complex_libcall): Update.
2720         (expand_complex_operations_1): Update.
2721         * tree-tailcall.c (arg_needs_copy_p): Update.
2722         (add_virtual_phis): Update.
2723         (tree_optimize_tail_calls_1): Update.
2724         * tree-ssa-dse.c (memory_ssa_name_same): Update.
2725         * tree-ssa-copyrename.c
2726         (copy_rename_partition_coalesce): Update.
2727         * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
2728         * tree-ssa-propagate.c (set_rhs): Update.
2729         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
2730         addressable_vars, global_var):Kill.
2731         (set_initial_properties): Update.
2732         (init_alias_info): Update.
2733         (finalize_ref_all_pointers): Update.
2734         (setup_pointers_and_addressables): Update.
2735         (maybe_create_global_var): Update.
2736         (create_global_var): Update.
2737         (dump_points_to_info): Update.
2738         * function.h (struct gimple_df): Forward declare.
2739         (struct function): Add GIMPLE_DF field.
2740         * gimplify.c (force_gimple_operand): Update.
2741         * tree-dfa.c (referenced_vars, default_defs): KIll.
2742         (make_rename_temp): Update.
2743         (dump_variable): Update.
2744         (referenced_var_lookup): Update.
2745         (referenced_var_check_and_insert): Update.
2746         (default_def): Rename to ...
2747         (gimple_default_def): ... this one; accept cfun argument.
2748         (set_default_def): Update.
2749         * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
2750         (cleanup_control_flow): Update.
2751         * tree-ssa-pre.c (compute_avail): Update
2752         * tree-ssa-live.c (calculate_live_on_entry): Update.
2753         * tree-ssa.c (verify_use): Update.
2754         (verify_call_clobbering): Update.
2755         (verify_call_clobbering): Update.
2756         (init_tree_ssa): Update.
2757         (delete_tree_ssa): Update.
2758         * tree-outof-ssa.c (coalesce_ssa_name): Update.
2759         (rewrite_out_of_ssa): Update.
2760         * tree-flow.h (gimple_df): New structure collecting dataflow variables.
2761         (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
2762         private accessors.
2763         (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
2764         ssa_names, global_var, nonlocal_all, call_clobbered_vars,
2765         addressable_vars, aliases_computed_p): Kill.
2766         (default_def): Rename to...
2767         (gimple_default_def): ... this one.
2768         (defaule_def_fn): Kill.
2769         (num_referenced_vars, ssa_names, num_ssa_names): Update.
2770         * tree-ssa-structalias.c (nonlocal_all): Kill.
2771         (get_constraint_exp_from_ssa_var): Update.
2772         (create_nonlocal_var): Update.
2773         (get_constraint_for): Update.
2774         (update_alias_info): Update.
2775         (find_global_initializers): Update.
2776         (intra_create_variable_infos): Update.
2777         (intra_create_variable_infos):
2778         (find_what_p_points_to): Update.
2779         (init_alias_heapvars): Update.
2780         * tree-cfg.c (remove_bb): Update.
2781         (gimplify_val): Update.
2782         * tree-ssa-reassoc.c (get_rank): Update.
2783         (init_reassoc): Update.
2784         * tree-ssanames.c: Do not include gt-tree-ssanames.h
2785         (ssa_names, free_ssanames): Kill.
2786         (init_ssanames): Update.
2787         (make_ssa_name): Update.
2788         (release_ssa_name): Update.
2789         (release_defs): Update.
2790         (replace_ssa_name_symbol): Update.
2791         * tree-ssa-operands.c (access_can_touch_variable): Update.
2792         (add_virtual_operand): Update.
2793         (add_call_clobber_ops): Update.
2794         (add_call_read_ops): Update.
2795         (get_call_expr_operands): Update.
2796         (get_asm_expr_operands): Update.
2797
2798 2006-11-28  Jan Hubicka  <jh@suse.cz>
2799
2800         * builtins.c: Include tree-flow.h.
2801         (fold_builtin_memory_op): Be more aggressive on converting memcpy to
2802         assignment; convert memmove to memcpy for sizes greater than 1 where
2803         alignment of operands prohibit the partial overlap.
2804
2805 2006-11-28  Jan Hubicka  <jh@suse.cz>
2806
2807         * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
2808         * cgraph.c (dump_cgraph_node): Dump stack usage.
2809         * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
2810         (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
2811         * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
2812         * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
2813         (cgraph_check_inline_limits): Limit stack growth.
2814         * cfgexpand.c: Include tree-inline.h.
2815         (account_stack_vars): New function.
2816         (expand_one_var): New param to just account the stack; return estimated
2817         size.
2818         (expand_used_vars_for_block): Update call of expand_one_var.
2819         (account_used_vars_for_block): New function.
2820         (estimated_stack_frame_size): Likewise.
2821         (init_vars_expansion, fini_vars_expansion): Break out from..
2822         (expand_used_vars): ... here.
2823         * tree-inline.h (estimated_stack_frame_size): Declare.
2824         * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
2825
2826 2006-11-28  Richard Guenther  <rguenther@suse.de>
2827
2828         * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
2829         unsigned long for printing OBJECT_SIZE.
2830
2831 2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
2832
2833         * alias.c (init_alias_analysis): Remove simplification loop
2834         after propagating pointers.
2835
2836 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
2837
2838         * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
2839         and m_GENERIC64.
2840
2841 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
2842
2843         * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
2844
2845 2006-11-27  Roger Sayle  <roger@eyesopen.com>
2846             Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2847
2848         * c-common.c (constant_fits_type_p): Delete.
2849         (unsigned_conversion_warning): Delete.
2850         (conversion_warning): Integrate Wconversion warning from
2851         unsigned_conversion_warning.
2852         (convert_and_check): Integrate Woverflow warning from
2853         unsigned_conversion_warning.  Reorganize and simplify to avoid
2854         dependence upon the middle-end setting TREE_OVERFLOW on integral
2855         conversions, by using int_fits_type_p directly.
2856
2857 2006-11-27  Tobias Burnus  <burnus@net-b.de>
2858
2859         * doc/invoke.texi: Fixed typo.
2860
2861 2006-11-27  Michael Matz  <matz@suse.de>
2862             Andreas Krebbel  <krebbel1@de.ibm.com>
2863
2864         PR target/29319
2865         * config/s390/predicates.md (larl_operand): Check addend of larl
2866         operand to be in range of -/+2GB.
2867         * config/s390/s390.c (legitimize_pic_address): Likewise.
2868         Changed type of variable even to HOST_WIDE_INT.
2869
2870 2006-11-27  Jan Hubicka  <jh@suse.cz>
2871
2872         * expr.c (emit_block_move_via_libcall): Export.
2873         (clear_storage_via_libcall): Rename to ...
2874         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
2875         (clear_storage): Update to set_storage_via_libcall.
2876         * expr.h (emit_block_move_via_libcall): Declare
2877         * config/i386/i386.h (stringop_alg): New enum.
2878         (MAX_STRINGOP_ALGS): New constant.
2879         (stringop_algs): New struct.
2880         (processor_costs): Add memcpy/memset descriptors.
2881         (TARGET_REP_MOVEL_OPTIMAL): Remove.
2882         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
2883         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
2884         for memset.
2885         * config/i386/i386.opt (minline-stringops-dynamically,
2886         mstringop-strategy): New
2887         parameters.
2888         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
2889         (ix86_expand-clrmem): Rename to ...
2890         (ix86_expand_setmem): ... this one; update prototype.
2891         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
2892         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
2893         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
2894         nocona_cost, core2_cost, generic_cost, generic64_cost,
2895         generic32_cost): Add memcpy/memset descriptors.
2896         (x86_rep_movl_optimal): Remove.
2897         (stringop_alg): New static variable.
2898         (ix86_expand_aligntest): Handle predictions.
2899         (override_options): Add strgop_alg handling.
2900         (predict_jump): New function.
2901         (scale_counter): New function.
2902         (expand_set_or_movmem_via_loop): New function.
2903         (expand_movmem_via_rep_mov): New function.
2904         (expand_setmem_via_rep_stots): New function.
2905         (emit_strmov): New function.
2906         (expand_movmem_epilogue): New function.
2907         (expand_setmem_epilogue_via_loop): New function.
2908         (expand_setmem_epilogue): New function.
2909         (expand_movmem_prologue): New function.
2910         (expand_setmem_prologue): New function.
2911         (decide_alg): New function.
2912         (decide_alignment): New function.
2913         (ix86_exand_movmem): Rewrite.
2914         (promote_duplicated_reg): New function.
2915         (ix86_expand_clrmem): Rename to ...
2916         (ix86_expand_setmem): ... this one. Rewrite.
2917
2918         * invoke.texi (minline-stringops-dynamically): New command line option.
2919         (mstringop-strategy): Likewise.
2920
2921 2006-11-27  Jan Hubicka  <jh@suse.cz>
2922
2923         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
2924         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
2925         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
2926         * insn-notes.def (FUNCTION_END): Remove.
2927         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
2928         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
2929         note.
2930         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
2931         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
2932         * cfglayout.c (duplicate_insn_chain): Don't worry about
2933         NOTE_FUNCTION_END.
2934
2935 2006-11-27  Richard Guenther  <rguenther@suse.de>
2936             Zdenek Dvorak <dvorakz@suse.cz>
2937
2938         * target.h (struct gcc_target): Add builtin_vectorized_function
2939         target hook.
2940         * target-def.h (TARGET_VECTORIZE): Likewise.
2941         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
2942         Document new target hook.
2943         * targhooks.h (default_builtin_vectorized_function): Declare.
2944         * targhooks.c (default_builtin_vectorized_function): Define.
2945         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
2946         (vectorizable_call): Declare.
2947         * tree-vect-analyze.c (vect_analyze_operations): Call
2948         vectorizable_call.
2949         * tree-vect-transform.c (vectorizable_function): New static function.
2950         (build_vectorized_function_call): Likewise.
2951         (vectorizable_call): New function.
2952         (vect_transform_stmt): Handle vectorizable calls.
2953
2954 2006-11-27  Richard Guenther  <rguenther@suse.de>
2955
2956         PR middle-end/25620
2957         * builtins.c (expand_builtin_pow): Optimize non integer valued
2958         constant exponents using sqrt or cbrt if possible.  Always fall back
2959         to expanding via optabs.
2960
2961 2006-11-27  Ira Rosen  <irar@il.ibm.com>
2962
2963         PR tree-optimization/22372
2964         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
2965         the type of the base address.
2966         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
2967         it in the data-ref pointer creation.
2968         (vect_init_vector): Add an argument, type of the init vector. Use it in
2969         the stmt creation.
2970         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
2971         (get_initial_def_for_reduction): Likewise.
2972         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
2973         void_type_node.
2974         (vectorizable_assignment, vect_permute_store_chain): Likewise.
2975         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
2976         correct type in stmt creation.
2977         (vect_setup_realignment): Use the correct type in stmt creation.
2978         (vect_permute_load_chain): Change type of MODIFY_EXPR to
2979         void_type_node.
2980         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
2981         of MODIFY_EXPR to void_type_node.
2982         (vectorizable_condition): Change type of MODIFY_EXPR to
2983         void_type_node.
2984         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
2985         creation.
2986
2987 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
2988
2989         Revert:
2990         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
2991         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
2992         standard 80387 constants, raise the cost to prevent
2993         compress_float_constant() to generate load from memory.
2994
2995         * config/i386/i386.md: Add new splitter pattern to split
2996         float_extended load of constant from constant pool into
2997         pure constant load.
2998
2999 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3000
3001         * doc/install.texi: Move GMP/MPFR configure options from Fortran
3002         section to general section.  Remove documentation for
3003         --with-mpfr-dir and --with-gmp-dir, add documentation for
3004         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
3005         --with-gmp-lib.
3006
3007         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
3008
3009 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
3010
3011         * testsuite/gcc.dg/ipa/ipa-6.c: New.
3012
3013 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
3014
3015         PR tree-optimization/29122
3016         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
3017         for the new version.  Assign NULL to DECL_RTL of the new version.
3018
3019 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
3020
3021         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
3022
3023 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
3024
3025         * cse.c (cse_altered): Remove.
3026         (record_jump_equiv): Make true/false argument a bool instead
3027         of an int.
3028         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
3029         where appropriate.  Emit a new jump before the existing one
3030         instead of after so that delete_insn_and_edges removes the
3031         dead edges properly.  Check any_condjump_p before calling
3032         record_jump_equiv.
3033         (cse_basic_block): Check any_condjump_p before calling
3034         record_jump_equiv.
3035         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
3036
3037 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
3038
3039         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
3040         -ffixed-line-length-* options.
3041
3042 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
3043
3044         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
3045         (fprem1xf4): Rename to fprem1xf4_i387.
3046
3047         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
3048         Rename patterns to fmod<mode>3.  Use general_operand operand
3049         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
3050         patterns for SSE math.
3051         (remaindersf3, remainderdf3): Ditto.
3052
3053 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
3054
3055         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
3056         inside start_sequence / end_sequence pair.
3057
3058 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
3059
3060         * jump.c (mark_all_labels): Work in cfglayout mode.
3061         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
3062         when in cfglayout mode, because there are no dead jumptables
3063         visible.
3064         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
3065         in cfglayout mode.
3066         (commit_edge_insertions): Do not allow insertion of instructions
3067         with control flow insns when in cfglayout mode.
3068
3069 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
3070
3071         * tree-vrp.c (execute_vrp): Do not pass loops structure through
3072         arguments.
3073         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
3074         unswitch_loop): Ditto.
3075         * tree-loop-linear.c (linear_transform_loops): Ditto.
3076         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
3077         tree_ssa_lim): Ditto.
3078         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
3079         free_numbers_of_iterations_estimates): Ditto.
3080         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
3081         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
3082         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
3083         remove_path, add_loop, loopify, unloop, fix_loop_placements,
3084         place_new_loop, duplicate_loop, duplicate_subloops,
3085         update_single_exit_for_duplicated_loops, copy_loops_to,
3086         duplicate_loop_to_header_edge, create_preheaders,
3087         force_single_succ_latches, loop_version, fix_loop_structure):
3088         Ditto.
3089         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
3090         tree_unroll_loop): Ditto.
3091         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3092         * tree-scalar-evolution.c (select_loops_exit_conditions,
3093         scev_initialize, scev_analysis): Ditto.
3094         * tree-scalar-evolution.h (scev_initialize): Ditto.
3095         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
3096         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
3097         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
3098         * modulo-sched.c (sms_schedule): Ditto.
3099         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
3100         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
3101         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
3102         * ifcvt.c (if_convert): Ditto.
3103         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
3104         canonicalize_loop_induction_variables,
3105         canonicalize_induction_variables,
3106         tree_unroll_loops_completely, remove_empty_loops): Ditto.
3107         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
3108         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
3109         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
3110         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
3111         tree_ssa_loop_done): Ditto.
3112         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
3113         estimate_bb_frequencies): Ditto.
3114         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
3115         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
3116         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
3117         decide_unrolling_and_peeling, peel_loop_completely,
3118         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
3119         peel_loop_simple, unroll_loop_stupid): Ditto.
3120         * loop-doloop.c (doloop_optimize_loops): Ditto.
3121         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
3122         * loop-invariant.c (move_loop_invariants): Ditto.
3123         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
3124         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
3125         tree_ssa_prefetch_arrays): Ditto.
3126         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
3127         Ditto.
3128         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
3129         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
3130         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
3131         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
3132         verify_loop_structure): Ditto.
3133         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
3134         canonicalize_induction_variables, tree_unroll_loops_completely,
3135         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
3136         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
3137         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
3138         tree_unroll_loop, linear_transform_loops): Declaration changed.
3139         * basic-block.h: Remove declaration of struct loops.
3140         * cfghooks.h (struct cfg_hooks): Change type of
3141         cfg_hook_duplicate_loop_to_header_edge.
3142         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
3143         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
3144         vect_transform_loop): Declaration changed.
3145         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
3146         * cfgloop.h (flow_loops_dump, fix_loop_structure,
3147         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
3148         cancel_loop_tree, create_preheaders, force_single_succ_latches,
3149         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
3150         loopify, loop_version, remove_path, unswitch_loops,
3151         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
3152         Declaration changed.
3153
3154 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
3155
3156         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
3157         (X87MODEF): New mode macro.
3158         (ssemodefsuffix): New mode attribute.
3159         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
3160         (sqrt_extend<mode>xf2_i387): New insn pattern.
3161         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
3162         insn and truncate result back to original mode using
3163         UNSPEC_TRUNC_NOOP truncation.
3164         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
3165         ssemodefsuffix mode attribute.
3166         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
3167         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
3168         (*sqrtextenddfxf2_i387): Remove insn patterns.
3169
3170         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
3171         truncation patterns.
3172
3173         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
3174
3175 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
3176
3177         PR c/29955
3178         * c-tree.h (c_maybe_initialize_eh): New prototype.
3179         * c-decl.c (finish_decl): Move EH initialization...
3180         (c_maybe_initialize_eh): ... here.  New function.
3181         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
3182         if not #pragma omp atomic.
3183
3184         PR c/29736
3185         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
3186         or UNION_TYPE inner types.
3187
3188 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3189
3190         PR tree-opt/29964
3191         * ipa-pure-const.c (check_tree): If the original tree
3192         is volatile return early and say the function is not pure
3193         nor const.  Remove the volatile check for writes.
3194         (analyze_function): Print out the result of the local
3195         analysis pass.
3196
3197 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
3198
3199         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
3200         MASK_STRICT_ALIGN.
3201         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
3202         * config/rs6000/rs6000.c (rs6000_override_options): Use
3203         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
3204         POWERPC_MASKS.
3205
3206 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3207
3208         * config/s390.c (s390_emit_compare_and_swap): New function.
3209         (s390_expand_cs_hqi, s390_expand_atomic): Call
3210         s390_emit_compare_and_swap.
3211
3212 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3213
3214         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
3215
3216 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3217
3218         PR c/2707
3219         PR c++/26167
3220         * c-common.c (conversion_warning): New.
3221         (convert_and_check): Call conversion_warning unless there is an
3222         overflow warning.
3223         * doc/invoke.texi (-Wconversion): Update description.
3224
3225 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
3226
3227         * tree-ssa-alias.c (tree_pointer_compare): New function.
3228         (compact_name_tags): New function.
3229         (group_aliases): Call compact_name_tags.
3230
3231 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3232
3233         * real.h (real_isinteger): Declare.
3234         * real.c (real_isinteger): Define.
3235         * builtins.c (integer_valued_real_p): Use it.
3236
3237 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3238
3239         PR c/9072
3240         * c.opt (Wtraditional-conversion): New.
3241         (Wconversion): Update description.
3242         * c-typeck.c (convert_arguments): Warnings for prototypes causing
3243         type conversions different from what would happen in the absence
3244         of prototype are now handled by Wtraditional-conversion.
3245         * doc/invoke.texi (Wtraditional-conversion): New.
3246         (Wconversion): Update description.
3247         * doc/trouble.texi (Wconversion): Replace Wconversion by
3248         Wtraditional-conversion.
3249
3250 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
3251
3252         * predict.c (tree_estimate_probability): Check to make
3253         sure current_loops is non null before calling flow_loops_dump.
3254
3255 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3256
3257         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
3258
3259 2006-11-23  David Ung  <davidu@mips.com>
3260
3261         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
3262         combination.
3263         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
3264         (ASM_SPEC): Pass along -mfp32 and -mfp64.
3265         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
3266         high part of FP register when in 64-bit FP register mode.  Similarly
3267         use gen_mfhc1 to load high part of FP register.
3268         (override_options): Allow -mgp32 and -mfp64 combination if
3269         ISA_HAS_MXHC1 (currently for O32 only).
3270         (mips_cannot_change_mode_class): If floating-point registers are
3271         bigger than word size. disallow conversion of float register from a
3272         large integer mode to a float mode smaller than the float register
3273         size.
3274         (mips_class_max_nregs): Handle float registers case seperately.
3275         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
3276         UNSPEC_MTHC1.
3277         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
3278         (movdf_hardfloat_32bit): Similarly.
3279         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
3280         support a full 64-bit fpu.
3281         (mthc1): New pattern to generate MTHC1 instruction.
3282         (mfhc1): New pattern to generate MFHC1 instruction.
3283         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
3284         option for the MIPS32R2 and mention its use under O32 ABI.
3285
3286 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3287
3288         * var-tracking.c (emit_note_insn_var_location): Take care not to
3289         cause verify_flow_info failures.
3290
3291 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
3292
3293         * tree-ssa-structalias.c: Remove edge weights in favor of just
3294         processing them as complex constraints.
3295         (struct constraint_graph): Remove weighted succs and preds. Rename
3296         nonweighted succs and preds.
3297         (constraint_edge): Removed.
3298         (constraint_edge_t): Ditto.
3299         (constraint_edge_pool): Ditto.
3300         (new_constraint_edge): Ditto.
3301         (constraint_edge_equal): Ditto.
3302         (constraint_edge_less): Ditto.
3303         (constraint_edge_vec_find): Ditto.
3304         (erase_self_graph_edge): Ditto.
3305         (add_graph_edge): Removed.
3306         (get_graph_weights): Ditto.
3307         (allocate_graph_weights): Ditto.
3308         (valid_weighted_graph_edge): Ditto
3309         (bitmap_other_than_zero_bit_set): Ditto.
3310         (int_add_graph_edge): Renamed to add_graph_edge.
3311         (clear_edges_for_node): Remove support for weighted edges.
3312         (merge_graph_nodes): Ditto.
3313         (valid_graph_edge): Ditto.
3314         (build_constraint_graph): Ditto.
3315         (scc_visit): Ditto.
3316         (collapse_nodes): Ditto.
3317         (process_unification_queue): Ditto.
3318         (topo_visit): Ditto.
3319         (do_ds_constraint): Ditto.
3320         (perform_var_subsitution): Ditto.
3321         (solve_graph): Ditto.
3322         (init_alias_vars): Ditto.
3323         (delete_points_to_sets): Ditto.
3324         (do_complex_constraint): Support offsetted copies here.
3325
3326 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
3327
3328         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
3329         SPU_RdEventMask.
3330         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
3331
3332         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
3333         of size bitfield.
3334
3335 2006-11-23  Ben Elliston  <bje@au.ibm.com>
3336
3337         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
3338
3339 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
3340
3341         PR tree-optimization/29921
3342         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
3343         signed and unsigned zero equal.
3344
3345 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
3346
3347         * config/rs6000/rs6000.c (get_store_dest): New.
3348         (adjacent_mem_locations): Use get_store_dest() to get
3349         the rtl of the store destination.
3350
3351 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
3352
3353         * config/rs6000/spe.md (SPE64): New mode macro.
3354         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
3355         memory load.
3356         (mov_si<mode>_e500_subreg0_2): New.
3357         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
3358         memory load.
3359         (mov_si<mode>_e500_subreg4_2): New.
3360         * config/rs6000/predicates.md (input_operand): Do not allow
3361         invalid E500 subregs.
3362         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
3363         if TARGET_SPE.
3364         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
3365         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
3366         involving vector modes if TARGET_SPE.
3367
3368 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3369
3370         Revert
3371         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3372         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
3373
3374 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
3375
3376         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
3377         mem_i_address_operand): New predicates.
3378         * config/bfin/bfin.c (bfin_issue_rate): New function.
3379         (TARGET_SCHED_ISSUE_RATE): New macro.
3380         * config/bfin/bfin.md (addrtype): New attribute.
3381         (slot0, slot1, slot2, store, pregs): New cpu_units.