OSDN Git Service

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