OSDN Git Service

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