1 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
3 * tree-alias-common.h (struct tree_alias_ops): Change ip and
4 ip_partial to unsigned int.
6 2004-06-21 Richard Henderson <rth@redhat.com>
8 * c-common.c (verify_sequence_points): Export.
9 (c_expand_expr_stmt): Move to c-typeck.c.
10 * c-common.h (c_expand_expr_stmt): Remove.
11 (verify_sequence_points): Declare.
12 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
13 * c-parse.in (for_init_stmt, stmt): Likewise.
14 * c-tree.h (c_finish_expr_stmt): Declare.
15 (c_tree_expr_nonnegative_p): Remove.
16 * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
17 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
18 (emit_side_effect_warnings): New.
19 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
20 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
21 Use emit_side_effect_warnings.
22 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
23 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
24 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
25 with void initializer.
26 (gimplify_target_expr): Handle void BIND_EXPR initializer.
27 * tree-inline.c (estimate_num_insns_1): Fix type lookup for
28 INIT_EXPR and MODIFY_EXPR.
29 * objc/objc-act.c (build_module_descriptor): Use add_stmt
30 instead of c_expand_expr_stmt.
32 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
34 * fold-const.c (fold_cond_expr_with_comparison):
35 New function, extracted from fold.
36 (fold): Extract code to fold A op B ? A : C, use
37 it to fold A op B ? C : A. Really optimize
38 A & N ? N : 0 where N is a power of two. Avoid
39 relying on canonicalization and recursion for
40 foldings of COND_EXPR to happen.
42 2004-06-20 David Ayers <d.ayers@inode.at>
44 * objc/objc-act.h (get_object_reference): Rename to
45 get_protocol_reference.
46 (super_type): Rename to objc_super_type.
47 (selector_type): Rename to objc_selector_type.
48 (id_type): Rename to objc_id_type.
49 (instance_type): Rename to objc_instance_type.
50 (protocol_type): Rename to objc_protocol_type.
51 (IS_ID): Update reference to id_type.
52 * objc/objc-act.c (get_object_reference): Rename to
53 get_protocol_reference; add documentation; update references to
55 (lookup_method_in_protocol_list): Rename class_meth to
56 is_class; add documentation.
57 (finish_message_expr): Rename is_class to class_tree.
58 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
59 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
60 build_next_objc_exception_stuff, get_arg_type_list,
61 build_objc_method_call): Update references to id_type.
62 (synth_module_prologue, build_objc_symtab_template,
63 build_selector_reference_decl, build_selector,
64 build_selector_translation_table, build_typed_selector_reference,
65 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
66 synth_self_and_ucmd_args): Update references to selector_type.
67 (build_private_template, build_ivar_reference): Update references
69 (synth_module_prologue, build_protocol_reference,
70 build_protocol_expr, start_protocol): Update references to
72 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
73 Update references to super_type.
74 * c-parse.in: (typespec_nonreserved_nonattr): Update
75 references to get_object_reference.
76 * objc/objc-tree.def: Add C mode identifier sequence.
78 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
80 * loop-invariant.c: New file.
81 * Makefile.in (loop-invariant.o): New.
82 * cfgloop.h (global_cost_for_size, init_set_costs,
83 move_loop_invariants): Declare.
84 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
86 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
88 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
89 * loop-init.c (loop_optimizer_init): Call init_set_costs.
90 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
91 (rest_of_compilation): Check flag_loop_optimize2.
92 * toplev.c (process_options): Handle flag_loop_optimize2.
93 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
94 * doc/passes.texi (loop-invariant.c): Document.
96 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
98 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
100 2004-06-20 Richard Henderson <rth@redhat.com>
102 * stmt.c (warn_if_unused_value): Add locus argument.
103 * tree.h (warn_if_unused_value): Update decl.
104 * c-typeck.c (internal_build_compound_expr): Update call.
105 * c-gimplify.c (gimplify_expr_stmt): Likewise.
107 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
110 * builtins.c (entry_of_function): Move to ...
111 * cfgrtl.c (entry_of_function): Here and make non-static.
112 * integrate.c (emit_initial_value_sets): Use entry_of_function.
113 * rtl.h (entry_of_function): Prototype.
115 2004-06-20 Roger Sayle <roger@eyesopen.com>
117 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
118 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
119 TARGET_DECOMPOSE_LEA.
121 2004-06-20 Richard Henderson <rth@redhat.com>
123 * c-common.h (add_decl_stmt): Move to cp-tree.h.
124 * c-decl.c (finish_decl): Don't use add_decl_stmt.
125 * c-parse.in: Likewise.
126 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
127 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
128 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
130 2004-06-20 Richard Henderson <rth@redhat.com>
132 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
133 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
134 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
135 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
136 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
137 * c-pretty-print.c (pp_c_statement): Similarly.
138 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
139 gimplify_if_stmt): Move to cp-gimplify.c.
140 (c_genericize, c_gimplify_expr): Don't call them.
141 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
142 * c-typeck.c (push_cleanup): New.
143 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
144 c_finish_if_stmt): Use COND_EXPR.
145 * tree.h (CLEANUP_EH_ONLY): Update documentation.
147 2004-06-20 Zack Weinberg <zack@codesourcery.com>
149 * c-common.h (has_c_linkage): New interface.
150 * c-cppbuiltin.c: Include target.h.
151 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
152 __PRAGMA_EXTERN_PREFIX when appropriate.
153 * c-pragma.c: Include target.h.
154 Document clarified semantics of symbol-renaming #pragmas.
155 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
156 (maybe_apply_renaming_pragma): Rewrite according to clarified
157 semantics. Always recognize, but do not necessarily execute.
158 (init_pragma): Unconditionally register symbol-renaming pragmas.
159 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
160 and HANDLE_PRAGMA_EXTERN_PREFIX.
161 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
162 and handle_pragma_extern_prefix flags.
163 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
164 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
165 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
166 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
167 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
168 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
169 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
170 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
171 not HANDLE_PRAGMA_EXTERN_PREFIX.
172 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
173 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
174 into one section "Symbol-Renaming Pragmas"; clarify; document
177 * builtins.c (expand_builtin): Do not issue error for a builtin
178 with no special case code and no DECL_ASSEMBLER_NAME; just do the
180 * c-decl.c (builtin_function): Don't call make_decl_rtl.
181 * c-objc-common.c (has_c_linkage): Stub implementation.
182 * cgraphunit.c (cgraph_expand_function)
183 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
185 2004-06-19 Roger Sayle <roger@eyesopen.com>
187 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
188 instead of both an ARGLIST and a result TYPE. Handle these C99
189 comparison functions as "polymorphic" builtins. Also handle
190 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
191 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
192 Move handling of BUILT_IN_ISUNORDERED from here to there.
194 2004-06-19 Richard Henderson <rth@redhat.com>
196 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
197 * c-gimplify.c: Remove unnecessary prototypes.
198 (c_gimplify_stmt): Merge into ...
199 (c_gimplify_expr): ... here. Don't play with prep_stmt.
200 * c-semantics.c (prep_stmt): Remove.
201 * gimplify.c (annotate_one_with_locus): Break out from ...
202 (annotate_all_with_locus): ... here.
203 (gimplify_expr): Add locus to expressions even if pre/post queues
206 2004-06-19 Richard Henderson <rth@redhat.com>
209 * function.c (assign_parms): If not padding upward or intentionally
210 forcing upward padding, take offset_rtx into account when determining
211 the alignment for stack_parm.
213 2004-06-19 Richard Henderson <rth@redhat.com>
216 * ifcvt.c (noce_try_move): Recognize all generated instructions.
218 2004-06-19 Jan Hubicka <jh@suse.cz>
220 * function.c (free_after_compilation): Do not free computed_goto_common*.
221 * function.h (struct function): Kill computed_goto_common*.
222 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
223 * tree-cfg.c (disband_implicit_edges): Do not forward across the
224 commonized computed goto.
226 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
228 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
231 2004-06-19 Andrew Pinski <apinski@apple.com>
234 * toplev.c (wrapup_global_declarations): Do not check
235 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
236 cgraph_varpool_node's needed field.
238 2004-06-19 Jan Hubicka <jh@suse.cz>
239 Steven Bosscher <stevenb@suse.de>
241 CFG transparent RTL expansion:
242 * Makefile.in (cfgexpand.o): New object file.
243 (builtins.o): Add dependency on basic-block.h
244 * builtins.c: Include basic-block.h
245 (entry_of_function): New function.
246 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
247 * cfgexpand.c: New file.
248 * expr.c (execute_expand, pass_expand): Kill.
249 * pass.c (rest_of_compilation): Do not build CFG unless called from
251 * tree-cfg.c (delete_tree_cfg): Rename to..
252 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
253 * tree-flow.h (delete_tree_cfg_annotations): Declare.
254 (dleete_tree_cfg): Kill.
255 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
256 (execute_del_cfg): Rename to...
257 (execute_free_datastructures): This one...
258 (pass_del_cfg): Rename to...
259 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
260 (init_tree_optimization_passes): Make cfg build and profiling to happen
263 2004-06-19 Steven Bosscher <stevenb@suse.de>
265 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
266 inserting the cache variables.
268 * tree-mudflap.c: Include headers to make basic_block available.
269 Move functions around such that related functions are near each
270 other. Add prototypes for all static functions. Add comments
271 briefly explaining what IR the mudflap1 and mudflap2 work on and
273 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
274 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
275 (pass_mudflap_1, pass_mudflap_2): Update.
276 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
278 (mf_build_check_statement_for): Make it work on the CFG.
279 (mf_xform_derefs_1): Likewise. Cleanup code style.
280 (mf_xform_derefs): Likewise.
282 2004-06-19 Jan Hubicka <jh@suse.cz>
284 * tree-cfg.c (label_to_block): Invent the label destination for
286 (cleanup_dead_labels): Update table in the case label_to_block added
289 2004-06-18 Richard Henderson <rth@redhat.com>
292 * gimple-low.c (lower_function_body): Generate return statement for
293 fall off the end of the function here ...
294 * tree-cfg.c (make_edges): ... instead of here.
295 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
297 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
299 * tree-ssa.c (raise_value): Removed.
300 (get_eq_name, check_phi_redundancy): New functions.
301 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
303 2004-06-18 Roger Sayle <roger@eyesopen.com>
305 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
306 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
307 constant folding for unordered comparison tree nodes. If both
308 operands are real constants, call fold_relational_const. If either
309 operand is a NaN, evaluate the other for side-effects and return a
310 constant. Optimize (double)float1 CMP (double)float2 into the
311 equivalent float1 CMP float2.
312 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
313 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
314 LTGT_EXPR>: Call fold_relational_const for constant operands.
315 (fold_relational_const): Add support for unordered comparison tree
316 nodes. Don't constant fold "ordered" floating point comparisons
317 against NaN if when flag_trapping_math is set.
319 2004-06-19 Jakub Jelinek <jakub@redhat.com>
321 * fold-const.c (build_range_check): If !in_p and recursive call
322 fails, exit immediately. If high - low overflows and etype is
323 a signed type, retry with unsigned etype.
324 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
325 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
327 2004-06-18 Richard Henderson <rth@redhat.com>
329 * c-gimplify.c (gimplify_condition): Remove.
330 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
333 2004-06-18 Richard Henderson <rth@redhat.com>
335 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
338 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
340 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
341 (NORMAL_TEXT_SECTION_NAME): Define.
342 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
343 (SECTION_FORMAT_STRING): Define.
345 2004-06-18 Steven Bosscher <stevenb@suse.de>
347 * config/xtensa/xtensa.c
348 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
349 * xtensa.md: Replace the old pipeline description with a DFA model.
351 2004-06-18 Steven Bosscher <stevenb@suse.de>
352 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
354 * config/s390/s390.md: Remove the generic pipeline description.
355 * config/s390/2064.md: Make all insn reservations apply to
357 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
358 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
359 Define to hook_int_void_1.
360 (s390_adjust_cost): Cleanup. Don't check address dependency here.
361 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
363 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
364 Diego Novillo <dnovillo@redhat.com>
366 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
367 (create_stmt_ann): Ditto.
368 (create_tree_ann): New function.
369 (create_cst_ann): Remove.
370 (create_expr_ann): Ditto.
372 * tree-flow-inline.h (cst_ann): Remove.
373 (get_cst_ann): Ditto.
374 (get_expr_ann): Ditto.
376 (get_tree_ann): New function.
378 (ann_type): tree_ann -> tree_ann_t.
379 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
380 (struct cst_ann_d): Removed.
381 (struct expr_ann_d): Ditto.
382 (union tree_ann_d): Removed cst and expr.
383 (tree_ann): Renamed to tree_ann_t.
384 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
385 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
387 (set_value_handle): Ditto.
388 (phi_translate): Ditto.
389 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
391 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
393 * config/sh/t-linux64: New file.
394 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
396 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
398 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
399 (unshare_all_rtl_again): Call unshare_all_rtl_1.
400 (unshare_all_rtl): New.
401 * function.c (instantiate_virtual_regs): Remove parameters.
402 * function.h (instantiate_virtual_regs): Add prototype.
403 * rtl.h (unshare_all_rtl): Add prototype.
404 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
406 * passes.c: Remove assertions on the parameters to
407 rest_of_handle_* functions. Remove the parameters to
408 the functions, replacing decl with current_function_decl
409 and insns with get_insns ().
411 2004-06-17 Roger Sayle <roger@eyesopen.com>
413 * fold-const.c (constant_boolean_node): Handle boolean_type_node
414 directly, return either boolean_true_node or boolean_false_node.
416 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
418 * opts.sh: Delete. Break out generated code to next four files.
419 * opt-gather.awk: New file.
420 * optc-gen.awk: New file.
421 * opth-gen.awk: New file.
422 * opt-functions.awk: New common file.
423 * Makefile.in: Update for above.
424 * configure.ac: Update comment.
425 * configure: Regenerate.
427 2004-06-17 Richard Henderson <rth@redhat.com>
429 * c-common.c (flag_objc_sjlj_exceptions): New.
430 * c-common.h (flag_objc_sjlj_exceptions): Declare.
431 * c-opts.c (c_common_handle_option): Set it.
432 (c_common_post_options): Handle interation of different
433 objective-c exception and runtime switches.
434 * c-decl.c (c_eh_initialized_p): New.
435 (finish_decl): Use it instead of local eh_initialized_p.
436 * c-parse.in (nested_function, notype_nested_function): Record
437 the result of compstmt.
438 (compstmt_or_error): Likewise.
439 (compstmt): Don't add_stmt the result.
440 (stmt): Don't return anything. Rewrite objc try and sync rules.
441 (objc_try_stmt, objc_catch_list): Remove.
442 (objc_catch_block, objc_finally_block): Remove.
443 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
444 (objc_try_catch_clause, objc_finally_clause): New.
445 (objc_try_catch_stmt): Rewrite.
446 * c-tree.h (c_eh_initialized_p): Declare.
447 * c-opt (fobjc-sjlj-exceptions): New.
448 * except.c (output_function_exception_table): Don't call cgraph
450 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
451 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
452 catch_count_stack, exc_binding_stack, if_nesting_count,
453 blk_nesting_count, objc_enter_block, objc_exit_block,
454 objc_declare_variable, val_stack_push, val_stack_pop,
455 objc_build_try_enter_fragment, objc_build_extract_expr,
456 objc_build_try_exit_fragment, objc_build_extract_fragment,
457 objc_build_try_prologue, objc_build_try_epilogue,
458 objc_build_catch_stmt, objc_build_catch_epilogue,
459 objc_build_finally_prologue, objc_build_finally_epilogue,
460 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
461 objc_build_synchronized_epilogue): Remove.
462 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
463 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
464 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
465 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
466 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
467 objc_begin_catch_clause, objc_finish_catch_clause,
468 objc_build_finally_clause, objc_finish_try_stmt,
469 objc_build_synchronized): New.
470 (objc_is_object_id, objc_is_class_id): New.
471 (objc_comptypes): Use them.
472 (build_next_objc_exception_stuff): Break NeXT sjlj out from
473 build_objc_exception_stuff.
474 (synth_module_prologue): Update to match.
475 (objc_build_throw_stmt): Use cur_try_context to decide if
477 * objc/objc-act.h: Update prototypes.
478 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
480 2004-06-17 Andrew Pinski <apinski@apple.com>
482 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
483 Use TYPE_FIELDS instead of TYPE_VALUES.
485 2004-06-17 Jason Merrill <jason@redhat.com>
488 * gimplify.c (gimplify_target_expr): Handle void initializer.
489 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
490 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
493 2004-06-17 Roger Sayle <roger@eyesopen.com>
495 * fold-const.c (fold_relational_const): Use constant_boolean_node.
497 2004-06-17 Jan Hubicka <jh@suse.cz>
500 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
501 operand numbering in the output template.
502 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
504 2004-06-17 Jan Hubicka <jh@suse.cz>
506 * except.c (can_throw_internal): Recognize RESX expresisons.
508 2004-06-17 Jan Hubicka <jh@suse.cz>
510 * cfgbuild.c (make_edges): Do not use label_value_list.
511 (find_basic_blocks_1): Do not collect label_value_list.
512 (find_sub_basic_blocks): Update call of make_edges.
514 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
516 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
517 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
518 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
519 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
520 (get_v_may_def_result_ptr): Return a def_operand_p.
521 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
522 (get_v_must_def_op_ptr): Return a def_operand_p.
523 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
524 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
525 (phi_element_for_edge): Remove.
526 * tree-flow.h (propagate_value, replace_exp): Change prototype.
527 (propagate_tree_value): Add new prototype.
528 (phi_element_for_edge): Remove prototype.
529 * tree-into-ssa.c (mark_def_sites): Use new operand types.
530 (prepare_operand_for_rename): Split into two functions.
531 (prepare_use_operand_for_rename): Prepare use operands.
532 (prepare_def_operand_for_rename): Prepare def operands.
533 (rewrite_stmt): Use new operand types.
534 (rewrite_operand): Use new operand types, change parameter type.
535 * tree-outof-ssa.c (replace_variable): Split into two functions.
536 (replace_use_variable): Rewrite uses.
537 (replace_def_variable): Rewrite defs.
538 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
539 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
540 (add_phi_arg, remove_phi_arg_num): Use new operand types.
541 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
542 (ccp_fold, replace_uses_in): Use new operand types.
543 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
544 and no longer set the value, change parameter type.
545 (replace_exp_1): Use new operand types.
546 (propagate_value): Change parameter type, use new operand types.
547 (propagate_tree_value): Propagate_value without SSA operands.
548 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
549 (cprop_into_successor_phis): Use new operand types.
550 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
551 (eliminate_redundant_computations): Use new operand types.
552 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
553 (fix_stmt_v_may_defs): Use new operand_types.
554 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
555 (build_tree_conflict_graph): Use new operand_types.
556 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
557 * tree-ssa-operands.c (struct freelist_d): Remove.
558 (check_optype_freelist, add_optype_freelist): Remove.
559 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
560 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
561 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
562 Call ggc_free instead of add_optype_freelist.
563 (init_ssa_operands, fini_ssa_operands): Remove free list code.
564 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
565 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
566 (struct use_optype_d): Change underlying type.
567 (def_operand_p, use_operand_p): New types for pointers to operands.
568 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
569 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
570 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
572 (SET_USE, SET_DEF): New macros to set operands from their pointer.
573 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
574 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
575 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
576 PHI result as an operand.
577 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
578 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
579 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
580 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
581 PHI_ARG_DEF_FROM_EDGE.
582 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
583 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
585 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
587 PR tree-optimization/15991
588 * tree-cfg.c (tree_block_label): Export.
589 * tree-flow-inline.h (bsi_after_labels): New function.
590 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
591 * tree-ssa.c (propagate_into_addr): New function.
592 (replace_immediate_uses): Handle propagation of pointer constants.
593 (raise_value): Do not restrict propagation of pointer constants.
594 * tree-ssanames.c (duplicate_ssa_name): New function.
595 * tree.h (duplicate_ssa_name): Declare.
597 2004-06-17 David Ayers <d.ayers@inode.at>
599 * c-parse.in: Unify Objective-C token names.
601 2004-06-17 Zack Weinberg <zack@codesourcery.com>
604 * Makefile.in (min-insn-modes.o): Correct dependencies.
605 * real.c (encode_ieee_extended, decode_ieee_extended): Always
606 produce/consume 12-byte little-endian Intel format.
607 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
608 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
609 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
610 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
611 New functions which convert between 12-byte little-endian Intel
612 format and the desired format.
613 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
614 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
617 2004-06-17 Zack Weinberg <zack@codesourcery.com>
619 * expmed.c (expand_mult_const): In sanity check, compare only
620 the bits of val and val_so_far that are significant in the
623 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
625 * tree-ssa-pre.c: Update comments.
626 (val_expr_pair_eq): Factor code from here.
627 (expr_pred_trans_eq): and here.
628 (expressions_equal_p): To here.
629 (print_value_set): Print value for expression.
630 (phi_trans_lookup): Rename some variables.
632 (value_exists_in_set_bitmap): Ditto.
633 (value_remove_from_set_bitmap): Ditto.
634 (value_insert_into_set_bitmap): Ditto.
636 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
638 * config/s390/s390-modes.def (CCL3mode): New machine mode.
639 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
640 (s390_alc_comparison, s390_slb_comparison): Likewise.
641 (s390_branch_condition_mask): Likewise.
642 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
643 ("*subsi3_cc2", "*subsi3_cconly2"): New.
645 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
646 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
647 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
648 Handle SIGN_EXTEND and ZERO_EXTEND.
650 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
651 * config/s390/s390.c (s390_expand_addcc): New function.
652 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
653 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
654 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
656 2004-06-17 Ben Elliston <bje@au.ibm.com>
658 * tree-alias-common.c: Add whitespace.
659 * tree-inline.c: Correct comment about this file's purpose.
660 * tree-optimize.c: Likewise.
661 * tree-tailcall.c: Likewise.
663 * tree-alias-ander.h: Add standard top-of-file comment.
664 * tree-alias-common.h: Likewise.
665 * tree-alias-type.h: Likewise.
667 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
669 * tree-ssa-pre.c (compute_avail): Value number uses as well.
670 Strip useless type conversions.
671 Casts have to be treated slightly different than normal unaries.
673 2004-06-16 Richard Henderson <rth@redhat.com>
675 * c-common.def (COMPOUND_STMT): Remove.
676 * c-common.c (finish_fname_decls): Don't look through it.
677 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
678 * c-common.h (COMPOUND_BODY): Remove.
679 (c_common_stmt_codes): Remove COMPOUND_STMT.
680 * c-dump.c (c_dump_tree): Likewise.
681 * c-gimplify.c (c_gimplify_stmt): Likewise.
682 * c-pretty-print.c (pp_c_statement): Likewise.
683 * tree.h (DECL_SAVED_TREE): Update commentary.
684 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
685 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
686 (GOTO_EXPR): Rename from GOTO_STMT.
687 (GOTO_FAKE_P): Remove.
688 (COMPOUND_STMT): Remove.
689 (HANDLER): Update wrt COMPOUND_STMT.
690 (STMT_EXPR): Likewise.
691 (LABEL_EXPR): Rename from LABEL_STMT.
692 (SCOPE_STMT): Remove.
693 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
694 through COMPOUND_STMT.
696 2004-06-16 Richard Henderson <rth@redhat.com>
698 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
699 c_finish_while_stmt_cond): Remove decls.
700 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
701 * c-typeck.c (c_begin_if_stmt): Return void.
702 (c_begin_else): Tidy. Save stmt_count.
703 * c-tree.h (c_begin_if_stmt): Update decl.
705 * objc/objc-act.c (objc_build_try_enter_fragment,
706 objc_build_extract_fragment, objc_build_try_epilogue,
707 objc_build_catch_stmt, objc_build_catch_epilogue,
708 objc_build_finally_prologue, objc_build_finally_epilogue): Update
709 for if builder function changes.
711 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
713 * config/s390/s390.c (struct machine_function): New member
715 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
716 Do not modify machine->save_return_addr_p or regs_ever_live.
717 Fill in machine->last_restore_gpr.
718 (s390_optimize_prolog): Use s390_frame_info to compute registers
719 to save/restore, remove duplicated code.
720 (s390_arg_frame_offset): Use s390_frame_info to compute frame
721 size, remove duplicated code.
722 (s390_emit_prologue): Adapt s390_frame_info call. Update
723 machine->save_return_addr_p and regs_ever_live.
724 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
725 machine->last_save_gpr.
727 2004-06-16 Richard Henderson <rth@redhat.com>
729 * c-parse.in (if_stmt_locus): Remove.
730 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
731 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
732 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
733 empty_locus. Add stmt_count, saw_else.
734 (c_begin_if_stmt): Push if_stack here.
735 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
736 (c_finish_then, c_finish_else): Record empty_locus.
737 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
738 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
740 * c-tree.h: Update prototypes.
742 2004-06-16 Steven Bosscher <stevenb@suse.de>
744 * tree.h (PHI_CHAIN): New.
745 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
746 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
747 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
748 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
749 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
750 when traversing a list of PHI_NODEs.
752 2004-06-16 Bernardo Innocenti <bernie@develer.com>
755 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
757 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
758 68040 and soft-float.
759 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
760 in the TARGET_68040_ONLY case.
762 2004-06-16 Peter Barada <peter@the-baradas.com>
764 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
765 (movsi_cf): Make named, don't match TARGET_CFV4.
766 (pushexthisi_const): Use mov3q if possible.
767 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
768 to special case mvz.w for ColdFire V4.
769 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
770 to special case mvz.b for ColdFire V4.
771 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
773 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
774 * config/m68k/m68k.c(valid_mov3q_const): New function.
775 (const_method): SWAP is valid for ColdFire.
776 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
777 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
779 2004-06-16 Richard Henderson <rth@redhat.com>
781 * c-common.def (CASE_LABEL): Remove.
782 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
783 (match_case_to_enum_1): Likewise.
784 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
785 * c-dump.c (c_dump_tree): Likewise.
786 * c-gimplify.c (c_gimplify_stmt): Likewise.
787 * c-pretty-print.c (pp_c_statement): Likewise.
788 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
789 * tree.h (CASE_LOW): Update commentary.
791 2004-06-16 Richard Henderson <rth@redhat.com>
793 * c-common.def (ASM_STMT): Remove.
794 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
795 * c-dump.c (c_dump_tree): Likewise.
796 * c-gimplify.c (c_gimplify_stmt): Likewise.
797 * c-pretty-print.c (pp_c_statement): Likewise.
798 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
799 * tree.h: Fix commentary.
801 2004-06-16 Richard Henderson <rth@redhat.com>
803 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
804 * c-common.c (c_add_case_label): Use LABEL_EXPR.
805 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
806 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
807 * c-dump.c (c_dump_tree): Likewise.
808 * c-gimplify.c (c_gimplify_stmt): Likewise.
809 * c-pretty-print.c (pp_c_statement): Likewise.
810 * c-parse.in (stmt): Use GOTO_EXPR.
811 (label): Use LABEL_EXPR.
812 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
813 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
815 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
817 * cfgcleanup.c (try_simplify_condjump): Update test to make
818 sure we have a conditional branch around am unconditional branch.
820 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
822 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
824 2004-06-16 Dale Johannesen <dalej@apple.com>
826 * loop.c (loop_givs_reduce): Avoid miscompilation of
827 loops entered at bottom.
829 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
831 * cfglayout.c (fixup_reorder_chain): Handle case where the
832 destination of E_FALL is EXIT_BLOCK_PTR.
834 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
837 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
838 after shifts before asm.
840 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
842 PR tree-optimization/15993
843 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
844 destination is unchanged.
846 2004-06-16 Andreas Jaeger <aj@suse.de>
848 * doc/install.texi (Configuration): Update description for
849 --enable-version-specific-runtime-libs.
851 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
853 * doc/install.texi: boehm-gc now uses automake 1.8.5.
855 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
857 * toplev.h (rest_of_compilation): Adjust prototype.
859 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
861 * coverage.c: Remove argument to rest_of_compilation.
862 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
863 * passes.c (rest_of_compilation): Remove argument.
864 (pass_rest_of_compilation): New.
865 (rest_of_handle_final, rest_of_handle_delay_slots,
866 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
867 rest_of_handle_machine_reorg, rest_of_handle_regrename
868 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
869 rest_of_handle_regmove, rest_of_handle_tracer
870 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
871 rest_of_handle_web, rest_of_handle_branch_prob
872 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
873 rest_of_handle_addressof, rest_of_handle_jump_bypass
874 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
875 Check that the two arguments are actually superfluous.
876 * tree-optimize.c (register_dump_files): Add properties argument.
877 Track validity of passes. Only initialize dump files for
878 tree-based passes. Store the full set of provided passes in
880 (init_tree_optimization_passes): Register pass_expand and
881 pass_rest_of_compilation.
882 (execute_one_pass): Do not track the presence of required properties
883 here. Set in_gimple_form. Do not update current_properties.
884 (current_properties): Remove.
885 (set_save_expr_context): Remove.
886 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
887 expand to RTL here, and do not call rest_of_compilation. Push
888 GGC context even before gimplification.
889 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
890 (pass_expand, pass_rest_of_compilation): Declare.
892 2004-06-15 Jeff Law <law@redhat.com>
894 * fold-const.c (swap_tree_comparison): No longer static.
895 (tree_swap_operands_p): Similarly. Return true if both operands
896 are SSA_NAMEs and the first operand has a higher version number than
898 * tree.h (swap_tree_comparison): Prototype.
899 (tree_swap_operands_p): Prototype.
900 * tree-ssa-operands.c (get_expr_operands): For commutative
901 operators and relational comparisons, canonicalize the
902 order of the operands.
904 2004-06-15 Richard Henderson <rth@redhat.com>
906 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
907 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
908 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
909 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
910 (finish_fname_decls, fname_decl): Use statement_lists.
911 (c_expand_expr_stmt): Don't set last_expr_type.
912 (c_type_hash): Fix indentation.
913 (c_safe_from_p): Don't follow TREE_CHAIN.
914 (c_tree_chain_matters_p): Remove.
915 * c-common.def (SCOPE_STMT): Remove.
916 (CLEANUP_STMT): Redefine to contain its own body.
917 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
918 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
920 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
921 (cur_stmt_list): New.
922 (STATEMENT_LIST_STMT_EXPR): New.
923 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
924 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
926 (CLEANUP_DECL): Move to operand 2.
927 (c_common_stmt_codes): Remove SCOPE_STMT.
928 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
929 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
930 (c_push_function_context, c_pop_function_context): Don't save it.
931 (finish_decl): Set TREE_USED on the decl for a cleanup.
933 (store_parm_decls): Use statement lists.
934 (finish_function): Remove compstmt rule workaround. Use statement
935 lists. Call finish_fname_decls after finalizing the body.
936 (c_begin_compound_stmt): Move to c-typeck.c.
937 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
938 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
939 (c_genericize): Invoke them.
940 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
941 (c_build_bind_expr): Export.
942 (gimplify_block, gimplify_cleanup): Remove.
943 (gimplify_condition): Use gimplify_stmt.
944 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
945 (gimplify_if_stmt): Remove recursion hack.
946 (c_gimplify_expr): Remove STMT_EXPR handling.
947 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
948 (is_last_stmt_of_scope): Remove.
949 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
950 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
952 * c-objc-common.c (build_cdtor): Likewise.
953 * c-parse.in (primary): Use c_finish_stmt_expr.
954 (push_scope, pop_scope): Remove.
955 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
956 (c99_block_end, compstmt): Use c_end_compound_stmt.
957 (c99_block_lineno_labeled_stmt): Likewise.
958 (compstmt_primary_start): Use c_begin_stmt_expr.
959 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
960 (do_stmt_start): Fill in body directly.
961 (lineno_stmt): Avoid setting lineno on constants.
962 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
964 * c-semantics.c (begin_stmt_tree): Remove.
965 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
966 (add_stmt): Use statement lists.
967 (add_scope_stmt, finish_stmt_tree): Remove.
969 * c-tree.h: Move some decls from c-common.h.
970 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
971 (do_case, c_finish_case): Likewise.
972 (c_finish_then): Take body for then as argument.
973 (c_finish_else): Similarly.
974 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
975 c_finish_for_stmt_incr, c_finish_for_stmt): New.
976 (c_begin_stmt_expr, c_finish_stmt_expr): New.
977 (c_begin_compound_stmt): Do scope management.
978 (c_end_compound_stmt): New.
979 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
980 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
981 Look through exception handling constructs.
982 (gimplify_bind_expr): Accept temporary argument.
983 (gimplify_target_expr): Special case BIND_EXPR bodies.
984 (gimplify_expr): Handle fallback == fb_none like a statement.
985 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
986 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
987 * langhooks.h (tree_chain_matters_p): Remove.
988 * stub-objc.c (objc_clear_super_receiver): New.
989 * tree-gimple.h (voidify_wrapper_expr): Update decl.
990 (append_to_statement_list, append_to_statement_list_force): Move
992 * tree-inline.c (expand_call_inline): Update call.
993 (clone_body): Use statement lists.
994 (walk_tree): Don't check tree_chain_matters_p.
995 (copy_tree_r): Likewise.
996 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
997 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
998 * tree-iterator.h (append_to_statement_list,
999 append_to_statement_list_force): Moved from tree-gimple.h.
1000 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
1001 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
1002 (objc_enter_block): Likewise.
1003 (objc_exit_block): Use c_end_compound_stmt.
1004 (objc_build_try_enter_fragment): Add #error and comment for
1005 rewriting for OBJCPLUS.
1006 (objc_build_extract_fragment, objc_build_try_epilogue,
1007 objc_build_catch_stmt, objc_build_finally_prologue,
1008 objc_build_finally_epilogue): Update for C statement builders.
1009 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1012 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1014 * df.c (df_reg_clobber_gen): Removed.
1015 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1016 Make more effective for hard regs.
1017 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1019 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
1021 * c-pragma.h (c_lex_string_translate): Change type to int.
1022 * c-parse.in: Change all assignments of c_lex_string_translate
1023 to true and false to 1 and 0.
1024 * c-lex.c (c_lex_string_translate): Likewise.
1025 (lex_string): Convert string without translation in the -1
1028 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
1030 * convert.h: Add include guards
1032 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1034 * tree-flow-inline.h: Document all functions.
1036 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1038 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1039 * tree-dfa.c (create_stmt_ann): Ditto.
1040 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1041 * tree-inline.c (estimate_num_insns_1): Ditto.
1042 * tree.c (tree_size): Ditto.
1043 (make_node_stat): Ditto.
1044 (tree_node_structure): Ditto.
1045 (ephi_node_elt_check_failed): Remove.
1046 (is_essa_node): Ditto.
1047 * tree.def (EPHI_NODE): Ditto.
1048 (EEXIT_NODE): Ditto.
1050 (EKILL_NODE): Ditto.
1051 * tree.h (EREF_NODE_CHECK): Remove.
1052 (EPHI_NODE_ELT_CHECK): Ditto.
1053 (struct tree_eref_common): Ditto.
1054 (struct tree_euse_node): Ditto.
1055 (struct ephi_arg_d): Ditto.
1056 (struct tree_ephi_node): Ditto.
1057 (ephi_node_elt_check_failed): Remove prototype.
1058 (is_essa_node): Ditto.
1059 (enum tree_node_structure_enum): Remove TS_E*_NODE.
1060 (union tree_node): Remove E*_NODE uses.
1062 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
1064 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1065 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1066 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1068 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1069 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1070 expand_builtin_strcmp, expand_builtin_strncmp,
1071 expand_builtin_frame_address): Likewise.
1072 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1073 insert_one_insn): Likewise.
1074 * calls.c (prepare_call_address, precompute_register_parameters,
1075 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1076 * cfganal.c (flow_active_insn_p): Likewise.
1077 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1078 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1079 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1080 make_extraction, recog_for_combine, gen_lowpart_for_combine,
1081 simplify_comparison, record_dead_and_set_regs_1,
1082 record_dead_and_set_regs, record_promoted_value,
1083 check_promoted_subreg, get_last_value_validate, get_last_value,
1084 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1085 unmentioned_reg_p_1): Likewise.
1086 * conflict.c (mark_reg): Likewise.
1087 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1088 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1089 merge_equiv_classes, flush_hash_table, invalidate,
1090 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1091 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1092 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1093 record_jump_cond, cse_insn, addr_affects_sp_p,
1094 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1095 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1096 cse_cc_succs, cse_condition_code_reg): Likewise.
1097 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1098 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1099 cselib_record_set, cselib_record_sets): Likewise.
1100 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1101 dbxout_block): Likewise.
1102 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1103 * dojump.c (do_jump): Likewise.
1104 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1105 is_based_loc, rtl_for_decl_location): Likewise.
1106 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1107 set_decl_incoming_rtl, mark_user_reg): Likewise.
1108 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1109 copy_to_suggested_reg, allocate_dynamic_stack_space,
1110 probe_stack_range, hard_function_value): Likewise.
1111 * expmed.c (store_bit_field, store_fixed_bit_field,
1112 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1113 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1115 * expr.c (convert_move, convert_modes,
1116 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1117 use_group_regs, emit_move_insn, emit_move_insn_1,
1118 compress_float_constant, push_block, emit_single_push_insn,
1119 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1120 store_constructor, store_field, force_operand, safe_from_p,
1121 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1123 * final.c (profile_function, final_scan_insn, alter_subreg,
1124 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1125 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1126 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1127 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1128 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1129 attempt_auto_inc, find_auto_inc, mark_used_regs,
1130 count_or_remove_death_notes_bb): Likewise.
1131 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1132 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1133 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1134 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1135 purge_single_hard_subreg_set, instantiate_decl,
1136 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1137 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1138 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1139 expand_function_start, diddle_return_value, clobber_return_register,
1140 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1141 update_epilogue_consts): Likewise.
1142 * genemit.c (gen_exp, gen_insn): Likewise.
1143 * genrecog.c (make_insn_sequence): Likewise.
1144 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1145 mark_reg_conflicts, set_preference, reg_becomes_live,
1146 build_insn_chain, mark_reg_change): Likewise.
1147 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1149 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1151 * integrate.c (copy_rtx_and_substitute, try_constants,
1152 subst_constants, mark_stores, allocate_initial_values): Likewise.
1153 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1154 delete_computation, rtx_renumbered_equal_p, true_regnum,
1155 reg_or_subregno): Likewise.
1156 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1157 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1158 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1159 wipe_dead_reg, no_conflict_p): Likewise.
1160 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1161 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1162 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1163 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1164 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1165 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1166 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1167 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1168 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1169 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1170 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1171 try_swap_copy_prop): Likewise.
1172 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1173 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1175 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1176 reload_cse_simplify_operands, reload_combine,
1177 reload_combine_note_store, reload_combine_note_use,
1178 reload_cse_move2add, move2add_note_store): Likewise.
1179 * print-rtl.c (print_rtx): Likewise.
1180 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1181 contains_pseudo, handle_asm_insn): Likewise.
1182 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1183 dump_static_insn_cost): Likewise.
1184 * ra-rewrite.c (slots_overlap_p, emit_colors,
1185 remove_suspicious_death_notes): Likewise.
1186 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1187 register_operand, scratch_operand, nonmemory_operand,
1188 constrain_operands): Likewise.
1189 * reg-stack (check_asm_stack_operands, remove_regno_note,
1190 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1191 subst_asm_stack_regs): Likewise.
1192 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1193 record_address_regs, reg_scan_mark_refs): Likewise.
1194 * regmove.c (discover_flags_reg, replacement_quality,
1195 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1196 fixup_match_1): Likewise.
1197 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1198 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1199 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1200 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1201 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1202 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1203 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1204 find_reloads_subreg_address, find_replacement,
1205 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1206 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1207 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1208 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1209 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1210 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1211 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1212 do_output_reload, emit_reload_insns, gen_reload,
1213 delete_address_reloads_1, inc_for_reload): Likewise.
1214 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1215 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1216 * resource.c (update_live_status, mark_referenced_resources,
1217 mark_set_resources, mark_target_live_regs): Likewise.
1218 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1219 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1220 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1221 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1222 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1223 parms_set, find_first_parameter_load, keep_with_call_p,
1224 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1225 num_sign_bit_copies1): Likewise.
1226 * rtlhooks.c (gen_lowpart_general): Likewise.
1227 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1228 sched_analyze): Likewise.
1229 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1231 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1232 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1233 simplify_binary_operation, simplify_const_relational_operation,
1234 simplify_subreg): Likewise.
1235 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1236 expand_end_stmt_expr, expand_return, expand_decl,
1237 expand_anon_union_decl): Likewise.
1238 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1239 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1240 loop_iterations): Likewise.
1241 * var-tracking.c (variable_union, variable_part_different_p,
1242 variable_different_p, count_uses, add_uses, add_stores,
1243 compute_bb_dataflow, set_variable_part, delete_variable_part,
1244 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1246 * varasm.c (assemble_variable): Likewise.
1248 2004-06-15 Chris Demetriou <cgd@broadcom.com>
1250 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1252 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1253 #undef and #if 0'd definition.
1255 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1257 * combine.c (distribute_notes): Comment typo fix.
1259 2004-06-15 Roger Sayle <roger@eyesopen.com>
1261 * expmed.c (synth_mult): Mask bits of the multiplier to the
1262 machine mode of the multiplication. Don't consider shifts
1263 by more than (or equal to) the width of the operation's mode.
1265 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1267 * doc/install.texi: Yet another update for autoconf
1268 and automake versions.
1270 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1272 * function.h (struct function): Remove cannot_inline field.
1273 (current_function_cannot_inline): Remove.
1274 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1275 Simplify conditionals to ignore warn_return_type.
1276 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1278 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1279 Do not set current_function_cannot_inline.
1281 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1283 * cfglayout.c (fixup_reorder_chain): Handle case where the
1284 destination of E_TAKEN is EXIT_BLOCK_PTR.
1286 2004-06-15 Diego Novillo <dnovillo@redhat.com>
1288 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1290 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1292 * fold-const.c (operand_equal_p): Update comment.
1294 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1296 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1297 (INCOMING_RETURN_ADDR_RTX): Define.
1298 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1299 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1300 __builtin_return_address(0).
1301 (m32r_return_addr): Added for __builtin_return_address(0).
1302 (m32r_reload_lr): Ditto.
1304 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1306 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1308 * doc/install.texi (Prerequisites): Update libbanshee,
1309 fastjar, libcpp, libjava/libltdl entries to
1312 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
1313 Olivier Hainque <hainque@act-europe.fr>
1315 * function.c (fixup_var_refs): Also adjust the start of sequence
1316 after fixing up the insns.
1318 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1320 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1322 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
1324 * doc/install.texi (Prerequisites): Update libstdc++ entry to
1327 2004-06-14 Eric Christopher <echristo@redhat.com>
1329 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1330 to -mtpf-trace (-mno-tpf-trace).
1331 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1334 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1336 * real.c: Fix bit count in head comment.
1338 2004-06-14 Jeff Law <law@redhat.com>
1340 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1341 PHIs where the destination or an argument is marked with
1342 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1344 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1347 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1348 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1350 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1352 * opts.sh (var_args): Fix regexp.
1354 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1357 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1359 2004-06-14 Paul Brook <paul@codesourcery.com>
1361 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1363 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1365 * Makefile.in (FLAGS_H): New.
1366 (flags.h): Replace by FLAGS_H.
1367 * c.opt: Document Var, VarExists, Init and Report attributes.
1368 * common.opt: Fill the values of the attributes.
1369 * diagnostic.c (flag_fatal_errors): Do not define.
1370 * except.c (flag_non_call_exceptions): Do not define.
1371 * flags.h: Include options.h. Remove declarations conflicting with
1372 the automatically defined ones.
1373 * opts.c: Remove automatically defined variables.
1374 (handle_option): Perform default initialization.
1375 (common_handle_option): Do not handle options covered by the
1376 default initialization.
1377 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1380 * opts.sh: Generate variable declarations, handle CL_REPORT.
1381 * toplev.c: Remove automatically defined variables.
1382 (f_options): Removed.
1383 (print_switch_values): Use cl_options instead of f_options.
1384 * toplev.h (version_flag): Declaration removed.
1386 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
1388 * config/sparc/sparc.h: Correct comment about availability of
1389 little endian option.
1391 * config.gcc: Remove sparc64-*-aout*.
1392 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1393 * config/sparc/sp64-aout.h: Remove.
1394 * config/sparc/aout.h: Remove.
1396 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
1398 * config/s390/s390.c: Include "tree-gimple.h".
1399 (s390_gimplify_va_arg): New function.
1400 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1401 (s390_va_arg): Remove.
1402 * config/s390/s390-protos.h (s390_va_arg): Remove.
1403 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1405 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
1407 * basic-block.h (could_fall_through): Declare.
1408 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1409 Fail if the source already has a fallthrough edge to the exit
1411 (could_fall_through): New function.
1412 * cfgbuild.c (make_edges): Check if we already have a fallthrough
1413 edge to the exit block pointer.
1414 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1415 not called before reload has completed.
1416 Handle special case of first block having a fall-through exit edge.
1417 (cfg_layout_finalize): Don't call it before reload or if we have
1419 (fixup_reorder_chain): A fall through to the exit block does not
1420 require the block to come last. Add sanity checks.
1421 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1422 edges to the exit block.
1423 * function.c (cfglayout.h): #include.
1424 (thread_prologue_and_epilogue_insns): If we have neither return nor
1425 epilogue, but a fall through to the exit block from mid-function,
1426 force a non-fall-through exit.
1427 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1429 2004-06-14 Alan Modra <amodra@bigpond.net.au>
1431 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1432 for power5 and rs64a. Correct condition for default. Correct power3,
1433 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
1435 2004-06-13 Steven Bosscher <stevenb@suse.de>
1437 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1438 Revert previous change, don't use CALL_P.
1440 2004-06-13 Jason Merrill <jason@redhat.com>
1442 * tree.h: Move std_gimplify_va_arg_expr protoype here.
1443 * tree-gimple.h: From here.
1445 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1447 Fix PR tree-optimization/15979
1448 Fix PR tree-optimization/15981
1449 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1450 try to insert values undefined along some path.
1452 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1454 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1455 are available everywhere too.
1457 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
1459 * fold-const.c (fold_checksum_tree <case 't'>): Only
1460 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1461 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1462 EXPR is an INTEGERAL_TYPE or a scalar float type.
1464 2004-06-13 Diego Novillo <dnovillo@redhat.com>
1466 * tree-sra.c (tree_sra): Update documentation.
1468 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
1470 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1471 function_types_compatible_p, type_lists_compatible_p): Remove
1473 * c-tree.h (comptypes): Likewise.
1474 (COMPARE_STRICT): Remove.
1475 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1478 2004-06-13 Eric Christopher <echristo@redhat.com>
1480 * c-decl.c (diagnose_mismatched_decls): Improve error message.
1482 * c-typeck.c (comptypes): Add location in standard we're checking.
1484 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
1486 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1489 2004-06-12 Roger Sayle <roger@eyesopen.com>
1491 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1492 index by machine mode.
1493 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1494 tables inside the loop over machine modes.
1495 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1496 expand_divmod): Index shift*_cost by the appropriate machine mode.
1498 2004-06-12 Eric Christopher <echristo@redhat.com>
1500 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1501 * config/s390/s390.md: Ditto.
1502 * config/s390/s390.c: Ditto.
1503 (s390_frame_info): Conditionalize frame and setup info on
1504 TARGET_TPF_PROFILING.
1505 (s390_arg_frame_offset): Ditto.
1507 2004-06-12 Roger Sayle <roger@eyesopen.com>
1509 * fold-const.c (omit_two_operands): New function.
1510 * tree.h (omit_two_operands): Prototype here.
1511 * builtins.c (fold_builtin_unordered_cmp): New function to lower
1512 C99 unordered comparison builtins to the appropriate tree nodes.
1513 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1514 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1515 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
1516 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1517 (simplify_builtin_memcmp, simplify_builtin_strncmp,
1518 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1519 omit_two_operands function to build the required COMPOUND_EXPRs.
1521 2004-06-12 Steven Bosscher <stevenb@suse.de>,
1522 Andreas Jaeger <aj@suse.de>
1524 * gcse.c (record_set_info): Use predicates like REG_P.
1525 (mems_conflict_for_gcse_p): Likewise.
1526 (load_killed_in_block_p): Likewise.
1527 (hash_expr_1): Likewise.
1528 (insert_set_in_table): Likewise.
1529 (gcse_constant_p): Likewise.
1530 (hash_scan_set): Likewise.
1531 (hash_scan_insn): Likewise.
1532 (canon_list_insert): Likewise.
1533 (record_last_mem_set_info): Likewise.
1534 (record_last_set_info): Likewise.
1535 (compute_hash_table_work): Likewise.
1536 (mark_set): Likewise.
1537 (mark_clobber): Likewise.
1538 (mark_oprs_set): Likewise.
1539 (compute_transp): Likewise.
1540 (find_avail_set): Likewise.
1541 (cprop_insn): Likewise.
1542 (do_local_cprop): Likewise.
1544 (find_implicit_sets): Likewise.
1545 (find_bypass_set): Likewise.
1546 (bypass_conditional_jumps): Likewise.
1547 (insert_insn_end_bb): Likewise.
1548 (pre_insert_copy_insn): Likewise.
1549 (compute_transpout): Likewise.
1550 (next_ls_expr): Likewise.
1551 (invalidate_any_buried_refs): Likewise.
1552 (compute_ld_motion_mems): Likewise.
1553 (reg_set_info): Likewise.
1554 (reg_clear_last_set): Likewise.
1555 (find_moveable_store): Likewise.
1556 (compute_store_table): Likewise.
1557 (find_loads): Likewise.
1558 (store_killed_in_insn): Likewise.
1559 (insert_insn_start_bb): Likewise.
1560 (reg_set_between_after_reload_p): Likewise.
1561 (reg_used_between_after_reload_p): Likewise.
1562 (is_jump_table_basic_block): Likewise.
1563 (gcse_after_reload): Likewise.
1564 (hash_scan_set_after_reload): Likewise.
1565 (compute_hash_table_after_reload): Likewise.
1567 2004-06-12 Steven Bosscher <stevenb@suse.de>
1569 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1570 (INSN_P): Don't look at the rtx code class, just explicitly
1571 check for one of the tree RTX_INSN codes.
1573 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1575 * c-typeck.c (default_function_array_conversion): Use
1576 build_pointer_type not TYPE_POINTER_TO.
1578 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1580 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1581 * configure, config.in: Regenerate.
1582 * system.h: Unconditionally define bool as unsigned char,
1583 BOOL_BITFIELD as unsigned int.
1584 * domwalk.h: Use BOOL_BITFIELD.
1586 2004-06-12 Andreas Jaeger <aj@suse.de>
1588 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1589 * libgcc-darwin.ver: Likewise.
1591 2004-06-12 Peter Jakubek <peter@laseranimation.com>
1593 * reload.c (find_reloads): Force reload for pseudo registers on big
1596 2004-06-11 Steven Bosscher <stevenb@suse.de>
1598 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1599 Don't try to mark anything control dependent on the entry or
1602 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
1606 * tree.h (SSA_NAME_VALUE): New macro.
1607 (struct tree_ssa_name): Add value_handle member.
1608 * tree-ssa-pre.c: Replaced.
1609 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1610 (struct cst_ann_d): New.
1611 (struct expr_ann_d): New.
1612 (union tree_ann_d): Add cst_ann, expr_ann.
1613 * tree-dfa.c (create_cst_ann): New function.
1614 (create_expr_ann): Ditto.
1615 * tree-flow-inline.h (cst_ann): New function.
1617 (get_cst_ann): Ditto.
1618 (get_expr_ann): Ditto..
1620 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1622 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1623 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1624 _U_Qfcmp library function.
1625 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1626 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1628 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1629 unspec used for loading address from DLT.
1630 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1631 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1632 Don't use short code sequence when loading the address of a nonlocal
1634 (nonlocal_goto): New expander.
1635 (indirect_goto): New jump pattern for nonlocal gotos.
1636 (short_jump): Remove extra whitespace.
1637 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
1638 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1641 2004-06-11 Roger Sayle <roger@eyesopen.com>
1643 * expmed.c (synth_mult): Add an additional MODE argument for the
1644 machine mode of the multiplication. Update recursive calls. Use
1645 mode instead of word_mode for determining operation costs.
1646 (choose_mult_variant): Update calls to synth_mult with "mode".
1648 2004-06-11 Richard Henderson <rth@redhat.com>
1650 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1651 and makes_aliased_stores.
1653 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1655 * doc/install.text (--enable-shared): Fix typo.
1657 2004-06-11 Richard Henderson <rth@redhat.com>
1659 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1660 argument. Use internal post for call to gimplify_expr. Tidy
1661 rounded type size computation.
1662 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1663 get_initialized_tmp_var.
1665 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1667 * doc/install.texi (--enable-shared): Update libobjc's shared library
1668 status. Remove reference to libf2c.
1670 2004-06-11 Jason Merrill <jason@redhat.com>
1672 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1673 * config/i386/i386.c (ix86_va_arg): Remove.
1674 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1675 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1676 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1677 * config/alpha/alpha.c (alpha_va_arg): Remove.
1678 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1679 * config/sparc/sparc.c (sparc_va_arg): Remove.
1681 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1682 assignment might throw.
1683 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1686 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
1689 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1691 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
1693 * doc/install.texi (Prerequisites): Update documentation of
1694 required versions of autoconf and automake. Remove mention of
1697 2004-06-11 Jason Merrill <jason@redhat.com>
1699 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1700 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1702 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
1704 * typeclass.h: Add GPL plus exception license. Add include
1707 2004-06-10 Jason Merrill <jason@redhat.com>
1709 * gimplify.c (gimplify_modify_expr): Don't force a temporary
1710 of an aggregate_value_p type.
1712 2004-06-10 Jeff Law <law@redhat.com>
1714 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1715 code when we are in gimple form.
1717 2004-06-10 Diego Novillo <dnovillo@redhat.com>
1719 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1720 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1721 (highest_ssa_version): Remove.
1722 * tree-outof-ssa.c (new_temp_expr_table): Replace
1723 highest_ssa_version with num_ssa_names.
1724 (dump_replaceable_exprs): Likewise.
1725 (rewrite_vars_out_of_ssa): Likewise.
1726 * tree-ssa-ccp.c (initialize): Likewise
1727 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1728 * tree-ssa-dce.c (tree_dce_init): Likewise.
1729 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1730 * tree-ssa-live.c (create_ssa_var_map): Likewise.
1731 (dump_var_map): Likewise.
1732 * tree-ssa.c (verify_ssa): Likewise.
1733 (kill_redundant_phi_nodes): Likewise.
1734 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
1735 * tree-ssanames.c: Include tree-flow.h
1736 (ssa_names): New varray.
1737 (init_ssa_names): Initialize ssa_names.
1738 Reserve the first slot of the ssa_names table.
1739 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1740 Assign version numbers using num_ssa_names.
1742 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
1744 * doc/sourcebuild.texi (Front End): Add details of more
1745 installation documentation required.
1747 2004-06-10 Brian Booth <bbooth@redhat.com>
1749 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1750 of V_MAY_DEF and V_MUST_DEF.
1751 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1752 num_vdefs to num_v_may_defs.
1753 (compute_immediate_uses_for_stmt): Rename occurences of vdef
1755 (redirect_immediate_uses): Ditto.
1756 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1757 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1758 Also add code to sum up the number of v_must_defs.
1759 (vdefs_disappeared_p): Replace with...
1760 (v_may_defs_disappeared_p): This.
1761 (v_must_defs_disappeared_p): New function.
1762 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1763 Also add code to mark new variables found in V_MUST_DEFs for
1765 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1766 vdef_ops to v_may_def_ops.
1767 (get_vdef_ops): Replace with...
1768 (get_v_may_def_ops): This.
1769 * tree-flow-inline.h (get_vdef_ops): Replace with...
1770 (get_v_may_def_ops): This.
1771 (get_v_must_def_ops): New function.
1772 (get_vdef_result_ptr): Replace with...
1773 (get_v_may_def_result_ptr): This.
1774 (get_vdef_op_ptr): Ditto with...
1775 (get_v_may_def_op_ptr); This.
1776 (get_v_must_def_op_ptr): New function.
1777 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1778 to v_may_def. Also add code to mark statements with
1779 V_MUST_DEFs as definition sites.
1780 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1781 add code to register new V_MUST_DEFs made by the statement.
1782 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1783 (check_replaceable): Rename occurences of vdef to v_may_def. Also
1784 add check for V_MUST_DEFs.
1785 (find_replaceable_in_bb): Ditto.
1786 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1787 to v_may_def. Also add code to dump V_MUST_DEFs.
1788 * tree-sra.c (mark_all_vdefs): Replace with...
1789 (mark_all_v_may_defs): This.
1790 (mark_all_v_must_defs): New function.
1791 (create_scalar_copies): Replace call to mark_all_vdefs with
1792 calls to mark_all_v_may_defs and mark_all_v_must_defs.
1793 (scalarize_structures): Rename occurences of vdef to v_may_def.
1794 Also add a check for V_MUST_DEFs.
1795 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1796 * tree-ssa-alias.c (global_var): Update comment.
1797 (compute_may_aliases): Ditto.
1798 (compute_points_to_and_addr_escape): Rename occurences of vdef
1799 to v_may_def. Also add code to mark variables in V_MUST_DEF
1800 operands as being written to.
1801 (group_aliases): Update comment.
1802 (maybe_create_global_var): Ditto.
1803 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1804 Also add a check for V_MUST_DEFs on GIMPLE registers.
1805 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1806 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1807 to v_may_def. Also add code to mark all V_MUST_DEF operands
1809 (initialize): Ditto.
1810 (set_rhs): Rename occurences of vdef to v_may_def. Also add
1811 code to update SSA_NAMEs in V_MUST_DEFs.
1812 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1814 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1815 occurences of vdef to v_may_def. Also add code to mark statements
1816 with V_MUST_DEFs as necessary.
1817 (propagate_necessity): Rename occurences of vdef to v_may_def.
1818 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1819 occurences of vdef to v_may_def. Also add code to mark operands
1820 in V_MUST_DEFs for renaming.
1821 (eliminate_redundant_computations): Rename occurences of vdef
1823 (record_equivalences_from_stmt): Rename occurences of vdef
1824 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1825 (optimize_stmt): Remove unnesessary variable vdefs. Update
1827 (register_definitions_for_stmt): Rename occurences of vdef
1828 to v_may_def. Also add code to register definitions made with
1830 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1831 (fix_stmt_v_may_defs): This.
1832 (fix_phi_uses): Rename occurences of vdef to v_may_def.
1833 (dse_optimize_stmt): Ditto.
1834 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1835 to v_may_def. Also add code to mark V_MUST_DEF operands as being
1836 used in virtual operators.
1837 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1838 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1840 * tree-ssa-operands.c (opf_kill_def): New flag for killing
1842 (build_vdefs): Renamed to...
1843 (build_v_may_defs): This.
1844 (build_v_must_defs): New variable.
1845 (voperands_d): Add v_must_def_ops and replace vdef_ops with
1847 (append_vdef): Replace with...
1848 (append_v_may_def): This.
1849 (append_v_must_def): New function.
1850 (NUM_FREE): Increment for V_MUST_DEF
1851 (optype_freelist): Increment its size for V_MUST_DEF
1852 (allocate_vdef_optype): Replace with...
1853 (allocate_v_may_def_optype): This.
1854 (allocate_v_must_def_optype): New function.
1855 (free_vdefs): Replace with...
1856 (free_v_may_defs): This.
1857 (free_v_must_defs): New function.
1858 (remove_vdefs): Replace with...
1859 (remove_v_may_defs): This.
1860 (remove_v_must_defs): New function.
1861 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1862 add code to initialize build_v_must_defs.
1863 (finalize_ssa_vdefs): Replace with...
1864 (finalize_ssa_v_may_defs): This.
1865 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1866 (finalize_ssa_v_must_defs): New function.
1867 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1868 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1869 (verify_start_operands): Rename occurences of vdef to v_may_def.
1870 Also add check for build_v_must_defs.
1871 (get_stmt_operands): Rename occurences of vdef to v_may_def.
1872 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1873 killing definitions.
1874 (get_expr_operands): Update comment and use opf_kill_def for
1875 killing definitions.
1876 (add_stmt_operand): Replace code that appends VDEFs with code
1877 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1879 (add_call_clobber_ops): Update comments.
1880 * tree-ssa-operands.h (vdef_optype_d): Replace with...
1881 (v_may_def_optype_d): This.
1882 (v_must_def_optype_d): New structure.
1883 (VDEF_OPS): Replace with...
1884 (V_MAY_DEF_OPS): This.
1885 (STMT_VDEF_OPS): Same with...
1886 (STMT_V_MAY_DEF_OPS): This.
1888 (NUM_V_MAY_DEFS): This.
1889 (VDEF_RESULT_PTR): As well as...
1890 (V_MAY_DEF_RESULT_PTR): This.
1891 (VDEF_RESULT): Same goes for...
1892 (V_MAY_DEF_RESULT): This.
1893 (VDEF_OP_PTR): And...
1894 (V_MAY_DEF_OP_PTR): This.
1896 (V_MAY_DEF_OP): This.
1897 (V_MUST_DEF_OPS): New macro.
1898 (STMT_V_MUST_DEF_OPS): Ditto.
1899 (NUM_V_MUST_DEFS): Ditto.
1900 (V_MUST_DEF_OP_PTR): Ditto.
1901 (V_MUST_DEF_OP): Ditto.
1902 (remove_vdefs): Replace signature with...
1903 (remove_v_may_defs): This.
1904 (remove_v_must_defs): New function signature.
1905 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1906 with calls to remove_v_may_defs and remove_v_must_defs.
1907 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1908 Also add code that marks left occurences of operands in V_MUST_DEFs.
1909 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1910 to v_may_def. Also add check for V_MUST_DEFs.
1911 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1913 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
1916 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1919 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1922 * doc/install.texi: Remove superfluous linebreak.
1924 2004-06-10 Roger Sayle <roger@eyesopen.com>
1926 * builtins.c (expand_builtin): Fall back to library function call for
1927 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1928 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1929 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1930 IMAGPART_EXPR respectively.
1932 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
1934 * sh.c (dump_table): New argument start. Changed caller.
1935 (fixup_mova): New function.
1936 (find_barrier): Use it.
1937 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
1938 If the label a mova refers to is above the mova itself, change
1939 the mova into a load.
1940 * sh.md (*casesi_worker): Rename to:
1942 (casesi_worker_2): New insn.
1944 2004-06-10 Jason Merrill <jason@redhat.com>
1946 * target.h (struct gcc_target): Change gimplify_va_arg_expr
1948 * tree-gimple.h: Adjust.
1949 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1950 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1952 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1953 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1954 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
1955 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
1956 (gimplify_va_arg_expr): Return GS_ERROR in error case.
1957 Gimplify valist rather than calling stabilize_va_list.
1959 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1961 * Makefile.in (df.o): Remove fibheap dependency.
1962 * df.h: Do not include sbitmap.h.
1963 (struct ref): New field "data".
1964 (DF_REF_DATA): New accessor macro.
1965 (struct df): Field "dom" removed.
1966 (df_analyze_subcfg): New function.
1967 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1968 (transfer_function): ... new type.
1969 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1970 (iterative_dataflow): ... new function.
1971 (enum set_representation, struct dataflow): New.
1972 * df.c: Do not include fibheap.h.
1974 (df_reg_def_chain_clean, df_reg_use_chain_clean,
1975 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1976 prune_to_subcfg, df_bb_modify): New functions.
1977 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1978 df_refs_update, df_reg_table_realloc, df_ref_create,
1979 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1980 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1981 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1983 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1984 (df_rd_transfer_function, df_ru_transfer_function,
1985 df_lr_transfer_function): Type of bitmaps changed to void *.
1986 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1987 (hybrid_search): ... new function.
1988 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1989 (iterative_dataflow): ... new function. Avoid use of fibheaps for
1990 a worklist. Do not process basic blocks unnecessarily.
1992 2004-06-10 Roger Sayle <roger@eyesopen.com>
1994 * fold-const.c (fold_abs_const): Make extern.
1995 * tree.h (fold_abs_const): Prototype here.
1996 * builtins.c (fold_builtin_fabs): New function to transform
1997 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1998 (fold_builtin_abs): New function to transform abs, labs, llabs
1999 and imaxabs builtins into ABS_EXPR tree nodes.
2000 (expand_builtin): Fall back to a function call for abs, labs,
2001 llabs and imaxabs builtins that survive constant folding.
2002 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
2003 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2005 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2007 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2008 leaf function without unwind info at RP 0.
2010 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2013 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2014 (fileptr_type_node): Define.
2015 * tree.c (build_common_tree_nodes_2): Initialize
2016 fileptr_type_node to ptr_type_node.
2017 * c-common.c (c_common_nodes_and_builtins): For C++, make
2018 fileptr_type_node a distinct type copy.
2019 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2020 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2021 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2022 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2023 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2024 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2025 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2026 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2027 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2028 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2029 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2030 the above *FILEPTR* types instead of *PTR*.
2032 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
2034 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2037 2004-06-09 Roger Sayle <roger@eyesopen.com>
2039 * fold-const.c (fold_not_const): New function.
2040 (fold) <ABS_EXPR>: Don't bother testing wins.
2041 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2042 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2044 2004-06-09 Richard Henderson <rth@redhat.com>
2047 * function.c (assign_parms): Always set_mem_align with the computed
2048 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
2050 2004-06-09 Richard Henderson <rth@redhat.com>
2053 * tree-tailcall.c (find_tail_calls): Don't check early for
2054 tail_recursion failure.
2056 2004-06-09 Diego Novillo <dnovillo@redhat.com>
2058 Move SSA_NAME annotations into tree_ssa_name.
2060 * tree-dfa.c (create_ssa_name_ann): Remove.
2061 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2062 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2063 (struct ssa_name_ann_d): Remove.
2064 (union tree_ann_d): Update.
2065 (ssa_name_ann_t): Remove.
2066 * tree-ssa-alias.c: (get_ptr_info): New local function.
2067 Replace references to ssa_name_ann_t with struct ptr_info_def.
2068 * tree-ssa-operands.c (get_expr_operands): Likewise.
2069 * tree.h (SSA_NAME_PTR_INFO): Define.
2070 (struct ptr_info_def): Declare.
2071 (struct tree_ssa_name): Add field 'ptr_info'.
2073 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
2075 * config/i386/winnt.c (i386_pe_output_labelref): Correct
2078 2004-06-09 Steven Bosscher <stevenb@suse.de>
2080 * config/i386/k6.md: Rewrite using the DFA model.
2081 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2082 cost of load-operation insns for the K6.
2083 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2084 (ia32_multipass_dfa_lookahead): Likewise.
2086 2004-06-09 Richard Henderson <rth@redhat.com>
2088 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2089 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2091 2004-06-09 Richard Henderson <rth@redhat.com>
2093 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2095 2004-06-09 Geoffrey Keating <geoffk@apple.com>
2097 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2098 (CPP_ID_DATA_H): New.
2099 (gtype-desc.o): Update dependencies.
2100 (GTFILES): Use CPP_ID_DATA_H.
2102 2004-06-09 Mark Mitchell <mark@codesourcery.com>
2106 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2107 * doc/extend.texi: Deprecate #pragma interface and #pragma
2110 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
2112 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2114 2004-06-09 Richard Henderson <rth@redhat.com>
2116 * basic-block.h (struct edge_def): Add goto_locus.
2117 * tree-cfg.c (make_goto_expr_edges): Set it.
2118 (disband_implicit_edges): Use it.
2119 * tree-pretty-print.c (dump_implicit_edges): Print it.
2121 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2123 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2125 2004-06-08 Jason Merrill <jason@redhat.com>
2127 Gimplify VA_ARG_EXPR into simpler forms.
2128 * target.h: Add gimplify_va_arg_expr hook.
2129 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2130 * fold-const.c (build_fold_addr_expr)
2131 (build_fold_addr_expr_with_type): Move from gimplify.c.
2132 * tree.h: Declare them.
2133 * gimplify.c (gimplify_and_add): New fn.
2134 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2135 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2136 (gimplify_expr): Use build_fold_*.
2137 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2138 don't know how to gimplify it.
2139 * builtins.c (std_gimplify_va_arg_expr): New fn.
2140 (dummy_object): New static fn.
2141 (gimplify_va_arg_expr): New fn.
2142 (stabilize_va_list): Use build_fold_*.
2143 * tree-gimple.h: Declare new fns.
2144 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2145 (ix86_gimplify_va_arg): New fn.
2146 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2147 (ia64_gimplify_va_arg): New fn.
2148 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2149 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2150 * alias.c (get_varargs_alias_set): Just return 0 for now.
2152 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2154 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2156 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2158 * tree-inline.c (setup_one_parameter): Likewise.
2159 * tree-sra.c (csc_build_component_ref): Likewise.
2160 * tree-ssa-ccp.c (ccp_fold): Likewise.
2161 * tree-ssa-copy.c (cprop_operand): Likewise.
2162 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2163 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2165 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2167 PR rtl-optimization/15521:
2168 * sched-int.h (in_post_call_group_p): Change type to enum.
2169 * sched-deps.c (sched_analyze_insn):
2170 (sched_analyze): When in_post_call_group_p is post_call_initial,
2171 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2172 and also reset in_post_call_group_p to post_call.
2173 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2174 initialize in_post_call_group_p as post_call_initial.
2175 (init_deps): initialize in_post_call_group_p to not_post_call.
2177 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2180 * doc/install.texi: List ada, libada as options to --enable-shared
2182 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
2184 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2185 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2187 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2188 if hard links are not available.
2189 * configure: Regenerate.
2190 * config.in: Regenerate.
2192 2004-06-08 Per Bothner <per@bothner.com>
2194 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2196 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2198 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2201 2004-06-08 James E Wilson <wilson@specifixinc.com>
2204 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2206 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2208 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2209 POINTER_TYPE and INTEGER_TYPE.
2211 2004-06-08 Bernardo Innocenti <bernie@develer.com>
2213 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2216 2004-06-08 Jeff Law <law@redhat.com>
2218 * doc/contrib.texi: Add entries for Stefan Olsson and
2221 2004-06-08 DJ Delorie <dj@redhat.com>
2223 * toplev.c (floor_log2_wide): Replace loop with faster bit
2225 (exact_log2_wide): Define in terms of the above.
2226 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2229 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2231 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2232 Make sure that we are in INDIRECT mode when getting the
2235 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2237 * h8300.md (extendqisi2_h8300): Add constraints.
2238 (ldm_h8300s_4_normal): Fix typo.
2240 2004-06-08 Richard Henderson <rth@redhat.com>
2242 * gimple-low.c (struct lower_data): Replace the_return_label and
2243 one_return_stmt with return_statements.
2244 (lower_function_body): Process the entire list of return_statements.
2245 (lower_return_expr): Check source value before unifying return_exprs.
2246 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2247 for !aggregate_value_p.
2248 * tree-gimple.c: Update RETURN_EXPR grammer.
2250 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2253 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2255 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2257 PR rtl-optimization/15717
2258 * config/i386/i386.c (legitimate_constant_p): Do not allow
2261 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
2263 * gimplify.c (copy_if_shared_r): Revert:
2264 2004-05-21 Richard Henderson <rth@redhat.com>
2265 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2267 2004-06-07 Roger Sayle <roger@eyesopen.com>
2269 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2270 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2271 (init_expmed): Initialize these cost arrays as appropriate.
2272 (store_bit_field, extract_bit_field): Correct whitespace.
2273 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2274 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2275 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2276 word_mode or compute_mode as appropriate.
2278 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2281 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2282 parameter. Enumerate the registers inside the PARALLEL.
2283 (function_arg): Adjust call to function_arg_union_value.
2284 (function_value): Likewise.
2286 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2288 2004-06-07 Roger Sayle <roger@eyesopen.com>
2290 * real.c (real_copysign): New function to implement libm's copysign.
2291 * real.h (real_copysign): Prototype here.
2292 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2293 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2294 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2295 fold_builtin_isdigit): Add function prototypes.
2296 (fold_builtin_copysign): New function to fold copysign, copysignf
2297 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
2298 constant arguments at compile-time using real_copysign. Fold
2299 copysign(X,Y) as fabs(X) if Y is always non-negative.
2300 (fold_builtin_1): Correct minor whitespace/style issues. Call
2301 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2303 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
2305 * tree.c (iterative_hash_expr): Use real_hash.
2307 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
2310 * c-parse.in (compstmt_primary_start): Set last_expr_type to
2313 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2316 * doc/extend.texi: Deprecate #pragma interface and #pragma
2319 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
2322 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2323 builtin decl as well.
2325 2004-06-07 Roger Sayle <roger@eyesopen.com>
2328 * c-typeck.c (require_constant_value, require_constant_elements):
2329 Move declarations to the top of the file.
2330 (build_function_call): If we require a constant value, fold with
2331 fold_initializer. If the result is a constant, and the function
2332 wasn't called using __builtin_foo, issue a pedantic warning.
2333 (build_unary_op): If we require a constant value, fold tree with
2335 (build_binary_op): Use require_constant_value to determine whether
2336 to call fold or fold_initializer.
2338 2004-06-07 Richard Henderson <rth@redhat.com>
2340 * gimple-low.c (struct lower_data): Add the_return_label and
2342 (lower_function_body): Initialize and use them.
2343 (lower_return_expr): New.
2344 (lower_stmt): Call it.
2345 * gimplify.c (gimplify_return_expr): Force the argument to be either
2346 null or a result_decl.
2347 * tree-gimple.c: Update gimple grammer to match.
2348 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2349 coalescing of result_decls.
2351 2004-06-07 Richard Henderson <rth@redhat.com>
2354 * expmed.c (extract_bit_field): Fix vector_extract return.
2356 * config/i386/i386.md (negv4sf2): New pattern.
2358 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2361 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2364 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
2366 * config.in: Regenerate.
2368 2004-06-06 Steven Bosscher <stevenb@suse.de>
2370 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2371 SWITCH_LABELS are always sorted.
2373 2004-06-06 Steven Bosscher <stevenb@suse.de>
2375 * hooks.c (hook_int_void_1): New generic hook.
2376 * hooks.h (hook_int_void_1): Add prototype.
2377 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2378 Define to hook_int_void_1.
2379 * config/c4x/c4x.md: Replace dummies for the old pipeline model
2380 with dummies for the new one.
2382 2004-06-06 Roger Sayle <roger@eyesopen.com>
2384 * tree.h (lvalue_or_else): Delete function prototype.
2385 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
2387 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2390 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2391 a live change of a register after peephole replacement.
2393 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
2396 * c-typeck.c (composite_type, common_pointer_type): New functions.
2397 (common_type): Split parts into composite_type and
2398 common_pointer_type. Ensure that arithmetic operations return
2399 unqualified types without attributes. Don't make composite type
2400 of signed enum and compatible integer be unsigned.
2401 (build_conditional_expr, build_binary_op): Use
2402 common_pointer_type.
2403 * c-decl.c (merge_decls): Use composite_type.
2404 * c-tree.h (composite_type): Declare.
2406 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2409 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2410 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2411 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2412 (inhibit_libc): Must define.
2413 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2414 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2415 ("xorhi3"): Likewise.
2417 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2419 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2422 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
2424 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2425 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2427 2004-06-05 Bernardo Innocenti <bernie@develer.com>
2429 * regclass.c (init_reg_sets): Check for missing registers in target
2430 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2432 2004-06-05 Zack Weinberg <zack@codesourcery.com>
2434 * Makefile.in (MKDEPS_H): New shorthand.
2435 (c-opts.o): Update dependencies.
2436 * c-opts.c: Include mkdeps.h.
2437 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2438 not cpp_add_dependency_target.
2440 2004-06-05 Steven Bosscher <stevenb@suse.de>
2442 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2443 * config/v850/v850.md: Convert to DFA scheduler description.
2445 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2448 * doc/install.texi: Document GMP as prerequisite. Document
2449 --with-gmp and --with-gmp-dir configure options.
2450 * fortran/gfortran.texi: Remove section "Compiling and testing",
2451 remove TOC reference to it.
2453 2004-06-05 Graham Stott <graham.stott@btinternet.com>
2455 * combine.c(simplify_shift_const): Check shift amount is a
2458 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
2460 * toplev.c (init_asm_output): Add explicit 'b' to mode when
2461 opening asm_out_file.
2462 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2463 reading asm_out_file. Replace fflush after reading asm_out_file
2465 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2466 default and add to HOST_HOOKS_INITIALIZER.
2467 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2468 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2469 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2470 to set mmi.offset padding.
2471 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2472 $(srcdir)/config/i386/winnt.c.
2473 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2474 (i[34567]86-*-uwin*): Likewise.
2475 *i[34567]86-*-interix3*): Likewise.
2476 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2477 * config/i386/host-mingw32.c: New file.
2478 * config/i386/x-mingw32: Add rule for host-mingw32.o.
2479 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2480 (extern_head): Likewise.
2481 (struct export_list) Likewise.
2482 (export_head): Likewise.
2483 (i386_pe_record_external_function): Use ggc_alloc.
2484 (i386_pe_record_exported_symbol): Likewise.
2485 Include "gt-winnt.h" at end.
2486 * doc/hostconfig.texi: Document
2487 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2489 2004-06-04 Bernardo Innocenti <bernie@develer.com>
2491 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2492 Rename 68000 and 68k to m68k for consistency in comments. Remove
2493 trailing whitespace before EOLs and before TABs.
2494 (MAX_CODE_ALIGN): Remove unused macro.
2495 (CALL_USED_REGISTERS): Reformat and add comments.
2497 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
2499 * gcc.c (MFLIB_SPEC): Remove library references, to require users
2500 to enumerate -lmudflap* and dependencies when linking.
2502 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
2505 * dojump.c (do_jump): Fix uninitialized variable tcode1.
2507 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
2509 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2510 * genconditions.c (write_header): Back out removal of reload.h.
2512 2004-06-04 Jan Hubicka <jh@suse.cz>
2514 Re-apply hopefully fixed patch:
2515 * i386.md (UNSPECV_EH_RETURN): Kill.
2516 (eh_return): Use jump_insn.
2517 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2519 2004-06-04 Jeff Law <law@redhat.com>
2521 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2523 2004-06-04 Steven Bosscher <stevenb@suse.de>
2525 * except.c (for_each_eh_region): New function.
2526 * except.h (for_each_eh_region): Add a prototype for it.
2527 * tree-cfg.c (update_eh_labels): New function, callback for
2529 (label_for_bb): Make global static, unfortunately.
2530 (cleanup_dead_labels): Also update label references for
2533 2004-06-03 Chris Demetriou <cgd@broadcom.com>
2535 * config/mips/mips.c (struct irix_section_align_entry): Fix
2538 2004-06-03 Geoffrey Keating <geoffk@apple.com>
2540 * toplev.c (check_global_declarations): Don't ask for
2541 DECL_ASSEMBLER_NAME unless the function really is declared
2542 static and not defined.
2544 2004-06-03 Matt Austern <austern@apple.com>
2547 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2548 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2549 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2550 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2551 documentation to reflect the new macro name and to clarify its
2554 2004-06-03 Steven Bosscher <stevenb@suse.de>
2556 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2558 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
2560 * config/darwin.c (machopic_indirect_data_reference): Copy
2561 the SYMBOL_REF_DECL from the original RTX for the new
2562 non-lazy pointer RTX.
2564 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2566 * tree.h: Remove include of version.h
2567 * c-cppbuiltin.c: Include version.h
2568 * diagnostic.c: Include version.h
2569 * dwarf2out.c: Include version.h
2570 * toplev.c: Include version.h
2571 * vmsdbgout.c: Include version.h
2572 * Makefile.in: Remove dependency on version.h from TREE_H, and
2573 add dependencies to required .o targets
2575 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
2577 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2578 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2579 (TARGET_H): Add insn-modes.h.
2580 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2581 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2582 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2583 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2584 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2585 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2586 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2587 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2589 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2590 Replace ra.h with RA_H.
2591 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2592 insn-recog.o): Replace resource.h with RESOURCE_H.
2593 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2594 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
2596 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2597 ra-rewrite.o): Replace df.h with DF_H.
2598 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2599 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2600 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2601 (insn-conditions.o): Remove unused reload.h.
2602 * cfglayout.h: Add include guard. Include basic-block.h.
2603 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
2604 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2605 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
2607 * genconditions.c: Remove reload.h.
2608 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
2609 hard-reg-set.h, insn-modes.h.
2610 * resource.h: Add include guard. Include hard-reg-set.h.
2611 * sched-int.h: Add include guard. Include insn-attr.h,
2612 basic-block.h, rtl.h.
2613 * target.h: Add include guard. Include insn-modes.h.
2614 * tree-ssa-live.h: Include partition.h.
2616 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
2617 Kenneth Zadeck <zadeck@naturalbridge.com>
2619 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2620 (add_var_to_ssa_edges_worklist): Add value argument.
2623 (process_ssa_edge_worklist): New function.
2624 (tree_ssa_ccp): Move worklist processing core to
2625 process_ssa_edge_worklist, and just call that for the two worklists.
2627 2004-06-03 Steven Bosscher <stevenb@suse.de>
2629 * basic-block.c (tail_recursion_label_list): Don't declare.
2630 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
2632 * cfgbuild.c (find_label_refs): Remove.
2633 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2634 * cfgcleanup.c (tail_recursion_label_p): Remove.
2635 (merge_blocks_move): Do not check for tail recursion.
2636 (try_optimize_cfg): Likewise.
2637 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2638 * cfgrtl.c (tail_recursion_label_list): Remove.
2639 * except.c (remove_unreachable_regions): Don't handle
2640 CALL_PLACEHOLDER insns.
2641 (convert_from_eh_region_ranges_1, can_throw_internal,
2642 can_throw_external): Likewise.
2643 * function.c (free_after_compilation): Don't clear
2644 x_tail_recursion_label.
2645 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2646 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2647 (reorder_blocks_1): Likewise.
2648 * function.h (struct function): Remove x_tail_recursion_label
2649 member. Don't define tail_recursion_label.
2650 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2651 * print-rtl.c (print_rtx): Likewise.
2652 * rtl.def (CALL_PLACEHOLDER): Remove.
2653 * rtl.h (sibcall_use_t): Remove enum.
2654 (optimize_sibling_and_tail_recursive_calls,
2655 replace_call_placeholder): Remove function prototypes.
2656 * stmt.c (tail_recursion_args): Remove.
2657 (optimize_tail_recursion): Remove.
2658 (expand_return): Don't check for possible tail recursion.
2659 * tree.h (optimize_tail_recursion): Remove prototype.
2661 2004-06-02 Jan Hubicka <jh@suse.cz>
2663 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
2666 2004-06-02 Jason Merrill <jason@redhat.com>
2668 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2669 Do include c-parse.in.
2671 2004-06-02 Eric Christopher <echristo@redhat.com>
2673 * c-typeck.c (common_type): Don't lose type qualifiers
2674 when creating new variants.
2676 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
2678 PR tree-optimization/14042
2679 PR tree-optimization/14729
2680 PR tree-optimization/14736
2681 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2682 Check the type which the pointer points to
2683 instead of the pointer types.
2685 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
2687 PR tree-optimization/15738.
2688 * builtins.c (fold_builtin_strchr): Transform
2689 strrchr (s, '\0') to strchr (s, '\0').
2691 2004-06-02 Steven Bosscher <stevenb@suse.de>
2693 * i386.c (ix86_adjust_cost): Don't increase the cost for
2694 load+operation for PROCESSOR_PENTIUMPRO, it is already
2695 modelled in the DFA description
2697 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
2699 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2700 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2701 (ALIAS_H, EMIT_RTL_H): New.
2702 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2703 (cfgcleanup.o): Add EMIT_RTL_H.
2704 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2705 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2706 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2707 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2708 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
2709 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2710 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2711 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2712 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2713 set_mem_size): Move to emit-rtl.h.
2717 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
2719 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2720 Call fixup_memory_subreg only if the MEM is equal to 'var'.
2721 Adjust recursive calls to self.
2722 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2724 2004-06-01 Richard Henderson <rth@redhat.com>
2725 Andrew Pinski <pinskia@physics.uc.edu>
2727 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2728 (primary): Handle offsetof. Add error productions for faux functions.
2729 Move component_ref objc checking to build_component_ref.
2730 (reswords): Add offsetof.
2731 (rid_to_yy): Add offsetof.
2732 * c-tree.h (build_offsetof): Declare.
2733 * c-common.h (objc_is_public): Declare.
2734 * c-typeck.c (build_component_ref): Check objc_is_public.
2735 (build_offsetof): New.
2736 * stub-objc.c (objc_is_public): New.
2737 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2739 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2740 * doc/extend.texi (Offsetof): Move from C++ section to C section
2741 and rewrite for __builtin_offsetof.
2743 2004-06-01 Peter Barada <peter@the-baradas.com>
2744 Peter Jakubek <peter@laseranimation.com>
2746 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
2747 a scratch to perform an add to memory.
2749 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2752 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2753 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2754 m68k_align_funcs): Remove.
2755 (override_options): Remove code to handle -malign-* options.
2756 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2757 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2758 (m68k_align_loops_string, m68k_align_jumps_string,
2759 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2760 m68k_align_funcs): Remove definitions.
2762 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
2765 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2766 by the Sun linker in conjunction with the Sun assembler.
2767 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2769 2004-06-01 Jeff Law <law@redhat.com>
2771 * stmt.c (expand_decl): Be more selective about calling
2774 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
2777 * objc-act.c (is_private): Do not emit the 'instance variable %s
2778 is declared private' error.
2779 (is_public): Emit the error after calling is_private.
2780 (lookup_objc_ivar): If the instance variable is private, return 0
2781 - the instance variable is invisible here.
2783 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2785 * doc/invoke.texi (-static-libgcc): Explicitly mention
2788 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2791 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2793 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
2796 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2797 misuses of structures with flexible array members if
2800 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2803 * config/sparc/sparc.c (compare_operand): New predicate.
2804 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2805 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
2806 operand is a ZERO_EXTRACT and the second operand is not zero,
2807 force the former to a register.
2808 (cmpdi expander): Likewise.
2810 2004-05-31 Geoffrey Keating <geoffk@apple.com>
2812 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2814 * alias.c (alias_invariant_size): Make alias_invariant_size
2815 static, fix GTY marker.
2817 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2819 PR tree-optimization/15743.
2820 * builtins.c (fold_builtin_1): Fold index() and rindex().
2822 2004-05-31 Roger Sayle <roger@eyesopen.com>
2825 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2826 into "X < 0" (where C is the signbit) if X's type is a full mode.
2828 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2830 * pa.md: Disable the peephole2 patterns that generate indexed
2831 floating-point stores when indexing is disabled.
2833 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2835 * c-pretty-print.c (pp_c_left_bracket): Make a function.
2836 (pp_c_right_bracket): Likewise.
2837 (pp_c_star): Likewise.
2838 (pp_c_ampersand): Define.
2839 * c-pretty-print.h (pp_c_left_bracket): Declare.
2840 (pp_c_right_bracket): Likewise.
2841 (pp_c_star): Likewise.
2842 (pp_c_ampersand): Likewise.
2844 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2846 * config/sol2.h (__enable_execute_stack): ANSIfy function
2849 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
2851 * c-incpath.c (add_path): Canonicalize paths to use '/' if
2852 HAVE_DOS_BASED_FILESYSTEM.
2854 2004-05-31 Steven Bosscher <stevenb@suse.de>
2856 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2857 Only look at case labels if the immediate dominator is also
2858 the only predecessor. Don't look for more case labels if the
2859 first seen is a case range.
2861 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2863 * builtins.c: Add a prototype for fold_builtin_strchr().
2865 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
2868 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
2870 * combine.c (gen_binary): Remove.
2871 (known_cond, simplify_shift_const
2872 find_split_point, combine_simplify_rtx,
2873 simplify_if_then_else, simplify_set,
2874 simplify_logical, expand_field_assignment,
2875 extract_left_shift, force_to_mode,
2876 if_then_else_cond, apply_distributive_law,
2877 simplify_and_const_int, simplify_shift_const,
2878 gen_lowpart_for_combine, simplify_comparison,
2879 reversed_comparison): Replace with
2880 simplify_gen_binary, simplify_gen_relational or
2881 distribute_and_simplify_rtx.
2882 (distribute_and_simplify_rtx): New function.
2884 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2886 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2887 when generating PIC code.
2889 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2891 * c-decl.c (c_expand_body_1): Remove and fold back into ...
2892 (c_expand_body): here.
2893 (c_expand_decl): Move to ...
2894 * c-common.c (c_expand_decl): Here and remove check for nested
2896 * c-common.h (c_expand_decl): Add prototype.
2897 * c-tree.h (c_expand_decl): Remove.
2899 2004-05-30 Roger Sayle <roger@eyesopen.com>
2901 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2902 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2903 fold_mathfn_compare, fold_inf_compare, fold,
2904 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2905 Use constant_boolean_node where appropriate. Don't bother using
2906 fold_convert on the second argument to omit_one_operand.
2908 2004-05-30 Roger Sayle <roger@eyesopen.com>
2910 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2911 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2912 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
2913 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2914 Add missing (but documented) tree nodes to the index.
2916 2004-05-30 Steven Bosscher <stevenb@suse.de>
2918 PR tree-optimization/14819
2919 * builtins.c (fold_builtin_strchr): New.
2920 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2921 with fold_builtin_strchr().
2923 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2925 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2926 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2927 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2928 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2929 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2930 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2931 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2932 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2933 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2936 2004-05-30 Steven Bosscher <stevenb@suse.de>
2938 * gimplify.c (sort_case_labels): New. Split out from...
2939 (gimplify_switch_expr): ...here. Use it.
2940 * tree-eh.c (lower_try_finally_switch): Sort the labels of
2941 the SWITCH_EXPR created here before leaving the function.
2942 * tree.c (sort_case_labels): Add prototype.
2944 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2946 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2949 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2951 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2952 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2953 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2954 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2955 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2956 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2957 comment typos. Follow spelling conventions.
2959 2004-05-29 Geoffrey Keating <geoffk@apple.com>
2961 * gengtype-yacc.y: Add NESTED_PTR token.
2962 (option): Record `nested_ptr' option.
2963 * gengtype-lex.l: Handle `nested_ptr' keyword.
2964 * gengtype.c (walk_type): Process `nested_ptr' option.
2965 * gengtype.h (struct nested_ptr_data): New.
2966 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2967 * stringpool.c (struct string_pool_data): Make 'entries' point to
2968 ht_identifier instead of tree.
2969 (gt_pch_save_stringpool): Don't adjust pointers.
2970 (gt_pch_restore_stringpool): Call ht_load.
2972 2004-05-29 Jason Merrill <jason@redhat.com>
2974 * gimplify.c (gimplify_expr): Don't build a statement list
2975 if no gimplification was necessary.
2977 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2979 * pretty-print.c (pp_base_format_text): Support %< instead of %`
2980 and %> as well as %'.
2981 * c-format.c: Use %< and %>.
2982 (gcc_diag_char_table, gcc_cdiag_char_table,
2983 gcc_cxxdiag_char_table): Update.
2985 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2987 * c-typeck.c (common_type): Correct comment.
2989 2004-05-29 Peter Barada <peter@the-baradas.com>
2991 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2992 * config/m68k/m68k.c (const_method): Likewise.
2993 * config/m68k/m68k.c (const_int_cost): Likewise.
2994 * config/m68k/m68k.c (const_int_cost): Likewise.
2995 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2997 2004-05-29 Peter Barada <peter@the-baradas.com>
2999 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
3001 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
3002 movsi,movhi,movqi insn patterns.
3004 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3006 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3009 * config/darwin.c (machopic_indirect_call_target): Copy
3010 the SYMBOL_REF_DECL from the original RTX for the new
3013 2004-05-28 DJ Delorie <dj@redhat.com>
3015 * stor-layout.c (place_field): Revert erroneous commit.
3017 2004-05-28 Ziemowit Laski <zlaski@apple.com>
3019 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3020 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3021 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3022 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3023 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3024 vec_ste): Remove type checks for integral parameters and literals
3025 from '..._args_eq' macros.
3027 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3029 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3031 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3033 * testsuite/g++.dg/charset/function.cc: New.
3035 * testsuite/gcc.dg/charset/function.c: New.
3037 * c-decl.c (c_make_fname_decl): Free return value from
3040 * cp/decl.c (cp_make_fname_decl): Free return value from
3043 * c-common.c (fname_as_string): Translate if necessary.
3045 2004-05-28 Geoffrey Keating <geoffk@apple.com>
3047 * stringpool.c: Add comments to PCH saving/restoring routines.
3049 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3051 * c-common.c (c_estimate_num_insns_1): Kill.
3052 (c_estimate_num_insns): Kill.
3053 * c-common.h (c_estimate_num_insns): Kill.
3055 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3056 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3057 Remove comment about not checking for
3058 _POSIX_PRIORITY_SCHEDULING.
3059 * gthr-posix.c: Likewise.
3061 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
3062 Roger Sayle <roger@eyesopen.com>
3064 PR rtl-optimization/15649
3065 Add LTGT_EXPR and improve pretty-printing of unordered
3067 * c-common.c (c_common_truthvalue_conversion):
3069 * c-typeck.c (build_binary_op): Likewise.
3070 * dojump.c (do_jump): Likewise.
3071 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3072 * predict.c (tree_predict_by_opcode): Likewise.
3073 * real.c (real_compare): Likewise.
3074 * tree-cfg.c (verify_expr): Likewise.
3075 * tree-inline.c (estimate_num_insns_1): Likewise.
3076 * tree-pretty-print.c (dump_generic_node): Likewise.
3077 Handle ORDERED_EXPR, UNORDERED_EXPR.
3078 (op_symbol): Print unordered comparisons differently
3080 * tree.def (LTGT_EXPR): New '<' tree code.
3081 * doc/c-tree.texi (Expressions): Document floating-point
3084 Fold comparisons between floating point values.
3085 * fold-const.c (enum comparison_code): New, from
3086 #define'd constants. Define compcodes for unordered
3087 comparisons and for invalid transformations.
3088 (invert_tree_comparison): Add "honor_nans" parameter.
3089 (fold_truthop): Revamp to work on floating-point types too.
3090 (comparison_to_compcode): Support unordered comparisons.
3091 Use new enum comparison_code.
3092 (compcode_to_comparison): Likewise.
3093 (combine_compcodes): New function.
3094 (invert_truthvalue): Let invert_tree_comparison decide
3095 whether it is valid to fold the comparison. Fold ORDERED
3096 and UNORDERED even if flag_unsafe_math_optimizations is off,
3097 and the remaining even if flag_unsafe_math_optimizations
3098 is off but we are under -fno-trapping-math.
3099 (fold_relational_const): Integer modes do not honor NaNs.
3101 2004-05-28 Paul Brook <paul@codesourcery.com>
3103 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3105 2004-05-28 Paul Brook <paul@codesourcery.com>
3107 * config/arm/arm.c (thumb_force_lr_save): New function.
3108 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3109 thumb_output_function_prologue): Use it.
3110 (thumb_expand_prologue): Set lr_save_eliminated.
3112 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3114 * config/mips/mips.md (extendsidi2): Tie the source and destination
3115 of the register alternative. Split it into nothing.
3117 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3119 * rtl.h (skip_consecutive_labels): Declare.
3120 * emit-rtl.c (skip_consecutive_labels): New function.
3121 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3122 * jump.c (follow_jumps): Say what null return values mean.
3124 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3127 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3129 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3131 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3133 * config/sh/libgcc-std.ver: New file.
3135 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3137 * except.c: Revert change of 2004-05-26.
3138 * config/i386/i386.md: Revert change of 2004-05-27.
3140 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3142 * configure.ac: Remove --enable-tree-browser option.
3143 Define TREEBROWSER when ac_tree_checking is defined.
3144 * configure: Rebuilt.
3146 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
3148 * expr.c (store_constructor): Restore sanity check on
3149 the size of the type before clearing.
3151 2004-05-27 Jan Hubicka <jh@suse.cz>
3153 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3155 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3157 * combine.c (gen_binary): Remove.
3158 (known_cond, simplify_shift_const
3159 find_split_point, combine_simplify_rtx,
3160 simplify_if_then_else, simplify_set,
3161 simplify_logical, expand_field_assignment,
3162 extract_left_shift, force_to_mode,
3163 if_then_else_cond, apply_distributive_law,
3164 simplify_and_const_int, simplify_shift_const,
3165 gen_lowpart_for_combine, simplify_comparison,
3166 reversed_comparison): Replace with
3167 simplify_gen_binary, simplify_gen_relational or
3168 distribute_and_simplify_rtx.
3169 (distribute_and_simplify_rtx): New function.
3170 * simplify-rtx.c (simplify_binary_operation):
3171 Use nonzero_bits to simplify ANDs where we are
3172 turning off bits already known to be off in OP0.
3174 2004-05-27 Alan Modra <amodra@bigpond.net.au>
3177 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3179 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
3182 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3185 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
3188 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3190 2004-05-26 Roger Sayle <roger@eyesopen.com>
3192 * tree.h: Fix comment typo.
3194 2004-05-27 Steven Bosscher <stevenb@suse.de>
3196 * gimplify.c (compare_case_labels): New function.
3197 (gimplify_switch_expr): Sort case labels, and make sure the
3198 last label in the label vector is the default case.
3199 * tree-cfg.c (group_case_labels): New function.
3200 (build_tree_cfg): Cleanup redundant labels and group case labels
3201 before creating edges.
3202 (cleanup_dead_labels): Handle GOTO_EXPRs.
3203 (find_case_label_for_value): Use a binary search to find the
3204 case label for the given value.
3205 * tree-gimple.c: Mention that labels are sorted, and that the
3206 last label must be the default.
3208 2004-05-27 Jan Hubicka <jh@suse.cz>
3210 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3212 2004-05-27 Jan Hubicka <jh@suse.cz>
3214 * i386.md (UNSPECV_EH_RETURN): Kill.
3215 (eh_return): Use jump_insn.
3216 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3218 2004-05-26 Jan Hubicka <jh@suse.cz>
3220 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3221 not loop optimizing.
3223 2004-05-26 Jan Hubicka <jh@suse.cz>
3225 * except.c (can_throw_internal): Notice RESX instructions.
3227 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3229 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3230 of the two sizes to assemble_integer.
3232 2004-05-25 Paul Brook <paul@codesourcery.com>
3234 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3237 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
3239 * Makefile.in (top_builddir): Define to .
3241 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
3243 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3244 top-level detects, except when in-tree ld is being cross-built.
3245 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3246 then AS only if target is host.
3247 * configure: Rebuilt.
3249 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3251 * global.c (global_alloc): Call make_accurate_live_analysis.
3252 (record_one_conflict): Remove dead code.
3253 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3254 (bb_info): New structure.
3255 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3256 (allocate_bb_info, free_bb_info, mark_reg_change,
3257 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3258 modify_bb_reg_pav, calculate_reg_pav,
3259 make_accurate_live_analysis): New functions.
3261 2004-05-25 Devang Patel <dpatel@apple.com>
3263 * alias.c (init_alias_analysis): Use ggc_calloc instead of
3265 (end_alias_analysis): Use ggc_free instead fo free.
3267 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
3270 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3271 as needed to be outputted.
3273 2004-05-25 Jan Hubicka <jh@suse.cz>
3275 * builtins.def (__builtin_expect): Mark the function as const¬hrow.
3277 2004-05-25 Ayal Zaks <zaks@il.ibm.com>
3278 Mostafa Hagog <mustafa@il.ibm.com>
3280 * Makefile.in (modulo-sched.o, ddg.o): New.
3281 * ddg.h, ddg.c, modulo-sched.c: New files.
3282 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3283 internals to "dupicate_insn".
3284 (duplicate_insn): New function.
3285 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3287 * common.opt (fmodulo-sched): New flag.
3288 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3289 Remove static and forward declaration.
3290 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3292 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3293 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3295 * flags.h (flag_modulo_sched): New flag.
3296 * opts.c (common_handle_option): Handle modulo-sched flag.
3297 * params.def (max-sms-loop-number, sms-max-ii-factor,
3298 sms-dfa-history, sms-loop-average-count-threshold): New
3300 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3301 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3303 * passes.c ("sms", "sms-vcg"): New dumps.
3304 (rest_of_handle_sched): Call sms_schedule.
3305 * rtl.h (sms_schedule): New declaration.
3306 * timevar.def (TV_SMS): New.
3307 * toplev.c (flag_modulo_sched): Initialize.
3308 (f_options): Handle -fmodulo-sched option.
3309 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3310 * docs/passes.texi: Document new SMS pass.
3312 2004-05-25 Paolo Bonzini <bonzini@gnu.org>
3314 * Makefile.in (OBJS): Add rtlhooks.o.
3315 (rtlanal.o): Depend on function.h.
3316 (cse.o): Depend on rtlhooks-def.h.
3317 (combine.o): Depend on rtlhooks-def.h.
3318 (rtlhooks.o): New rule.
3319 * combine.c: Include rtlhooks-def.h.
3320 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3321 num_sign_bit_copies, cached_num_sign_bit_copies,
3322 num_sign_bit_copies1): Move most of the code to rtlanal.c.
3323 (reg_nonzero_bits_for_combine,
3324 reg_num_sign_bit_copies_for_combine): New functions holding
3325 the remnants of the above.
3326 (combine_rtl_hooks): New.
3327 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3328 * cse.c: Include rtlhooks-def.h.
3329 (cse_rtl_hooks): New.
3330 (cse_main): Set rtl_hooks instead of gen_lowpart.
3331 * emit-rtl.c (gen_lowpart): Remove.
3332 (gen_lowpart_general): Move to rtlhooks.c.
3333 * rtl.h (nonzero_bits, num_sign_bit_copies,
3334 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3335 (gen_lowpart_general): Remove.
3336 (gen_lowpart): Temporarily redefine as a macro.
3337 * rtlanal.c: Include function.h.
3338 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3339 num_sign_bit_copies, cached_num_sign_bit_copies,
3340 num_sign_bit_copies1): New, from combine.c.
3341 * rtlhooks.c: New file.
3342 * rtlhooks-def.h: New file.
3344 2004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
3346 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3347 to support 32-bit -mint8 mode.
3349 * doc/invoke.texi (-mint8): Added documentation for the -mint8
3350 option in the AVR architecture.
3352 2004-05-24 Mike Stump <mrs@apple.com>
3354 * doc/install.texi: Document that dejagnu 1.4.4 is required.
3356 2004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
3358 * intl.h (open_quote, close_quote): New.
3359 * intl.c (open_quote, close_quote): New.
3360 (gcc_init_libintl): Set them.
3361 * pretty-print.c: Include "intl.h".
3362 (pp_base_format_text): Support 'q' format flag and %` and %'
3363 formats. Use ' instead of ` in comments.
3364 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3365 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3366 foramt_types_orig): Describe these new formats.
3367 (decode_format_attr, check_function_format,
3368 check_format_info_main): Use these new formats.
3369 (status_warning): Use ATTRIBUTE_GCC_DIAG.
3370 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3371 check these formats to 3.5.
3373 2004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3375 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3376 (BACKEND): Reflect this.
3377 (LIBDEPS): Move CPPLIB before LIBIBERTY.
3380 2004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
3382 PR tree-optimization/14197
3383 * builtins.c: Include "tree-gimple.h"
3384 (readonly_data_expr): Use get_base_address. Make sure to call
3385 decl_readonly_section only on trees it can handle.
3386 * tree-gimple.c (get_base_address): Accept STRING_CST and
3387 CONSTRUCTOR expressions.
3388 * Makefile.in: Update dependencies.
3390 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3392 Move libcpp to the toplevel.
3393 * Makefile.in: Remove references to libcpp files,
3394 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
3395 and change hashtable.h to that.
3396 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3397 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3398 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3399 * configure: Regenerate.
3400 * config.in: Regenerate.
3401 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3402 * cppcharset.c: Removed.