OSDN Git Service

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