OSDN Git Service

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