OSDN Git Service

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