1 2004-09-16 Frank Ch. Eigler <fche@redhat.com>
3 * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
5 2004-09-16 Jeff Law <law@redhat.com>
7 * tree-into-ssa.c (block_defs_stack): New toplevel varray.
8 (rewrite_block_data): Remove, no longer used.
9 (rewrite_initialize_block_local_data): Remove, no longer used.
10 (rewrite_initialize_block): Mark parameters as unused as needed.
11 Change references to the block local block_defs to be block_defs_stack.
12 Push a marker onto the block_defs_stack.
13 (ssa_rewrite_initialize_block): Similarly.
14 (rewrite_stmt, ssa_rewrite_stmt): Similarly.
15 (ssa_register_new_def): No longer needs varray argument. Use
16 block_defs_stack instead. No longer handle possibly null block_defs
17 varray. Reverse order of items we push on the stack to make it
18 easier to identify our marker.
19 (register_new_def): No longer handle possibly null block_defs
21 (rewrite_finalize_block): Revamp to look for markers in the global
22 block_defs_stack varray rather than wiping a block local varray.
23 Mark arguments as unused as needed.
24 (ssa_rewrite_finalize_block): Similarly.
25 (rewrite_into_ssa): Update initialization of dom walker structure
26 to reflect that we don't need block local data anymore. Initialize
27 the block_defs_stack varray.
28 (rewrite_ssa_into_ssa): Similarly.
29 * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
30 (struct dom_walk_data): Kill block_defs field.
31 (tree_ssa_dominator_optimize): Initialize block_defs_stack.
32 (thread_across_edge): Use the global block_defs_stack instead of
33 the old block_defs varray.
34 (dom_opt_initialize_block_local_data): Update now that we don't have
35 block_defs field to check anymore.
36 (dom_opt_initialize_block): Push a marker onto block_defs_stack.
37 (restore_currdefs_to_original_value): Use the new block_defs_stack
38 instead of a block local varray.
39 (dom_opt_finalize_block): Similarly.
40 (record_equivalencs_from_phis): Similarly.
41 (optimize_stmt, register_definitions_for_stmt): Similarly.
43 2004-09-16 Andrew MacLeod <amacleod@redhat.com>
45 PR tree-optimization/17517
46 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
47 coalesce same-root variables without checking for abnormal PHI usage.
49 2004-09-16 Daniel Berlin <dberlin@dberlin.org>
51 * cfgloop.h (duplicate_loop): Add prototype.
52 * cfgloopmanip.c (duplicate_loop): Make non-static.
53 * lambda-code.c (perfect_nestify): Factor out test whether
54 we can handle this loop into separate function.
56 (can_convert_to_perfect_nest): New function.
57 (replace_uses_of_x_with_y): Add modify_stmt call.
58 * tree-loop-linear.c (linear_transform_loops): Call
59 rewrite_into_loop_closed_ssa and free_df.
61 2004-09-16 Daniel Berlin <dberlin@dberlin.org>
63 * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
64 loop invariant as well.
65 (perfect_nestify): new function.
66 (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
67 upper bounds, and steps.
68 Set outerinductionvar properly.
69 (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
71 Return NULL if we need a perfect loop and can't make one.
72 (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
73 (not_interesting_stmt): New function.
74 (phi_loop_edge_uses_def): Ditto.
75 (stmt_uses_phi_result): Ditto.
76 (stmt_is_bumper_for_loop): Ditto.
77 (perfect_nest_p): Ditto.
78 (nestify_update_pending_stmts): Ditto.
79 (replace_uses_of_x_with_y): Ditto.
80 (stmt_uses_op): Ditto.
81 (perfect_nestify): Ditto.
82 * lambda-mat.c (lambda_matrix_id_p): New function.
83 * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
84 * lambda.h: Update prototypes.
85 * tree-loop-linear (linear_transform_loop): Use new
86 perfect_nest_p. Detect and ignore identity transform.
87 * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
89 2004-09-16 Sebastian Pop <pop@cri.ensmp.fr>
91 * tree-loop-linear.c (gather_interchange_stats): Add more comments.
92 Gather also strides of accessed data. Pass in the data references
94 (try_interchange_loops): Add a new heuristic for handling the temporal
95 locality. Pass in the data references array.
96 (linear_transform_loops): Pass the data references array to
97 try_interchange_loops.
99 2004-09-16 Kazu Hirata <kazu@cs.umass.edu>
101 * doc/invoke.texi: Fix typos. Follow spelling conventions.
103 2004-09-16 Nathan Sidwell <nathan@codesourcery.com>
105 * doc/c-tree.texi (Classes): Remove index entries for
106 TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
108 2004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
110 * fold-const.c (fold): Fold difference of addresses.
111 (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
113 * tree-ssa-loop-ivopts.c (peel_address): Removed.
114 (ptr_difference_const): Moved to fold-const.c.
115 (split_address_cost): Use get_inner_reference instead of peel_address.
116 (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
117 * tree.h (ptr_difference_const): Export.
119 * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
120 variable type to the dump. Fix indentation.
121 (idx_find_step): Handle nonconstant array_ref_element_size and
123 (idx_record_use): Handle array_ref_element_size and
125 (find_interesting_uses_stmt): Handle memory = nontrivial_expression
126 statements correctly.
127 (get_computation_at, iv_value): Do not unshare expressions here.
128 (rewrite_use_outer): Unshare the expression before it is emitted
130 * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
132 * tree.c (unsigned_type_for, signed_type_for): Moved from
133 tree-ssa-loop-niter.c. Use langhooks.
134 * tree.h (signed_type_for): Export.
136 2004-09-16 David Edelsohn <edelsohn@gnu.org>
138 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
141 2004-09-15 Andrew Pinski <pinskia@physics.uc.edu>
144 * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
145 Add two parameters to extra_includes.
146 (C_INCPATH_INIT): Remove.
147 * c-incpath.c (register_include_chains): Call extra_pre_includes
148 before adding the standard include directory.
149 Update call to extra_includes.
150 (!defined TARGET_EXTRA_INCLUDES): Update
151 hook_void_charptr_charptr_int and add !define
152 TARGET_EXTRA_PRE_INCLUDES.
153 (!define TARGET_EXTRA_INCLUDES): Define as
154 hook_void_charptr_charptr_int.
155 (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
156 (target_c_incpath): Always declare.
157 * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
159 (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
160 * config/darwin.h: (darwin_register_frameworks): Update for
161 the two new parameters.
162 (darwin_register_objc_includes): Add prototype.
163 (TARGET_EXTRA_PRE_INCLUDES): Define.
164 * config/darwin-c.c (darwin_register_objc_includes): New function.
165 (darwin_register_frameworks): Update for the two new parameters.
166 (target_c_incpath): Remove.
167 * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
169 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
171 (TARGET_EXTRA_PRE_INCLUDES): Document.
173 * gcc.c (spec_function): Add replace-outfile.
174 (replace_outfile_spec_function): New function.
175 * config/darwin.h (LINK_SPEC): Add replace
176 -lobjc with -lobjc-gnu if -fgnu-runtime is
178 * invoke.texi (replace-outfile): Document.
180 2004-09-13 Jan Hubicka <jh@suse.cz>
182 * predict.c (expr_expected_value, strip_builtin_expect): New function.
183 (tree_predict_by_opcode): Use it.
184 (tree_estimate_probability): Add, for now disabled,
185 strip_builtin_expect call.
187 2004-09-15 James E Wilson <wilson@specifixinc.com>
190 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
191 if current_function_decl is a sibcall.
193 2004-09-15 Mark Mitchell <mark@codesourcery.com>
195 * varasm.c (default_function_rdodata_section): Make sure to pass
196 along a decl for a link-once section.
198 2004-09-15 Richard Henderson <rth@redhat.com>
200 * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
201 warning with code disable. Fix formatting.
203 2004-09-15 Steven Bosscher <stevenb@suse.de>
205 * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
206 * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
207 after propagating into an ADDR_EXPR.
209 2004-09-15 Andrew Pinski <apinski@apple.com>
212 * gcse.c (process_insert_insn): insn_invalid_p has side effects.
213 Move it out of gcc_assert.
215 2004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
217 * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
218 except.c, fold-const.c, function.c, langhooks.c, params.c,
219 reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
220 tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
221 for quoting in diagnostics going through pretty-print.c. Use ''
222 for quoting in other diagnostic text.
223 * langhooks.c: Include intl.h. Mark text locating diagnostics for
225 * Makefile.in (langhooks.o): Update dependencies.
226 * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
229 2004-09-15 Mark Mitchell <mark@codesourcery.com>
231 * configure.ac: Check for COMDAT support. Robustify check for
233 * configure: Regenerated.
234 * config.in: Likewise.
235 * langhooks-def.h (lhd_comdat_group): New function.
236 (LANG_HOOKS_COMDAT_GROUP): New macro.
237 (LANG_HOOKS_DECLS): Use it.
238 * langhooks.c (lhd_comdat_group): Define.
239 * langhooks.h (lang_hooks_for_decls): Add comdat_group.
240 * output.h (named_section_flags): Make it a macro.
241 (named_section_real): New function.
242 (default_no_named_section): Add decl parameter.
243 (default_elf_asm_named_section): Likewise.
244 (default_coff_asm_named_section): Likewise.
245 (default_pe_asm_named_section): Likewise.
246 * target.h (gcc_target): Adjust type of named_section.
247 * varasm.c (named_section_flags): Rename to named_section_real.
249 (default_no_named_section): Add decl parameter.
250 (default_elf_asm_named_section): Use COMDAT, if available. Deal
251 with the case that ASM_COMMENT_START is "@".
252 (default_coff_asm_named_section): Add decl parameter.
253 (default_pe_asm_named_section): Likewise.
254 * config/alpha/alpha.c (vms_asm_named_section): Add decl
256 (unicosmk_asm_named_section): Likewise.
257 * config/arm/arm.c (arm_elf_asm_named_section): Remove.
258 * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
259 * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
260 * config/cris/cris-protos.h (cris_target_asm_named_section):
262 * config/cris/cris.c (cris_target_asm_named_section):
264 * config/darwin/darwin-protos.h (darwin_asm_named_section):
266 * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
267 * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
268 * config/i386/i386-protos.h (i386_pe_asm_named_section):
270 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
271 * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
272 * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
273 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
275 * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
276 * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
277 * cp/cp-tree.h (cxx_comdat_group): Declare.
278 * cp/decl.c (cxx_comdat_group): New function.
280 2004-09-15 Jan Hubicka <jh@suse.cz>
282 * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
283 * tree-tailcall.c (eliminate_tail_call): Release SSA name.
285 * tree-cfg.c (remove_bb): Release SSA defs.
287 2004-09-15 Kazu Hirata <kazu@cs.umass.edu>
289 * doc/tm.texi: Follow spelling conventions.
291 2004-09-15 Kazu Hirata <kazu@cs.umass.edu>
293 * tree-ssa-dom.c: Fix comment typos.
295 2004-09-15 Alan Modra <amodra@bigpond.net.au>
297 * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
299 (ppc_fallback_frame_state): Save location of CR.
301 2004-09-15 Jakub Jelinek <jakub@redhat.com>
303 * expr.c (string_constant): Handle also read-only variables
304 initialized to string literals.
306 * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
307 into memcpy (x, y, 1) if memcpy can be expanded inline.
309 2004-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
311 PR tree-optimization/17468
312 * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that
313 definition inside a block precede uses.
314 * tree-tailcall.c (adjust_return_value): Emit statements in the
317 2004-09-15 Richard Sandiford <rsandifo@redhat.com>
319 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
321 2004-09-15 Eric Botcazou <ebotcazou@libertysurf.fr>
323 * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
325 2004-09-14 Jeff Law <law@redhat.com>
327 * tree-ssa-dom.c (avail_exprs_stack): New global varray.
328 (struct dom_walk_block_data): Remove avail_exprs member.
329 (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
330 (lookup_avail_expr): No longer need to pass in address of
331 the block local available exprs stack. All callers changed.
332 (simplify_cond_and_lookup_avail_expr): Similarly.
333 (simplify_switch_and_lookup_avail_expr): Similarly.
334 (get_eq_expr_value, record_cond): Likewise.
335 (record_dominating_conditions): Likewise.
336 (update_rhs_and_lookup_avail_expr): Likewise.
337 (record_equivalences_from_stmt): Likewise.
338 (dom_opt_initialize_block_local_data): No longer test state of
339 block local avail_exprs.
340 (dom_opt_initialize_block): Mark unwind point in the global
342 (remove_expressions_from_table): Update to unwind to the
343 most recent unwind marker in the global avail_expr stack.
345 (dom_opt_finalize_block): Mark unwind point in the global
346 avail_expr stack as needed.
347 (record_cond): Push elements into the global avail_exprs stack.
349 * tree-dfa.c (free_df_for_stmt): No longer static.
350 (free_df): Update comments.
351 * tree-flow.h (free_df_for_stmt): Prototype.
352 * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
355 2004-09-14 Diego Novillo <dnovillo@redhat.com>
357 PR tree-optimization/17252
358 * tree-ssa-alias.c (may_alias_p): Don't assume that a
359 pointer may not point to itself when using relaxed
362 2004-09-14 Richard Henderson <rth@redhat.com>
365 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
366 while folding <ADDR_EXPR <INDIRECT_REF X>>.
368 2004-09-14 Andrew Pinski <apinski@apple.com>
370 * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
371 sets of the pointers but the aliasing sets of what they point to.
373 2004-09-14 Roger Sayle <roger@eyesopen.com>
375 PR rtl-optimization/9771
376 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
377 conditional compilation in init_reg_sets_1.
378 (init_reg_sets_1): Let global_regs[i] take priority over the frame
379 (but not stack) pointer exceptions to regs_invalidated_by_call.
380 (globalize_reg): Globalizing a fixed register may need to update
381 regs_invalidated_by_call.
383 2004-09-14 Diego Novillo <dnovillo@redhat.com>
385 PR tree-optimization/15262
386 * tree-dfa.c (dump_variable): Also print the type of the
388 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
389 memory tags are of conflicting alias sets but have no aliased
390 symbols in common, add one tag to the alias set of the other.
391 (setup_pointers_and_addressables): Remove hack to deal with
392 programs with no aliased symbols.
393 (may_alias_p): Don't special case aggregate types.
395 2004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
398 * doc/invoke.texi (Environment Variables): Correct example locale.
400 2004-09-14 Jan Hubicka <jh@suse.cz>
402 * cfg.c (expunge_block): Revert previous change adding ggc_free call.
404 2004-09-14 Mark Mitchell <mark@codesourcery.com>
406 * config.gcc: Do not build a shared libgcc for arm-none-eabi.
408 2004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
410 * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
412 (struct c_declarator): Change u.array.quals and pointer_quals to
413 int. Add u.array.attrs.
414 (quals_from_declspecs): New.
415 * c-decl.c (quals_from_declspecs): New.
416 (shadow_tag_warned): Give more specific message for useless type
418 (build_array_declarator, set_array_declarator_inner,
419 grokdeclarator, make_pointer_declarator, build_null_declspecs,
420 declspecs_add_qual): Update for changed structures.
422 2004-09-14 Jeff Law <law@redhat.com>
424 * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
426 (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
427 (dom_opt_initialize_block_local_data): No longer test state
429 (dom_opt_finalize_block): Update due to change in scope of
431 (optimize_stmt): Similarly.
433 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
435 * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
436 lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
437 comment typos. Follow spelling conventions.
439 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
441 * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
442 config/i386/predicates.md, config/sparc/sparc.c: Follow
443 spelling conventions.
445 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
446 Steven Bosscher <stevenb@suse.de>
448 * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
449 * basic-block.h (struct reorder_block_def): Add copy_number field.
450 * cfgloop.h (biv_p): Declare.
451 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
452 * common.opt (fsplit-ivs-in-unroller): New flag.
453 * loop-iv.c (biv_p): New function.
454 * loop-unroll.c: Include hashtab.h and recog.h.
455 (struct iv_to_split, struct split_ivs_info): New types.
456 (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
457 free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
458 determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
459 insert_base_initialization, split_iv): New functions.
460 (peel_loop_completely, unroll_loop_constant_iterations,
461 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
463 * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
465 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
467 * tree-cfg.c (thread_jumps): Update dominators correctly in
468 case destination of threaded edge dominates its source.
470 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
474 * Makefile.in (LOOP_H, unroll.o): Removed.
475 (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
477 * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
479 * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
480 * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
481 * loop.c: Do not include loop.h.
482 (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
483 REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
484 struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
485 REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
486 struct loop_regs, struct loop_movables, struct loop_info): Moved
488 (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
489 reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
490 find_common_reg_term, loop_iterations, final_giv_value): Moved
492 (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
493 loop_dump_stream, for_each_insn_in_loop, express_from,
494 extend_value_for_giv, loop_iv_add_mult_emit_before,
495 loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
496 loop_insn_first_p, get_condition_for_loop,
497 loop_insn_emit_before, loop_insn_hoist,
498 loop_insn_sink): Made static.
499 (loop_invariant_p): Made static. Removed flag_old_unroll_loops
501 (strength_reduce): Do not call unroller.
502 (record_giv): Do not initialize unrolled field.
503 (prescan_loop): Do not set loop_info->preconditioned.
504 * passes.c: Do not include loop.h.
505 (rest_of_handle_loop_optimize): Do not call unroller.
506 * predict.c: Do not include loop.h.
507 * rtl.h (NOTE_PRECONDITIONED): Removed.
508 * stmt.c: Do not include loop.h.
509 * toplev.c: Do not include loop.h.
510 (process_options): Do not handle flag_old_unroll_loops.
512 * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
513 Documentation removed.
514 * doc/passes.texi (unroll.c, loop.h): Documentation removed.
516 2004-09-14 Nathan Sidwell <nathan@codesourcery.com>
518 * Makefile.in (STAGE1_CHECKING): New variable.
519 (stage1_build): Use it.
520 * tree-ssa.c (verify_ssa): Preserve state of dominance
523 2004-09-14 Uros Bizjak <uros@kss-loka.si>
525 * config/i386/i386.c (output_fp_compare): Add generation
527 * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
528 Use output_fp_compare () function.
529 (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
530 (fix_truncdi_memory): Remove operands[5] copy.
532 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
534 * config/m32r/m32r.md, config/m68k/m68kelf.h,
535 config/mcore/mcore.md, config/rs6000/linux64.h,
536 config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
539 2004-09-13 James E Wilson <wilson@specifixinc.com>
541 * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
542 * gen-protos.c: Include errors.h.
545 2004-09-14 Jan Hubicka <jh@suse.cz>
547 * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
548 * predict.c: Include tree-scalar-evolution.h and cfgloop.h
549 (predict_loops): Use number_of_iterations_exit to predict
550 number of iterations on trees.
552 2004-09-13 Dale Johannesen <dalej@apple.com>
556 * c-decl.c (start_decl): Repair TREE_STATIC for initialized
557 objects declared extern.
559 2004-09-14 Paul Brook <paul@codesourcery.com>
561 * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
564 2004-09-13 Daniel Jacobowitz <dan@debian.org>
566 * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
567 Only use TYPE_BINFO for aggregates.
569 2004-09-13 Daniel Jacobowitz <dan@debian.org>
571 * expmed.c (synth_mult): Initialize latency. Check cost before
574 2004-09-13 Kenneth Zadeck <Kenneth.Zadeck@NaturalBridge.com>
576 * tree-ssa-operands.c (get_call_expr_operands): Added parm to
577 add_call_clobber_ops and add_call_read_ops.
578 (add_call_clobber_ops, add_call_read_ops): Added code to reduce
579 the number of vdefs and vuses inserted based on analysis of global
580 variables across calls. * tree-dfa.c (find_referenced_vars):
581 Needed to reset static var maps before each function is compiled.
583 (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
584 static_vars_info,functions_to_static_vars_info,module_statics_escape,
585 all_module_statics,searchc_env,dfs_info): New fields to support
586 analysis of static global variables.
587 (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
588 cgraph_reset_static_var_maps, get_global_static_vars_info,
589 get_global_statics_not_read, get_global_statics_not_written,
590 searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
591 check_rhs_var, check_lhs_var, get_asm_expr_operands,
592 process_call_for_static_vars, scan_for_static_refs,
593 cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
594 clear_static_vars_maps, cgraph_propagate_bits,
595 cgraph_characterize_statics): New. Functions to support analysis
596 of static global variables.
597 (cgraph_mark_local_and_external_functions): Renamed from:
598 (cgraph_mark_local_functions)
599 (cgraph_expand_all_functions): Remove call to
600 cgraph_mark_local_and_external_functions.
601 (cgraph_optimize): Added driver to analyze static variables whose
602 scope is within the compilation unit. * cgraph.h (struct
603 cgraph_local_info, GTY): Added statics_read, statics_written,
604 local, calls_read_all, calls_write_all, for_functions_valid.
605 (struct cgraph_node): Added next_cycle. * cgraph.c
606 (dump_cgraph_node): Added print routines for new fields. *
607 makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
610 2004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
612 * c-decl.c (grokdeclarator): Correct comments about where storage
613 class specifiers are rejected by grammar and add corresponding
614 asserts. Diagnose typedefs and parameters declared inline.
615 Change warning for inline main to a pedwarn. Only diagnose inline
617 (declspecs_add_scspec): Allow duplicate "inline".
619 2004-09-13 Steve Ellcey <sje@cup.hp.com>
621 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
622 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
624 2004-09-13 Richard Henderson <rth@redhat.com>
627 * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
628 (tree_type): Replace spare with contains_placeholder_bits.
629 (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
630 make static. Remove seen_types list.
631 (type_contains_placeholder_p): New.
633 2004-09-13 James E Wilson <wilson@specifixinc.com>
635 * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
636 (sb1_bdesc, bdesc_map, bdesc_arrays): New.
637 (mips_expand_builtin): Add SB-1 support. Use bdesc_map and
638 bdesc_arrays instead of mips_bdesc.
639 (mips_init_builtins): Likewise.
640 * config/mips/mips.h (TARGET_SB1): New.
641 (HAVE_SQRT_P): Delete.
642 * config/mips/mips.md (divide_condition): Support V2SF.
643 (sqrt_condition, recip_condition): New.
644 (div<mode>3): Use ANYF instead of SCALARF.
645 (*div<mode>3): Use ANYF instead of SCALARF. Use UNITMODE instead of
647 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
648 instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE
650 (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF
651 instead of SCALARF. Use UNITMODE instead of MODE.
653 2004-09-13 Zack Weinberg <zack@codesourcery.com>
655 * config.in: Regenerate after removal of libbanshee.
657 2004-09-13 Andrew MacLeod <amacleod@redhat.com>
659 PR tree-optimization/17400
660 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
661 coalesce partitions when one occurs in an abnormal PHI.
663 2004-09-13 Andrew Pinski <apinski@apple.com>
665 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
668 2004-09-13 Richard Henderson <rth@redhat.com>
671 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args.
672 (cselib_invalidate_rtx_note_stores): New.
673 (cselib_record_sets, cselib_process_insn): Update to match.
674 * cselib.h (cselib_invalidate_rtx): Declare.
675 * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
677 2004-09-13 Richard Henderson <rth@redhat.com>
680 * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
681 after copying its argument.
683 2004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
685 * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
686 c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
687 in diagnostics. Use %' for English apostrophes.
688 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
689 (pedwarn_c90, pedwarn_c99): Use it.
690 * c-decl.c (lookup_label): Quote label name in diagnostic.
691 * c-parse.in (yyprint): Use ' instead of ` for left quote.
692 * c-typeck.c (warn_for_assignment): Likewise.
694 2004-09-13 Jan Hubicka <jh@suse.cz>
696 * i386.c (x86_schedule): New global variable.
697 (override_options): Disable scheduling when not supported.
698 * i386.h (x86_schedule): Declare.
699 (TARGET_SCHEDULE): New macro.
701 2004-09-12 Richard Henderson <rth@redhat.com>
704 * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
705 * tree.c, tree.h (has_cleanups): Remove.
707 2004-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
709 * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
710 arguments of the phi nodes correctly.
712 2004-09-12 Jan Hubicka <jh@suse.cz>
714 * ggc-common.c (cmp_statistics): Fix sorting.
716 2004-09-12 David Edelsohn <edelsohn@gnu.org>
719 * expmed.c (expand_divmod): If cheap power of 2 divide is
720 available, use it for negative constant as well.
722 2004-09-12 Andrew Pinski <apinski@apple.com>
724 * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
727 * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
729 2004-09-12 Richard Henderson <rth@redhat.com>
731 * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
733 (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
734 post-reload, and scratch NULL.
735 * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
736 (x86_shift_adj_2): Use ix86_expand_clear.
737 (ashldi3): Remove CMOVE expansion difference.
739 (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and
740 add constraints for immediates. New peephole for split-with-temp.
741 Run splitter after peep2 pass.
742 (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
743 (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
744 (setcc_2): Rename with *.
745 * config/i386/predicates.md (reg_or_pm1_operand): New.
746 (ashldi_input_operand): New.
748 2004-09-12 Richard Henderson <rth@redhat.com
750 * print-rtl.c (print_decl_name): New.
751 (print_mem_expr): Use it.
753 2004-09-12 Richard Henderson <rth@redhat.com
756 * except.c (sjlj_emit_function_exit): Fix logic locating
757 sjlj_exit_after in final block.
759 2004-09-12 Toon Moene <toon@moene.indiv.nluug.nl>
761 * common.opt: Remove flags -fmove-all-movables and
763 * loop-invariant.c (find_invariants_to_move):
764 Remove all uses of flag_move_all_movables.
765 * loop.c (move_movables): Remove all uses of
766 flag_move_all_movables.
767 (strength_reduce): Remove all uses of
768 flag_reduce_all_givs.
769 * doc/invoke.texi: Remove documentation of flags
770 -fremove-all-movables and -freduce-all-givs.
772 2004-09-11 Roger Sayle <roger@eyesopen.com>
775 * tree-sra.c (generate_element_zero): Revert recent build_int_cst
776 change. elt->type may be a floating point type, so use fold_convert.
778 2004-09-11 Geoffrey Keating <geoffk@apple.com>
780 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
781 the thing referenced as used, not the stub itself.
783 2004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
785 * c-tree.h (enum c_storage_class): New.
786 (struct c_declspecs): Add storage_class, inline_p and thread_p.
787 * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
788 declarations and "auto" or "register" in file scope empty
789 declarations. Give more specific warnings for other cases of
790 storage class specifiers in empty declarations.
791 (grokdeclarator): Update for new structures. Don't check for
792 multiple storage classes. Diagnose file-scope "register" if
794 (build_null_declspecs): Update.
795 (declspecs_add_scspec): Update. Diagnose multiple storage class
796 specifiers and invalid uses of "__thread".
798 2004-09-11 Zack Weinberg <zack@codesourcery.com>
800 * tree.c (tree_code_size): New function, bulk of code from tree_size.
801 (tree_size, make_node): Use it.
802 * tree-ssa-pre.c (init_pre): Use it.
803 * tree.h: Prototype it.
805 2004-09-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
807 * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
808 * tree-dfa.c (compute_immediate_uses, add_immediate_use,
809 redirect_immediate_use): Use PHI_DF.
810 * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
811 (bb_for_stmt): Use PHI_BB.
812 (get_immediate_uses): Use PHI_DF.
813 * tree-ssa-dse.c (max_stmt_uid): New variable.
814 (get_stmt_uid): New function.
815 (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
817 * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
818 (max_uid): Renamed to max_stmt_uid.
819 (get_stmt_uid): New function.
820 (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
821 phi node annotations.
822 * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
823 * tree.h (PHI_BB, PHI_DF): New accessor functions.
824 (struct tree_phi_node): Add bb and df fields.
826 2004-09-11 Richard Henderson <rth@redhat.com>
829 * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
832 2004-09-11 Jan Hubicka <jh@suse.cz>
834 * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
835 (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
836 * i386.md (i387_cw): Add 'uninitialized' mode.
838 * profile.c (BB_TO_GCOV_INDEX): move more to the front.
839 (output_location): Break out from ....
840 (branch_prob): ... here; handle gcov output on trees.
841 * toplev.c (process_options): No longer be sorry about coverage for
844 2004-09-11 Steven Bosscher <stevenb@suse.de>
847 * fold-const.c (fold): Do not try to fold the operand of a
848 CLEANUP_POINT_EXPR if that operand does itself not have any
852 * langhooks.c (lhd_decl_printable_name): Make sure that this
853 function is called with is a decl node that has an identifier.
854 * tree-pretty-print.c (dump_function_name): New function to
855 wrap PRINT_FUNCTION_NAME and dump_decl_name.
856 (print_call_name): Use it.
858 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
860 * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
863 2004-09-11 Jakub Jelinek <jakub@redhat.com>
865 * tree-ssa-alias.c (collect_points_to_info_r): Handle
866 pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
869 2004-09-11 Richard Henderson <rth@redhat.com>
871 * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
872 (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the
873 operand of the ADDR_EXPR.
874 (expand_expr_real_1): Update to match.
876 2004-09-11 David Edelsohn <edelsohn@gnu.org>
879 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
880 choose 64-bit version.
882 2004-09-11 Richard Henderson <rth@redhat.com>
885 * c-typeck.c (build_unary_op): Add legacy offsetof hack.
887 2004-09-11 Kazu Hirata <kazu@cs.umass.edu>
889 * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
890 doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
891 Insert @: after i.e. or e.g.
893 2004-09-10 Geoffrey Keating <geoffk@apple.com>
895 * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
896 D.xxx rather than <Dxxx>.
898 2004-09-10 Adam Nemet <anemet@lnxw.com>
900 * configure.ac (AC_MSG_CHECKING(what linker to use)):
901 in_tree_ld_is_elf should be true for LynxOS.
902 * configure: Regenerate.
904 2004-09-10 Adam Nemet <anemet@lnxw.com>
906 * Makefile.in (all.cross): Add srcextra.
908 2004-09-10 Roger Sayle <roger@eyesopen.com>
911 * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
912 floating point comparison operators. Change aborts to gcc_asserts.
914 2004-09-10 Geoffrey Keating <geoffk@apple.com>
916 * final.c (output_asm_insn): Correct problem with -fverbose-asm.
918 2004-09-10 James E Wilson <wilson@specifixinc.com>
920 * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
921 (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
923 * convert.c (convert_to_vector): Replace recursive call with
926 * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
927 Add integer argument named constant. Use const_tiny_rtx instead of
929 (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
931 (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for
933 * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
934 of gen_rtx_raw_CONST_VECTOR.
936 2004-09-10 Eric Christopher <echristo@redhat.com>
939 * c-parse.in (attribute): Add NULL_TREE for error case
942 2004-09-10 Zack Weinberg <zack@codesourcery.com>
944 * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
945 (extract_interface_info): Delete prototype.
946 * c-decl.c (extract_interface_info): Delete stub.
947 * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
948 it's not already been done ...
949 (init_c_lex): ... not here.
950 (fe_file_change): Don't call extract_interface_info.
952 2004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
954 * c-tree.h (struct c_declspecs): Remove typedef_decl. Add
955 typedef_p and typedef_signed_p.
956 * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
957 (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
958 Check typedef_p and typedef_signed_p, not typedef_decl.
959 (grokfield): Check typedef_p, not typedef_decl.
960 (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
962 (declspecs_add_type): Set typedef_p and typedef_signed_p, not
965 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
967 * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
969 2004-09-10 Geoffrey Keating <geoffk@apple.com>
971 * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
974 * dbxout.c (dbxout_block): Update for
975 current_function_func_begin_label a string.
976 * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
977 * except.c (dw2_output_call_site_table): Likewise.
978 * toplev.c (current_function_func_begin_label): Likewise.
979 * tree.h (current_function_func_begin_label): Likewise.
980 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
982 * final.c (output_asm_insn): Use strtoul instead of atoi, save a
985 * config/darwin.c: Include target.h.
986 (struct machopic_indirection): Make ptr_name a string.
987 (machopic_indirection_hash): Update for ptr_name a string.
988 (machopic_indirection_eq): Likewise.
989 (machopic_indirection_name): Likewise.
990 (machopic_output_indirection): Likewise.
991 (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
992 string. Don't expect stub names to be in the identifier hash table.
993 Do call strip_name_encoding before looking up entry in ID hash table.
994 * config/t-darwin (darwin.o): Add target.h to dependencies.
996 * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
997 of fprintf for register names.
999 * output.h (unlikely_section_label): Delete declaration.
1000 (unlikely_text_section_name): Likewise.
1001 * varasm.c (unlikely_section_label_printed): Make static.
1002 (unlikely_section_label): Likewise.
1003 (unlikely_text_section_name): Likewise.
1004 (assemble_start_function): Use reconcat.
1006 * rtl.def (REG): Add comment to describe third field.
1008 2004-09-10 Andrew Pinski <apinski@apple.com>
1010 * config/darwin.c (machopic_mcount_stub_name): Call
1011 machopic_indirection_name instead of making the string
1014 2004-09-10 Diego Novillo <dnovillo@redhat.com>
1018 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
1020 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
1021 memory tag is call clobbered, so are its aliases.
1022 (group_aliases): When two memory tags being grouped, if one is
1023 call clobbered, so are the other and its aliases.
1024 (add_may_alias): Remove call-clobbering stuff.
1025 (replace_may_alias): Likewise.
1026 (merge_pointed_to_info): Merge pt_global_mem
1028 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1030 * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
1031 genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
1032 passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
1033 tree-scalar-evolution.c, tree-ssa-copyrename.c,
1034 tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
1036 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
1038 * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
1039 (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
1040 pair. Remove match_dup from inputs. Remove masaccs handling.
1041 (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
1042 (masaccs, mdasaccs): Turn into define_insns.
1044 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
1046 * tree-tailcall.c (process_assignment): Only do accumulator transforms
1047 for floating-point types if flag_unsafe_math_optimizations.
1049 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1051 * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
1052 config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
1053 config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
1054 config/h8300/h8300.md, config/i386/gmm_malloc.h,
1055 config/ia64/ia64.md, config/ip2k/libgcc.S,
1056 config/mips/mips-ps-3d.md, config/mips/mips.c,
1057 config/rs6000/rs6000.c, config/s390/s390.c,
1058 config/sh/symbian.c: Fix comment typos.
1060 2004-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
1062 * config/s390/s390.c (s390_emit_prologue): Added missing
1065 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1067 * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
1068 typos. Follow spelling conventions.
1070 2004-09-10 Joseph S. Myers <jsm@polyomino.org.uk>
1072 * toplev.c (warn_deprecated_use): Correct logic for saying "type"
1073 in diagnostic. Don't dereference NULL TYPE_NAME.
1075 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1077 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
1078 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
1079 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
1080 value-prof.c: Fix comment typos. Follow spelling conventions.
1082 2004-09-10 Jan Hubicka <jh@suse.cz>
1084 * tree-ssa-dce.c (remove_dead_stmt): Update profile.
1085 * tree-split_edge.c (tree_split_edge): Likewise.
1086 (thread_jumps): Likewise.
1088 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
1090 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
1093 2004-09-10 Paolo Bonzini <bonzini@gnu.org>
1095 * cgraph.h (cgraph_dump_file): Do not declare.
1096 * cgraphunit.c (cgraph_dump_file): Declare as static.
1098 * toplev.c (cgraph_dump_file): Do not declare.
1099 (compile_file): Call init_cgraph.
1100 * tree-dump.c (dump_files): Add IPA dump file, remove
1101 XML dump of call graph.
1102 (get_dump_file_name): Support IPA dump file naming scheme.
1103 * tree.h (enum tree_dump_index): Add IPA dump file, remove
1104 XML dump of call graph.
1105 * doc/invoke.texi (Debugging Options): Document the new options.
1107 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
1109 * doc/extend.texi: Document the FR-V built-in functions.
1111 2004-09-09 James E Wilson <wilson@specifixinc.com>
1113 * doc/sourcebuild.texi: Delete libbanshee reference.
1115 2004-09-10 Kelley Cook <kcook@gcc.gnu.org>
1117 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
1119 2004-09-09 James E Wilson <wilson@specifixinc.com>
1121 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
1122 before calling vector_types_convertible_p.
1123 (digest_init): Check that inside_init has VECTOR_TYPE before calling
1124 vector_types_convertible_p. Don't give another error if
1125 convert_for_assignment returns error_mark_node.
1127 2004-09-09 Roger Sayle <roger@eyesopen.com>
1130 * fold-const.c (build_zero_vector): New function to construct a
1131 vector (either floating point or integer) of zeros.
1132 (fold_convert): Internally, enable conversions of integer zero
1133 to arbitrary vector types, using the new build_zero_vector.
1135 2004-09-09 Roger Sayle <roger@eyesopen.com>
1137 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
1138 expand a left shift by an immediate constant as either an ashl or
1139 a sequence of additions.
1140 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
1141 instead of calling gen_ashlsi3 with a constant directly.
1143 2004-09-09 Roger Sayle <roger@eyesopen.com>
1145 * config/i386/i386.c (ix86_split_long_move): When optimizing for
1146 size, and the low and high parts of a DImode constant are equal,
1147 copy one register to another instead of loading the same immediate
1150 2004-09-09 Richard Henderson <rth@redhat.com>
1153 * function.c (assign_parm_setup_block): Only put PARALLELs into
1154 a register if use_register_for_decl.
1156 2004-09-09 Eric Christopher <echristo@redhat.com>
1158 * ra-colorize.c (reset_lists): Move variable declaration inside
1159 ENABLE_CHECKING to avoid unused variable warnings when
1160 not --enable-checking.
1161 (check_colors): Ditto.
1163 2004-09-09 Mike Stump <mrs@apple.com>
1165 * version.c (version_string): Bump to 4.0.0.
1166 * doc/include/gcc-common.texi (version-GCC): Likewise.
1168 2004-09-10 Jakub Jelinek <jakub@redhat.com>
1170 * doc/extend.texi (nothrow attribute): The attribute is not
1171 implemented in 3.2 and earlier.
1173 2004-09-09 Steve Ellcey <sje@cup.hp.com>
1175 * genrecog.c (compute_predicate_codes): Use op0_codes
1178 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
1180 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
1181 implementation changes.
1183 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
1185 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
1186 a PARALLEL instead of a SET due to added clobbers.
1188 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
1190 * reload.c (find_reloads_address): Pass correct operand to
1191 maybe_memory_address_p.
1193 2004-09-09 Daniel Berlin <dberlin@dberlin.org>
1195 * Makefile.in: Remove libbanshee, tree-alias-*.
1196 Remove tree-alias-common.h dependencies.
1197 * common.opt: Remove -ftree-points-to.
1198 * configure.ac: Remove libbanshee.
1199 * flags.h: Remove pta_type, flag_tree_points_to.
1200 * gengtype.c (open_base_files): Remove tree-alias-type.h.
1201 * opts.c (OPT_ftree_points_to): Remove.
1202 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
1203 * tree-dfa.c: Remove tree-alias-common.h
1204 * tree-into-ssa.c: Ditto.
1205 * tree-outof-ssa.c: Ditto.
1206 * tree-ssa-copyrename.c: Ditto.
1207 * tree-ssa-live.c: Ditto.
1208 * tree-optimize.c: Ditto.
1209 * tree-ssa.c: Ditto.
1210 Remove pass_build_pta, pass_del_pta.
1211 * tree-pass.h: Ditto.
1212 * tree-ssa-alias.c: Remove tree-alias-common.h.
1213 (struct alias_stats_d): Remove pta_queries, pta_resolved.
1214 (pass_may_alias): Remove PROP_pta requirement.
1215 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
1216 (get_tmt_for): Ditto.
1217 (dump_alias_stats): Ditto.
1218 * doc/passes.texi: Remove blurb about points-to analysis.
1219 * fortran/Make-lang.in: Remove tree-alias-*.o.
1221 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
1223 * genattrtab.c (write_insn_cases): New function, split out from
1224 write_attr_case. Correctly handle define_peepholes when printing
1225 the instruction name.
1226 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
1228 2004-09-09 Hans-Peter Nilsson <hp@axis.com>
1231 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
1232 * config/cris/cris.c (cris_return_address_on_stack): New function.
1233 * config/cris/cris.md ("return"): For location of return address,
1234 also check cris_return_address_on_stack.
1236 2004-09-09 Diego Novillo <dnovillo@redhat.com>
1238 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
1239 calling phi_ssa_name_p.
1241 2004-09-09 Richard Henderson <rth@redhat.com>
1244 * c-typeck.c (valid_compound_expr_initializer): Use only
1245 initializer_constant_valid_p, and not TREE_CONSTANT.
1246 (digest_init): Likewise.
1247 (output_init_element): Likewise.
1249 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1251 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
1252 live_out_1, prune_hardregs_for_mode, init_one_web_common,
1253 reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
1254 record_conflict, compare_and_free_webs, init_webs_defs_uses,
1255 parts_to_webs_1, parts_to_webs, reset_conflicts,
1256 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
1257 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
1258 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
1259 put_move, remove_move, combine, select_spill, colorize_one_web,
1260 try_recolor_web, insert_coalesced_conflicts, check_colors,
1261 break_precolored_alias, restore_conflicts_from_coalesce,
1262 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
1263 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
1264 reloads_to_loads, rewrite_program2, emit_colors): Likewise.
1265 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
1266 check_df): Likewise.
1267 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
1268 real_arithmetic, real_compare, real_exponent, real_ldexp,
1269 real_identical, real_to_integer, real_to_integer2, real_to_decimal,
1270 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
1271 real_digit, real_nan, real_maxval, round_for_format, real_convert,
1272 real_to_target, real_from_target, real_hash, encode_ieee_single,
1273 encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
1274 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
1275 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
1276 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
1277 extract_insn, peep2_next_insn, peep2_reg_dead_p,
1278 peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
1279 if_test_bypass_p): Likewise.
1280 * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
1281 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
1282 emit_swap_insn, swap_to_top, move_for_stack_reg,
1283 subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
1284 compensate_edge, convert_regs_1): Likewise.
1285 * regclass.c (init_reg_sets, init_reg_sets_1,
1286 memory_move_secondary_cost): Likewise.
1287 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
1289 * reload.c (push_secondary_reload, find_valid_class, push_reload,
1290 operands_match_p, decompose, immune_p, find_reloads,
1291 find_reloads_toplev, find_reloads_address_1, subst_reloads,
1292 copy_replacements, refers_to_regno_for_reload_p,
1293 reg_overlap_mentioned_for_reload_p): Likewise.
1294 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
1295 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
1296 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
1297 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
1298 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
1299 do_output_reload, fixup_abnormal_edges): Likewise.
1300 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
1301 fill_slots_from_thread, relax_delay_slots): Likewise.
1302 * resource.c (mark_referenced_resources, mark_set_resources):
1304 * rtl.c (copy_rtx, rtx_equal_p): Likewise.
1305 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
1306 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
1307 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
1308 find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
1309 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
1310 * rtlhooks.c (gen_lowpart_general): Likewise.
1311 * sbitmap.c (sbitmap_difference): Likewise.
1312 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
1313 sched_analyze, add_forward_dependence): Likewise.
1314 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
1315 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
1316 schedule_insns): Likewise.
1317 * sched-vis.c (print_pattern): Likewise.
1318 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
1319 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
1320 simplify_const_relational_operation, simplify_ternary_operation,
1321 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
1323 * sreal.c (copy, sreal_sub, sreal_div): Likewise.
1324 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
1325 resolve_operand_name_1, expand_return, expand_decl,
1326 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
1327 * stor-layout.c (put_pending_size, smallest_mode_for_size,
1328 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
1329 set_sizetype, get_mode_bounds): Likewise.
1331 2004-09-09 Zack Weinberg <zack@codesourcery.com>
1333 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
1334 * config/arm/pecoff.h, config/i386/beos-elf.h
1335 * config/i386/cygming.h, config/i386/i386-interix.h:
1336 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
1337 comment cloned from manual.
1338 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
1340 2004-09-09 Frank Ch. Eigler <fche@redhat.com>
1342 * builtins.c (build_va_arg_indirect_ref): New function.
1343 (std_gimplify_va_arg_expr): Call it instead of mudflap check and
1344 build_fold_indirect_ref.
1345 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
1346 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
1347 * tree.h: Declare new function.
1349 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1351 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
1352 dumping for development builds.
1353 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
1354 development builds only.
1355 * genattrtab.c (write_eligible_delay): Fix typo in previous
1357 * tree.c (iterative_hash_expr): Replace gcc_unreachable with
1360 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1362 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
1363 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
1364 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
1365 hoist_code, extract_mentioned_regs_helper, compute_store_table,
1366 insert_store): Use gcc_assert and gcc_unreachable.
1367 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
1368 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
1369 ggc_record_overhead): Likewise.
1370 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
1371 init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
1372 ggc_pop_context, clear_marks, validate_free_objects,
1373 ggc_pch_read): Likewise.
1374 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
1375 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
1376 ggc_push_context, check_cookies, ggc_collect,
1377 ggc_print_statistics): Likewise.
1378 * gimple-low.c (lower_function_body, lower_stmt,
1379 lower_bind_expr): Likewise.
1380 * gimplify.c (gimple_tree_eq, push_gimplify_context,
1381 pop_gimplify_context, gimple_pop_condition, create_tmp_var,
1382 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
1383 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
1384 gimplify_case_label_expr, gimplify_exit_block_expr,
1385 canonicalize_component_ref, gimplify_compound_lval,
1386 gimplify_self_mod_expr, gimplify_call_expr,
1387 gimplify_init_ctor_eval, gimplify_init_constructor,
1388 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
1389 gimplify_expr, check_pointer_types_r,
1390 force_gimple_operand): Likewise.
1391 * global.c (global_alloc, build_insn_chain): Likewise.
1392 * graph.c (clean_graph_dump_file,
1393 finish_graph_dump_file): Likewise.
1394 gcov-io.c (gcov_open): Use GCOV_CHECK.
1396 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
1398 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
1400 2004-09-09 Jan Hubicka <jh@suse.cz>
1403 * tree-inline.c (expand_call_inline): Make overactive sanity check
1406 2004-09-09 Jan Hubicka <jh@suse.cz>
1408 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
1411 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1413 * Makefile.in (gengtype): Use $(BUILD_ERRORS).
1414 (gengtype.o): Depend on errors.h.
1415 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
1416 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
1417 attr_alt_subset_p, attr_alt_subset_of_compl_p,
1418 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
1419 write_test_expr, write_attr_value, write_eligible_delay,
1420 make_internal_attr, make_numeric_value): Likewise.
1421 * genautomata.c (regexp_name, get_str_vect,
1422 gen_presence_absence_set, automaton_decl_hash,
1423 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
1424 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
1425 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
1426 test_unit_reserv, it_is_empty_reserv_sets,
1427 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
1428 reserv_sets_and, output_cycle_reservs, get_free_state,
1429 intersected_state_reservs_p, states_union, remove_arc,
1430 copy_insn_regexp, transform_1, transform_2, transform_3,
1431 regexp_transform_func, store_alt_unit_usage,
1432 check_regexp_units_distribution, process_seq_for_forming_states,
1433 process_alts_for_forming_states, make_automaton,
1434 form_arcs_marked_by_insn, create_composed_state,
1435 set_out_arc_insns_equiv_num, partition_equiv_class,
1436 process_insn_equiv_class, set_insn_equiv_classes,
1437 units_to_automata_heuristic_distr, form_regexp,
1438 longest_path_length, output_dfa_max_issue_rate, add_vect,
1439 out_state_arcs_num, add_vect_el, output_trans_table,
1440 output_state_alts_table, output_dead_lock_vect,
1441 output_max_insn_queue_index_def,
1442 output_min_insn_conflict_delay_func,
1443 output_internal_insn_latency_func, output_print_reservation_func,
1444 output_cpu_unit_reservation_p, output_state_arcs,
1445 make_insn_alts_attr, make_internal_dfa_insn_code_attr,
1446 make_default_insn_latency_attr,
1447 form_important_insn_automata_lists): Likewise.
1448 * genemit.c (gen_exp, output_add_clobbers,
1449 output_added_clobbers_hard_reg_p): Likewise.
1450 * genextract.c (print_path, main): Likewise.
1451 * genflags.c (gen_macro): Likewise.
1452 * gengenrtl.c: Include errors.h
1453 (type_from_format, accessor_from_format): Likewise.
1454 * gengtype.c (get_file_basename, output_mangled_typename,
1455 walk_type, write_types_process_field,
1456 write_types_local_process_field): Likewise.
1457 * genmodes.c (complete_mode): Likewise.
1458 * genopinit.c (gen_insn): Likewise.
1459 * genoutput.c (output_insn_data, check_constraint_len,
1460 constraint_len): Likewise.
1461 * genpreds.c (add_mode_tests):Likewise.
1462 * gen-protos.c (add_hash): Likewise.
1463 * genrecog.c (find_operand, find_matching_operand,
1464 validate_pattern, add_to_sequence, maybe_both_true,
1465 nodes_identical_1, merge_trees, write_switch, write_cond,
1466 write_action, is_unconditional, make_insn_sequence,
1467 debug_decision_2): Likewise.
1468 * gensupport.c (is_predicable, collect_insn_data,
1469 alter_predicate_for_insn, maybe_eval_c_test): Likewise.
1471 2004-09-09 Jan Hubicka <jh@suse.cz>
1473 * basic-block.h (guess_outgoing_edge_probabilities): Declare.
1474 * cfgbuild.c (compute_outgoing_frequencies): When probability is
1476 (find_many_sub_basic_blocks): Do update profile only when it is
1478 * predict.c (set_even_probabilities): Break out from ...
1479 (combine_predictions_for_insn): ... here; deal with
1480 !can_predict_insn_p insns.
1481 (combine_predictions_for_bb): Use set_even_probabilities.
1482 (bb_estimate_probability_locally): Break out from ....
1483 (estimate_probability): ... here.
1484 (guess_outgoing_edge_probabilities): New entry point.
1486 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
1488 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
1489 handle_braces, process_brace_body, main, used_arg,
1490 set_multilib_dir, print_multilib_info): Use fatal, not abort.
1492 * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
1494 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
1495 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
1496 Morgan's theorem in last checkin.
1498 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1499 Nathan Sidwell <nathan@codesourcery.com>
1501 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
1502 Use gcc_assert, gcc_unreachable & internal_error instead of abort.
1503 * timevar.c (timevar_push, timevar_pop, timevar_start,
1504 timevar_stop): Likewise.
1505 * toplev.c (default_pch_valid_p): Likewise.
1506 * tracer.c (tail_duplicate): Likewise.
1507 * tree-alias-common.c (get_alias_var_decl,
1508 get_values_from_constructor, create_alias_var, delete_alias_vars,
1509 empty_points_to_set, same_points_to_set, ptr_may_alias_var):
1511 * tree.c (tree_size, make_node_stat, copy_node_stat,
1512 build_int_cst_wide, integer_all_onesp, list_length, chainon,
1513 tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
1514 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
1515 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
1516 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
1517 build_method_type_directly, decl_type_context, get_callee_fndecl,
1518 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
1519 tree_fold_gcd): Likewise.
1520 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
1521 make_cond_expr_edges, group_case_labels, tree_merge_blocks,
1522 cleanup_control_expr_graph, find_taken_edge,
1523 find_taken_edge_switch_expr, phi_alternatives_equal,
1524 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
1525 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
1526 tree_split_edge, tree_verify_flow_info, thread_jumps,
1527 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
1528 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1529 chrec_fold_multiply_poly_poly): Likewise.
1530 * tree-complex.c (extract_component, expand_complex_division,
1531 expand_complex_comparison, expand_complex_operations_1,
1532 build_replicated_const, expand_vector_operations_1): Likewise.
1533 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
1534 build_classic_dir_vector): Likewise.
1535 * tree-dfa.c (compute_immediate_uses_for_phi,
1536 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
1537 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
1538 * tree-dump.c (dequeue_and_dump): Likewise.
1539 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
1540 record_in_finally_tree, replace_goto_queue_1,
1541 maybe_record_in_goto_queue, verify_norecord_switch_expr,
1542 do_return_redirection): Likewise.
1543 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
1544 add_to_dst_predicate_list, find_phi_replacement_condition,
1545 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
1547 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
1548 initialize_inlined_parameters, declare_return_variable,
1549 estimate_num_insns_1, expand_call_inline, expand_calls_inline,
1550 optimize_inline_calls, copy_tree_r): Likewise.
1551 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
1552 ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
1553 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
1554 tsi_split_statement_list_after, tsi_split_statement_list_before):
1556 * tree-mudflap.c (mf_varname_tree): Likewise.
1557 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
1558 lookup_tramp_for_decl, convert_all_function_calls): Likewise.
1559 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1560 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
1561 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
1562 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
1564 * tree-phinodes.c (resize_phi_node, add_phi_arg,
1565 remove_all_phi_nodes_for): Likewise.
1566 * tree-pretty-print.c (op_prio, print_call_name): Likewise.
1567 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
1568 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
1569 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
1570 sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
1571 generate_one_element_ref, generate_element_copy,
1572 generate_element_zero, scalarize_copy, scalarize_init,
1573 scalarize_ldst): Likewise.
1574 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
1575 add_may_alias, add_pointed_to_expr, add_pointed_to_var,
1576 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
1577 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
1578 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
1579 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
1580 widen_bitfield, ccp_fold_builtin): Likewise.
1581 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
1582 replace_exp_1, propagate_tree_value): Likewise.
1583 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1584 * tree-ssa-dce.c (set_control_dependence_map_bit,
1585 find_control_dependence, find_pdom, mark_operand_necessary,
1586 mark_stmt_if_obviously_necessary,
1587 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
1588 * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
1589 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
1590 eliminate_redundant_computations, avail_expr_eq): Likewise.
1591 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
1592 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
1593 duplicate_blocks): Likewise.
1594 * tree-ssa-loop-im.c (for_each_index, set_level,
1595 is_call_clobbered_ref): Likewise.
1596 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
1597 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
1598 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
1599 peel_address, ptr_difference_cost, may_replace_final_value,
1600 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
1601 rewrite_use, rewrite_uses): Likewise.
1602 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1603 check_loop_closed_ssa_use): Likewise.
1604 * tree-ssanames.c (make_ssa_name): Likewise.
1605 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
1606 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
1607 get_stmt_operands, get_expr_operands, get_asm_expr_operands,
1608 get_indirect_ref_operands, add_stmt_operand): Likewise.
1609 * tree-ssa-pre.c (value_exists_in_set_bitmap,
1610 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
1611 phi_translate, valid_in_set, compute_antic,
1612 find_or_generate_expression, create_expression_by_pieces, insert_aux,
1613 create_value_expr_from, eliminate): Likewise.
1614 * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
1615 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
1617 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
1618 eliminate_tail_call): Likewise.
1619 * tree-vectorizer.c (vect_create_index_for_array_ref,
1620 vect_align_data_ref, vect_create_data_ref,
1621 vect_create_destination_var, vect_get_vec_def_for_operand,
1622 vect_finish_stmt_generation, vect_transform_stmt,
1623 vect_transform_loop_bound, vect_transform_loop,
1624 vect_analyze_operations): Likewise.
1625 * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
1627 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
1628 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
1629 bsi_after_labels, bsi_last): Likewise.
1630 * tree-ssa-live.c (var_union, change_partition_var,
1631 create_ssa_var_map, calculate_live_on_entry, root_var_init,
1632 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
1634 * tree-ssa-live.h (partition_is_global, live_entry_blocks,
1635 tpa_find_tree): Likewise.
1636 (register_ssa_partition_check): Declare.
1637 (register_ssa_partition): use it.
1638 * tree-ssa-live.c: Include errors.h.
1639 (register_ssa_partition_check): New.
1640 * tree-ssa-operands.c: Include errors.h.
1641 * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
1643 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
1644 Catherine Moore <clm@redhat.com>
1646 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
1647 (FRV_CPU_FR405): New processor enums.
1648 (frv_issue_rate, frv_acc_group): Declare.
1649 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
1650 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
1651 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
1652 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
1653 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
1654 handled by CPP_SPEC.
1655 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
1656 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
1657 (ACC_MASK): New macro.
1658 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
1659 (TARGET_MEDIA_FR450): New macro.
1660 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
1661 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
1662 (LABEL_ALIGN_AFTER_BARRIER): Define.
1663 (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
1664 (IACC_FIRST, IACC_LAST): New pair of SPRs.
1665 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
1666 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
1667 (REGISTER_NAMES): Add entries for new registers.
1668 (REG_CLASS_CONTENTS): Update for new register ranges.
1669 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
1670 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
1671 (PACKING_FLAG_USED_P): Delete.
1672 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
1673 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
1674 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
1675 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
1676 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
1677 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
1678 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
1679 (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
1680 (CPU_UNITS_QUERY): Define to 1.
1681 * config/frv/frv.c: Include gt-frv.h
1682 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
1683 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
1684 (frv_insn_group): New enumeration.
1685 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
1686 (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
1687 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
1688 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
1689 gap left by REGSTATE_LIVE.
1690 (regstate_t): New typedef.
1691 (TARGET_MACHINE_DEPENDENT_REORG): Define.
1692 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
1693 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
1694 Initialize frv_unit_codes[] and frv_type_to_unit[].
1695 (frv_conditional_register_usage): Remove redundant fixing of
1696 accumulator registers.
1697 (frv_insn_packing_flag): Update specification.
1698 (frv_function_prologue): Don't set frv_insn_packing_flag here.
1699 Zero out frv_nops[].
1700 (frv_expand_epilogue): Remove comments about the no-longer-present
1702 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
1703 PACKING_FLAG_USED_P() when deciding whether to pack instructions.
1704 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
1705 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
1706 packing is disabled and if INSN can only issue to M1.
1707 (call_operand): Check TARGET_LONG_CALLS.
1708 (acc_operand, even_acc_operand, quad_acc_operand)
1709 (accg_operand): Simplify. Don't accept pseudo registers.
1710 (output_move_single): Handle SPR<-zero moves.
1711 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
1712 (frv_registers_update, frv_registers_used_p): Delete.
1713 (frv_registers_set_p): Delete.
1714 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
1715 (frv_issues_to_branch_unit_p): New function.
1716 (frv_packet): New structure.
1717 (frv_cond_flags, frv_regstate_conflict_p): New functions.
1718 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
1719 (frv_registers_update_1, frv_registers_update): New functions.
1720 (frv_start_packet, frv_start_packet_block, frv_finish_packet)
1721 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
1722 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
1723 (frv_sort_insn_group, frv_reorder_packet): New functions.
1724 (frv_pack_insns): Use frv_reorder_packet.
1725 (frv_packet_address): New variable.
1726 (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
1727 (frv_register_nop, frv_reorg): New functions.
1728 (bdesc_1arg): Add __SCUTSS.
1729 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
1730 __SUBSS, __SLASS and __SCAN.
1731 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
1732 (bdesc_int_void2arg, bdesc_prefetches): New arrays.
1733 (frv_init_builtins): Register the above builtins.
1734 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
1735 registers. Turn the referenced accumulators into global registers.
1736 (frv_read_iacc_argument): New function.
1737 (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
1738 (frv_split_iacc_move): New function.
1739 (frv_expand_builtin): Handle the new builtins.
1740 * config/frv/frv.md: Replace old schedulers with new order-independent
1741 ones. Add schedulers for the FR405, FR450 and FR550. Describe new
1743 (cpu): Add fr550, fr450 and fr405.
1744 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
1745 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
1746 (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
1747 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
1748 (fnop, mnop): New patterns.
1749 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
1751 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
1752 (mclracca8): Use ACC_MASK to determine the upper set of accumulator
1754 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
1755 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
1756 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
1757 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
1758 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
1759 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
1760 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
1761 (frv_prefetch0, frv_prefetch): New patterns.
1762 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
1763 -mcpu=simple. Add -mcpu=fr550.
1764 (MULTILIB_DIRNAMES): Update accordingly.
1765 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
1767 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
1768 -mlong-calls and -malign-labels options for FR-V.
1770 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
1773 * c-tree.h (struct c_declspecs): New.
1774 (struct c_declarator, struct c_type_name, struct c_parm): Update
1776 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
1777 start_function, start_decl, build_c_parm,
1778 make_pointer_declarator): Update prototypes.
1779 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1780 declspecs_add_scspec, declspecs_add_attrs): New.
1781 (split_specs_attrs): Remove.
1782 * c-parse.in (%union): Add dsptype.
1783 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1784 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1785 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1786 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1787 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1788 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1789 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1790 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
1791 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
1792 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
1793 maybe_type_quals_attrs): Change to dsptype.
1794 (struct c_declspec_stack): New.
1795 (current_declspecs, declspec_stack): Change type.
1796 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
1798 (extdefs): Likewise.
1799 (setspecs): Likewise.
1800 (fndef): Use current_declspecs for empty declspecs list.
1801 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1802 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1803 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1804 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1805 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1806 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1807 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1808 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
1809 structures and helper functions. Update comments.
1810 (typespec_nonattr): Correct comment.
1811 (maybe_type_quals_attrs, typename): Update to new structures.
1812 * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
1813 shadow_tag, shadow_tag_warned, start_function, start_decl,
1814 build_c_parm, make_pointer_declarator,
1815 set_array_declarator_inner, groktypename): Update to new
1817 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1818 declspecs_add_scspec, declspecs_add_attrs): New.
1819 (split_specs_attrs): Remove.
1820 (shadow_tag_warned): Make warning for useless type names a
1821 pedwarn. Give hard error for long, short, signed, unsigned or
1822 _Complex used with struct, union or enum in empty declaration.
1823 Make found_tag a bool.
1824 (grokdeclarator): Remove checks now done at parse time.
1826 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
1828 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
1829 c_declarator, struct c_type_name, struct c_parm): New.
1830 (build_array_declarator, set_array_declarator_inner,
1831 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
1832 start_function, start_decl, build_c_parm, build_attrs_declarator,
1833 build_function_declarator, make_pointer_declarator, c_cast_expr,
1834 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
1835 (build_id_declarator): New.
1836 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
1838 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
1839 ARG_INFO_OTHERS): Remove.
1840 (build_id_declarator): New.
1841 (build_array_declarator, set_array_declarator_inner, groktypename,
1842 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
1843 grokfield, start_function, store_parm_decls_newstyle,
1844 store_parm_decls_oldstyle, store_parm_decls,
1845 build_c_parm, build_attrs_declarator, build_function_declarator,
1846 make_pointer_declarator, grokdeclarator): Update to new
1848 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
1850 (declarator, notype_declarator, after_type_declarator,
1851 parm_declarator, parm_declarator_starttypename,
1852 parm_declarator_nostarttypename, array_declarator, typename,
1853 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
1854 absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
1855 parmlist_1, parmlist_2, parmlist_or_identifiers,
1856 parmlist_or_identifiers_1): Use these types.
1857 (primary, after_type_declarator, parm_declarator_starttypename,
1858 notype_declarator, component_decl, component_declarator,
1859 component_notype_declarator, typename, absdcl,
1860 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
1861 parmlist_2, parmlist_or_identifiers_1): Update to new structures.
1863 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
1865 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
1866 in_typeof, record_maybe_used_decl, pop_maybe_used,
1867 c_expr_sizeof_expr, c_expr_sizeof_type): New.
1868 * c-decl.c (parser_obstack): New.
1869 (c_init_decl_processing): Initialize parser_obstack.
1870 (c_write_global_declarations_1): Check for used but undefined
1872 * c-parse.in (%union): Add otype.
1873 (save_obstack_position): New.
1875 (unary_expr): Update in_sizeof and in_alignof. Use
1876 c_expr_sizeof_expr and c_expr_sizeof_type.
1877 (sizeof): Update in_sizeof.
1878 (alignof): Update in_alignof.
1879 (typeof): Update in_typeof.
1880 (typespec_nonreserved_nonattr): Call pop_maybe_used.
1881 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
1882 maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
1883 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
1884 (build_external_ref): Set C_DECL_USED or call
1885 record_maybe_used_decl if appropriate.
1886 * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
1888 2004-09-08 Eric Christopher <echristo@redhat.com>
1890 * builtins.c: Fix prototype for fold_builtin_atan.
1892 2004-09-08 Eric Christopher <echristo@redhat.com>
1894 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
1895 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
1896 fold_builtin_atan): New functions. Migrate function bodies...
1897 (fold_builtin_1): ... from here.
1899 2004-09-09 Alan Modra <amodra@bigpond.net.au>
1901 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
1904 2004-09-08 David Edelsohn <edelsohn@gnu.org>
1906 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
1907 * config/rs6000/power5.md (power5-lmul): Same.
1909 2004-09-08 Richard Henderson <rth@redhat.com>
1912 * function.c (expand_function_end): Have fall-off-the-end
1913 return path jump around return register setup.
1915 2004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1917 * config/sparc/sparc.c (sparc_indent_opcode): New variable.
1918 (output_return): Do not test for the presence of the 'unimp' insn.
1919 Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
1920 as predicates instead of custom ones. Return raw strings when
1922 (output_sibcall): Likewise. Concatenate strings.
1923 (output_ubranch): Remove kludge for TurboSPARC.
1924 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
1925 (output_v9branch): Likewise.
1926 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
1927 <#>: Set sparc_indent_opcode if the delay slot is filled.
1929 <)>: New operand to emit the displacement from the saved PC on return.
1931 * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
1932 (ASM_OUTPUT_OPCODE): New macro.
1933 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
1934 * config/sparc/sparc.md (normal_branch, inverted_branch,
1935 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
1936 inverted_fpe_branch): Adjust call to output_cbranch.
1937 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
1938 call to output_v9branch.
1939 * config/sparc/sparc-protos.h (output_cbranch): Adjust.
1940 (output_v9branch): Likewise.
1942 2004-09-08 Devang Patel <dpatel@apple.com>
1944 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
1945 -segs_read_only_addr and -segs_read_write_addr.
1946 (WORD_SWITCH_TAKES_ARG): Same.
1948 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
1949 -segs_read_write_addr.
1951 2004-09-08 Richard Henderson <rth@redhat.com>
1953 * function.c (reference_callee_copied): New.
1954 (assign_parm_setup_reg): Use it.
1955 * calls.c (initialize_argument_information): Likewise.
1956 (emit_library_call_value_1): Likewise.
1957 * function.h (reference_callee_copied): Declare.
1959 * target.h (struct gcc_target): Add callee_copies.
1960 * target-def.h (TARGET_CALLEE_COPIES): New.
1961 (TARGET_PASS_BY_REFERENCE): Update default.
1962 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1963 * targhooks.c (hook_callee_copies_named): New.
1964 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
1965 hook_pass_by_reference_false.
1966 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
1967 * targhooks.h: Update decls.
1968 * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
1969 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1970 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
1971 * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
1972 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1973 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
1974 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1975 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
1976 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1977 * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
1978 (mips_callee_copies): New.
1979 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1980 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
1981 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1982 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
1983 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1984 * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
1985 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1986 * config/sh/sh.c (sh_callee_copies): New.
1987 (TARGET_CALLEE_COPIES): New.
1988 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1989 * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
1990 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1991 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
1992 for FUNCTION_ARG_CALLEE_COPIES.
1993 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
1995 2004-09-08 Devang Patel <dpatel@apple.com>
1997 * tree-if-conv.c (find_phi_replacement_condition): Return true
1999 (replace_phi_with_cond_modify_expr): Select conditional expr args
2000 based on true edge basic block.
2002 2004-09-08 Jan Hubicka <jh@suse.cz>
2004 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
2005 variables being alias set.
2007 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2009 * final.c (shorten_branches, final, get_insn_template,
2010 output_alternate_entry_point, final_scan_insn, alter_subreg,
2011 alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
2012 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
2013 * fix-header.c (lookup_std_proto): Likewise.
2014 * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
2015 verify_local_live_at_start, update_life_info, mark_reg,
2016 calculate_global_regs_live, allocate_reg_life_data,
2017 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
2018 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
2019 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
2020 * fold-const.c (force_fit_type, div_and_round_double,
2021 may_negate_without_overflow_p, int_const_binop, const_binop,
2022 size_binop, size_diffop, fold_convert_const, fold_convert,
2023 invert_tree_comparison, swap_tree_comparison,
2024 comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
2025 range_binop, make_range, fold_cond_expr_with_comparison,
2026 fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
2027 fold_abs_const, fold_not_const, fold_relational_const, round_up,
2028 round_down): Likewise.
2029 * function.c (find_function_data, assign_stack_temp_for_type,
2030 instantiate_virtual_regs_lossage, aggregate_value_p,
2031 assign_parm_find_entry_rtl, assign_parm_setup_block,
2032 expand_function_start, expand_function_end, keep_stack_depressed,
2033 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
2035 2004-09-08 Daniel Berlin <dberlin@dberlin.org>
2037 * Makefile.in (tree-loop-linear.o): Added.
2038 (OBJS-common): Add tree-loop-linear.o
2039 * common.opt: New flag, ftree-loop-linear.
2040 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
2041 * tree-flow.h: Add prototype for linear_transform_loops.
2042 * tree-optimize.c: Add linear transform after vectorization.
2043 * tree-pass.h: Add struct pass_linear_transform.
2044 * tree-ssa-loop.c: Add pass_linear_transform.
2045 * tree-loop-linear.c: New file.
2046 * lambda-code.c: gcc_assertify.
2047 (gcc_loop_to_lambda_loop): Handle all exit tests.
2048 Handle case where we have (invariant >= induction var).
2049 (find_induction_var_from_exit_cond): Ditto.
2051 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
2053 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2054 memory tag is call clobbered, so are its aliases.
2055 (group_aliases): When two memory tags being grouped, if one is
2056 call clobbered, so are the other and its aliases.
2057 (add_may_alias): Remove call-clobbering stuff.
2058 (replace_may_alias): Likewise.
2059 (merge_pointed_to_info): Merge pt_global_mem
2061 2004-09-08 Jan Hubicka <jh@suse.cz>
2063 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
2064 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
2065 (cgraph_expand_function): Remove stale cgraph edges of currently
2066 compiled function; fix non-unit-at-a-time code copying function
2067 node for later reuse.
2069 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2071 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
2072 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
2073 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
2074 (vec_gc_free, vec_heap_free): New.
2075 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
2076 (DEF_VEC_P): Add allocator argument. Adjust.
2077 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
2078 (DEF_VEC_O): Add allocator argument. Adjust.
2081 * tree.h (tree): Define a GC'd vector.
2082 * lamba-code.c (lambda_loop): Likewise.
2083 * value-prof.h (histogram_value): Likewise.
2085 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2087 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
2088 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
2089 gen_lowpart_common, gen_highpart, gen_highpart_mode,
2090 subreg_highpart_offset, operand_subword, operand_subword_force,
2091 mem_expr_equal_p, set_mem_attributes_minus_bitpos,
2092 set_mem_alias_set, change_address_1, verify_rtx_sharing,
2093 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
2094 try_split, add_insn_after, add_insn_before, remove_insn,
2095 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
2096 emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
2097 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
2098 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
2099 gen_const_vector_0, emit_copy_of_insn_after): Likewise.
2100 * et-forest.c (set_prev, set_next, et_check_occ_sanity,
2101 record_path_before_1, check_path_after_1, check_path_after): Likewise.
2102 * except.c (gen_eh_region, resolve_one_fixup_region,
2103 remove_unreachable_regions, convert_from_eh_region_ranges_1,
2104 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
2105 connect_post_landing_pads, sjlj_emit_function_exit,
2106 remove_exception_handler_label, remove_eh_handler,
2107 reachable_next_level, collect_one_action_chain,
2108 output_function_exception_table): Likewise.
2109 * explow.c (trunc_int_for_mode, copy_to_mode_reg,
2110 optimize_save_area_alloca, allocate_dynamic_stack_space,
2111 probe_stack_range, hard_function_value): Likewise.
2112 * expmed.c (mode_for_extraction, store_bit_field,
2113 store_fixed_bit_field, extract_bit_field, expand_shift,
2114 expand_mult_const, expand_mult, choose_multiplier,
2115 expand_mult_highpart, expand_divmod, emit_store_flag,
2116 do_cmp_and_jump): Likewise.
2117 * expr.c (convert_move, convert_modes, move_by_pieces,
2118 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
2119 move_block_from_reg, gen_group_rtx, emit_group_load,
2120 emit_group_move, emit_group_store, use_reg, use_regs,
2121 can_store_by_pieces, store_by_pieces, store_by_pieces_1,
2122 emit_move_insn, emit_move_insn_1, emit_push_insn,
2123 expand_assignment, store_expr, count_type_elements,
2124 store_constructor, store_field, safe_from_p, expand_var,
2125 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
2127 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2129 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
2130 gcc_assert and gcc_unreachable.
2131 * ddg.c (create_ddg_dependence, add_deps_for_def,
2132 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
2133 * df.c (df_ref_unlink, df_ref_record, df_uses_record,
2134 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
2135 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
2136 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
2137 df_bb_reg_live_end_p, df_bb_regs_lives_compare,
2138 df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
2139 dataflow_set_copy, hybrid_search, diagnostic.c,
2140 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
2141 * dojump.c (do_jump): Likewise.
2142 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
2143 compute_dom_fast_query, calculate_dominance_info,
2144 free_dominance_info, get_immediate_dominator,
2145 set_immediate_dominator, get_dominated_by,
2146 redirect_immediate_dominators, nearest_common_dominator,
2147 dominated_by_p, verify_dominators, recount_dominator,
2148 iterate_fix_dominators, add_to_dominance_info,
2149 delete_from_dominance_info): Likewise.
2150 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
2151 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2152 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
2153 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
2154 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
2155 flush_queued_reg_saves, dwarf2out_frame_debug_expr,
2156 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
2157 output_call_frame_info, output_loc_operands, build_cfa_loc,
2158 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
2159 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
2160 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
2161 splice_child_die, attr_checksum, same_dw_val_p,
2162 break_out_includes, build_abbrev_table, size_of_die, mark_dies,
2163 unmark_dies, value_format, output_loc_list, output_die,
2164 output_pubnames, output_aranges, base_type_die, is_base_type,
2165 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
2166 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
2167 field_byte_offset, add_data_member_location_attribute,
2168 add_const_value_attribute, rtl_for_decl_location,
2169 add_location_or_const_value_attribute, add_byte_size_attribute,
2170 add_bit_offset_attribute, add_bit_size_attribute,
2171 add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
2172 decl_start_label, gen_formal_parameter_die,
2173 gen_type_die_for_member, gen_subprogram_die, gen_label_die,
2174 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
2175 force_decl_die, force_type_die, gen_decl_die,
2176 dwarf2out_imported_module_or_decl, prune_unused_types_prune,
2177 dwarf2out_finish): Likewise.
2179 2004-09-08 Andreas Tobler <toa@pop.agri.ch>
2181 * Makefile.in (builtins.o): Depend on tree-mudflap.h.
2182 * builtins.c: Include tree-mudflap.h.
2184 2004-09-08 Uros Bizjak <uros@kss-loka.si>
2186 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
2187 force operand 0.0 into register in XFmode. Also do not force
2188 operand 0.0 into register if !TARGET_CMOVE.
2189 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
2190 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
2191 implement ftst x87 instruction.
2192 (*fp_jcc_7): New insn pattern. Change corresponding split
2193 pattern to handle "general_operand" instead of
2194 "nonimmediate_operand".
2196 2004-09-08 Ben Elliston <bje@au.ibm.com>
2198 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
2200 2004-09-07 Frank Ch. Eigler <fche@redhat.com>
2202 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
2203 generated from standard va_arg expansion.
2204 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
2206 (mf_varname_tree, mf_file_function_line_tree): Add some support
2207 for column numbers if compiled with USE_MAPPED_LOCATION.
2209 2004-09-07 Ziemowit Laski <zlaski@apple.com>
2211 * c-decl.c (groktypename_in_parm_context): Remove function.
2212 * c-tree.h (groktypename_in_parm_context): Remove prototype.
2214 2004-09-07 Ziemowit Laski <zlaski@apple.com>
2216 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
2217 * c-parse.in: Include c-common.h instead of objc-act.h.
2218 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
2219 myparms, myparm): Remove %type declarations.
2220 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
2221 objc_typename, objc_try_catch_stmt, optellipsis): Add %type
2223 (objc_inherit_code, objc_public_flag): Remove.
2224 (typespec_nonreserved_nonattr): Call
2225 objc_get_protocol_qualified_type() instead of get_static_reference()
2226 and get_protocol_reference().
2227 (stmt_nocomp): Call grokparm() on @catch parameter.
2228 (objcdef): Move semantic action to objc_finish_implementation().
2229 (classdef): Move semantic action to objc_start_class_interface(),
2230 objc_continue_interface(), objc_finish_interface(),
2231 objc_start_class_implementation(), objc_continue_implementation(),
2232 objc_start_category_interface() and
2233 objc_start_category_implementation().
2234 (protocoldef): Move semantic actions to objc_start_protocol() and
2235 objc_finish_interface().
2236 (ivar_decl_list): Remove nonterminal.
2237 (visibility_spec): Move semantic actions to objc_set_visibility().
2238 (ivar_decls): Remove assignment to $$.
2239 (ivar_decl): Rephrase in terms of component_decl; call
2240 objc_add_instance_variable().
2241 (ivars, ivar_declarator): Remove nonterminals.
2242 (opt_semi): New nonterminal.
2243 (methodtype): Remove semantic actions.
2244 (methoddef): Move semantic actions to objc_set_method_type(),
2245 objc_start_method_definition() and objc_finish_method_definition().
2246 (methodproto): Move semantic actions to objc_set_method_type() and
2247 objc_add_method_declaration().
2248 (methoddecl): Use objc_typename instead of typename; move semantic
2249 actions to objc_build_method_signature().
2250 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
2251 (optparmlist): Express in terms of optparms and optellipsis.
2252 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
2254 (keyworddecl): Use objc_typename instead of typename.
2255 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
2256 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
2258 2004-09-08 Alan Modra <amodra@bigpond.net.au>
2260 * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
2261 (MD_FALLBACK_FRAME_STATE_FOR): Update.
2262 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
2263 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
2264 (MD_FROB_UPDATE_CONTEXT): Remove default.
2265 (uw_update_context_1): Instead #ifdef invocation.
2266 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
2267 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
2268 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
2269 (MD_UNWIND_SUPPORT): Undefine this instead.
2270 * config/i386/gnu.h: Likewise.
2271 * config/alpha/linux-unwind.h: New file, macro converted to
2272 function, extracted from..
2273 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
2274 (MD_UNWIND_SUPPORT): Define.
2275 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
2276 * config/i386/linux-unwind.h, config/i386/linux.h,
2277 config/i386/linux64.h: Likewise.
2278 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
2279 MD_HANDLE_UNWABI too.
2280 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
2281 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
2282 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
2283 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
2284 * config/sparc/linux-unwind.h, config/sparc/linux.h,
2285 config/sparc/linux64.h: Likewise.
2286 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
2287 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
2288 * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
2289 config/rs6000/linux64.h: Likewise. Split out get_sigcontext
2290 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
2292 2004-09-07 Jan Hubicka <jh@suse.cz>
2294 * cse.c (fold_rtx): Avoid building of
2295 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
2297 * tree-ssa-pre.c (grand_bitmap_obstack): New.
2298 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
2299 (init_pre): Initialize obstack.
2300 (fini_pre): Free obstack.
2302 2004-09-07 David Daney <ddaney@avtrex.com>
2304 * config.gcc: Added support for --with-divide=[breaks|traps] for
2306 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
2307 (TARGET_DIVIDE_TRAPS): New macro.
2308 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
2309 (OPTION_DEFAULT_SPECS): Added --with-divide= support.
2310 * config/mips/mips.c (mips_idiv_insns): Generate proper count on
2311 GENERATE_DIVIDE_TRAPS.
2312 (mips_output_division): Emit conditional trap if
2313 GENERATE_DIVIDE_TRAPS is set.
2314 * doc/install.texi: Document --with-divide.
2315 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
2317 2004-09-07 Caroline Tice <ctice@apple.com>
2319 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
2320 EDGE_CROSSING, to flags test case.
2322 2004-09-07 Jan Hubicka <jh@suse.cz>
2324 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
2327 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
2329 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
2330 cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
2331 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
2333 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
2334 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
2335 alloc_aux_for_edges, free_aux_for_edges): Likewise.
2336 * cfgcleanup.c (try_forward_edges,
2337 merge_blocks_move_predecessor_nojumps,
2338 merge_blocks_move_successor_nojumps): Likewise.
2339 * cfgexpand.c (expand_gimple_cond_expr,
2340 expand_gimple_tailcall): Likewise.
2341 * cfghooks.c (duplicate_block): Likewise.
2342 * cfglayout.c (record_effective_endpoints,
2343 insn_locators_initialize, change_scope, fixup_reorder_chain,
2344 verify_insn_chain, fixup_fallthru_exit_predecessor,
2345 duplicate_insn_chain, cfg_layout_finalize): Likewise.
2346 * cfgloopanal.c (check_irred): Likewise.
2347 * cfgloop.c (superloop_at_depth, flow_loops_free,
2348 flow_loop_entry_edges_find, flow_loops_find,
2349 flow_loop_outside_edge_p, get_loop_body,
2350 get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
2351 get_loop_exit_edges, num_loop_branches, cancel_loop,
2352 verify_loop_structure): Likewise.
2353 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
2354 duplicate_loop_to_header_edge, create_preheader,
2355 create_loop_notes): Likewise.
2356 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
2357 edirect_branch_edge, force_nonfallthru_and_redirect,
2358 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
2359 commit_edge_insertions, commit_edge_insertions_watch_calls,
2360 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
2361 cfg_layout_redirect_edge_and_branch_force,
2362 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
2363 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
2364 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
2365 cgraph_varpool_node): Likewise.
2366 * cgraphunit.c (cgraph_finalize_function,
2367 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
2368 cgraph_expand_function, cgraph_remove_unreachable_nodes,
2369 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
2370 cgraph_mark_inline, cgraph_expand_all_functions,
2371 cgraph_build_static_cdtor): Likewise.
2372 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
2373 simplify_logical, distribute_notes, insn_cuid): Likewise.
2374 * conflict.c (conflict_graph_add, print_conflict): Likewise.
2375 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
2376 coverage_checksum_string): Likewise.
2377 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
2378 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
2379 cse_cc_succs, cse_condition_code_reg): Likewise.
2380 * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
2381 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
2382 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
2383 cselib_record_set): Likewise.
2385 2004-09-07 Jan Hubicka <jh@suse.cz>
2387 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
2389 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
2391 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
2393 (fold_builtin_strpbrk): Likewise.
2394 * expr.c (array_ref_low_bound): Likewise.
2395 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
2396 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
2397 * tree-sra.c (generate_element_zero): Likewise.
2398 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2399 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
2400 add_old_iv_candidates, add_iv_candidates): Likewise.
2401 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2403 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
2405 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
2406 * c-common.c (c_type_hash, c_common_nodes_and_builtins,
2407 c_expand_expr, boolean_increment, nonnull_check_p,
2408 check_function_arguments_recurse, fold_offsetof_1): Likewise.
2409 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
2410 builtin_define_type_max): Likewise.
2411 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
2412 implicit_decl_warning, builtin_function, build_compound_literal,
2413 complete_array_type, grokdeclarator, get_parm_info,
2414 start_function, store_parm_decls_oldstyle,
2415 c_write_global_declarations): Likewise.
2416 * c-format.c (get_constant, decode_format_attr,
2417 maybe_read_dollar_number, get_flag_spec, check_format_arg,
2418 check_format_types, format_type_warning,
2419 find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
2420 init_dynamic_diag_info, handle_format_attribute): Likewise.
2421 * c-gimplify.c (push_context, pop_context, finish_bc_block):
2422 * c-lex.c (c_lex_with_flags, lex_string): Likewise.
2423 * c-objc-common.c (c_tree_printer): Likewise.
2424 * c-pch.c (pch_init): Likewise.
2425 * c-pragma.c (maybe_apply_pragma_weak): Likewise.
2426 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
2427 * c-typeck.c (c_incomplete_type_error, composite_type,
2428 common_pointer_type, common_type, same_translation_unit_p,
2429 tagged_types_tu_compatible_p, finish_init, pop_init_level,
2430 set_designator, set_nonincremental_init_from_string,
2431 process_init_element, c_finish_if_stmt): Likewise.
2432 * caller-save.c (init_caller_save, save_call_clobbered_regs,
2433 insert_restore, insert_save, insert_one_insn): Likewise.
2434 * calls.c (emit_call_1, compute_argument_block_size,
2435 precompute_arguments, expand_call, emit_library_call_value_1,
2436 store_one_arg): Likewise.
2438 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
2440 * configure.ac (enable-checking): Add release option. Reorganize
2441 to avoid repetition.
2442 * configure: Rebuilt.
2443 * doc/install.texi (enable-checking): Amend documentation.
2445 2004-09-06 H.J. Lu <hongjiu.lu@intel.com>
2448 * Makefile.in (specs.ready): Depend on cc1$(exeext).
2450 2004-09-06 James E Wilson <wilson@specifixinc.com>
2452 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
2453 movdf_hardfloat_32bit): Split fG into two alternatives.
2454 (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
2456 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
2458 2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2460 * final.c (output_in_slot): Delete.
2461 (final_scan_insn): Revert 2004-09-03 change.
2462 (output_asm_insn): Likewise.
2463 * config/sparc/sparc.c (output_return): Likewise.
2464 (output_sibcall): Likewise.
2466 2004-09-06 Jan Hubicka <jh@suse.cz>
2468 * loop.c (loop_dump_aux): Do not print RTL when not available.
2469 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
2470 frontend specific type nodes.
2471 (produce_memory_decl_rtl): Break out from ...
2472 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
2473 (get_computation_at): Avoid random tree sharing.
2474 (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
2476 2004-09-06 Zack Weinberg <zack@codesourcery.com>
2478 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
2479 unnecessary commands.
2481 2004-09-06 Mohan Embar <gnustuff@thisiscool.com>
2483 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
2484 (bitmap.o): Likewise.
2486 2004-09-06 Paolo Bonzini <bonzini@gnu.org>
2488 Unify the management of RTL and tree-level dump files.
2490 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
2491 Don't print function name to the dump file, the pass manager
2492 would do this for us. Add code from the top of
2493 rest_of_compilation, up to the initial RTL dump.
2494 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
2495 close the DFI_sibling dump file.
2496 (rest_of_compilation): Don't do that here. Remove code up to the
2498 (init_optimization_passes): Remove.
2499 (pass_rest_of_compilation): Change pass name to NULL.
2500 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
2501 Do not call init_optimization_passes.
2502 * toplev.h (init_optimization_passes): Remove.
2504 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2505 finish_graph_dump_file): Remove SUFFIX parameter.
2506 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
2507 finish_graph_dump_file): Likewise.
2509 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
2510 * cfgexpand.c (pass_expand): Adjust.
2511 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
2512 * passes.c (pass_rest_of_compilation): Adjust.
2513 * predict.c (pass_profile): Adjust.
2514 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
2515 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
2516 pass_split_crit_edges, pass_warn_function_return): Adjust.
2517 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
2518 * tree-dfa.c (pass_referenced_vars): Adjust.
2519 * tree-eh.c (pass_lower_eh): Adjust.
2520 * tree-if-conv.c (pass_build_ssa): Adjust.
2521 * tree-into-ssa.c (pass_build_ssa): Adjust.
2522 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
2523 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
2524 * tree-nrv.c (pass_nrv): Adjust.
2525 * tree-optimize.c (pass_gimple, pass_all_optimizations,
2526 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
2527 pass_init_datastructures): Adjust.
2528 * tree-outof-ssa.c (pass_del_ssa): Adjust.
2529 * tree-profile.c (pass_tree_profile): Adjust.
2530 * tree-sra.c (pass_sra): Adjust.
2531 * tree-ssa-alias.c (pass_may_alias): Adjust.
2532 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
2533 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
2534 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
2535 * tree-ssa-dom.c (pass_dominator): Adjust.
2536 * tree-ssa-dse.c (pass_dse): Adjust.
2537 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
2538 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
2539 * tree-ssa-loop-ch.c (pass_ch): Adjust.
2540 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
2541 pass_loop_done, pass_complete_unroll, pass_iv_canon,
2542 pass_iv_optimize, pass_vectorize): Adjust.
2543 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
2544 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
2545 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
2546 pass_late_warn_uninnitialized): Adjust.
2547 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
2549 * Makefile.in (tree-dump.o): Add new dependencies.
2550 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
2551 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
2553 * toplev.c (dump_file_name): New.
2554 * tree-dump.c (dump_enable_all): Add LETTER parameter.
2555 (struct dump_file_info): Add NUM and LETTER fields.
2556 (dump_files): Adjust and add RTL dump files.
2557 (dump_register): Add NUM and LETTER fields.
2558 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
2559 (dump_begin): Use get_dump_file_name.
2560 (dump_switch_p_1): Adjust call to dump_enable_all.
2561 * tree-dump.h (dump_register): Adjust prototype.
2562 * tree-optimize.c (register_one_dump_file): Take dump file index.
2563 Support flags for RTL dumps.
2564 (register_dump_files): Fill in NUM field of struct dump_file_info.
2565 Track properties both when the gate is executed and when it is not.
2566 (execute_todo): Dump RTL. Add PROPERTIES parameter.
2567 (execute_one_pass): Pass properties to execute_todo. Handle VCG
2569 * tree-pass.h (dump_file_name): New.
2570 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
2573 * Makefile.in (passes.o): Add new dependencies.
2574 * passes.c (struct dump_file_info, enum dump_file_index,
2575 dump_file_tbl, init_optimization_passes): Remove.
2576 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
2577 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
2579 (finish_optimization_passes): Update finish_graph_dump_file loop.
2580 (enable_rtl_dump_file): Remove.
2581 * tree-dump.c (dump_files): Adjust and add RTL dump files.
2582 (enable_rtl_dump_file): Add here.
2583 * tree.h (enum tree_dump_index): Add RTL dump file indices.
2584 * doc/invoke.texi (Debugging options): Document new RTL debugging
2587 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
2589 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
2590 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
2591 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
2592 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
2593 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
2594 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
2595 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
2596 vec.h: Fix comment formatting.
2598 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
2600 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
2601 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
2602 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
2603 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
2604 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
2605 tree-ssa-loop-niter.c, tree-ssa-operands.c,
2606 tree-ssa-operands.h, tree-ssa-propagate.c,
2607 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
2608 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
2610 2004-09-05 Diego Novillo <dnovillo@redhat.com>
2612 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
2613 vectorizer is enabled.
2615 2004-09-05 Andreas Jaeger <aj@suse.de>
2617 * tree-if-conv.c: Spell check comments and clean up whitespace.
2619 2004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2621 * tree-ssa-loop-ivopts.c: New file.
2622 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
2623 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
2624 target_pres_cost, target_spill_cost): Declare.
2625 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
2626 spill_cost): Renamed to ...
2627 (target_avail_regs, target_res_regs, target_small_cost,
2628 target_pres_cost, target_spill_cost): ... and exported.
2629 (init_set_costs, global_cost_for_size): Work with renamed variables.
2630 * common.opt (flag_ivopts): New flag.
2631 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
2633 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
2634 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
2635 generating SSA form.
2636 (force_gimple_operand): New function.
2637 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
2638 * tree-cfg.c (stmt_bsi): New function.
2639 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2640 PARAM_IV_MAX_CONSIDERED_USES): New.
2641 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
2642 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
2643 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
2644 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
2645 * tree-nested.c (build_addr): Export.
2646 * tree-optimize.c (init_tree_optimization_passes): Add
2648 * tree-pass.h (pass_iv_optimize): Declare.
2649 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
2651 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
2652 as a phi node argument.
2653 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
2654 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
2656 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
2657 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
2658 pass_iv_optimize): New pass.
2659 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
2660 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
2661 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
2662 * tree.h (REF_ORIGINAL): New macro.
2663 (build_int_cst_type, unsigned_type_for, zero_p,
2664 cst_and_fits_in_hwi, build_addr): Declare.
2665 * doc/invoke.texi (-fivopts): Document.
2666 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2667 PARAM_IV_MAX_CONSIDERED_USES): Document.
2668 * doc/passes.texi: Document induction variable optimizations pass.
2670 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2672 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
2673 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
2674 * c-common.c (c_common_attribute_table): Accept parameters to
2676 (check_function_sentinel, handle_sentinel_attribute): Likewise.
2677 * doc/extend.texi: Update accordingly.
2679 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2681 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
2683 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
2685 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
2687 (c_common_attribute_table): Add `sentinel' attribute.
2688 (check_function_arguments): Handle `sentinel' attribute.
2689 * doc/extend.texi: Document `sentinel' attribute.
2691 2004-09-04 H.J. Lu <hongjiu.lu@intel.com>
2693 * configure: Regenerated.
2695 2004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2697 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
2699 * tree.c (save_expr): No longer TREE_READONLY.
2701 2004-09-04 Jan Hubicka <jh@suse.cz>
2703 * passes.c (rest_of_clean_state): Fix merge conflict made during
2704 commiting the patch.
2706 2004-09-04 Jan Hubicka <jh@suse.cz>
2708 * passes.c (rest_of_clean_state): Decompose the instruction stream.
2710 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
2712 * doc/md.texi (shift patterns): New anchor. Add reference to
2713 TARGET_SHIFT_TRUNCATION_MASK.
2714 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
2715 * target.h (shift_truncation_mask): New target hook.
2716 * targhook.h (default_shift_truncation_mask): Declare.
2717 * targhook.c (default_shift_truncation_mask): Define.
2718 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
2719 (TARGET_INITIALIZER): Include it.
2720 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
2721 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
2722 reject all out-of-range values. Fix sign-extension code for modes
2723 whose width is smaller than HOST_BITS_PER_WIDE_INT.
2724 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
2725 (expand_superword_shift, expand_subword_shift): Likewise.
2726 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
2727 (expand_binop): Use them to implement double-word shifts.
2728 * config/arm/arm.c (arm_shift_truncation_mask): New function.
2729 (TARGET_SHIFT_TRUNCATION_MASK): Define.
2731 2004-09-04 Jan Hubicka <jh@suse.cz>
2733 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
2734 (mix): New macro copied from hashtab.c
2735 (iterative_hash_hashval_t, iterative_hash_pointer,
2736 iterative_hash_host_wide_int): New functions based on hashtab.c
2739 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
2741 * config/mips/mips.md (mask): New mode attribute.
2742 (zero_extendsidi2): Add memory alternative.
2743 (*zero_extendsidi2_mem): Delete.
2744 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
2745 memory_operand in the TARGET_MIPS16 check.
2746 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
2747 Redefine using :GPR and :SHORT.
2748 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
2750 2004-09-04 Uros Bizjak <uros@kss-loka.si>
2752 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
2754 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
2755 expand_builtin_mathfn.
2756 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
2757 btrunc?f patterns for btrunc_optab. Implement rint_optab using
2759 * optabs.c (init_optabs): Initialize rint_optab.
2760 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
2762 (btrunc_optab): Rename macro from trunc_optab.
2763 (rint_optab): Define corresponding macro.
2765 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
2766 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
2768 * config/i386/i386-protos.h (emit_i387_cw_initialization):
2769 Change prototype. Add new int parameter.
2770 * config/i386/i386.c (emit_i387_cw_initialization):
2771 Handle new rounding modes.
2773 * config/i386/i386.h (enum fp_cw_mode): Delete.
2774 (MODE_NEEDED): Handle new rounding modes.
2775 (EMIT_MODE_SET): Change condition to handle new rounding modes.
2777 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
2778 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
2779 represent different rounding modes of frndint insn.
2780 (type): Add frndint type.
2781 (i387, length, memory): Handle this type.
2782 (i387_cw): New attribute definition.
2783 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
2784 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
2785 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
2786 Add "i387_cw" attribute defined to "trunc".
2787 (x86_fnstcw_1): Remove comment.
2788 (*frndintxf2): Rename insn definition to frndintxf2. Move
2789 insn definition near rint?f2 expanders.
2790 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
2791 rintf and rintl built-ins as inline x87 intrinsics.
2792 (frndintxf2_floor): New pattern to implement floor rounding
2793 mode with frndint x87 instruction.
2794 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
2795 floorf and floorl built-ins as inline x87 intrinsics.
2796 (frndintxf2_ceil): New pattern to implement ceil rounding
2797 mode with frndint x87 instruction.
2798 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
2799 ceilf and ceill built-ins as inline x87 intrinsics.
2800 (frndintxf2_trunc): New pattern to implement trunc rounding
2801 mode with frndint x87 instruction.
2802 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
2803 truncf and truncl built-ins as inline x87 intrinsics.
2804 (frndintxf2_mask_pm): New pattern to implement rounding
2805 mode with exceptions with frndint x87 instruction.
2806 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
2807 implement nearbyint, nearbyintf and nearbyintl built-ins as
2808 inline x87 intrinsics.
2810 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
2812 * config/mips/mips.md (SHORT): New mode macro.
2813 (size): New mode attribute.
2814 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
2815 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
2816 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
2818 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
2819 *extend[qh]isi2_hw patterns and extending them to di.
2820 (extendqihi2): Implement as define_insn_and_split that produces
2821 extendqisi2 after reload.
2823 2004-09-03 Devang Patel <dpatel@apple.com>
2825 * Makefile.in (OBJS-common): Add tree-if-conv.o
2826 (tree-if-conv.o): New rule.
2827 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
2828 (get_loop_body_in_bfs_order): New.
2829 * cfgloop.h (get_loop_body_in_bfs_order): New.
2830 * tree-flow.h (enum move_pos): Move here from ..
2831 * tree-ssa-loop-im.c (enum move_pos): here.
2832 (movement_possibility): Make externally visible.
2833 * tree-optimize.c (init_tree_optimization_passes): New entry for
2835 * tree-pass.h (pass_if_conversion): New.
2836 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
2837 * tree-if-conv.c: New file.
2838 * doc/passes.texi: Document tree if-conversion pass.
2839 * doc/tree-ssa.texi: Same.
2841 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
2844 Makefile.in (LIB2ADDEHSTATIC): New.
2845 (LIB2ADDEHSHARED): New.
2847 (LIBUNWINDDEP): New.
2848 (SHLIBUNWIND_LINK): New.
2849 (SHLIBUNWIND_INSTALL): New.
2850 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
2851 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
2852 (clean): Remove libunwind*
2853 (stage1-start): Remove and copy stage1/libunwind*.
2854 (stage2-start): Remove and copy stage2/libunwind*.
2855 (stage3-start): Remove and copy stage3/libunwind*.
2856 (stage4-start): Remove and copy stage4/libunwind*.
2857 (stageprofile-start): Remove and copy stageprofile/libunwind*.
2858 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
2860 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
2861 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
2862 tmake_file if --with-system-libunwind isn't used.
2864 * config/ia64/t-glibc-libunwind: New file.
2865 * config/t-libunwind-elf: Likewise.
2866 * unwind-compat.c: Likewise.
2867 * unwind-compat.h: Likewise.
2868 * unwind-dw2-fde-compat.c: Likewise.
2870 * config/ia64/t-glibc (LIB2ADDEH): Updated.
2871 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2873 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
2875 * unwind-dw2-fde-glibc.c: Likewise.
2876 * unwind-dw2.c: Likewise.
2878 * config/t-libunwind (LIB2ADDEH): Updated.
2879 (LIB2ADDEHSTATIC): New.
2880 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2881 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
2883 * configure.ac: Change --enable-libunwind-exceptions to
2884 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
2885 * configure: Regenerated.
2886 * config.in: Updated.
2888 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
2889 above and mention --with-system-libunwind.
2890 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
2891 removed in gcc 3.4.3 and later.
2893 * gcc.c (init_spec): Add -lunwind to -lgcc_s if
2894 USE_LIBUNWIND_EXCEPTIONS is defined.
2896 * mklibgcc.in: Support libunwind.
2898 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
2900 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
2903 2004-09-03 Richard Henderson <rth@redhat.com>
2906 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
2907 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
2908 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
2909 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
2910 frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
2911 resize_stack_vars_conflict, add_stack_var_conflict,
2912 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
2913 union_stack_vars, partition_stack_vars, dump_stack_var_partition,
2914 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
2915 expand_one_static_var, expand_one_hard_reg_var,
2916 expand_one_register_var, expand_one_error_var, defer_stack_allocation,
2917 expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
2918 (expand_used_vars): Rewrite.
2919 * Makefile.in (cfgexpand.o): Update dependencies.
2921 2004-09-04 Jan Hubicka <jh@suse.cz>
2923 * cfg.c (free_edge): Use ggc_free.
2924 (expunge_block): Use ggc_free.
2925 * passes.c (rest_of_clean_state): Free after compilation.
2926 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
2927 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
2929 2004-09-03 James E Wilson <wilson@specifixinc.com>
2931 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
2932 DECL_EXTERNAL check.
2934 2004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2936 * final.c (output_in_slot): New global variable.
2937 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
2938 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set
2939 'output_in_slot' before invoking output_asm_insn.
2940 (output_asm_insn): Add a space after the tab if 'output_in_slot'
2942 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
2944 (output_sibcall): Likewise.
2946 2004-09-03 Jan Hubicka <jh@suse.cz>
2948 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
2949 * tree-ssanames (init_ssanames): Likewise.
2951 2004-09-03 Ziemowit Laski <zlaski@apple.com>
2953 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
2954 objc_declare_protocols, objc_start_protocol,
2955 objc_start_class_interface, objc_start_category_interface,
2956 objc_continue_interface, objc_finish_interface,
2957 objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
2958 objc_start_class_implementation, objc_start_category_implementation,
2959 objc_continue_implementation, objc_finish_implementation,
2960 objc_add_method_declaration, objc_start_method_definition,
2961 objc_finish_method_definition, objc_build_keyword_decl,
2962 objc_build_method_signature, objc_build_encode_expr,
2963 objc_build_protocol_expr, objc_build_selector_expr,
2964 objc_build_message_expr, objc_build_string_object,
2965 objc_get_class_reference, objc_get_protocol_qualified_type,
2966 objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
2968 2004-09-03 James E Wilson <wilson@specifixinc.com>
2970 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
2972 * config/mips/generic.md (generic_frecip_fsqrt_step): New.
2973 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
2974 (mips_rsqrt2_<fmt>): Use frsqrt2 type.
2975 (mips_recip1_<fmt>): Use frdiv1 type.
2976 (mips_recip2_<fmt>): Use frdiv2 type.
2977 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
2978 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
2980 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
2982 2004-09-03 Daniel Jacobowitz <dan@debian.org>
2984 * reload.c (find_reloads): Swap operand_loc pointers for
2985 find_dummy_reload if we have swapped two operands.
2987 2004-09-03 Hans-Peter Nilsson <hp@axis.com>
2989 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
2990 to get the tablejump-insn before the jump-table label.
2992 2004-09-03 Ziemowit Laski <zlaski@apple.com>
2994 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
2995 objc_declare_protocols, objc_build_message_expr,
2996 objc_finish_message_expr, objc_build_selector_expr,
2997 objc_build_protocol_expr, objc_build_encode_expr,
2998 objc_build_string_object, objc_get_protocol_qualified_type,
2999 objc_get_class_reference, objc_get_class_ivars,
3000 objc_start_class_interface, objc_start_category_interface,
3001 objc_start_protocol, objc_continue_interface, objc_finish_interface,
3002 objc_start_class_implementation, objc_start_category_implementation,
3003 objc_continue_implementation, objc_finish_implementation,
3004 objc_set_visibility, objc_set_method_type, objc_build_method_signature,
3005 objc_add_method_declaration, objc_start_method_definition,
3006 objc_finish_method_definition, objc_add_instance_variable,
3007 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
3008 objc_finish_try_stmt, objc_begin_catch_clause,
3009 objc_finish_catch_clause, objc_build_finally_clause,
3010 objc_build_synchronized, objc_static_init_needed_p,
3011 objc_generate_static_init_call): New prototypes.
3013 2004-09-03 Steve Ellcey <sje@cup.hp.com>
3015 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
3017 (ia64_function_value): Ditto.
3019 2004-09-03 Jan Beulich <jbeulich@novell.com>
3021 * config.gcc: Resurrect NetWare as a target. Handle special case of
3022 Novell linker to be used (specified through --with-ld=) and threading
3023 model of either Posix (default) or NKS.
3024 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
3025 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
3026 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
3027 * config/i386/netware.c, config/i386/netware.h: New.
3028 * config/i386/nwld.c, config/i386/nwld.h: New.
3029 * config/i386/netware-crt0.c: New.
3030 * config/i386/netware-libgcc.c: New.
3031 * config/i386/netware-libgcc.def: New.
3032 * config/i386/netware-libgcc.exp: New.
3033 * config/i386/t-netware, config/i386/t-nwld: New.
3035 * doc/install.texi: Document NKS threading model.
3037 2004-09-03 Jan Beulich <jbeulich@novell.com>
3040 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
3041 * tree.h (initial_max_fld_align): Declare
3042 * stor-layout.c (initial_max_fld_align): Define and initialize.
3043 (maximum_field_alignment): Initialize to the same value.
3044 * common.opt: Add -fpack-struct= variant of switch.
3045 * opts.c: Handle -fpack-struct= variant of switch.
3046 * c-pragma.c: Change #pragma pack() handling so that it becomes
3047 compatible to other compilers: accept individual 'push' argument,
3048 make final pop restore (command line) default, correct interaction
3049 of push/pop and sole specification of a new alignment (so that the
3050 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
3051 to #pragma pack(push, <n>).
3052 * doc/extend.texi: New node "Structure-Packing Pragmas" under
3053 "Pragmas", describing #pragma pack.
3054 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
3055 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
3056 Document new TARGET_DEFAULT_PACK_STRUCT.
3058 2004-09-03 Devang Patel <dpatel@apple.com>
3060 * dwarf2out.c (gen_field_die). Equate decl number to die.
3062 2004-09-03 Vladimir Makarov <vmakarov@redhat.com>
3065 * global.c (modify_reg_pav): New function.
3066 (make_accurate_live_analysis): Call the new function. Move pavin
3067 modification by earlyclobber set into the new function.
3069 2004-09-03 Andreas Schwab <schwab@suse.de>
3071 * config/m68k/m68k.c (output_andsi3): Use -1 instead of
3072 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
3075 2004-09-02 Jan Beulich <jbeulich@novell.com>
3077 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
3078 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
3079 not unwind code specific ones.
3080 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
3081 Remove unwind code specific dependencies.
3082 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
3084 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
3085 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
3086 * tsystem.h: Declare memcpy and memset when inhibit_libc.
3088 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
3090 * combine.c (try_combine): Delay modifying of insns which cannot
3093 2004-09-02 Daniel Berlin <dberlin@dberlin.org>
3095 * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
3097 * gcc/tree-ssa-loop.c: Ditto
3098 * gcc/tree-ssa-loop-ivcanon.c: Ditto
3099 * gcc/doc/invoke.texi: Ditto.
3101 2004-09-02 Ziemowit Laski <zlaski@apple.com>
3103 * c-decl.c (store_parm_decls_newstyle): Make static.
3104 (store_parm_decls_from): New function.
3105 * c-tree.h (store_parm_decls_newstyle): Remove prototype.
3106 (store_parm_decls_from): New prototype.
3108 2004-09-02 David Edelsohn <edelsohn@gnu.org>
3110 * config/rs6000/rs6000.c (expand_block_move): Use SImode and
3111 HImode with STRICT_ALIGNMENT.
3113 2004-09-02 Mark Mitchell <mark@codesourcery.com>
3115 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
3116 (TARGET_OS_CPP_BUILTINS): Likewise.
3117 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
3118 TARGET_BPABI_CPP_BUILTINS.
3120 2004-09-02 Roman Zippel <zippel@linux-m68k.org>
3122 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
3124 2004-09-02 Eric Christopher <echristo@redhat.com>
3126 * builtins.c (expand_builtin_cabs): Delete.
3127 (expand_builtin): If unable to fold the values do a normal
3128 library call for builtin_cab*.
3129 (fold_builtin_cabs): Depend on optimize and optimize_size.
3130 * optabs.c (expand_cmplxdiv_straight): Delete.
3131 (expand_cmplxdiv_wide): Ditto.
3132 (expand_vector_binop): Ditto.
3133 (expand_vector_unop): Ditto.
3134 (expand_complex_abs): Delete.
3135 (expand_binop): Remove calls to above functions.
3136 Remove open coding of complex arithmetic.
3137 (expand_unop): Ditto.
3138 * optabs.h: Remove prototypes.
3140 2004-09-02 Ziemowit Laski <zlaski@apple.com>
3142 * c-decl.c (store_parm_decls_newstyle): Make externally visible.
3143 * c-tree.h (store_parm_decls_newstyle): New prototype.
3145 2004-09-02 Geoffrey Keating <geoffk@apple.com>
3147 * config/rs6000/rs6000.c (expand_block_clear): Use vector
3148 instructions if available.
3149 (expand_block_move): Likewise.
3151 2004-09-03 Jan Hubicka <jh@suse.cz>
3153 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
3155 2004-09-02 Mark Mitchell <mark@codesourcery.com>
3157 * config/arm/symbian.h (LIB_SPEC): Define to empty.
3158 * config/arm/t-symbian (SHLIB_LC): Likewise.
3160 2004-09-02 Paul Brook <paul@codesourcery.com>
3162 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
3164 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
3166 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
3167 (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
3168 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
3169 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks.
3170 (mips_issue_rate): Remove unreachable abort.
3171 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
3172 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
3173 (mips_block_move_straight, print_operand_address, mips_file_start)
3174 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
3175 (mips_output_conditional_branch, mips_expand_builtin_direct)
3176 (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
3177 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
3180 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
3182 * config/mips/mips.md (*lea_high64): Change split condition to
3183 flow2_completed. Add a peephole2 to generate a more parallel version.
3185 2004-09-02 Jan Hubicka <jh@suse.cz>
3187 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
3190 * ggc-page.c: include tree-flow.h.
3191 (extra_order_size_table): Add stmt_ann_d.
3192 (STAT_LABEL): Rename from ....
3193 (LABEL): ... this one.
3194 * Makefile.in (ggc-page.o): Add dependency.
3196 * ggc-common.c (ggc_force_collect): New global variable.
3197 (loc_description): Add fields "freed", "collected"
3198 (ptr_hash): New static hash
3199 (ptr_hash_entry): New structure.
3200 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
3201 (ggc_record_overhead): Take ptr argument, record it
3202 (ggc_prune_overhead_list, ggc_free_overhead): New functions.
3203 (cmp_statistics): Imrove sorting.
3204 (dump_ggc_loc_statistics): Output newly collected statistics
3205 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
3206 (ggc_free): Call ggc_free_overhead.
3207 (ggc_collect): Force collection when asked to be forced.
3208 (ggc_collect): Call ggc_prune_overhead_list.
3209 * ggc.h (ggc_force_collect): Declare
3210 (ggc_record_overhead): Update prototype.
3211 (ggc_free_overhead, ggc_prune_overhead_list): Declare.
3213 2004-09-02 James E Wilson <wilson@specifixinc.com>
3215 * common.opt (ftrapping-math): Default to on.
3217 2004-09-02 Richard Earnshaw <rearnsha@arm.com>
3219 * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
3221 2004-09-02 Denis Chertykov <denisc@overta.ru>
3224 * config/avr/avr.md ("movmemhi"): Substitute match_dup to
3226 (*movmemqi_insn): Likewise.
3227 (*movmemhi): Likewise.
3228 (clrmemhi): Likewise.
3229 (*clrmemqi): Likewise.
3230 (*clrmemhi): Likewise.
3232 2004-09-02 Paul Brook <paul@codesourcery.com>
3234 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
3235 default_use_cxa_atexit=yes.
3237 2004-09-02 Alan Modra <amodra@bigpond.net.au>
3239 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
3240 (struct kernel_old_ucontext): Delete.
3241 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
3242 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define
3245 2004-09-02 Richard Sandiford <rsandifo@redhat.com>
3247 * toplev.c (process_options): Fix typo.
3249 2004-09-01 Richard Henderson <rth@redhat.com>
3252 * calls.c (initialize_argument_information): Tighten pass-through
3253 conditions for pass-by-reference. Remove dead TARGET_EXPR code.
3254 Use build_fold_addr_expr.
3255 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code
3256 that assumes ADDR_EXPR allocates stack space.
3257 * fold-const.c (build_fold_addr_expr_with_type): Look through
3260 2004-09-01 Dan Nicolaescu <dann@ics.uci.edu>
3262 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
3263 * ggc.h (ggc_alloc_rtx): Delete.
3265 2004-09-01 Roger Sayle <roger@eyesopen.com>
3267 * expmed.c (enum alg_code): Remove long unused enumeration values.
3268 (struct mult_cost): New structure to hold the "score" of a synthetic
3269 multiply sequence, including both a rtx_cost and a latency field.
3270 (MULT_COST_LESS): New macro to compare mult_cost to a constant.
3271 (CHEAPER_MULT_COST): New macro to compare two mult_costs.
3272 (struct algorithm): Change type of cost field to be mult_cost.
3273 (synth_mult): Change type of cost_limit argument to be a
3274 pointer to a mult_cost. Update all cost comparisons to use the
3275 new mult_cost infrastructure. For alg_add_factor and
3276 alg_sub_factor operations, latency is lower than the rtx_cost.
3277 (choose_mult_variant): Update calls to synth_mult. Perform
3278 cost comparisons using the new mult_cost infrastructure.
3279 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
3280 to optain the total rtx_cost of a synth_mult "algorithm".
3282 2004-09-01 David Edelsohn <edelsohn@gnu.org>
3284 * config/rs6000/power4.md: Increase store latency to 12.
3285 * config/rs6000/power5.md: Same.
3287 2004-09-01 James E Wilson <wilson@specifixinc.com>
3290 * config/avr/avr.c (avr_unique_section): Delete prototype and
3292 (TARGET_ASM_UNIQUE_SECTION): Delete.
3294 2004-09-01 Ziemowit Laski <zlaski@apple.com>
3296 * c-parse.in (primary): Call objc_build_message_expr(),
3297 objc_build_selector_expr(), objc_build_protocol_expr(),
3298 objc_build_encode_expr() and objc_build_string_object() instead of
3299 build_message_expr(), build_selector_expr(), build_protocol_expr(),
3300 build_encode_expr() and build_objc_string_object(), respectively.
3301 (component_decl_list2): Call objc_get_class_ivars() instead of
3302 get_class_ivars_from_name().
3303 (keyworddecl): Call objc_build_keyword_decl() instead of
3304 build_keyword_decl().
3305 (receiver): Call objc_get_class_reference() instead of
3306 get_class_reference().
3307 (reswords): Add blank line before @@ifobjc section, for clarity.
3309 2002-09-01 Fariborz Jahanian <fjahanian@apple.com>
3311 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
3314 2004-09-01 Wu Yongwei <adah@sh163.net>
3315 Danny Smith <dannysmith@users.sourceforge.net>
3317 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
3318 not Windows 'DWORD'.
3319 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
3320 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
3321 (__gthr_win32_recursive_mutex_init_function): Add prototype for
3322 __GTHREAD_HIDE_WIN32API case..
3323 (__gthr_win32_recursive_mutex_lock): Likewise.
3324 (__gthr_win32_recursive_mutex_trylock): Likewise.
3325 (__gthr_win32_recursive_mutex_unlock): Likewise.
3326 (__gthread_recursive_mutex_init_function); Add definition for
3327 __GTHREAD_HIDE_WIN32API case.
3328 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
3329 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
3330 call to InterlockedDecrement.
3332 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3334 * tree-tailcall.c (find_tail_calls): Also fail is statement has
3337 * tree-ssa.c (propagate_into_addr): Properly test for LHR.
3339 * doc/c-tree.texi: Document new operands for ARRAY_REF and
3342 2004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3344 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
3345 * common.opt (fspeculative-prefetching): New.
3346 * flags.h (flag_speculative_prefetching_set): Declare.
3347 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
3349 * opts.c (flag_sepculative_prefetching_set): New variable.
3350 (common_handle_option): Handle -fspeculative-prefetching.
3351 * passes.c (rest_of_compilation): Ditto.
3352 * profile.c (instrument_values, compute_value_histograms, branch_prob):
3353 Use vectors instead of arrays.
3354 * toplev.c (process_options): Handle -fspeculative-prefetching.
3355 * rtl-profile.c: Include ggc.h.
3356 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
3357 rtl_gen_one_value_profiler_no_edge_manipulation,
3358 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
3360 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3361 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of