1 2006-12-31 Richard Guenther <rguenther@suse.de>
4 * fold-const.c (fold_comparison): Fold comparison of addresses
7 2006-12-31 Roger Sayle <roger@eyesopen.com>
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.
14 2006-12-31 Richard Guenther <rguenther@suse.de>
17 * fold-const.c (fold_binary): Fix type-mismatch in folding
20 2006-12-30 Kazu Hirata <kazu@codesourcery.com>
22 * tree-inline.c: Fix a comment typo.
24 2006-12-30 Jan Hubicka <jh@suse.cz>
26 * ipa-pure-const.c (check_operand): SSA_NAME is safe.
27 * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs.
29 2006-12-30 Jan Hubicka <jh@suse.cz>
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.
39 2006-12-30 Jan Hubicka <jh@suse.cz>
41 * tree-ssa-alias.c (create_structure_vars): When in SSA, update operand
43 * tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken
46 2006-12-30 Jan Hubicka <jh@suse.cz>
47 Vladimir Yanovsky <volodyan@gmail.com>
49 * emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential
50 amount of copies of INSN_NOTEs list.
52 2006-12-29 Jan Hubicka <jh@suse.cz>
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
72 2006-12-29 Kazu Hirata <kazu@codesourcery.com>
74 * tree-cfg.c (last_stmt_ptr): Remove.
75 * tree-flow.h: Remove the prototype for last_stmt_ptr.
77 * config/i386/i386.h (NON_QI_REG_P): Remove.
78 * config/i386/predicates.md (non_q_regs_operand): Remove.
80 2006-12-29 Ian Lance Taylor <iant@google.com>
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
87 2006-12-29 Jan Hubicka <jh@suse.cz>
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,
105 (tree_function_verioning): Update initialize_cfun.
107 2006-12-29 Marcin Dalecki <martin@dalecki.de>
109 * doc/invoke.texi: Replace no longer supported -fno-strength-reduce
110 with -fmerge-constants in sample code.
112 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
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.
119 2006-12-27 Daniel Berlin <dberlin@dberlin.org>
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
126 (sbitmap_alloc_with_popcount): New function.
127 (sbitmap_resize): Remove uses of bytes member and update
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
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.
155 * sbitmap.h (sbitmap): Remove bytes member.
157 (SET_BIT): Macro turned into function.
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.
165 2006-12-27 Ian Lance Taylor <iant@google.com>
168 * dwarf2out.c (gen_type_die): Don't write out a DIE for
169 ENUMERAL_TYPE if it was already written out.
171 2006-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
174 * builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3,
175 do_mpfr_sincos): Ensure target base equals two.
177 2006-12-26 Kazu Hirata <kazu@codesourcery.com>
179 * tree-ssa-operands.c: Fix a comment typo.
181 2006-12-25 Kazu Hirata <kazu@codesourcery.com>
183 * tree-vectorizer.h (VECT_SMODULO): Remove.
185 2006-12-24 Andreas Tobler <a.tobler@schweiz.org>
187 * config/pa/pa.c: Remove heap vector type defines.
189 2006-12-24 Jan Hubicka <jh@suse.cz>
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.
203 2006-12-24 Jan Hubicka <jh@suse.cz>
205 * tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for):
206 add newly referenced vars.
208 2006-12-24 Kazu Hirata <kazu@codesourcery.com>
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.
215 2006-12-23 Zdenek Dvorak <dvorakz@suse.cz>
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):
225 * tree-scalar-evolution.c (simple_iv): Return zero for step of
227 * tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants
229 (get_iv): Return NULL for non-scalar types. Use zero as a step
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
247 2006-12-23 Andrew Pinski <pinskia@gmail.com>
249 * vec.c: Don't include tree.h.
250 * Makefile.in (vec.o): Update dependencies.
251 (build/vec.o): Likewise.
253 2006-12-23 Kazu Hirata <kazu@codesourcery.com>
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.
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.
266 2006-12-23 Marcin Dalecki <martin@dalecki.de>
268 * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory
269 consumption reporting.
271 2006-12-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
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.
281 2006-12-23 Eric Botcazou <ebotcazou@adacore.com>
283 * dwarf2out.c (dbx_reg_number): Do leaf register remapping
284 only if the function is leaf.
285 (multiple_reg_loc_descriptor): Likewise.
287 2006-12-23 Kazu Hirata <kazu@codesourcery.com>
289 * rtl.h (NOTE_EXPECTED_VALUE): Remove.
291 2006-12-23 Jan Hubicka <jh@suse.cz>
293 * toplev.c (dump_memory_report): Break out from...
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
303 * cgraphunit.c (cgraph_optimize): Dump the memory reports.
305 2006-12-22 Mike Stump <mrs@apple.com>
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).
311 2006-12-23 Jan Hubicka <jh@suse.cz>
313 * tree-flow-inline.h (var_ann): External variable annotations are
315 (tree_common_ann): Handle correctly unshared variables annotations.
316 * tree-dfa.c (create_var_ann): External variable annotations are
319 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
321 * basic-block.h: Remove the prototype for
322 commit_edge_insertions_watch_calls.
323 * cfgrtl.c (commit_edge_insertion): Drop the last argument.
325 (commit_edge_insertions_watch_calls): Remove.
326 (commit_edge_insertions): Adjust the call to
327 commit_one_edge_insertion.
329 2006-12-22 Zdenek Dvorak <dvorakz@suse.cz>
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.
353 2006-12-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
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.
364 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
366 * config/elfos.h, config/spu/spu.c, tree-ssa-operands.h,
367 tree-ssa-ter.c: Fix comment typos.
369 2006-12-22 Paolo Bonzini <bonzini@gnu.org>
371 PR rtl-optimization/29840
373 * fwprop.c (forward_propagate_into): Reject artificial uses/defs.
374 (fwprop_init): Add DF_HARD_REGS to df_init call.
376 2006-12-21 Andrew Pinski <pinskia@gmail.com>
378 * tree-nested.c (create_tmp_var_for): Check for vector type
379 when setting DECL_GIMPLE_REG_P.
381 2006-12-21 Roger Sayle <roger@eyesopen.com>
383 * tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;"
384 as the else branch of a COND_EXPR.
386 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
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.
394 * cgraphunit.c, varpool.c: Fix comment typos.
396 2006-12-22 Ulrich Weigand <uweigand@de.ibm.com>
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.
403 2006-12-21 Eric Botcazou <ebotcazou@adacore.com>
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.
410 2006-12-21 Joseph Myers <joseph@codesourcery.com>
412 * rtlanal.c (subreg_get_info): Do not make register size
413 computations for mode sizes not divisible by the number of
416 2006-12-21 Daniel Berlin <dberlin@dberlin.org>
418 * tree-ssa-structalias.c (build_constraint_graph): Insert complex
419 offsetted constraints into rhsvar, not lhsvar.
421 2006-12-21 Jakub Jelinek <jakub@redhat.com>
425 * tree-nested.c (walk_asm_expr): New function.
426 (walk_stmts): Use it for ASM_EXPR.
429 * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
432 2006-12-21 Nathan Sidwell <nathan@codesourcery.com>
436 * reload1.c (reload): Realign stack after it changes size.
438 2006-12-20 Roger Sayle <roger@eyesopen.com>
440 * simplify-rtx.c (simplify_subreg): Use the correct mode when
441 determining whether a SUBREG of a CONCAT refers to the first or
444 2006-12-21 Ben Elliston <bje@au.ibm.com>
446 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove unused
449 2006-12-20 Jan Hubicka <jh@suse.cz>
451 * tree-dfa.c (add_referenced_var): Walk initializers of
452 non-constant/readonly static vars.
454 2006-12-20 Jan Hubicka <jh@suse.cz>
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.
465 2006-12-20 Carlos O'Donell <carlos@codesourcery.com>
468 * gcc/c-incpath.c (add_standard_paths): Only relocate paths that
469 begin with the configured prefix.
471 2006-12-20 Jan Hubicka <jh@suse.cz>
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
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.
482 2006-12-20 Andrew Pinski <pinskia@gmail.com>
485 * omp-low.c (init_tmp_var): New function.
486 (save_tmp_var): New function.
487 (lower_omp_1): Use them for VAR_DECL.
489 2006-12-20 Andrew Pinski <pinskia@gmail.com>
491 * tree-gimple.c (is_gimple_min_invariant): Treat constant vector
492 CONSTRUCTORs as min invariants.
494 2006-12-20 Joseph Myers <joseph@codesourcery.com>
496 * rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs):
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
504 * caller-save.c (mark_set_regs, add_stored_regs): Use
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.
514 2006-12-20 Zdenek Dvorak <dvorakz@suse.cz>
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):
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.
537 2006-12-20 Dorit Nuzman <dorit@il.ibm.com>
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.
546 2006-12-20 Jan Hubicka <jh@suse.cz>
548 * cgraph.c: Update overall comment; fix vertical spacing.
549 * ipa-inline.c (cgraph_decide_inlining): Remove now redundant check.
551 2006-12-20 Jan Hubicka <jh@suse.cz>
553 * cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New
555 (varpool_first_static_initializer, varpol_next_static_initializer): New
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.
561 2006-12-19 Andrew Pinski <pinskia@gmail.com>
564 * tree-vrp.c (nonnull_arg_p): Treat the static decl as always
567 2006-12-20 Ben Elliston <bje@au.ibm.com>
569 * doc/invoke.texi (Optimize Options): Typo fix.
571 2006-12-19 Eric Christopher <echristo@apple.com>
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.
580 2006-12-19 Steve Ellcey <sje@cup.hp.com>
582 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL): Add undef.
584 2006-12-19 Paolo Bonzini <bonzini@gnu.org>
587 * gcc/Makefile.in (STAGE1_CHECKING): Rename to...
588 (STAGE1_CHECKING_CFLAGS): ... this.
590 2006-12-18 Andrew Pinski <pinskia@gmail.com>
593 * config/rs6000/rs6000.c (altivec_init_builtins): Change to set
594 READONLY on __builtin_altivec_mask_for_load instead of adding
597 2006-12-18 Roger Sayle <roger@eyesopen.com>
598 Eric Christopher <echristo@apple.com>
601 * real.c (real_maxval): Correctly handle IBM extended double format.
603 2006-12-19 Jan Hubicka <jh@suse.cz>
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.
609 2006-12-19 Ben Elliston <bje@au.ibm.com>
611 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
613 2006-12-19 Ben Elliston <bje@au.ibm.com>
615 * cse.c (cse_insn): Fix formatting.
617 2006-12-18 Geoffrey Keating <geoffk@apple.com>
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.
623 2006-12-18 Ian Lance Taylor <iant@google.com>
625 * c.opt (Wmissing-declarations): Add C++ and ObjC++.
626 * doc/invoke.texi (Warning Options): -Wmissing-declarations now
629 2006-12-18 Andrew MacLeod <amacleod@redhat.com>
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.
667 2006-12-18 Nathan Sidwell <nathan@codesourcery.com>
669 * config/rs6000/rs6000.md (*movdf_hardfloat32): Use %X format to
670 determine if memory operand is an indexed address or not.
672 2006-12-17 Steven Bosscher <steven@gcc.gnu.org>
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.
678 2006-12-17 Steven Bosscher <steven@gcc.gnu.org>
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.
686 2006-12-17 Matthias Klose <doko@debian.org>
689 * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
691 2006-12-17 Steven Bosscher <steven@gcc.gnu.org>
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
699 (gate_handle_cse): Revert erroneous commit of a counter.
701 2006-12-17 Steven Bosscher <steven@gcc.gnu.org>
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
710 (cse_extended_basic_block): ...to here. Do not clear
711 prev_insn_cc0 until after recording equivalences from jumps.
713 2006-12-16 Jan Hubicka <jh@suse.cz>
715 * cgraphunit.c (ipa_passes): Clear current_function_decl.
717 2006-12-16 Andreas Tobler <a.tobler@schweiz.org>
719 * passes.c (verify_curr_properties): Define only for ENABLE_CHECKING.
721 2006-12-16 Jan Hubicka <jh@suse.cz>
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
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
741 2006-12-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
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.
751 2006-12-15 Jakub Jelinek <jakub@redhat.com>
754 * config/rs6000/rs6000.md (div<mode>3): Use correct mode in
757 2006-12-15 Andrew Pinski <pinski@gmail.com>
760 * tree-inline.c (setup_one_parameter): Gimplify the statement if
761 the variable is not a gimple register variable.
763 2006-12-15 Uros Bizjak <ubizjak@gmail.com>
765 * invoke.texi (mstringop-strategy): Add missing "byte_loop" value.
767 2006-12-14 Jan Hubicka <jh@suse.cz>
769 * tree-flow.h (struct stmt_ann_d): Move bitfield references_memory
772 2006-12-14 Richard Guenther <rguenther@suse.de>
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.
780 2006-12-14 Richard Guenther <rguenther@suse.de>
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).
787 2006-12-14 Richard Guenther <rguenther@suse.de>
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.
793 2006-12-14 Dorit Nuzman <dorit@il.ibm.com>
794 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
796 * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined.
797 (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as read
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.
805 2006-12-13 Ian Lance Taylor <iant@google.com>
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
816 2006-12-13 Zdenek Dvorak <dvorakz@suse.cz>
818 * tree-ssa-loop-ivopts.c: Include tree-affine.h.
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
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
841 2006-12-13 Peter Bergner <bergner@vnet.ibm.com>
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
850 2006-12-13 Uros Bizjak <ubizjak@gmail.com>
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".
859 * config/i386/i386.c (regclass_map): Remove dirflag entry.
860 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
862 (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber.
864 * config/i386/i386.md (R10_REG, R11_REG): Renumber.
865 (sse_prologue_save, *sse_prologue_save_insn): Renumber
866 hardcoded SSE register numbers.
868 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
869 hardcoded MMX register numbers.
872 2006-12-13 Mark Shinwell <shinwell@codesourcery.com>
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
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
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
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
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
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):
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.
911 2006-12-13 Diego Novillo <dnovillo@redhat.com>
914 * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to
915 accomodate 511 operands.
917 2006-12-13 Richard Guenther <rguenther@suse.de>
919 * builtins.c (expand_builtin_cexpi): Fix typo.
921 2006-12-13 Jan Hubicka <jh@suse.cz>
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.
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.
969 2006-12-13 Richard Guenther <rguenther@suse.de>
971 * ipa-inline.c (cgraph_flatten_node): Replace leafify with
973 (cgraph_decide_inlining): Likewise.
975 2006-12-13 Richard Guenther <rguenther@suse.de>
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.
990 2006-12-13 Richard Guenther <rguenther@suse.de>
992 * ipa-reference.c (scan_for_static_refs): Also scan
993 tcc_comparison class trees.
995 2006-12-12 David Daney <ddaney@avtrex.com>
997 * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before
1000 2006-12-12 Andrew Pinski <pinskia@gmail.com>
1002 * tree-vect-transform.c (vect_permute_load_chain):
1003 Set DECL_GIMPLE_REG_P to true for the vect_perm_*
1006 2006-12-13 Sa Liu <saliu@de.ibm.com>
1007 Ben Elliston <bje@au.ibm.com>
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):
1013 * config/spu/spu-c.c (spu_c_common_override_options): New.
1014 * config/spu/spu.c (spu_override_options): Whitespace fix.
1016 2006-12-12 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
1018 * config/spu/spu.c (cpat_info): Fix an incorrectly identified case.
1020 2006-12-12 Geoffrey Keating <geoffk@apple.com>
1022 * mips-tdump.c: Replace CROSS_COMPILE with
1023 CROSS_DIRECTORY_STRUCTURE.
1024 * mips-tfile.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.
1043 * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP
1044 actually takes an unsigned HOST_WIDE_INT for its second parameter.
1046 2006-12-13 Ulrich Weigand <uweigand@de.ibm.com>
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.
1053 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1056 * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
1057 bitmap for EXECUTE_IF_SET_IN_BITMAP.
1059 2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
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
1071 * tree-flow-inline.h (var_can_have_subvars): Use the renamed
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
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
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.
1103 2006-12-12 Peter Bergner <bergner@vnet.ibm.com>
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
1110 2006-12-12 Marcin Dalecki <martin@dalecki.de>
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.
1116 2006-12-12 Andrew Macleod <amacleod@redhat.com>
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.
1122 2006-12-12 Jakub Jelinek <jakub@redhat.com>
1125 * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
1127 * config/ia64/linux.h (CPP_SPEC): Define.
1128 * config/s390/linux.h (CPP_SPEC): Define.
1130 2006-12-12 Jim Wilson <wilson@specifix.com>
1131 Jakub Jelinek <jakub@redhat.com>
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.
1139 2006-12-12 Ira Rosen <irar@il.ibm.com>
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.
1146 2006-12-12 Richard Guenther <rguenther@suse.de>
1149 * fold-const.c (fold_read_from_constant_string): Only fold read
1150 from constant string if the result type is integer.
1152 2006-12-12 Olivier Hainque <hainque@adacore.com>
1154 * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
1156 2006-12-12 Olivier Hainque <hainque@adacore.com>
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.
1162 2006-12-12 Sa Liu <saliu@de.ibm.com>
1163 Ben Elliston <bje@au.ibm.com>
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.
1173 2006-12-11 H.J. Lu <hongjiu.lu@intel.com>
1177 * cgraphunit.c (cgraph_optimize): Remove call to
1178 process_pending_assemble_externals.
1180 * config/elfos.h (ASM_OUTPUT_EXTERNAL): New.
1182 * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.
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.
1190 * output.h (assemble_external): Update comments.
1191 (default_elf_asm_output_external): New.
1192 (maybe_assemble_visibility): New.
1194 * toplev.c (compile_file): Update comment.
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.
1201 2006-12-11 Daniel Berlin <dberlin@dberlin.org>
1203 * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
1204 can't handle the pointer arithmetic.
1206 2006-12-11 Diego Novillo <dnovillo@redhat.com>
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.
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
1232 Use BLOCK_DEFS_STACK directly.
1233 If pushing a non-register, also push the underlying
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
1241 (rewrite_blocks): Move code to free memory to
1243 (mark_def_site_blocks): Move initialization code to
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
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.
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.
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.
1291 * tree-pass.h (TDF_MEMSYMS): Define.
1293 * params.h (GLOBAL_VAR_THRESHOLD): Remove.
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
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
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.
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
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.
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.
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
1375 * tree-ssa-operands.c (stmt_references_memory_p): Move from
1378 (dump_memory_partitions): New.
1379 (debug_memory_partitions): New.
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
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
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.
1400 * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
1402 (PARAM_MAX_ALIASED_VOPS): Set to 10.
1403 * tree-ssanames.c (make_ssa_name): Initialize
1404 SSA_NAME_IS_DEFAULT_DEF to 0.
1406 2006-12-11 Aldy Hernandez <aldyh@redhat.com>
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
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.
1432 2006-12-11 Andrew Macleod <amacleod@redhat.com>
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.
1448 (struct vuse_optype_d) <kill_var>: Remove.
1451 (struct mustdef_optype_d) <kill_var>: Remove.
1454 (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR.
1455 (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR.
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
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.
1484 (alloc_maydef): New.
1486 (alloc_mustdef): New.
1487 (realloc_maydef): New.
1488 (realloc_vuse): New.
1490 2006-12-11 Aldy Hernandez <aldyh@redhat.com>
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.
1518 * tree-vectorizer.c (rename_variables_in_bb): Remove
1521 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
1523 (check_loop_closed_ssa_stmt): Same.
1525 * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
1527 (verify_ssa): Remove V_MUST_DEFs traces.
1528 (verify_ssa): Remove SSA_OP_ALL_KILLS.
1530 * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
1532 (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
1533 (rewrite_stmt): Remove SSA_OP_ALL_KILLS.
1535 * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
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.
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.
1561 * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
1562 SSA_OP_VIRTUAL_KILLS.
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.
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.
1573 * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
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.
1583 * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
1586 * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.
1588 * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
1589 (visit_assignment): Same.
1591 * tree-ssa-copy.c (copy_prop_visit_assignment): Same.
1593 * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.
1595 * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.
1597 * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
1598 Remove kill_p variable.
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}
1606 * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
1609 * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
1610 SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.
1612 * tree-ssa-propagate.c (stmt_makes_single_store): Remove
1615 2006-12-11 Zdenek Dvorak <dvorakz@suse.cz>
1617 PR rtl-optimization/30113
1618 * loop-iv.c (implies_p): Require the mode of the operands to be
1621 2006-12-11 Diego Novillo <dnovillo@redhat.com>
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
1646 2006-12-11 Andreas Schwab <schwab@suse.de>
1648 * varasm.c (elf_record_gcc_switches): Cast second argument of
1649 ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
1651 2006-12-11 Diego Novillo <dnovillo@redhat.com>
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
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.
1663 2006-12-11 Carlos O'Donell <carlos@codesourcery.com>
1665 * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
1667 2006-12-11 Jan Hubicka <jh@suse.cz>
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):
1679 * builtins.c (validate_arglist, builtin_memset_read_str,
1680 get_pointer_alignment): Export.
1682 2006-12-11 Uros Bizjak <ubizjak@gmail.com>
1686 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
1688 * config/i386/i386.opt: New target option -mx87regparm.
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.
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
1702 (init_cumulative_args): Initialize x87_nregs and float_in_x87
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.
1710 * reg-stack.c (convert_regs_entry): Disable NaN load for
1711 stack registers that are used for argument passing.
1713 * doc/extend.texi: Document x87regparm function attribute.
1714 * doc/invoke.texi: Document -mx87regparm.
1716 2006-12-11 Jan Hubicka <jh@suse.cz>
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
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):
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.
1784 2006-12-11 Ira Rosen <irar@il.ibm.com>
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.
1791 2006-12-11 Sa Liu <saliu@de.ibm.com>
1792 Ben Elliston <bje@au.ibm.com>
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
1803 ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
1804 * doc/invoke.texi (SPU Options): Document -mstdmain.
1806 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
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
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
1829 2006-12-10 Daniel Berlin <dberlin@dberlin.org>
1831 * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
1832 (tree_pointer_compare): Remove.
1834 2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
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):
1862 * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
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,
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.
1899 2006-12-10 Andrew MacLeod <amacleod@redhat.com>
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
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
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
1997 * tree-ssa-ter.c: Remove header files which aren't needed.
1999 2006-12-10 Steven Bosscher <steven@gcc.gnu.org>
2001 * cse.c: (struct cse_basic_block_data): Remove LAST field.
2002 (struct branch_path): Remove BRANCH and TAKEN fields. Add new
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.
2021 2006-12-10 Rask Ingemann Lambertsen <rask@sygehus.dk>
2023 * reload1.c (choose_reload_regs): Don't set byte offset when
2024 resolving subregs of hard regs.
2026 2006-12-09 Zack Weinberg <zackw@panix.com>
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.
2034 2006-12-09 Jan Hubicka <jh@suse.cz>
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.
2042 2006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2044 * haifa-sched.c (schedule_block): Remove excessive sanity check.
2046 2006-12-08 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2048 * config/spu/spu-protos.h (spu_split_immediate): Renamed from
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
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
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
2070 (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
2073 2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2079 2006-12-08 Mike Stump <mrs@apple.com>
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.
2086 2006-12-08 Uros Bizjak <ubizjak@gmail.com>
2089 * reg-stack.c (convert_regs_entry): Mark current argument passing
2092 * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
2093 of float arguments in x87 registers.
2095 2006-12-08 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
2097 * pa.h (LEGITIMATE_CONSTANT_P): Simplify.
2099 2006-12-08 Mark Shinwell <shinwell@codesourcery.com>
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
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
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.
2137 2006-12-08 Andrew MacLeod <amacleod@redhat.com>
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
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
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
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.
2180 2006-12-08 Bernd Schmidt <bernd.schmidt@analog.com>
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
2187 * config/bfin/bfin.md (attr "type"): Add movcc.
2188 (insn_reservation "alu"): Likewise.
2189 (movsicc_insn1, movsicc_insn2): Change type to movcc.
2191 2006-12-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
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
2197 Call build_function_call instead of spu_build_overload_builtin.
2199 2006-12-07 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2201 * config/spu/spu.c (array_to_constant): Correct the order of arguments
2202 to the calls of hwint_to_const_double.
2204 2006-12-07 Nick Clifton <nickc@redhat.com>
2206 * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
2207 elf_record_gcc_switches.
2209 2006-12-07 Andrew Macleod <amacleod@redhat.com>
2211 * expr.c (string_constant): Account for non-zero lower bound arrays.
2213 2006-12-07 Richard Guenther <rguenther@suse.de>
2215 * builtins.c (expand_builtin_pow): Adjust predicates for
2216 pow to cbrt expansion to unsafe math and !HONOR_NANS for
2219 2006-12-07 Jan Hubicka <jh@suse.cz>
2221 * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
2224 2006-12-07 Jan Hubicka <jh@suse.cz>
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.
2230 2006-12-07 Bernd Schmidt <bernd.schmidt@analog.com>
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.
2236 2006-12-07 Nick Clifton <nickc@redhat.com>
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
2245 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
2247 * toplev.c (print_single_switch): Simplify by providing a
2248 pointer to function that will format and output the switch
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
2261 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
2262 * doc/invoke.texi (-frecord-gcc-switches): Document.
2264 2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2267 * sched-rgn.c (add_block1): Use correct initializer.
2269 2006-12-07 Richard Guenther <rguenther@suse.de>
2271 * tree-vect-transform.c (vectorizable_call): Fix leftover of
2272 TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
2274 2006-12-06 Aldy Hernandez <aldyh@redhat.com>
2277 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
2278 not GIMPLE_MODIFY_STMT.
2280 2006-12-06 Jan Hubicka <jh@suse.cz>
2282 * tree-vrp.c (operand_less_p): New.
2283 (compare_values, value_inside_range): Rewrite in terms of
2286 2006-12-06 Uros Bizjak <ubizjak@gmail.com>
2288 * config/i386/i386.md (DIRFLAG_REG): Remove constant.
2290 (length_immediate): Do not depend on cld type attribute.
2291 (length_address): 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.
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.
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.
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
2338 * config/i386/ppro.md (ppro_cld): Remove insn reservation.
2339 * config/i386/k6.md (k6_alux_only): Do not depend on cld type
2341 (k6_alux_only_load): Ditto.
2342 (k6_alux_only_store): Ditto.
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.
2349 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
2351 * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
2354 2006-12-06 Diego Novillo <dnovillo@redhat.com>
2356 * gdbinit.in: Set complaints to 0.
2358 2006-12-06 Jan Hubicka <jh@suse.cz>
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
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.
2381 2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
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.
2388 2006-12-05 Daniel Berlin <dberlin@dberlin.org>
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.
2393 2006-12-05 Eric Christopher <echristo@apple.com>
2395 * config/i386/i386.c (x86_output_aligned_bss): Move out
2396 of COMMON_ASM_OP ifdef.
2398 2006-12-05 Eric Christopher <echristo@apple.com>
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
2406 * config/i386/darwin.h: Ditto.
2407 * config/rs6000/darwin.h: Ditto.
2409 2006-12-05 Daniel Berlin <dberlin@dberlin.org>
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
2433 2006-12-05 Brooks Moses <brooks.moses@codesourcery.com>
2435 * doc/include/texinfo.tex: Update to version 2006-11-08.17.
2437 2006-12-05 Zdenek Dvorak <dvorakz@suse.cz>
2439 PR tree-optimization/14784
2440 * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
2442 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
2444 Merge from gimple-tuples-branch.
2446 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
2448 * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
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.
2461 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
2463 * Merge from mainline at revision 119445.
2465 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
2467 * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
2469 (spu_gimplify_va_arg_expr): Same.
2471 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
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.
2477 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
2479 * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
2480 to GIMPLE_MODIFY_STMT.
2482 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
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.
2490 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
2492 * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
2494 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
2496 * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
2497 GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
2499 * tree-complex.c: Same.
2500 * tree-pretty-print.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.
2512 * tree-inline.c: Same.
2513 * tree-outof-ssa.c: Same.
2514 * tree-ssa-structalias.c: Same.
2515 * tree-ssa-reassoc.c: Same.
2518 2006-11-16 Aldy Hernandez <aldyh@redhat.com>
2520 * tree.c (build2_stat): Fix comment.
2522 2006-11-13 Aldy Hernandez <aldyh@redhat.com>
2524 * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
2525 TREE_OPERAND when appropriate.
2527 2006-11-04 Aldy Hernandez <aldyh@redhat.com>
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.
2537 2006-11-03 Aldy Hernandez <aldyh@redhat.com>
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.
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.
2559 2006-11-01 Aldy Hernandez <aldyh@redhat.com>
2561 * Merge from mainline at revision 118200.
2563 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2565 * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
2568 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2570 * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
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
2577 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
2579 * tree-complex.c (expand_complex_libcall): Adjust for
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
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
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.
2622 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
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.
2647 2006-09-25 Aldy Hernandez <aldyh@redhat.com>
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
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
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):
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.
2695 2006-09-22 Aldy Hernandez <aldyh@redhat.com>
2697 * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
2698 (set_expr_location): 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
2714 * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
2716 2006-09-21 Aldy Hernandez <aldyh@redhat.com>
2718 * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.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.
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.
2764 2006-09-19 Aldy Hernandez <aldyh@redhat.com>
2766 * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
2767 (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
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.
2778 2006-09-06 Aldy Hernandez <aldyh@redhat.com>
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
2791 * tree-ssa-loop-im.c (movement_possibility): Change uses of
2792 MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
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.
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
2830 (build2_gimple_stat): New.
2831 (expr_location): New.
2832 (set_expr_location): New.
2833 (expr_has_location): New.
2835 (set_expr_locus): New.
2836 (expr_filename): New.
2838 (walk_tree): Handle tcc_gimple_stmt.
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
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.
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.
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
3015 * tree-flow-inline.h (var_ann): Same.
3016 (function_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.
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
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
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
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.
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.
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.
3170 2006-12-05 H.J. Lu <hongjiu.lu@intel.com>
3172 * config.host: Remove extra blank line.
3174 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
3176 * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
3177 target is also an x86 variant.
3179 2006-12-05 Richard Guenther <rguenther@suse.de>
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
3186 2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
3188 * config/bfin/bfin.c (output_file_start): Fix comment which referred to
3189 ia64_override_options.
3191 2006-12-04 Jan Hubicka <jh@suse.cz>
3193 * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
3196 2006-12-04 Bernd Schmidt <bernd.schmidt@analog.com>
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):
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 '%!'.
3242 2006-12-05 Kazu Hirata <kazu@codesourcery.com>
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.
3247 2006-12-04 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
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.
3258 2006-12-04 Eric Christopher <echristo@apple.com>
3260 * config/darwin.h: Update copyright notice.
3261 * config/i386/darwin.h: Ditto.
3263 2006-12-04 Jan Hubicka <jh@suse.cz>
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.
3268 2006-12-04 Daniel Berlin <dberlin@dberlin.org>
3270 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
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.
3276 2006-12-04 Daniel Berlin <dberlin@dberlin.org>
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.
3283 * alias.h (alias_set_subset_of): New prototype.
3285 * alias.c (alias_set_subset_of): New function.
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
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
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
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.
3326 * tree-ssa-operands.c (access_can_touch_variable): Remove
3327 reference to nonlocal_all.
3329 * tree-ssa.c (verify_name_tags): Remove.
3331 2006-12-04 Carlos O'Donell <carlos@codesourcery.com>
3333 * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
3334 (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.
3336 2006-12-04 Andrew MacLeod <amacleod@redhat.com>
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