OSDN Git Service

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