1 2004-06-21 Richard Henderson <rth@redhat.com>
3 * c-common.c (verify_sequence_points): Export.
4 (c_expand_expr_stmt): Move to c-typeck.c.
5 * c-common.h (c_expand_expr_stmt): Remove.
6 (verify_sequence_points): Declare.
7 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
8 * c-parse.in (for_init_stmt, stmt): Likewise.
9 * c-tree.h (c_finish_expr_stmt): Declare.
10 (c_tree_expr_nonnegative_p): Remove.
11 * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
12 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
13 (emit_side_effect_warnings): New.
14 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
15 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
16 Use emit_side_effect_warnings.
17 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
18 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
19 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
20 with void initializer.
21 (gimplify_target_expr): Handle void BIND_EXPR initializer.
22 * tree-inline.c (estimate_num_insns_1): Fix type lookup for
23 INIT_EXPR and MODIFY_EXPR.
24 * objc/objc-act.c (build_module_descriptor): Use add_stmt
25 instead of c_expand_expr_stmt.
27 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
29 * fold-const.c (fold_cond_expr_with_comparison):
30 New function, extracted from fold.
31 (fold): Extract code to fold A op B ? A : C, use
32 it to fold A op B ? C : A. Really optimize
33 A & N ? N : 0 where N is a power of two. Avoid
34 relying on canonicalization and recursion for
35 foldings of COND_EXPR to happen.
37 2004-06-20 David Ayers <d.ayers@inode.at>
39 * objc/objc-act.h (get_object_reference): Rename to
40 get_protocol_reference.
41 (super_type): Rename to objc_super_type.
42 (selector_type): Rename to objc_selector_type.
43 (id_type): Rename to objc_id_type.
44 (instance_type): Rename to objc_instance_type.
45 (protocol_type): Rename to objc_protocol_type.
46 (IS_ID): Update reference to id_type.
47 * objc/objc-act.c (get_object_reference): Rename to
48 get_protocol_reference; add documentation; update references to
50 (lookup_method_in_protocol_list): Rename class_meth to
51 is_class; add documentation.
52 (finish_message_expr): Rename is_class to class_tree.
53 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
54 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
55 build_next_objc_exception_stuff, get_arg_type_list,
56 build_objc_method_call): Update references to id_type.
57 (synth_module_prologue, build_objc_symtab_template,
58 build_selector_reference_decl, build_selector,
59 build_selector_translation_table, build_typed_selector_reference,
60 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
61 synth_self_and_ucmd_args): Update references to selector_type.
62 (build_private_template, build_ivar_reference): Update references
64 (synth_module_prologue, build_protocol_reference,
65 build_protocol_expr, start_protocol): Update references to
67 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
68 Update references to super_type.
69 * c-parse.in: (typespec_nonreserved_nonattr): Update
70 references to get_object_reference.
71 * objc/objc-tree.def: Add C mode identifier sequence.
73 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
75 * loop-invariant.c: New file.
76 * Makefile.in (loop-invariant.o): New.
77 * cfgloop.h (global_cost_for_size, init_set_costs,
78 move_loop_invariants): Declare.
79 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
81 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
83 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
84 * loop-init.c (loop_optimizer_init): Call init_set_costs.
85 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
86 (rest_of_compilation): Check flag_loop_optimize2.
87 * toplev.c (process_options): Handle flag_loop_optimize2.
88 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
89 * doc/passes.texi (loop-invariant.c): Document.
91 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
93 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
95 2004-06-20 Richard Henderson <rth@redhat.com>
97 * stmt.c (warn_if_unused_value): Add locus argument.
98 * tree.h (warn_if_unused_value): Update decl.
99 * c-typeck.c (internal_build_compound_expr): Update call.
100 * c-gimplify.c (gimplify_expr_stmt): Likewise.
102 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
105 * builtins.c (entry_of_function): Move to ...
106 * cfgrtl.c (entry_of_function): Here and make non-static.
107 * integrate.c (emit_initial_value_sets): Use entry_of_function.
108 * rtl.h (entry_of_function): Prototype.
110 2004-06-20 Roger Sayle <roger@eyesopen.com>
112 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
113 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
114 TARGET_DECOMPOSE_LEA.
116 2004-06-20 Richard Henderson <rth@redhat.com>
118 * c-common.h (add_decl_stmt): Move to cp-tree.h.
119 * c-decl.c (finish_decl): Don't use add_decl_stmt.
120 * c-parse.in: Likewise.
121 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
122 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
123 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
125 2004-06-20 Richard Henderson <rth@redhat.com>
127 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
128 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
129 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
130 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
131 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
132 * c-pretty-print.c (pp_c_statement): Similarly.
133 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
134 gimplify_if_stmt): Move to cp-gimplify.c.
135 (c_genericize, c_gimplify_expr): Don't call them.
136 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
137 * c-typeck.c (push_cleanup): New.
138 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
139 c_finish_if_stmt): Use COND_EXPR.
140 * tree.h (CLEANUP_EH_ONLY): Update documentation.
142 2004-06-20 Zack Weinberg <zack@codesourcery.com>
144 * c-common.h (has_c_linkage): New interface.
145 * c-cppbuiltin.c: Include target.h.
146 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
147 __PRAGMA_EXTERN_PREFIX when appropriate.
148 * c-pragma.c: Include target.h.
149 Document clarified semantics of symbol-renaming #pragmas.
150 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
151 (maybe_apply_renaming_pragma): Rewrite according to clarified
152 semantics. Always recognize, but do not necessarily execute.
153 (init_pragma): Unconditionally register symbol-renaming pragmas.
154 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
155 and HANDLE_PRAGMA_EXTERN_PREFIX.
156 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
157 and handle_pragma_extern_prefix flags.
158 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
159 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
160 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
161 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
162 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
163 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
164 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
165 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
166 not HANDLE_PRAGMA_EXTERN_PREFIX.
167 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
168 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
169 into one section "Symbol-Renaming Pragmas"; clarify; document
172 * builtins.c (expand_builtin): Do not issue error for a builtin
173 with no special case code and no DECL_ASSEMBLER_NAME; just do the
175 * c-decl.c (builtin_function): Don't call make_decl_rtl.
176 * c-objc-common.c (has_c_linkage): Stub implementation.
177 * cgraphunit.c (cgraph_expand_function)
178 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
180 2004-06-19 Roger Sayle <roger@eyesopen.com>
182 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
183 instead of both an ARGLIST and a result TYPE. Handle these C99
184 comparison functions as "polymorphic" builtins. Also handle
185 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
186 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
187 Move handling of BUILT_IN_ISUNORDERED from here to there.
189 2004-06-19 Richard Henderson <rth@redhat.com>
191 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
192 * c-gimplify.c: Remove unnecessary prototypes.
193 (c_gimplify_stmt): Merge into ...
194 (c_gimplify_expr): ... here. Don't play with prep_stmt.
195 * c-semantics.c (prep_stmt): Remove.
196 * gimplify.c (annotate_one_with_locus): Break out from ...
197 (annotate_all_with_locus): ... here.
198 (gimplify_expr): Add locus to expressions even if pre/post queues
201 2004-06-19 Richard Henderson <rth@redhat.com>
204 * function.c (assign_parms): If not padding upward or intentionally
205 forcing upward padding, take offset_rtx into account when determining
206 the alignment for stack_parm.
208 2004-06-19 Richard Henderson <rth@redhat.com>
211 * ifcvt.c (noce_try_move): Recognize all generated instructions.
213 2004-06-19 Jan Hubicka <jh@suse.cz>
215 * function.c (free_after_compilation): Do not free computed_goto_common*.
216 * function.h (struct function): Kill computed_goto_common*.
217 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
218 * tree-cfg.c (disband_implicit_edges): Do not forward across the
219 commonized computed goto.
221 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
223 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
226 2004-06-19 Andrew Pinski <apinski@apple.com>
229 * toplev.c (wrapup_global_declarations): Do not check
230 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
231 cgraph_varpool_node's needed field.
233 2004-06-19 Jan Hubicka <jh@suse.cz>
234 Steven Bosscher <stevenb@suse.de>
236 CFG transparent RTL expansion:
237 * Makefile.in (cfgexpand.o): New object file.
238 (builtins.o): Add dependency on basic-block.h
239 * builtins.c: Include basic-block.h
240 (entry_of_function): New function.
241 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
242 * cfgexpand.c: New file.
243 * expr.c (execute_expand, pass_expand): Kill.
244 * pass.c (rest_of_compilation): Do not build CFG unless called from
246 * tree-cfg.c (delete_tree_cfg): Rename to..
247 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
248 * tree-flow.h (delete_tree_cfg_annotations): Declare.
249 (dleete_tree_cfg): Kill.
250 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
251 (execute_del_cfg): Rename to...
252 (execute_free_datastructures): This one...
253 (pass_del_cfg): Rename to...
254 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
255 (init_tree_optimization_passes): Make cfg build and profiling to happen
258 2004-06-19 Steven Bosscher <stevenb@suse.de>
260 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
261 inserting the cache variables.
263 * tree-mudflap.c: Include headers to make basic_block available.
264 Move functions around such that related functions are near each
265 other. Add prototypes for all static functions. Add comments
266 briefly explaining what IR the mudflap1 and mudflap2 work on and
268 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
269 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
270 (pass_mudflap_1, pass_mudflap_2): Update.
271 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
273 (mf_build_check_statement_for): Make it work on the CFG.
274 (mf_xform_derefs_1): Likewise. Cleanup code style.
275 (mf_xform_derefs): Likewise.
277 2004-06-19 Jan Hubicka <jh@suse.cz>
279 * tree-cfg.c (label_to_block): Invent the label destination for
281 (cleanup_dead_labels): Update table in the case label_to_block added
284 2004-06-18 Richard Henderson <rth@redhat.com>
287 * gimple-low.c (lower_function_body): Generate return statement for
288 fall off the end of the function here ...
289 * tree-cfg.c (make_edges): ... instead of here.
290 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
292 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
294 * tree-ssa.c (raise_value): Removed.
295 (get_eq_name, check_phi_redundancy): New functions.
296 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
298 2004-06-18 Roger Sayle <roger@eyesopen.com>
300 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
301 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
302 constant folding for unordered comparison tree nodes. If both
303 operands are real constants, call fold_relational_const. If either
304 operand is a NaN, evaluate the other for side-effects and return a
305 constant. Optimize (double)float1 CMP (double)float2 into the
306 equivalent float1 CMP float2.
307 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
308 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
309 LTGT_EXPR>: Call fold_relational_const for constant operands.
310 (fold_relational_const): Add support for unordered comparison tree
311 nodes. Don't constant fold "ordered" floating point comparisons
312 against NaN if when flag_trapping_math is set.
314 2004-06-19 Jakub Jelinek <jakub@redhat.com>
316 * fold-const.c (build_range_check): If !in_p and recursive call
317 fails, exit immediately. If high - low overflows and etype is
318 a signed type, retry with unsigned etype.
319 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
320 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
322 2004-06-18 Richard Henderson <rth@redhat.com>
324 * c-gimplify.c (gimplify_condition): Remove.
325 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
328 2004-06-18 Richard Henderson <rth@redhat.com>
330 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
333 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
335 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
336 (NORMAL_TEXT_SECTION_NAME): Define.
337 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
338 (SECTION_FORMAT_STRING): Define.
340 2004-06-18 Steven Bosscher <stevenb@suse.de>
342 * config/xtensa/xtensa.c
343 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
344 * xtensa.md: Replace the old pipeline description with a DFA model.
346 2004-06-18 Steven Bosscher <stevenb@suse.de>
347 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
349 * config/s390/s390.md: Remove the generic pipeline description.
350 * config/s390/2064.md: Make all insn reservations apply to
352 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
353 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
354 Define to hook_int_void_1.
355 (s390_adjust_cost): Cleanup. Don't check address dependency here.
356 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
358 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
359 Diego Novillo <dnovillo@redhat.com>
361 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
362 (create_stmt_ann): Ditto.
363 (create_tree_ann): New function.
364 (create_cst_ann): Remove.
365 (create_expr_ann): Ditto.
367 * tree-flow-inline.h (cst_ann): Remove.
368 (get_cst_ann): Ditto.
369 (get_expr_ann): Ditto.
371 (get_tree_ann): New function.
373 (ann_type): tree_ann -> tree_ann_t.
374 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
375 (struct cst_ann_d): Removed.
376 (struct expr_ann_d): Ditto.
377 (union tree_ann_d): Removed cst and expr.
378 (tree_ann): Renamed to tree_ann_t.
379 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
380 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
382 (set_value_handle): Ditto.
383 (phi_translate): Ditto.
384 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
386 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
388 * config/sh/t-linux64: New file.
389 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
391 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
393 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
394 (unshare_all_rtl_again): Call unshare_all_rtl_1.
395 (unshare_all_rtl): New.
396 * function.c (instantiate_virtual_regs): Remove parameters.
397 * function.h (instantiate_virtual_regs): Add prototype.
398 * rtl.h (unshare_all_rtl): Add prototype.
399 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
401 * passes.c: Remove assertions on the parameters to
402 rest_of_handle_* functions. Remove the parameters to
403 the functions, replacing decl with current_function_decl
404 and insns with get_insns ().
406 2004-06-17 Roger Sayle <roger@eyesopen.com>
408 * fold-const.c (constant_boolean_node): Handle boolean_type_node
409 directly, return either boolean_true_node or boolean_false_node.
411 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
413 * opts.sh: Delete. Break out generated code to next four files.
414 * opt-gather.awk: New file.
415 * optc-gen.awk: New file.
416 * opth-gen.awk: New file.
417 * opt-functions.awk: New common file.
418 * Makefile.in: Update for above.
419 * configure.ac: Update comment.
420 * configure: Regenerate.
422 2004-06-17 Richard Henderson <rth@redhat.com>
424 * c-common.c (flag_objc_sjlj_exceptions): New.
425 * c-common.h (flag_objc_sjlj_exceptions): Declare.
426 * c-opts.c (c_common_handle_option): Set it.
427 (c_common_post_options): Handle interation of different
428 objective-c exception and runtime switches.
429 * c-decl.c (c_eh_initialized_p): New.
430 (finish_decl): Use it instead of local eh_initialized_p.
431 * c-parse.in (nested_function, notype_nested_function): Record
432 the result of compstmt.
433 (compstmt_or_error): Likewise.
434 (compstmt): Don't add_stmt the result.
435 (stmt): Don't return anything. Rewrite objc try and sync rules.
436 (objc_try_stmt, objc_catch_list): Remove.
437 (objc_catch_block, objc_finally_block): Remove.
438 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
439 (objc_try_catch_clause, objc_finally_clause): New.
440 (objc_try_catch_stmt): Rewrite.
441 * c-tree.h (c_eh_initialized_p): Declare.
442 * c-opt (fobjc-sjlj-exceptions): New.
443 * except.c (output_function_exception_table): Don't call cgraph
445 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
446 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
447 catch_count_stack, exc_binding_stack, if_nesting_count,
448 blk_nesting_count, objc_enter_block, objc_exit_block,
449 objc_declare_variable, val_stack_push, val_stack_pop,
450 objc_build_try_enter_fragment, objc_build_extract_expr,
451 objc_build_try_exit_fragment, objc_build_extract_fragment,
452 objc_build_try_prologue, objc_build_try_epilogue,
453 objc_build_catch_stmt, objc_build_catch_epilogue,
454 objc_build_finally_prologue, objc_build_finally_epilogue,
455 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
456 objc_build_synchronized_epilogue): Remove.
457 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
458 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
459 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
460 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
461 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
462 objc_begin_catch_clause, objc_finish_catch_clause,
463 objc_build_finally_clause, objc_finish_try_stmt,
464 objc_build_synchronized): New.
465 (objc_is_object_id, objc_is_class_id): New.
466 (objc_comptypes): Use them.
467 (build_next_objc_exception_stuff): Break NeXT sjlj out from
468 build_objc_exception_stuff.
469 (synth_module_prologue): Update to match.
470 (objc_build_throw_stmt): Use cur_try_context to decide if
472 * objc/objc-act.h: Update prototypes.
473 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
475 2004-06-17 Andrew Pinski <apinski@apple.com>
477 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
478 Use TYPE_FIELDS instead of TYPE_VALUES.
480 2004-06-17 Jason Merrill <jason@redhat.com>
483 * gimplify.c (gimplify_target_expr): Handle void initializer.
484 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
485 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
488 2004-06-17 Roger Sayle <roger@eyesopen.com>
490 * fold-const.c (fold_relational_const): Use constant_boolean_node.
492 2004-06-17 Jan Hubicka <jh@suse.cz>
495 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
496 operand numbering in the output template.
497 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
499 2004-06-17 Jan Hubicka <jh@suse.cz>
501 * except.c (can_throw_internal): Recognize RESX expresisons.
503 2004-06-17 Jan Hubicka <jh@suse.cz>
505 * cfgbuild.c (make_edges): Do not use label_value_list.
506 (find_basic_blocks_1): Do not collect label_value_list.
507 (find_sub_basic_blocks): Update call of make_edges.
509 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
511 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
512 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
513 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
514 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
515 (get_v_may_def_result_ptr): Return a def_operand_p.
516 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
517 (get_v_must_def_op_ptr): Return a def_operand_p.
518 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
519 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
520 (phi_element_for_edge): Remove.
521 * tree-flow.h (propagate_value, replace_exp): Change prototype.
522 (propagate_tree_value): Add new prototype.
523 (phi_element_for_edge): Remove prototype.
524 * tree-into-ssa.c (mark_def_sites): Use new operand types.
525 (prepare_operand_for_rename): Split into two functions.
526 (prepare_use_operand_for_rename): Prepare use operands.
527 (prepare_def_operand_for_rename): Prepare def operands.
528 (rewrite_stmt): Use new operand types.
529 (rewrite_operand): Use new operand types, change parameter type.
530 * tree-outof-ssa.c (replace_variable): Split into two functions.
531 (replace_use_variable): Rewrite uses.
532 (replace_def_variable): Rewrite defs.
533 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
534 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
535 (add_phi_arg, remove_phi_arg_num): Use new operand types.
536 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
537 (ccp_fold, replace_uses_in): Use new operand types.
538 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
539 and no longer set the value, change parameter type.
540 (replace_exp_1): Use new operand types.
541 (propagate_value): Change parameter type, use new operand types.
542 (propagate_tree_value): Propagate_value without SSA operands.
543 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
544 (cprop_into_successor_phis): Use new operand types.
545 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
546 (eliminate_redundant_computations): Use new operand types.
547 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
548 (fix_stmt_v_may_defs): Use new operand_types.
549 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
550 (build_tree_conflict_graph): Use new operand_types.
551 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
552 * tree-ssa-operands.c (struct freelist_d): Remove.
553 (check_optype_freelist, add_optype_freelist): Remove.
554 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
555 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
556 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
557 Call ggc_free instead of add_optype_freelist.
558 (init_ssa_operands, fini_ssa_operands): Remove free list code.
559 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
560 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
561 (struct use_optype_d): Change underlying type.
562 (def_operand_p, use_operand_p): New types for pointers to operands.
563 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
564 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
565 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
567 (SET_USE, SET_DEF): New macros to set operands from their pointer.
568 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
569 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
570 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
571 PHI result as an operand.
572 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
573 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
574 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
575 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
576 PHI_ARG_DEF_FROM_EDGE.
577 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
578 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
580 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
582 PR tree-optimization/15991
583 * tree-cfg.c (tree_block_label): Export.
584 * tree-flow-inline.h (bsi_after_labels): New function.
585 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
586 * tree-ssa.c (propagate_into_addr): New function.
587 (replace_immediate_uses): Handle propagation of pointer constants.
588 (raise_value): Do not restrict propagation of pointer constants.
589 * tree-ssanames.c (duplicate_ssa_name): New function.
590 * tree.h (duplicate_ssa_name): Declare.
592 2004-06-17 David Ayers <d.ayers@inode.at>
594 * c-parse.in: Unify Objective-C token names.
596 2004-06-17 Zack Weinberg <zack@codesourcery.com>
599 * Makefile.in (min-insn-modes.o): Correct dependencies.
600 * real.c (encode_ieee_extended, decode_ieee_extended): Always
601 produce/consume 12-byte little-endian Intel format.
602 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
603 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
604 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
605 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
606 New functions which convert between 12-byte little-endian Intel
607 format and the desired format.
608 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
609 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
612 2004-06-17 Zack Weinberg <zack@codesourcery.com>
614 * expmed.c (expand_mult_const): In sanity check, compare only
615 the bits of val and val_so_far that are significant in the
618 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
620 * tree-ssa-pre.c: Update comments.
621 (val_expr_pair_eq): Factor code from here.
622 (expr_pred_trans_eq): and here.
623 (expressions_equal_p): To here.
624 (print_value_set): Print value for expression.
625 (phi_trans_lookup): Rename some variables.
627 (value_exists_in_set_bitmap): Ditto.
628 (value_remove_from_set_bitmap): Ditto.
629 (value_insert_into_set_bitmap): Ditto.
631 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
633 * config/s390/s390-modes.def (CCL3mode): New machine mode.
634 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
635 (s390_alc_comparison, s390_slb_comparison): Likewise.
636 (s390_branch_condition_mask): Likewise.
637 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
638 ("*subsi3_cc2", "*subsi3_cconly2"): New.
640 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
641 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
642 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
643 Handle SIGN_EXTEND and ZERO_EXTEND.
645 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
646 * config/s390/s390.c (s390_expand_addcc): New function.
647 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
648 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
649 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
651 2004-06-17 Ben Elliston <bje@au.ibm.com>
653 * tree-alias-common.c: Add whitespace.
654 * tree-inline.c: Correct comment about this file's purpose.
655 * tree-optimize.c: Likewise.
656 * tree-tailcall.c: Likewise.
658 * tree-alias-ander.h: Add standard top-of-file comment.
659 * tree-alias-common.h: Likewise.
660 * tree-alias-type.h: Likewise.
662 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
664 * tree-ssa-pre.c (compute_avail): Value number uses as well.
665 Strip useless type conversions.
666 Casts have to be treated slightly different than normal unaries.
668 2004-06-16 Richard Henderson <rth@redhat.com>
670 * c-common.def (COMPOUND_STMT): Remove.
671 * c-common.c (finish_fname_decls): Don't look through it.
672 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
673 * c-common.h (COMPOUND_BODY): Remove.
674 (c_common_stmt_codes): Remove COMPOUND_STMT.
675 * c-dump.c (c_dump_tree): Likewise.
676 * c-gimplify.c (c_gimplify_stmt): Likewise.
677 * c-pretty-print.c (pp_c_statement): Likewise.
678 * tree.h (DECL_SAVED_TREE): Update commentary.
679 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
680 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
681 (GOTO_EXPR): Rename from GOTO_STMT.
682 (GOTO_FAKE_P): Remove.
683 (COMPOUND_STMT): Remove.
684 (HANDLER): Update wrt COMPOUND_STMT.
685 (STMT_EXPR): Likewise.
686 (LABEL_EXPR): Rename from LABEL_STMT.
687 (SCOPE_STMT): Remove.
688 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
689 through COMPOUND_STMT.
691 2004-06-16 Richard Henderson <rth@redhat.com>
693 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
694 c_finish_while_stmt_cond): Remove decls.
695 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
696 * c-typeck.c (c_begin_if_stmt): Return void.
697 (c_begin_else): Tidy. Save stmt_count.
698 * c-tree.h (c_begin_if_stmt): Update decl.
700 * objc/objc-act.c (objc_build_try_enter_fragment,
701 objc_build_extract_fragment, objc_build_try_epilogue,
702 objc_build_catch_stmt, objc_build_catch_epilogue,
703 objc_build_finally_prologue, objc_build_finally_epilogue): Update
704 for if builder function changes.
706 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
708 * config/s390/s390.c (struct machine_function): New member
710 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
711 Do not modify machine->save_return_addr_p or regs_ever_live.
712 Fill in machine->last_restore_gpr.
713 (s390_optimize_prolog): Use s390_frame_info to compute registers
714 to save/restore, remove duplicated code.
715 (s390_arg_frame_offset): Use s390_frame_info to compute frame
716 size, remove duplicated code.
717 (s390_emit_prologue): Adapt s390_frame_info call. Update
718 machine->save_return_addr_p and regs_ever_live.
719 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
720 machine->last_save_gpr.
722 2004-06-16 Richard Henderson <rth@redhat.com>
724 * c-parse.in (if_stmt_locus): Remove.
725 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
726 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
727 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
728 empty_locus. Add stmt_count, saw_else.
729 (c_begin_if_stmt): Push if_stack here.
730 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
731 (c_finish_then, c_finish_else): Record empty_locus.
732 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
733 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
735 * c-tree.h: Update prototypes.
737 2004-06-16 Steven Bosscher <stevenb@suse.de>
739 * tree.h (PHI_CHAIN): New.
740 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
741 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
742 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
743 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
744 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
745 when traversing a list of PHI_NODEs.
747 2004-06-16 Bernardo Innocenti <bernie@develer.com>
750 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
752 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
753 68040 and soft-float.
754 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
755 in the TARGET_68040_ONLY case.
757 2004-06-16 Peter Barada <peter@the-baradas.com>
759 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
760 (movsi_cf): Make named, don't match TARGET_CFV4.
761 (pushexthisi_const): Use mov3q if possible.
762 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
763 to special case mvz.w for ColdFire V4.
764 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
765 to special case mvz.b for ColdFire V4.
766 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
768 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
769 * config/m68k/m68k.c(valid_mov3q_const): New function.
770 (const_method): SWAP is valid for ColdFire.
771 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
772 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
774 2004-06-16 Richard Henderson <rth@redhat.com>
776 * c-common.def (CASE_LABEL): Remove.
777 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
778 (match_case_to_enum_1): Likewise.
779 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
780 * c-dump.c (c_dump_tree): Likewise.
781 * c-gimplify.c (c_gimplify_stmt): Likewise.
782 * c-pretty-print.c (pp_c_statement): Likewise.
783 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
784 * tree.h (CASE_LOW): Update commentary.
786 2004-06-16 Richard Henderson <rth@redhat.com>
788 * c-common.def (ASM_STMT): Remove.
789 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
790 * c-dump.c (c_dump_tree): Likewise.
791 * c-gimplify.c (c_gimplify_stmt): Likewise.
792 * c-pretty-print.c (pp_c_statement): Likewise.
793 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
794 * tree.h: Fix commentary.
796 2004-06-16 Richard Henderson <rth@redhat.com>
798 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
799 * c-common.c (c_add_case_label): Use LABEL_EXPR.
800 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
801 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
802 * c-dump.c (c_dump_tree): Likewise.
803 * c-gimplify.c (c_gimplify_stmt): Likewise.
804 * c-pretty-print.c (pp_c_statement): Likewise.
805 * c-parse.in (stmt): Use GOTO_EXPR.
806 (label): Use LABEL_EXPR.
807 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
808 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
810 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
812 * cfgcleanup.c (try_simplify_condjump): Update test to make
813 sure we have a conditional branch around am unconditional branch.
815 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
817 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
819 2004-06-16 Dale Johannesen <dalej@apple.com>
821 * loop.c (loop_givs_reduce): Avoid miscompilation of
822 loops entered at bottom.
824 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
826 * cfglayout.c (fixup_reorder_chain): Handle case where the
827 destination of E_FALL is EXIT_BLOCK_PTR.
829 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
832 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
833 after shifts before asm.
835 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
837 PR tree-optimization/15993
838 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
839 destination is unchanged.
841 2004-06-16 Andreas Jaeger <aj@suse.de>
843 * doc/install.texi (Configuration): Update description for
844 --enable-version-specific-runtime-libs.
846 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
848 * doc/install.texi: boehm-gc now uses automake 1.8.5.
850 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
852 * toplev.h (rest_of_compilation): Adjust prototype.
854 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
856 * coverage.c: Remove argument to rest_of_compilation.
857 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
858 * passes.c (rest_of_compilation): Remove argument.
859 (pass_rest_of_compilation): New.
860 (rest_of_handle_final, rest_of_handle_delay_slots,
861 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
862 rest_of_handle_machine_reorg, rest_of_handle_regrename
863 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
864 rest_of_handle_regmove, rest_of_handle_tracer
865 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
866 rest_of_handle_web, rest_of_handle_branch_prob
867 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
868 rest_of_handle_addressof, rest_of_handle_jump_bypass
869 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
870 Check that the two arguments are actually superfluous.
871 * tree-optimize.c (register_dump_files): Add properties argument.
872 Track validity of passes. Only initialize dump files for
873 tree-based passes. Store the full set of provided passes in
875 (init_tree_optimization_passes): Register pass_expand and
876 pass_rest_of_compilation.
877 (execute_one_pass): Do not track the presence of required properties
878 here. Set in_gimple_form. Do not update current_properties.
879 (current_properties): Remove.
880 (set_save_expr_context): Remove.
881 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
882 expand to RTL here, and do not call rest_of_compilation. Push
883 GGC context even before gimplification.
884 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
885 (pass_expand, pass_rest_of_compilation): Declare.
887 2004-06-15 Jeff Law <law@redhat.com>
889 * fold-const.c (swap_tree_comparison): No longer static.
890 (tree_swap_operands_p): Similarly. Return true if both operands
891 are SSA_NAMEs and the first operand has a higher version number than
893 * tree.h (swap_tree_comparison): Prototype.
894 (tree_swap_operands_p): Prototype.
895 * tree-ssa-operands.c (get_expr_operands): For commutative
896 operators and relational comparisons, canonicalize the
897 order of the operands.
899 2004-06-15 Richard Henderson <rth@redhat.com>
901 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
902 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
903 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
904 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
905 (finish_fname_decls, fname_decl): Use statement_lists.
906 (c_expand_expr_stmt): Don't set last_expr_type.
907 (c_type_hash): Fix indentation.
908 (c_safe_from_p): Don't follow TREE_CHAIN.
909 (c_tree_chain_matters_p): Remove.
910 * c-common.def (SCOPE_STMT): Remove.
911 (CLEANUP_STMT): Redefine to contain its own body.
912 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
913 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
915 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
916 (cur_stmt_list): New.
917 (STATEMENT_LIST_STMT_EXPR): New.
918 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
919 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
921 (CLEANUP_DECL): Move to operand 2.
922 (c_common_stmt_codes): Remove SCOPE_STMT.
923 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
924 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
925 (c_push_function_context, c_pop_function_context): Don't save it.
926 (finish_decl): Set TREE_USED on the decl for a cleanup.
928 (store_parm_decls): Use statement lists.
929 (finish_function): Remove compstmt rule workaround. Use statement
930 lists. Call finish_fname_decls after finalizing the body.
931 (c_begin_compound_stmt): Move to c-typeck.c.
932 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
933 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
934 (c_genericize): Invoke them.
935 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
936 (c_build_bind_expr): Export.
937 (gimplify_block, gimplify_cleanup): Remove.
938 (gimplify_condition): Use gimplify_stmt.
939 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
940 (gimplify_if_stmt): Remove recursion hack.
941 (c_gimplify_expr): Remove STMT_EXPR handling.
942 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
943 (is_last_stmt_of_scope): Remove.
944 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
945 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
947 * c-objc-common.c (build_cdtor): Likewise.
948 * c-parse.in (primary): Use c_finish_stmt_expr.
949 (push_scope, pop_scope): Remove.
950 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
951 (c99_block_end, compstmt): Use c_end_compound_stmt.
952 (c99_block_lineno_labeled_stmt): Likewise.
953 (compstmt_primary_start): Use c_begin_stmt_expr.
954 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
955 (do_stmt_start): Fill in body directly.
956 (lineno_stmt): Avoid setting lineno on constants.
957 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
959 * c-semantics.c (begin_stmt_tree): Remove.
960 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
961 (add_stmt): Use statement lists.
962 (add_scope_stmt, finish_stmt_tree): Remove.
964 * c-tree.h: Move some decls from c-common.h.
965 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
966 (do_case, c_finish_case): Likewise.
967 (c_finish_then): Take body for then as argument.
968 (c_finish_else): Similarly.
969 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
970 c_finish_for_stmt_incr, c_finish_for_stmt): New.
971 (c_begin_stmt_expr, c_finish_stmt_expr): New.
972 (c_begin_compound_stmt): Do scope management.
973 (c_end_compound_stmt): New.
974 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
975 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
976 Look through exception handling constructs.
977 (gimplify_bind_expr): Accept temporary argument.
978 (gimplify_target_expr): Special case BIND_EXPR bodies.
979 (gimplify_expr): Handle fallback == fb_none like a statement.
980 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
981 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
982 * langhooks.h (tree_chain_matters_p): Remove.
983 * stub-objc.c (objc_clear_super_receiver): New.
984 * tree-gimple.h (voidify_wrapper_expr): Update decl.
985 (append_to_statement_list, append_to_statement_list_force): Move
987 * tree-inline.c (expand_call_inline): Update call.
988 (clone_body): Use statement lists.
989 (walk_tree): Don't check tree_chain_matters_p.
990 (copy_tree_r): Likewise.
991 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
992 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
993 * tree-iterator.h (append_to_statement_list,
994 append_to_statement_list_force): Moved from tree-gimple.h.
995 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
996 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
997 (objc_enter_block): Likewise.
998 (objc_exit_block): Use c_end_compound_stmt.
999 (objc_build_try_enter_fragment): Add #error and comment for
1000 rewriting for OBJCPLUS.
1001 (objc_build_extract_fragment, objc_build_try_epilogue,
1002 objc_build_catch_stmt, objc_build_finally_prologue,
1003 objc_build_finally_epilogue): Update for C statement builders.
1004 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
1007 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1009 * df.c (df_reg_clobber_gen): Removed.
1010 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
1011 Make more effective for hard regs.
1012 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
1014 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
1016 * c-pragma.h (c_lex_string_translate): Change type to int.
1017 * c-parse.in: Change all assignments of c_lex_string_translate
1018 to true and false to 1 and 0.
1019 * c-lex.c (c_lex_string_translate): Likewise.
1020 (lex_string): Convert string without translation in the -1
1023 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
1025 * convert.h: Add include guards
1027 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1029 * tree-flow-inline.h: Document all functions.
1031 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1033 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1034 * tree-dfa.c (create_stmt_ann): Ditto.
1035 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1036 * tree-inline.c (estimate_num_insns_1): Ditto.
1037 * tree.c (tree_size): Ditto.
1038 (make_node_stat): Ditto.
1039 (tree_node_structure): Ditto.
1040 (ephi_node_elt_check_failed): Remove.
1041 (is_essa_node): Ditto.
1042 * tree.def (EPHI_NODE): Ditto.
1043 (EEXIT_NODE): Ditto.
1045 (EKILL_NODE): Ditto.
1046 * tree.h (EREF_NODE_CHECK): Remove.
1047 (EPHI_NODE_ELT_CHECK): Ditto.
1048 (struct tree_eref_common): Ditto.
1049 (struct tree_euse_node): Ditto.
1050 (struct ephi_arg_d): Ditto.
1051 (struct tree_ephi_node): Ditto.
1052 (ephi_node_elt_check_failed): Remove prototype.
1053 (is_essa_node): Ditto.
1054 (enum tree_node_structure_enum): Remove TS_E*_NODE.
1055 (union tree_node): Remove E*_NODE uses.
1057 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
1059 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1060 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1061 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1063 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1064 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1065 expand_builtin_strcmp, expand_builtin_strncmp,
1066 expand_builtin_frame_address): Likewise.
1067 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1068 insert_one_insn): Likewise.
1069 * calls.c (prepare_call_address, precompute_register_parameters,
1070 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1071 * cfganal.c (flow_active_insn_p): Likewise.
1072 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1073 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1074 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1075 make_extraction, recog_for_combine, gen_lowpart_for_combine,
1076 simplify_comparison, record_dead_and_set_regs_1,
1077 record_dead_and_set_regs, record_promoted_value,
1078 check_promoted_subreg, get_last_value_validate, get_last_value,
1079 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1080 unmentioned_reg_p_1): Likewise.
1081 * conflict.c (mark_reg): Likewise.
1082 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1083 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1084 merge_equiv_classes, flush_hash_table, invalidate,
1085 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1086 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1087 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1088 record_jump_cond, cse_insn, addr_affects_sp_p,
1089 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1090 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1091 cse_cc_succs, cse_condition_code_reg): Likewise.
1092 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1093 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1094 cselib_record_set, cselib_record_sets): Likewise.
1095 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1096 dbxout_block): Likewise.
1097 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1098 * dojump.c (do_jump): Likewise.
1099 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1100 is_based_loc, rtl_for_decl_location): Likewise.
1101 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1102 set_decl_incoming_rtl, mark_user_reg): Likewise.
1103 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1104 copy_to_suggested_reg, allocate_dynamic_stack_space,
1105 probe_stack_range, hard_function_value): Likewise.
1106 * expmed.c (store_bit_field, store_fixed_bit_field,
1107 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1108 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1110 * expr.c (convert_move, convert_modes,
1111 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1112 use_group_regs, emit_move_insn, emit_move_insn_1,
1113 compress_float_constant, push_block, emit_single_push_insn,
1114 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1115 store_constructor, store_field, force_operand, safe_from_p,
1116 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1118 * final.c (profile_function, final_scan_insn, alter_subreg,
1119 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1120 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1121 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1122 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1123 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1124 attempt_auto_inc, find_auto_inc, mark_used_regs,
1125 count_or_remove_death_notes_bb): Likewise.
1126 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1127 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1128 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1129 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1130 purge_single_hard_subreg_set, instantiate_decl,
1131 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1132 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1133 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1134 expand_function_start, diddle_return_value, clobber_return_register,
1135 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1136 update_epilogue_consts): Likewise.
1137 * genemit.c (gen_exp, gen_insn): Likewise.
1138 * genrecog.c (make_insn_sequence): Likewise.
1139 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1140 mark_reg_conflicts, set_preference, reg_becomes_live,
1141 build_insn_chain, mark_reg_change): Likewise.
1142 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1144 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1146 * integrate.c (copy_rtx_and_substitute, try_constants,
1147 subst_constants, mark_stores, allocate_initial_values): Likewise.
1148 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1149 delete_computation, rtx_renumbered_equal_p, true_regnum,
1150 reg_or_subregno): Likewise.
1151 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1152 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1153 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1154 wipe_dead_reg, no_conflict_p): Likewise.
1155 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1156 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1157 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1158 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1159 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1160 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1161 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1162 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1163 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1164 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1165 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1166 try_swap_copy_prop): Likewise.
1167 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1168 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1170 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1171 reload_cse_simplify_operands, reload_combine,
1172 reload_combine_note_store, reload_combine_note_use,
1173 reload_cse_move2add, move2add_note_store): Likewise.
1174 * print-rtl.c (print_rtx): Likewise.
1175 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1176 contains_pseudo, handle_asm_insn): Likewise.
1177 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1178 dump_static_insn_cost): Likewise.
1179 * ra-rewrite.c (slots_overlap_p, emit_colors,
1180 remove_suspicious_death_notes): Likewise.
1181 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1182 register_operand, scratch_operand, nonmemory_operand,
1183 constrain_operands): Likewise.
1184 * reg-stack (check_asm_stack_operands, remove_regno_note,
1185 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1186 subst_asm_stack_regs): Likewise.
1187 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1188 record_address_regs, reg_scan_mark_refs): Likewise.
1189 * regmove.c (discover_flags_reg, replacement_quality,
1190 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1191 fixup_match_1): Likewise.
1192 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1193 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1194 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1195 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1196 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1197 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1198 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1199 find_reloads_subreg_address, find_replacement,
1200 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1201 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1202 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1203 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1204 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1205 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1206 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1207 do_output_reload, emit_reload_insns, gen_reload,
1208 delete_address_reloads_1, inc_for_reload): Likewise.
1209 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1210 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1211 * resource.c (update_live_status, mark_referenced_resources,
1212 mark_set_resources, mark_target_live_regs): Likewise.
1213 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1214 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1215 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1216 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1217 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1218 parms_set, find_first_parameter_load, keep_with_call_p,
1219 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1220 num_sign_bit_copies1): Likewise.
1221 * rtlhooks.c (gen_lowpart_general): Likewise.
1222 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1223 sched_analyze): Likewise.
1224 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1226 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1227 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1228 simplify_binary_operation, simplify_const_relational_operation,
1229 simplify_subreg): Likewise.
1230 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1231 expand_end_stmt_expr, expand_return, expand_decl,
1232 expand_anon_union_decl): Likewise.
1233 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1234 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1235 loop_iterations): Likewise.
1236 * var-tracking.c (variable_union, variable_part_different_p,
1237 variable_different_p, count_uses, add_uses, add_stores,
1238 compute_bb_dataflow, set_variable_part, delete_variable_part,
1239 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1241 * varasm.c (assemble_variable): Likewise.
1243 2004-06-15 Chris Demetriou <cgd@broadcom.com>
1245 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1247 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1248 #undef and #if 0'd definition.
1250 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1252 * combine.c (distribute_notes): Comment typo fix.
1254 2004-06-15 Roger Sayle <roger@eyesopen.com>
1256 * expmed.c (synth_mult): Mask bits of the multiplier to the
1257 machine mode of the multiplication. Don't consider shifts
1258 by more than (or equal to) the width of the operation's mode.
1260 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1262 * doc/install.texi: Yet another update for autoconf
1263 and automake versions.
1265 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1267 * function.h (struct function): Remove cannot_inline field.
1268 (current_function_cannot_inline): Remove.
1269 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1270 Simplify conditionals to ignore warn_return_type.
1271 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1273 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1274 Do not set current_function_cannot_inline.
1276 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1278 * cfglayout.c (fixup_reorder_chain): Handle case where the
1279 destination of E_TAKEN is EXIT_BLOCK_PTR.
1281 2004-06-15 Diego Novillo <dnovillo@redhat.com>
1283 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1285 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1287 * fold-const.c (operand_equal_p): Update comment.
1289 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1291 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1292 (INCOMING_RETURN_ADDR_RTX): Define.
1293 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1294 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1295 __builtin_return_address(0).
1296 (m32r_return_addr): Added for __builtin_return_address(0).
1297 (m32r_reload_lr): Ditto.
1299 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1301 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1303 * doc/install.texi (Prerequisites): Update libbanshee,
1304 fastjar, libcpp, libjava/libltdl entries to
1307 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
1308 Olivier Hainque <hainque@act-europe.fr>
1310 * function.c (fixup_var_refs): Also adjust the start of sequence
1311 after fixing up the insns.
1313 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1315 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1317 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
1319 * doc/install.texi (Prerequisites): Update libstdc++ entry to
1322 2004-06-14 Eric Christopher <echristo@redhat.com>
1324 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1325 to -mtpf-trace (-mno-tpf-trace).
1326 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1329 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1331 * real.c: Fix bit count in head comment.
1333 2004-06-14 Jeff Law <law@redhat.com>
1335 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1336 PHIs where the destination or an argument is marked with
1337 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1339 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1342 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1343 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1345 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1347 * opts.sh (var_args): Fix regexp.
1349 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1352 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1354 2004-06-14 Paul Brook <paul@codesourcery.com>
1356 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1358 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1360 * Makefile.in (FLAGS_H): New.
1361 (flags.h): Replace by FLAGS_H.
1362 * c.opt: Document Var, VarExists, Init and Report attributes.
1363 * common.opt: Fill the values of the attributes.
1364 * diagnostic.c (flag_fatal_errors): Do not define.
1365 * except.c (flag_non_call_exceptions): Do not define.
1366 * flags.h: Include options.h. Remove declarations conflicting with
1367 the automatically defined ones.
1368 * opts.c: Remove automatically defined variables.
1369 (handle_option): Perform default initialization.
1370 (common_handle_option): Do not handle options covered by the
1371 default initialization.
1372 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1375 * opts.sh: Generate variable declarations, handle CL_REPORT.
1376 * toplev.c: Remove automatically defined variables.
1377 (f_options): Removed.
1378 (print_switch_values): Use cl_options instead of f_options.
1379 * toplev.h (version_flag): Declaration removed.
1381 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
1383 * config/sparc/sparc.h: Correct comment about availability of
1384 little endian option.
1386 * config.gcc: Remove sparc64-*-aout*.
1387 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1388 * config/sparc/sp64-aout.h: Remove.
1389 * config/sparc/aout.h: Remove.
1391 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
1393 * config/s390/s390.c: Include "tree-gimple.h".
1394 (s390_gimplify_va_arg): New function.
1395 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1396 (s390_va_arg): Remove.
1397 * config/s390/s390-protos.h (s390_va_arg): Remove.
1398 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1400 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
1402 * basic-block.h (could_fall_through): Declare.
1403 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1404 Fail if the source already has a fallthrough edge to the exit
1406 (could_fall_through): New function.
1407 * cfgbuild.c (make_edges): Check if we already have a fallthrough
1408 edge to the exit block pointer.
1409 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1410 not called before reload has completed.
1411 Handle special case of first block having a fall-through exit edge.
1412 (cfg_layout_finalize): Don't call it before reload or if we have
1414 (fixup_reorder_chain): A fall through to the exit block does not
1415 require the block to come last. Add sanity checks.
1416 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1417 edges to the exit block.
1418 * function.c (cfglayout.h): #include.
1419 (thread_prologue_and_epilogue_insns): If we have neither return nor
1420 epilogue, but a fall through to the exit block from mid-function,
1421 force a non-fall-through exit.
1422 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1424 2004-06-14 Alan Modra <amodra@bigpond.net.au>
1426 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1427 for power5 and rs64a. Correct condition for default. Correct power3,
1428 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
1430 2004-06-13 Steven Bosscher <stevenb@suse.de>
1432 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1433 Revert previous change, don't use CALL_P.
1435 2004-06-13 Jason Merrill <jason@redhat.com>
1437 * tree.h: Move std_gimplify_va_arg_expr protoype here.
1438 * tree-gimple.h: From here.
1440 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1442 Fix PR tree-optimization/15979
1443 Fix PR tree-optimization/15981
1444 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1445 try to insert values undefined along some path.
1447 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1449 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1450 are available everywhere too.
1452 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
1454 * fold-const.c (fold_checksum_tree <case 't'>): Only
1455 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1456 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1457 EXPR is an INTEGERAL_TYPE or a scalar float type.
1459 2004-06-13 Diego Novillo <dnovillo@redhat.com>
1461 * tree-sra.c (tree_sra): Update documentation.
1463 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
1465 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1466 function_types_compatible_p, type_lists_compatible_p): Remove
1468 * c-tree.h (comptypes): Likewise.
1469 (COMPARE_STRICT): Remove.
1470 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1473 2004-06-13 Eric Christopher <echristo@redhat.com>
1475 * c-decl.c (diagnose_mismatched_decls): Improve error message.
1477 * c-typeck.c (comptypes): Add location in standard we're checking.
1479 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
1481 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1484 2004-06-12 Roger Sayle <roger@eyesopen.com>
1486 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1487 index by machine mode.
1488 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1489 tables inside the loop over machine modes.
1490 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1491 expand_divmod): Index shift*_cost by the appropriate machine mode.
1493 2004-06-12 Eric Christopher <echristo@redhat.com>
1495 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1496 * config/s390/s390.md: Ditto.
1497 * config/s390/s390.c: Ditto.
1498 (s390_frame_info): Conditionalize frame and setup info on
1499 TARGET_TPF_PROFILING.
1500 (s390_arg_frame_offset): Ditto.
1502 2004-06-12 Roger Sayle <roger@eyesopen.com>
1504 * fold-const.c (omit_two_operands): New function.
1505 * tree.h (omit_two_operands): Prototype here.
1506 * builtins.c (fold_builtin_unordered_cmp): New function to lower
1507 C99 unordered comparison builtins to the appropriate tree nodes.
1508 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1509 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1510 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
1511 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1512 (simplify_builtin_memcmp, simplify_builtin_strncmp,
1513 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1514 omit_two_operands function to build the required COMPOUND_EXPRs.
1516 2004-06-12 Steven Bosscher <stevenb@suse.de>,
1517 Andreas Jaeger <aj@suse.de>
1519 * gcse.c (record_set_info): Use predicates like REG_P.
1520 (mems_conflict_for_gcse_p): Likewise.
1521 (load_killed_in_block_p): Likewise.
1522 (hash_expr_1): Likewise.
1523 (insert_set_in_table): Likewise.
1524 (gcse_constant_p): Likewise.
1525 (hash_scan_set): Likewise.
1526 (hash_scan_insn): Likewise.
1527 (canon_list_insert): Likewise.
1528 (record_last_mem_set_info): Likewise.
1529 (record_last_set_info): Likewise.
1530 (compute_hash_table_work): Likewise.
1531 (mark_set): Likewise.
1532 (mark_clobber): Likewise.
1533 (mark_oprs_set): Likewise.
1534 (compute_transp): Likewise.
1535 (find_avail_set): Likewise.
1536 (cprop_insn): Likewise.
1537 (do_local_cprop): Likewise.
1539 (find_implicit_sets): Likewise.
1540 (find_bypass_set): Likewise.
1541 (bypass_conditional_jumps): Likewise.
1542 (insert_insn_end_bb): Likewise.
1543 (pre_insert_copy_insn): Likewise.
1544 (compute_transpout): Likewise.
1545 (next_ls_expr): Likewise.
1546 (invalidate_any_buried_refs): Likewise.
1547 (compute_ld_motion_mems): Likewise.
1548 (reg_set_info): Likewise.
1549 (reg_clear_last_set): Likewise.
1550 (find_moveable_store): Likewise.
1551 (compute_store_table): Likewise.
1552 (find_loads): Likewise.
1553 (store_killed_in_insn): Likewise.
1554 (insert_insn_start_bb): Likewise.
1555 (reg_set_between_after_reload_p): Likewise.
1556 (reg_used_between_after_reload_p): Likewise.
1557 (is_jump_table_basic_block): Likewise.
1558 (gcse_after_reload): Likewise.
1559 (hash_scan_set_after_reload): Likewise.
1560 (compute_hash_table_after_reload): Likewise.
1562 2004-06-12 Steven Bosscher <stevenb@suse.de>
1564 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1565 (INSN_P): Don't look at the rtx code class, just explicitly
1566 check for one of the tree RTX_INSN codes.
1568 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1570 * c-typeck.c (default_function_array_conversion): Use
1571 build_pointer_type not TYPE_POINTER_TO.
1573 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1575 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1576 * configure, config.in: Regenerate.
1577 * system.h: Unconditionally define bool as unsigned char,
1578 BOOL_BITFIELD as unsigned int.
1579 * domwalk.h: Use BOOL_BITFIELD.
1581 2004-06-12 Andreas Jaeger <aj@suse.de>
1583 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1584 * libgcc-darwin.ver: Likewise.
1586 2004-06-12 Peter Jakubek <peter@laseranimation.com>
1588 * reload.c (find_reloads): Force reload for pseudo registers on big
1591 2004-06-11 Steven Bosscher <stevenb@suse.de>
1593 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1594 Don't try to mark anything control dependent on the entry or
1597 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
1601 * tree.h (SSA_NAME_VALUE): New macro.
1602 (struct tree_ssa_name): Add value_handle member.
1603 * tree-ssa-pre.c: Replaced.
1604 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1605 (struct cst_ann_d): New.
1606 (struct expr_ann_d): New.
1607 (union tree_ann_d): Add cst_ann, expr_ann.
1608 * tree-dfa.c (create_cst_ann): New function.
1609 (create_expr_ann): Ditto.
1610 * tree-flow-inline.h (cst_ann): New function.
1612 (get_cst_ann): Ditto.
1613 (get_expr_ann): Ditto..
1615 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1617 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1618 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1619 _U_Qfcmp library function.
1620 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1621 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1623 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1624 unspec used for loading address from DLT.
1625 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1626 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1627 Don't use short code sequence when loading the address of a nonlocal
1629 (nonlocal_goto): New expander.
1630 (indirect_goto): New jump pattern for nonlocal gotos.
1631 (short_jump): Remove extra whitespace.
1632 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
1633 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1636 2004-06-11 Roger Sayle <roger@eyesopen.com>
1638 * expmed.c (synth_mult): Add an additional MODE argument for the
1639 machine mode of the multiplication. Update recursive calls. Use
1640 mode instead of word_mode for determining operation costs.
1641 (choose_mult_variant): Update calls to synth_mult with "mode".
1643 2004-06-11 Richard Henderson <rth@redhat.com>
1645 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1646 and makes_aliased_stores.
1648 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1650 * doc/install.text (--enable-shared): Fix typo.
1652 2004-06-11 Richard Henderson <rth@redhat.com>
1654 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1655 argument. Use internal post for call to gimplify_expr. Tidy
1656 rounded type size computation.
1657 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1658 get_initialized_tmp_var.
1660 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1662 * doc/install.texi (--enable-shared): Update libobjc's shared library
1663 status. Remove reference to libf2c.
1665 2004-06-11 Jason Merrill <jason@redhat.com>
1667 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1668 * config/i386/i386.c (ix86_va_arg): Remove.
1669 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1670 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1671 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1672 * config/alpha/alpha.c (alpha_va_arg): Remove.
1673 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1674 * config/sparc/sparc.c (sparc_va_arg): Remove.
1676 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1677 assignment might throw.
1678 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1681 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
1684 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1686 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
1688 * doc/install.texi (Prerequisites): Update documentation of
1689 required versions of autoconf and automake. Remove mention of
1692 2004-06-11 Jason Merrill <jason@redhat.com>
1694 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1695 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1697 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
1699 * typeclass.h: Add GPL plus exception license. Add include
1702 2004-06-10 Jason Merrill <jason@redhat.com>
1704 * gimplify.c (gimplify_modify_expr): Don't force a temporary
1705 of an aggregate_value_p type.
1707 2004-06-10 Jeff Law <law@redhat.com>
1709 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1710 code when we are in gimple form.
1712 2004-06-10 Diego Novillo <dnovillo@redhat.com>
1714 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1715 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1716 (highest_ssa_version): Remove.
1717 * tree-outof-ssa.c (new_temp_expr_table): Replace
1718 highest_ssa_version with num_ssa_names.
1719 (dump_replaceable_exprs): Likewise.
1720 (rewrite_vars_out_of_ssa): Likewise.
1721 * tree-ssa-ccp.c (initialize): Likewise
1722 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1723 * tree-ssa-dce.c (tree_dce_init): Likewise.
1724 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1725 * tree-ssa-live.c (create_ssa_var_map): Likewise.
1726 (dump_var_map): Likewise.
1727 * tree-ssa.c (verify_ssa): Likewise.
1728 (kill_redundant_phi_nodes): Likewise.
1729 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
1730 * tree-ssanames.c: Include tree-flow.h
1731 (ssa_names): New varray.
1732 (init_ssa_names): Initialize ssa_names.
1733 Reserve the first slot of the ssa_names table.
1734 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1735 Assign version numbers using num_ssa_names.
1737 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
1739 * doc/sourcebuild.texi (Front End): Add details of more
1740 installation documentation required.
1742 2004-06-10 Brian Booth <bbooth@redhat.com>
1744 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1745 of V_MAY_DEF and V_MUST_DEF.
1746 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1747 num_vdefs to num_v_may_defs.
1748 (compute_immediate_uses_for_stmt): Rename occurences of vdef
1750 (redirect_immediate_uses): Ditto.
1751 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1752 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1753 Also add code to sum up the number of v_must_defs.
1754 (vdefs_disappeared_p): Replace with...
1755 (v_may_defs_disappeared_p): This.
1756 (v_must_defs_disappeared_p): New function.
1757 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1758 Also add code to mark new variables found in V_MUST_DEFs for
1760 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1761 vdef_ops to v_may_def_ops.
1762 (get_vdef_ops): Replace with...
1763 (get_v_may_def_ops): This.
1764 * tree-flow-inline.h (get_vdef_ops): Replace with...
1765 (get_v_may_def_ops): This.
1766 (get_v_must_def_ops): New function.
1767 (get_vdef_result_ptr): Replace with...
1768 (get_v_may_def_result_ptr): This.
1769 (get_vdef_op_ptr): Ditto with...
1770 (get_v_may_def_op_ptr); This.
1771 (get_v_must_def_op_ptr): New function.
1772 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1773 to v_may_def. Also add code to mark statements with
1774 V_MUST_DEFs as definition sites.
1775 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1776 add code to register new V_MUST_DEFs made by the statement.
1777 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1778 (check_replaceable): Rename occurences of vdef to v_may_def. Also
1779 add check for V_MUST_DEFs.
1780 (find_replaceable_in_bb): Ditto.
1781 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1782 to v_may_def. Also add code to dump V_MUST_DEFs.
1783 * tree-sra.c (mark_all_vdefs): Replace with...
1784 (mark_all_v_may_defs): This.
1785 (mark_all_v_must_defs): New function.
1786 (create_scalar_copies): Replace call to mark_all_vdefs with
1787 calls to mark_all_v_may_defs and mark_all_v_must_defs.
1788 (scalarize_structures): Rename occurences of vdef to v_may_def.
1789 Also add a check for V_MUST_DEFs.
1790 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1791 * tree-ssa-alias.c (global_var): Update comment.
1792 (compute_may_aliases): Ditto.
1793 (compute_points_to_and_addr_escape): Rename occurences of vdef
1794 to v_may_def. Also add code to mark variables in V_MUST_DEF
1795 operands as being written to.
1796 (group_aliases): Update comment.
1797 (maybe_create_global_var): Ditto.
1798 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1799 Also add a check for V_MUST_DEFs on GIMPLE registers.
1800 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1801 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1802 to v_may_def. Also add code to mark all V_MUST_DEF operands
1804 (initialize): Ditto.
1805 (set_rhs): Rename occurences of vdef to v_may_def. Also add
1806 code to update SSA_NAMEs in V_MUST_DEFs.
1807 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1809 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1810 occurences of vdef to v_may_def. Also add code to mark statements
1811 with V_MUST_DEFs as necessary.
1812 (propagate_necessity): Rename occurences of vdef to v_may_def.
1813 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1814 occurences of vdef to v_may_def. Also add code to mark operands
1815 in V_MUST_DEFs for renaming.
1816 (eliminate_redundant_computations): Rename occurences of vdef
1818 (record_equivalences_from_stmt): Rename occurences of vdef
1819 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1820 (optimize_stmt): Remove unnesessary variable vdefs. Update
1822 (register_definitions_for_stmt): Rename occurences of vdef
1823 to v_may_def. Also add code to register definitions made with
1825 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1826 (fix_stmt_v_may_defs): This.
1827 (fix_phi_uses): Rename occurences of vdef to v_may_def.
1828 (dse_optimize_stmt): Ditto.
1829 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1830 to v_may_def. Also add code to mark V_MUST_DEF operands as being
1831 used in virtual operators.
1832 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1833 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1835 * tree-ssa-operands.c (opf_kill_def): New flag for killing
1837 (build_vdefs): Renamed to...
1838 (build_v_may_defs): This.
1839 (build_v_must_defs): New variable.
1840 (voperands_d): Add v_must_def_ops and replace vdef_ops with
1842 (append_vdef): Replace with...
1843 (append_v_may_def): This.
1844 (append_v_must_def): New function.
1845 (NUM_FREE): Increment for V_MUST_DEF
1846 (optype_freelist): Increment its size for V_MUST_DEF
1847 (allocate_vdef_optype): Replace with...
1848 (allocate_v_may_def_optype): This.
1849 (allocate_v_must_def_optype): New function.
1850 (free_vdefs): Replace with...
1851 (free_v_may_defs): This.
1852 (free_v_must_defs): New function.
1853 (remove_vdefs): Replace with...
1854 (remove_v_may_defs): This.
1855 (remove_v_must_defs): New function.
1856 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1857 add code to initialize build_v_must_defs.
1858 (finalize_ssa_vdefs): Replace with...
1859 (finalize_ssa_v_may_defs): This.
1860 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1861 (finalize_ssa_v_must_defs): New function.
1862 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1863 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1864 (verify_start_operands): Rename occurences of vdef to v_may_def.
1865 Also add check for build_v_must_defs.
1866 (get_stmt_operands): Rename occurences of vdef to v_may_def.
1867 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1868 killing definitions.
1869 (get_expr_operands): Update comment and use opf_kill_def for
1870 killing definitions.
1871 (add_stmt_operand): Replace code that appends VDEFs with code
1872 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1874 (add_call_clobber_ops): Update comments.
1875 * tree-ssa-operands.h (vdef_optype_d): Replace with...
1876 (v_may_def_optype_d): This.
1877 (v_must_def_optype_d): New structure.
1878 (VDEF_OPS): Replace with...
1879 (V_MAY_DEF_OPS): This.
1880 (STMT_VDEF_OPS): Same with...
1881 (STMT_V_MAY_DEF_OPS): This.
1883 (NUM_V_MAY_DEFS): This.
1884 (VDEF_RESULT_PTR): As well as...
1885 (V_MAY_DEF_RESULT_PTR): This.
1886 (VDEF_RESULT): Same goes for...
1887 (V_MAY_DEF_RESULT): This.
1888 (VDEF_OP_PTR): And...
1889 (V_MAY_DEF_OP_PTR): This.
1891 (V_MAY_DEF_OP): This.
1892 (V_MUST_DEF_OPS): New macro.
1893 (STMT_V_MUST_DEF_OPS): Ditto.
1894 (NUM_V_MUST_DEFS): Ditto.
1895 (V_MUST_DEF_OP_PTR): Ditto.
1896 (V_MUST_DEF_OP): Ditto.
1897 (remove_vdefs): Replace signature with...
1898 (remove_v_may_defs): This.
1899 (remove_v_must_defs): New function signature.
1900 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1901 with calls to remove_v_may_defs and remove_v_must_defs.
1902 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1903 Also add code that marks left occurences of operands in V_MUST_DEFs.
1904 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1905 to v_may_def. Also add check for V_MUST_DEFs.
1906 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1908 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
1911 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1914 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1917 * doc/install.texi: Remove superfluous linebreak.
1919 2004-06-10 Roger Sayle <roger@eyesopen.com>
1921 * builtins.c (expand_builtin): Fall back to library function call for
1922 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1923 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1924 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1925 IMAGPART_EXPR respectively.
1927 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
1929 * sh.c (dump_table): New argument start. Changed caller.
1930 (fixup_mova): New function.
1931 (find_barrier): Use it.
1932 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
1933 If the label a mova refers to is above the mova itself, change
1934 the mova into a load.
1935 * sh.md (*casesi_worker): Rename to:
1937 (casesi_worker_2): New insn.
1939 2004-06-10 Jason Merrill <jason@redhat.com>
1941 * target.h (struct gcc_target): Change gimplify_va_arg_expr
1943 * tree-gimple.h: Adjust.
1944 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1945 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1947 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1948 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1949 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
1950 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
1951 (gimplify_va_arg_expr): Return GS_ERROR in error case.
1952 Gimplify valist rather than calling stabilize_va_list.
1954 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1956 * Makefile.in (df.o): Remove fibheap dependency.
1957 * df.h: Do not include sbitmap.h.
1958 (struct ref): New field "data".
1959 (DF_REF_DATA): New accessor macro.
1960 (struct df): Field "dom" removed.
1961 (df_analyze_subcfg): New function.
1962 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1963 (transfer_function): ... new type.
1964 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1965 (iterative_dataflow): ... new function.
1966 (enum set_representation, struct dataflow): New.
1967 * df.c: Do not include fibheap.h.
1969 (df_reg_def_chain_clean, df_reg_use_chain_clean,
1970 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1971 prune_to_subcfg, df_bb_modify): New functions.
1972 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1973 df_refs_update, df_reg_table_realloc, df_ref_create,
1974 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1975 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1976 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1978 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1979 (df_rd_transfer_function, df_ru_transfer_function,
1980 df_lr_transfer_function): Type of bitmaps changed to void *.
1981 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1982 (hybrid_search): ... new function.
1983 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1984 (iterative_dataflow): ... new function. Avoid use of fibheaps for
1985 a worklist. Do not process basic blocks unnecessarily.
1987 2004-06-10 Roger Sayle <roger@eyesopen.com>
1989 * fold-const.c (fold_abs_const): Make extern.
1990 * tree.h (fold_abs_const): Prototype here.
1991 * builtins.c (fold_builtin_fabs): New function to transform
1992 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1993 (fold_builtin_abs): New function to transform abs, labs, llabs
1994 and imaxabs builtins into ABS_EXPR tree nodes.
1995 (expand_builtin): Fall back to a function call for abs, labs,
1996 llabs and imaxabs builtins that survive constant folding.
1997 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1998 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
2000 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2002 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
2003 leaf function without unwind info at RP 0.
2005 2004-06-10 Jakub Jelinek <jakub@redhat.com>
2008 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
2009 (fileptr_type_node): Define.
2010 * tree.c (build_common_tree_nodes_2): Initialize
2011 fileptr_type_node to ptr_type_node.
2012 * c-common.c (c_common_nodes_and_builtins): For C++, make
2013 fileptr_type_node a distinct type copy.
2014 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
2015 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
2016 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
2017 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
2018 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
2019 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
2020 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
2021 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
2022 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
2023 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
2024 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
2025 the above *FILEPTR* types instead of *PTR*.
2027 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
2029 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2032 2004-06-09 Roger Sayle <roger@eyesopen.com>
2034 * fold-const.c (fold_not_const): New function.
2035 (fold) <ABS_EXPR>: Don't bother testing wins.
2036 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2037 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2039 2004-06-09 Richard Henderson <rth@redhat.com>
2042 * function.c (assign_parms): Always set_mem_align with the computed
2043 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
2045 2004-06-09 Richard Henderson <rth@redhat.com>
2048 * tree-tailcall.c (find_tail_calls): Don't check early for
2049 tail_recursion failure.
2051 2004-06-09 Diego Novillo <dnovillo@redhat.com>
2053 Move SSA_NAME annotations into tree_ssa_name.
2055 * tree-dfa.c (create_ssa_name_ann): Remove.
2056 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2057 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2058 (struct ssa_name_ann_d): Remove.
2059 (union tree_ann_d): Update.
2060 (ssa_name_ann_t): Remove.
2061 * tree-ssa-alias.c: (get_ptr_info): New local function.
2062 Replace references to ssa_name_ann_t with struct ptr_info_def.
2063 * tree-ssa-operands.c (get_expr_operands): Likewise.
2064 * tree.h (SSA_NAME_PTR_INFO): Define.
2065 (struct ptr_info_def): Declare.
2066 (struct tree_ssa_name): Add field 'ptr_info'.
2068 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
2070 * config/i386/winnt.c (i386_pe_output_labelref): Correct
2073 2004-06-09 Steven Bosscher <stevenb@suse.de>
2075 * config/i386/k6.md: Rewrite using the DFA model.
2076 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2077 cost of load-operation insns for the K6.
2078 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2079 (ia32_multipass_dfa_lookahead): Likewise.
2081 2004-06-09 Richard Henderson <rth@redhat.com>
2083 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2084 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2086 2004-06-09 Richard Henderson <rth@redhat.com>
2088 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2090 2004-06-09 Geoffrey Keating <geoffk@apple.com>
2092 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2093 (CPP_ID_DATA_H): New.
2094 (gtype-desc.o): Update dependencies.
2095 (GTFILES): Use CPP_ID_DATA_H.
2097 2004-06-09 Mark Mitchell <mark@codesourcery.com>
2101 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2102 * doc/extend.texi: Deprecate #pragma interface and #pragma
2105 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
2107 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2109 2004-06-09 Richard Henderson <rth@redhat.com>
2111 * basic-block.h (struct edge_def): Add goto_locus.
2112 * tree-cfg.c (make_goto_expr_edges): Set it.
2113 (disband_implicit_edges): Use it.
2114 * tree-pretty-print.c (dump_implicit_edges): Print it.
2116 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2118 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2120 2004-06-08 Jason Merrill <jason@redhat.com>
2122 Gimplify VA_ARG_EXPR into simpler forms.
2123 * target.h: Add gimplify_va_arg_expr hook.
2124 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2125 * fold-const.c (build_fold_addr_expr)
2126 (build_fold_addr_expr_with_type): Move from gimplify.c.
2127 * tree.h: Declare them.
2128 * gimplify.c (gimplify_and_add): New fn.
2129 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2130 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2131 (gimplify_expr): Use build_fold_*.
2132 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2133 don't know how to gimplify it.
2134 * builtins.c (std_gimplify_va_arg_expr): New fn.
2135 (dummy_object): New static fn.
2136 (gimplify_va_arg_expr): New fn.
2137 (stabilize_va_list): Use build_fold_*.
2138 * tree-gimple.h: Declare new fns.
2139 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2140 (ix86_gimplify_va_arg): New fn.
2141 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2142 (ia64_gimplify_va_arg): New fn.
2143 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2144 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2145 * alias.c (get_varargs_alias_set): Just return 0 for now.
2147 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2149 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2151 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2153 * tree-inline.c (setup_one_parameter): Likewise.
2154 * tree-sra.c (csc_build_component_ref): Likewise.
2155 * tree-ssa-ccp.c (ccp_fold): Likewise.
2156 * tree-ssa-copy.c (cprop_operand): Likewise.
2157 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2158 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2160 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2162 PR rtl-optimization/15521:
2163 * sched-int.h (in_post_call_group_p): Change type to enum.
2164 * sched-deps.c (sched_analyze_insn):
2165 (sched_analyze): When in_post_call_group_p is post_call_initial,
2166 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2167 and also reset in_post_call_group_p to post_call.
2168 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2169 initialize in_post_call_group_p as post_call_initial.
2170 (init_deps): initialize in_post_call_group_p to not_post_call.
2172 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2175 * doc/install.texi: List ada, libada as options to --enable-shared
2177 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
2179 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2180 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2182 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2183 if hard links are not available.
2184 * configure: Regenerate.
2185 * config.in: Regenerate.
2187 2004-06-08 Per Bothner <per@bothner.com>
2189 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2191 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2193 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2196 2004-06-08 James E Wilson <wilson@specifixinc.com>
2199 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2201 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2203 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2204 POINTER_TYPE and INTEGER_TYPE.
2206 2004-06-08 Bernardo Innocenti <bernie@develer.com>
2208 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2211 2004-06-08 Jeff Law <law@redhat.com>
2213 * doc/contrib.texi: Add entries for Stefan Olsson and
2216 2004-06-08 DJ Delorie <dj@redhat.com>
2218 * toplev.c (floor_log2_wide): Replace loop with faster bit
2220 (exact_log2_wide): Define in terms of the above.
2221 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2224 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2226 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2227 Make sure that we are in INDIRECT mode when getting the
2230 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2232 * h8300.md (extendqisi2_h8300): Add constraints.
2233 (ldm_h8300s_4_normal): Fix typo.
2235 2004-06-08 Richard Henderson <rth@redhat.com>
2237 * gimple-low.c (struct lower_data): Replace the_return_label and
2238 one_return_stmt with return_statements.
2239 (lower_function_body): Process the entire list of return_statements.
2240 (lower_return_expr): Check source value before unifying return_exprs.
2241 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2242 for !aggregate_value_p.
2243 * tree-gimple.c: Update RETURN_EXPR grammer.
2245 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2248 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2250 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2252 PR rtl-optimization/15717
2253 * config/i386/i386.c (legitimate_constant_p): Do not allow
2256 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
2258 * gimplify.c (copy_if_shared_r): Revert:
2259 2004-05-21 Richard Henderson <rth@redhat.com>
2260 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2262 2004-06-07 Roger Sayle <roger@eyesopen.com>
2264 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2265 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2266 (init_expmed): Initialize these cost arrays as appropriate.
2267 (store_bit_field, extract_bit_field): Correct whitespace.
2268 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2269 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2270 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2271 word_mode or compute_mode as appropriate.
2273 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2276 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2277 parameter. Enumerate the registers inside the PARALLEL.
2278 (function_arg): Adjust call to function_arg_union_value.
2279 (function_value): Likewise.
2281 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2283 2004-06-07 Roger Sayle <roger@eyesopen.com>
2285 * real.c (real_copysign): New function to implement libm's copysign.
2286 * real.h (real_copysign): Prototype here.
2287 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2288 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2289 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2290 fold_builtin_isdigit): Add function prototypes.
2291 (fold_builtin_copysign): New function to fold copysign, copysignf
2292 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
2293 constant arguments at compile-time using real_copysign. Fold
2294 copysign(X,Y) as fabs(X) if Y is always non-negative.
2295 (fold_builtin_1): Correct minor whitespace/style issues. Call
2296 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2298 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
2300 * tree.c (iterative_hash_expr): Use real_hash.
2302 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
2305 * c-parse.in (compstmt_primary_start): Set last_expr_type to
2308 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2311 * doc/extend.texi: Deprecate #pragma interface and #pragma
2314 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
2317 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2318 builtin decl as well.
2320 2004-06-07 Roger Sayle <roger@eyesopen.com>
2323 * c-typeck.c (require_constant_value, require_constant_elements):
2324 Move declarations to the top of the file.
2325 (build_function_call): If we require a constant value, fold with
2326 fold_initializer. If the result is a constant, and the function
2327 wasn't called using __builtin_foo, issue a pedantic warning.
2328 (build_unary_op): If we require a constant value, fold tree with
2330 (build_binary_op): Use require_constant_value to determine whether
2331 to call fold or fold_initializer.
2333 2004-06-07 Richard Henderson <rth@redhat.com>
2335 * gimple-low.c (struct lower_data): Add the_return_label and
2337 (lower_function_body): Initialize and use them.
2338 (lower_return_expr): New.
2339 (lower_stmt): Call it.
2340 * gimplify.c (gimplify_return_expr): Force the argument to be either
2341 null or a result_decl.
2342 * tree-gimple.c: Update gimple grammer to match.
2343 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2344 coalescing of result_decls.
2346 2004-06-07 Richard Henderson <rth@redhat.com>
2349 * expmed.c (extract_bit_field): Fix vector_extract return.
2351 * config/i386/i386.md (negv4sf2): New pattern.
2353 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2356 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2359 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
2361 * config.in: Regenerate.
2363 2004-06-06 Steven Bosscher <stevenb@suse.de>
2365 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2366 SWITCH_LABELS are always sorted.
2368 2004-06-06 Steven Bosscher <stevenb@suse.de>
2370 * hooks.c (hook_int_void_1): New generic hook.
2371 * hooks.h (hook_int_void_1): Add prototype.
2372 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2373 Define to hook_int_void_1.
2374 * config/c4x/c4x.md: Replace dummies for the old pipeline model
2375 with dummies for the new one.
2377 2004-06-06 Roger Sayle <roger@eyesopen.com>
2379 * tree.h (lvalue_or_else): Delete function prototype.
2380 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
2382 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2385 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2386 a live change of a register after peephole replacement.
2388 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
2391 * c-typeck.c (composite_type, common_pointer_type): New functions.
2392 (common_type): Split parts into composite_type and
2393 common_pointer_type. Ensure that arithmetic operations return
2394 unqualified types without attributes. Don't make composite type
2395 of signed enum and compatible integer be unsigned.
2396 (build_conditional_expr, build_binary_op): Use
2397 common_pointer_type.
2398 * c-decl.c (merge_decls): Use composite_type.
2399 * c-tree.h (composite_type): Declare.
2401 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2404 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2405 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2406 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2407 (inhibit_libc): Must define.
2408 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2409 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2410 ("xorhi3"): Likewise.
2412 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2414 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2417 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
2419 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2420 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2422 2004-06-05 Bernardo Innocenti <bernie@develer.com>
2424 * regclass.c (init_reg_sets): Check for missing registers in target
2425 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2427 2004-06-05 Zack Weinberg <zack@codesourcery.com>
2429 * Makefile.in (MKDEPS_H): New shorthand.
2430 (c-opts.o): Update dependencies.
2431 * c-opts.c: Include mkdeps.h.
2432 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2433 not cpp_add_dependency_target.
2435 2004-06-05 Steven Bosscher <stevenb@suse.de>
2437 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2438 * config/v850/v850.md: Convert to DFA scheduler description.
2440 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2443 * doc/install.texi: Document GMP as prerequisite. Document
2444 --with-gmp and --with-gmp-dir configure options.
2445 * fortran/gfortran.texi: Remove section "Compiling and testing",
2446 remove TOC reference to it.
2448 2004-06-05 Graham Stott <graham.stott@btinternet.com>
2450 * combine.c(simplify_shift_const): Check shift amount is a
2453 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
2455 * toplev.c (init_asm_output): Add explicit 'b' to mode when
2456 opening asm_out_file.
2457 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2458 reading asm_out_file. Replace fflush after reading asm_out_file
2460 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2461 default and add to HOST_HOOKS_INITIALIZER.
2462 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2463 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2464 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2465 to set mmi.offset padding.
2466 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2467 $(srcdir)/config/i386/winnt.c.
2468 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2469 (i[34567]86-*-uwin*): Likewise.
2470 *i[34567]86-*-interix3*): Likewise.
2471 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2472 * config/i386/host-mingw32.c: New file.
2473 * config/i386/x-mingw32: Add rule for host-mingw32.o.
2474 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2475 (extern_head): Likewise.
2476 (struct export_list) Likewise.
2477 (export_head): Likewise.
2478 (i386_pe_record_external_function): Use ggc_alloc.
2479 (i386_pe_record_exported_symbol): Likewise.
2480 Include "gt-winnt.h" at end.
2481 * doc/hostconfig.texi: Document
2482 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2484 2004-06-04 Bernardo Innocenti <bernie@develer.com>
2486 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2487 Rename 68000 and 68k to m68k for consistency in comments. Remove
2488 trailing whitespace before EOLs and before TABs.
2489 (MAX_CODE_ALIGN): Remove unused macro.
2490 (CALL_USED_REGISTERS): Reformat and add comments.
2492 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
2494 * gcc.c (MFLIB_SPEC): Remove library references, to require users
2495 to enumerate -lmudflap* and dependencies when linking.
2497 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
2500 * dojump.c (do_jump): Fix uninitialized variable tcode1.
2502 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
2504 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2505 * genconditions.c (write_header): Back out removal of reload.h.
2507 2004-06-04 Jan Hubicka <jh@suse.cz>
2509 Re-apply hopefully fixed patch:
2510 * i386.md (UNSPECV_EH_RETURN): Kill.
2511 (eh_return): Use jump_insn.
2512 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2514 2004-06-04 Jeff Law <law@redhat.com>
2516 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2518 2004-06-04 Steven Bosscher <stevenb@suse.de>
2520 * except.c (for_each_eh_region): New function.
2521 * except.h (for_each_eh_region): Add a prototype for it.
2522 * tree-cfg.c (update_eh_labels): New function, callback for
2524 (label_for_bb): Make global static, unfortunately.
2525 (cleanup_dead_labels): Also update label references for
2528 2004-06-03 Chris Demetriou <cgd@broadcom.com>
2530 * config/mips/mips.c (struct irix_section_align_entry): Fix
2533 2004-06-03 Geoffrey Keating <geoffk@apple.com>
2535 * toplev.c (check_global_declarations): Don't ask for
2536 DECL_ASSEMBLER_NAME unless the function really is declared
2537 static and not defined.
2539 2004-06-03 Matt Austern <austern@apple.com>
2542 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2543 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2544 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2545 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2546 documentation to reflect the new macro name and to clarify its
2549 2004-06-03 Steven Bosscher <stevenb@suse.de>
2551 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2553 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
2555 * config/darwin.c (machopic_indirect_data_reference): Copy
2556 the SYMBOL_REF_DECL from the original RTX for the new
2557 non-lazy pointer RTX.
2559 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2561 * tree.h: Remove include of version.h
2562 * c-cppbuiltin.c: Include version.h
2563 * diagnostic.c: Include version.h
2564 * dwarf2out.c: Include version.h
2565 * toplev.c: Include version.h
2566 * vmsdbgout.c: Include version.h
2567 * Makefile.in: Remove dependency on version.h from TREE_H, and
2568 add dependencies to required .o targets
2570 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
2572 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2573 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2574 (TARGET_H): Add insn-modes.h.
2575 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2576 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2577 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2578 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2579 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2580 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2581 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2582 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2584 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2585 Replace ra.h with RA_H.
2586 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2587 insn-recog.o): Replace resource.h with RESOURCE_H.
2588 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2589 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
2591 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2592 ra-rewrite.o): Replace df.h with DF_H.
2593 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2594 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2595 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2596 (insn-conditions.o): Remove unused reload.h.
2597 * cfglayout.h: Add include guard. Include basic-block.h.
2598 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
2599 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2600 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
2602 * genconditions.c: Remove reload.h.
2603 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
2604 hard-reg-set.h, insn-modes.h.
2605 * resource.h: Add include guard. Include hard-reg-set.h.
2606 * sched-int.h: Add include guard. Include insn-attr.h,
2607 basic-block.h, rtl.h.
2608 * target.h: Add include guard. Include insn-modes.h.
2609 * tree-ssa-live.h: Include partition.h.
2611 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
2612 Kenneth Zadeck <zadeck@naturalbridge.com>
2614 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2615 (add_var_to_ssa_edges_worklist): Add value argument.
2618 (process_ssa_edge_worklist): New function.
2619 (tree_ssa_ccp): Move worklist processing core to
2620 process_ssa_edge_worklist, and just call that for the two worklists.
2622 2004-06-03 Steven Bosscher <stevenb@suse.de>
2624 * basic-block.c (tail_recursion_label_list): Don't declare.
2625 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
2627 * cfgbuild.c (find_label_refs): Remove.
2628 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2629 * cfgcleanup.c (tail_recursion_label_p): Remove.
2630 (merge_blocks_move): Do not check for tail recursion.
2631 (try_optimize_cfg): Likewise.
2632 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2633 * cfgrtl.c (tail_recursion_label_list): Remove.
2634 * except.c (remove_unreachable_regions): Don't handle
2635 CALL_PLACEHOLDER insns.
2636 (convert_from_eh_region_ranges_1, can_throw_internal,
2637 can_throw_external): Likewise.
2638 * function.c (free_after_compilation): Don't clear
2639 x_tail_recursion_label.
2640 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2641 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2642 (reorder_blocks_1): Likewise.
2643 * function.h (struct function): Remove x_tail_recursion_label
2644 member. Don't define tail_recursion_label.
2645 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2646 * print-rtl.c (print_rtx): Likewise.
2647 * rtl.def (CALL_PLACEHOLDER): Remove.
2648 * rtl.h (sibcall_use_t): Remove enum.
2649 (optimize_sibling_and_tail_recursive_calls,
2650 replace_call_placeholder): Remove function prototypes.
2651 * stmt.c (tail_recursion_args): Remove.
2652 (optimize_tail_recursion): Remove.
2653 (expand_return): Don't check for possible tail recursion.
2654 * tree.h (optimize_tail_recursion): Remove prototype.
2656 2004-06-02 Jan Hubicka <jh@suse.cz>
2658 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
2661 2004-06-02 Jason Merrill <jason@redhat.com>
2663 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2664 Do include c-parse.in.
2666 2004-06-02 Eric Christopher <echristo@redhat.com>
2668 * c-typeck.c (common_type): Don't lose type qualifiers
2669 when creating new variants.
2671 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
2673 PR tree-optimization/14042
2674 PR tree-optimization/14729
2675 PR tree-optimization/14736
2676 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2677 Check the type which the pointer points to
2678 instead of the pointer types.
2680 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
2682 PR tree-optimization/15738.
2683 * builtins.c (fold_builtin_strchr): Transform
2684 strrchr (s, '\0') to strchr (s, '\0').
2686 2004-06-02 Steven Bosscher <stevenb@suse.de>
2688 * i386.c (ix86_adjust_cost): Don't increase the cost for
2689 load+operation for PROCESSOR_PENTIUMPRO, it is already
2690 modelled in the DFA description
2692 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
2694 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2695 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2696 (ALIAS_H, EMIT_RTL_H): New.
2697 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2698 (cfgcleanup.o): Add EMIT_RTL_H.
2699 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2700 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2701 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2702 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2703 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
2704 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2705 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2706 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2707 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2708 set_mem_size): Move to emit-rtl.h.
2712 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
2714 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2715 Call fixup_memory_subreg only if the MEM is equal to 'var'.
2716 Adjust recursive calls to self.
2717 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2719 2004-06-01 Richard Henderson <rth@redhat.com>
2720 Andrew Pinski <pinskia@physics.uc.edu>
2722 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2723 (primary): Handle offsetof. Add error productions for faux functions.
2724 Move component_ref objc checking to build_component_ref.
2725 (reswords): Add offsetof.
2726 (rid_to_yy): Add offsetof.
2727 * c-tree.h (build_offsetof): Declare.
2728 * c-common.h (objc_is_public): Declare.
2729 * c-typeck.c (build_component_ref): Check objc_is_public.
2730 (build_offsetof): New.
2731 * stub-objc.c (objc_is_public): New.
2732 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2734 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2735 * doc/extend.texi (Offsetof): Move from C++ section to C section
2736 and rewrite for __builtin_offsetof.
2738 2004-06-01 Peter Barada <peter@the-baradas.com>
2739 Peter Jakubek <peter@laseranimation.com>
2741 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
2742 a scratch to perform an add to memory.
2744 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2747 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2748 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2749 m68k_align_funcs): Remove.
2750 (override_options): Remove code to handle -malign-* options.
2751 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2752 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2753 (m68k_align_loops_string, m68k_align_jumps_string,
2754 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2755 m68k_align_funcs): Remove definitions.
2757 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
2760 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2761 by the Sun linker in conjunction with the Sun assembler.
2762 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2764 2004-06-01 Jeff Law <law@redhat.com>
2766 * stmt.c (expand_decl): Be more selective about calling
2769 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
2772 * objc-act.c (is_private): Do not emit the 'instance variable %s
2773 is declared private' error.
2774 (is_public): Emit the error after calling is_private.
2775 (lookup_objc_ivar): If the instance variable is private, return 0
2776 - the instance variable is invisible here.
2778 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2780 * doc/invoke.texi (-static-libgcc): Explicitly mention
2783 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2786 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2788 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
2791 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2792 misuses of structures with flexible array members if
2795 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2798 * config/sparc/sparc.c (compare_operand): New predicate.
2799 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2800 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
2801 operand is a ZERO_EXTRACT and the second operand is not zero,
2802 force the former to a register.
2803 (cmpdi expander): Likewise.
2805 2004-05-31 Geoffrey Keating <geoffk@apple.com>
2807 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2809 * alias.c (alias_invariant_size): Make alias_invariant_size
2810 static, fix GTY marker.
2812 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2814 PR tree-optimization/15743.
2815 * builtins.c (fold_builtin_1): Fold index() and rindex().
2817 2004-05-31 Roger Sayle <roger@eyesopen.com>
2820 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2821 into "X < 0" (where C is the signbit) if X's type is a full mode.
2823 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2825 * pa.md: Disable the peephole2 patterns that generate indexed
2826 floating-point stores when indexing is disabled.
2828 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2830 * c-pretty-print.c (pp_c_left_bracket): Make a function.
2831 (pp_c_right_bracket): Likewise.
2832 (pp_c_star): Likewise.
2833 (pp_c_ampersand): Define.
2834 * c-pretty-print.h (pp_c_left_bracket): Declare.
2835 (pp_c_right_bracket): Likewise.
2836 (pp_c_star): Likewise.
2837 (pp_c_ampersand): Likewise.
2839 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2841 * config/sol2.h (__enable_execute_stack): ANSIfy function
2844 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
2846 * c-incpath.c (add_path): Canonicalize paths to use '/' if
2847 HAVE_DOS_BASED_FILESYSTEM.
2849 2004-05-31 Steven Bosscher <stevenb@suse.de>
2851 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2852 Only look at case labels if the immediate dominator is also
2853 the only predecessor. Don't look for more case labels if the
2854 first seen is a case range.
2856 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2858 * builtins.c: Add a prototype for fold_builtin_strchr().
2860 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
2863 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
2865 * combine.c (gen_binary): Remove.
2866 (known_cond, simplify_shift_const
2867 find_split_point, combine_simplify_rtx,
2868 simplify_if_then_else, simplify_set,
2869 simplify_logical, expand_field_assignment,
2870 extract_left_shift, force_to_mode,
2871 if_then_else_cond, apply_distributive_law,
2872 simplify_and_const_int, simplify_shift_const,
2873 gen_lowpart_for_combine, simplify_comparison,
2874 reversed_comparison): Replace with
2875 simplify_gen_binary, simplify_gen_relational or
2876 distribute_and_simplify_rtx.
2877 (distribute_and_simplify_rtx): New function.
2879 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2881 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2882 when generating PIC code.
2884 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2886 * c-decl.c (c_expand_body_1): Remove and fold back into ...
2887 (c_expand_body): here.
2888 (c_expand_decl): Move to ...
2889 * c-common.c (c_expand_decl): Here and remove check for nested
2891 * c-common.h (c_expand_decl): Add prototype.
2892 * c-tree.h (c_expand_decl): Remove.
2894 2004-05-30 Roger Sayle <roger@eyesopen.com>
2896 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2897 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2898 fold_mathfn_compare, fold_inf_compare, fold,
2899 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2900 Use constant_boolean_node where appropriate. Don't bother using
2901 fold_convert on the second argument to omit_one_operand.
2903 2004-05-30 Roger Sayle <roger@eyesopen.com>
2905 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2906 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2907 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
2908 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2909 Add missing (but documented) tree nodes to the index.
2911 2004-05-30 Steven Bosscher <stevenb@suse.de>
2913 PR tree-optimization/14819
2914 * builtins.c (fold_builtin_strchr): New.
2915 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2916 with fold_builtin_strchr().
2918 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2920 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2921 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2922 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2923 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2924 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2925 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2926 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2927 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2928 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2931 2004-05-30 Steven Bosscher <stevenb@suse.de>
2933 * gimplify.c (sort_case_labels): New. Split out from...
2934 (gimplify_switch_expr): ...here. Use it.
2935 * tree-eh.c (lower_try_finally_switch): Sort the labels of
2936 the SWITCH_EXPR created here before leaving the function.
2937 * tree.c (sort_case_labels): Add prototype.
2939 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2941 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2944 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2946 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2947 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2948 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2949 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2950 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2951 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2952 comment typos. Follow spelling conventions.
2954 2004-05-29 Geoffrey Keating <geoffk@apple.com>
2956 * gengtype-yacc.y: Add NESTED_PTR token.
2957 (option): Record `nested_ptr' option.
2958 * gengtype-lex.l: Handle `nested_ptr' keyword.
2959 * gengtype.c (walk_type): Process `nested_ptr' option.
2960 * gengtype.h (struct nested_ptr_data): New.
2961 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2962 * stringpool.c (struct string_pool_data): Make 'entries' point to
2963 ht_identifier instead of tree.
2964 (gt_pch_save_stringpool): Don't adjust pointers.
2965 (gt_pch_restore_stringpool): Call ht_load.
2967 2004-05-29 Jason Merrill <jason@redhat.com>
2969 * gimplify.c (gimplify_expr): Don't build a statement list
2970 if no gimplification was necessary.
2972 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2974 * pretty-print.c (pp_base_format_text): Support %< instead of %`
2975 and %> as well as %'.
2976 * c-format.c: Use %< and %>.
2977 (gcc_diag_char_table, gcc_cdiag_char_table,
2978 gcc_cxxdiag_char_table): Update.
2980 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2982 * c-typeck.c (common_type): Correct comment.
2984 2004-05-29 Peter Barada <peter@the-baradas.com>
2986 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2987 * config/m68k/m68k.c (const_method): Likewise.
2988 * config/m68k/m68k.c (const_int_cost): Likewise.
2989 * config/m68k/m68k.c (const_int_cost): Likewise.
2990 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2992 2004-05-29 Peter Barada <peter@the-baradas.com>
2994 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2996 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2997 movsi,movhi,movqi insn patterns.
2999 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3001 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
3004 * config/darwin.c (machopic_indirect_call_target): Copy
3005 the SYMBOL_REF_DECL from the original RTX for the new
3008 2004-05-28 DJ Delorie <dj@redhat.com>
3010 * stor-layout.c (place_field): Revert erroneous commit.
3012 2004-05-28 Ziemowit Laski <zlaski@apple.com>
3014 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
3015 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
3016 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
3017 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
3018 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
3019 vec_ste): Remove type checks for integral parameters and literals
3020 from '..._args_eq' macros.
3022 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3024 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
3026 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3028 * testsuite/g++.dg/charset/function.cc: New.
3030 * testsuite/gcc.dg/charset/function.c: New.
3032 * c-decl.c (c_make_fname_decl): Free return value from
3035 * cp/decl.c (cp_make_fname_decl): Free return value from
3038 * c-common.c (fname_as_string): Translate if necessary.
3040 2004-05-28 Geoffrey Keating <geoffk@apple.com>
3042 * stringpool.c: Add comments to PCH saving/restoring routines.
3044 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3046 * c-common.c (c_estimate_num_insns_1): Kill.
3047 (c_estimate_num_insns): Kill.
3048 * c-common.h (c_estimate_num_insns): Kill.
3050 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3051 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3052 Remove comment about not checking for
3053 _POSIX_PRIORITY_SCHEDULING.
3054 * gthr-posix.c: Likewise.
3056 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
3057 Roger Sayle <roger@eyesopen.com>
3059 PR rtl-optimization/15649
3060 Add LTGT_EXPR and improve pretty-printing of unordered
3062 * c-common.c (c_common_truthvalue_conversion):
3064 * c-typeck.c (build_binary_op): Likewise.
3065 * dojump.c (do_jump): Likewise.
3066 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3067 * predict.c (tree_predict_by_opcode): Likewise.
3068 * real.c (real_compare): Likewise.
3069 * tree-cfg.c (verify_expr): Likewise.
3070 * tree-inline.c (estimate_num_insns_1): Likewise.
3071 * tree-pretty-print.c (dump_generic_node): Likewise.
3072 Handle ORDERED_EXPR, UNORDERED_EXPR.
3073 (op_symbol): Print unordered comparisons differently
3075 * tree.def (LTGT_EXPR): New '<' tree code.
3076 * doc/c-tree.texi (Expressions): Document floating-point
3079 Fold comparisons between floating point values.
3080 * fold-const.c (enum comparison_code): New, from
3081 #define'd constants. Define compcodes for unordered
3082 comparisons and for invalid transformations.
3083 (invert_tree_comparison): Add "honor_nans" parameter.
3084 (fold_truthop): Revamp to work on floating-point types too.
3085 (comparison_to_compcode): Support unordered comparisons.
3086 Use new enum comparison_code.
3087 (compcode_to_comparison): Likewise.
3088 (combine_compcodes): New function.
3089 (invert_truthvalue): Let invert_tree_comparison decide
3090 whether it is valid to fold the comparison. Fold ORDERED
3091 and UNORDERED even if flag_unsafe_math_optimizations is off,
3092 and the remaining even if flag_unsafe_math_optimizations
3093 is off but we are under -fno-trapping-math.
3094 (fold_relational_const): Integer modes do not honor NaNs.
3096 2004-05-28 Paul Brook <paul@codesourcery.com>
3098 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3100 2004-05-28 Paul Brook <paul@codesourcery.com>
3102 * config/arm/arm.c (thumb_force_lr_save): New function.
3103 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3104 thumb_output_function_prologue): Use it.
3105 (thumb_expand_prologue): Set lr_save_eliminated.
3107 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3109 * config/mips/mips.md (extendsidi2): Tie the source and destination
3110 of the register alternative. Split it into nothing.
3112 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3114 * rtl.h (skip_consecutive_labels): Declare.
3115 * emit-rtl.c (skip_consecutive_labels): New function.
3116 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3117 * jump.c (follow_jumps): Say what null return values mean.
3119 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3122 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3124 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3126 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3128 * config/sh/libgcc-std.ver: New file.
3130 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3132 * except.c: Revert change of 2004-05-26.
3133 * config/i386/i386.md: Revert change of 2004-05-27.
3135 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3137 * configure.ac: Remove --enable-tree-browser option.
3138 Define TREEBROWSER when ac_tree_checking is defined.
3139 * configure: Rebuilt.
3141 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
3143 * expr.c (store_constructor): Restore sanity check on
3144 the size of the type before clearing.
3146 2004-05-27 Jan Hubicka <jh@suse.cz>
3148 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3150 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3152 * combine.c (gen_binary): Remove.
3153 (known_cond, simplify_shift_const
3154 find_split_point, combine_simplify_rtx,
3155 simplify_if_then_else, simplify_set,
3156 simplify_logical, expand_field_assignment,
3157 extract_left_shift, force_to_mode,
3158 if_then_else_cond, apply_distributive_law,
3159 simplify_and_const_int, simplify_shift_const,
3160 gen_lowpart_for_combine, simplify_comparison,
3161 reversed_comparison): Replace with
3162 simplify_gen_binary, simplify_gen_relational or
3163 distribute_and_simplify_rtx.
3164 (distribute_and_simplify_rtx): New function.
3165 * simplify-rtx.c (simplify_binary_operation):
3166 Use nonzero_bits to simplify ANDs where we are
3167 turning off bits already known to be off in OP0.
3169 2004-05-27 Alan Modra <amodra@bigpond.net.au>
3172 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3174 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
3177 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3180 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
3183 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3185 2004-05-26 Roger Sayle <roger@eyesopen.com>
3187 * tree.h: Fix comment typo.
3189 2004-05-27 Steven Bosscher <stevenb@suse.de>
3191 * gimplify.c (compare_case_labels): New function.
3192 (gimplify_switch_expr): Sort case labels, and make sure the
3193 last label in the label vector is the default case.
3194 * tree-cfg.c (group_case_labels): New function.
3195 (build_tree_cfg): Cleanup redundant labels and group case labels
3196 before creating edges.
3197 (cleanup_dead_labels): Handle GOTO_EXPRs.
3198 (find_case_label_for_value): Use a binary search to find the
3199 case label for the given value.
3200 * tree-gimple.c: Mention that labels are sorted, and that the
3201 last label must be the default.
3203 2004-05-27 Jan Hubicka <jh@suse.cz>
3205 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3207 2004-05-27 Jan Hubicka <jh@suse.cz>
3209 * i386.md (UNSPECV_EH_RETURN): Kill.
3210 (eh_return): Use jump_insn.
3211 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3213 2004-05-26 Jan Hubicka <jh@suse.cz>
3215 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3216 not loop optimizing.
3218 2004-05-26 Jan Hubicka <jh@suse.cz>
3220 * except.c (can_throw_internal): Notice RESX instructions.
3222 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3224 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3225 of the two sizes to assemble_integer.
3227 2004-05-25 Paul Brook <paul@codesourcery.com>
3229 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3232 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
3234 * Makefile.in (top_builddir): Define to .
3236 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
3238 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3239 top-level detects, except when in-tree ld is being cross-built.
3240 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3241 then AS only if target is host.
3242 * configure: Rebuilt.
3244 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3246 * global.c (global_alloc): Call make_accurate_live_analysis.
3247 (record_one_conflict): Remove dead code.
3248 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3249 (bb_info): New structure.
3250 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3251 (allocate_bb_info, free_bb_info, mark_reg_change,
3252 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3253 modify_bb_reg_pav, calculate_reg_pav,
3254 make_accurate_live_analysis): New functions.
3256 2004-05-25 Devang Patel <dpatel@apple.com>
3258 * alias.c (init_alias_analysis): Use ggc_calloc instead of
3260 (end_alias_analysis): Use ggc_free instead fo free.
3262 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
3265 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3266 as needed to be outputted.
3268 2004-05-25 Jan Hubicka <jh@suse.cz>
3270 * builtins.def (__builtin_expect): Mark the function as const¬hrow.
3272 2004-05-25 Ayal Zaks <zaks@il.ibm.com>
3273 Mostafa Hagog <mustafa@il.ibm.com>
3275 * Makefile.in (modulo-sched.o, ddg.o): New.
3276 * ddg.h, ddg.c, modulo-sched.c: New files.
3277 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3278 internals to "dupicate_insn".
3279 (duplicate_insn): New function.
3280 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3282 * common.opt (fmodulo-sched): New flag.
3283 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3284 Remove static and forward declaration.
3285 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3287 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3288 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3290 * flags.h (flag_modulo_sched): New flag.
3291 * opts.c (common_handle_option): Handle modulo-sched flag.
3292 * params.def (max-sms-loop-number, sms-max-ii-factor,
3293 sms-dfa-history, sms-loop-average-count-threshold): New
3295 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3296 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3298 * passes.c ("sms", "sms-vcg"): New dumps.
3299 (rest_of_handle_sched): Call sms_schedule.
3300 * rtl.h (sms_schedule): New declaration.
3301 * timevar.def (TV_SMS): New.
3302 * toplev.c (flag_modulo_sched): Initialize.
3303 (f_options): Handle -fmodulo-sched option.
3304 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3305 * docs/passes.texi: Document new SMS pass.
3307 2004-05-25 Paolo Bonzini <bonzini@gnu.org>
3309 * Makefile.in (OBJS): Add rtlhooks.o.
3310 (rtlanal.o): Depend on function.h.
3311 (cse.o): Depend on rtlhooks-def.h.
3312 (combine.o): Depend on rtlhooks-def.h.
3313 (rtlhooks.o): New rule.
3314 * combine.c: Include rtlhooks-def.h.
3315 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3316 num_sign_bit_copies, cached_num_sign_bit_copies,
3317 num_sign_bit_copies1): Move most of the code to rtlanal.c.
3318 (reg_nonzero_bits_for_combine,
3319 reg_num_sign_bit_copies_for_combine): New functions holding
3320 the remnants of the above.
3321 (combine_rtl_hooks): New.
3322 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3323 * cse.c: Include rtlhooks-def.h.
3324 (cse_rtl_hooks): New.
3325 (cse_main): Set rtl_hooks instead of gen_lowpart.
3326 * emit-rtl.c (gen_lowpart): Remove.
3327 (gen_lowpart_general): Move to rtlhooks.c.
3328 * rtl.h (nonzero_bits, num_sign_bit_copies,
3329 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3330 (gen_lowpart_general): Remove.
3331 (gen_lowpart): Temporarily redefine as a macro.
3332 * rtlanal.c: Include function.h.
3333 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3334 num_sign_bit_copies, cached_num_sign_bit_copies,
3335 num_sign_bit_copies1): New, from combine.c.
3336 * rtlhooks.c: New file.
3337 * rtlhooks-def.h: New file.
3339 2004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
3341 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3342 to support 32-bit -mint8 mode.
3344 * doc/invoke.texi (-mint8): Added documentation for the -mint8
3345 option in the AVR architecture.
3347 2004-05-24 Mike Stump <mrs@apple.com>
3349 * doc/install.texi: Document that dejagnu 1.4.4 is required.
3351 2004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
3353 * intl.h (open_quote, close_quote): New.
3354 * intl.c (open_quote, close_quote): New.
3355 (gcc_init_libintl): Set them.
3356 * pretty-print.c: Include "intl.h".
3357 (pp_base_format_text): Support 'q' format flag and %` and %'
3358 formats. Use ' instead of ` in comments.
3359 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3360 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3361 foramt_types_orig): Describe these new formats.
3362 (decode_format_attr, check_function_format,
3363 check_format_info_main): Use these new formats.
3364 (status_warning): Use ATTRIBUTE_GCC_DIAG.
3365 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3366 check these formats to 3.5.
3368 2004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3370 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3371 (BACKEND): Reflect this.
3372 (LIBDEPS): Move CPPLIB before LIBIBERTY.
3375 2004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
3377 PR tree-optimization/14197
3378 * builtins.c: Include "tree-gimple.h"
3379 (readonly_data_expr): Use get_base_address. Make sure to call
3380 decl_readonly_section only on trees it can handle.
3381 * tree-gimple.c (get_base_address): Accept STRING_CST and
3382 CONSTRUCTOR expressions.
3383 * Makefile.in: Update dependencies.
3385 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3387 Move libcpp to the toplevel.
3388 * Makefile.in: Remove references to libcpp files,
3389 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
3390 and change hashtable.h to that.
3391 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3392 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3393 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3394 * configure: Regenerate.
3395 * config.in: Regenerate.
3396 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3397 * cppcharset.c: Removed.
3398 * cpperror.c: Removed.
3399 * cppexp.c: Removed.
3400 * cppfiles.c: Removed.
3401 * cpphash.c: Removed.
3402 * cpphash.h: Removed.
3403 * cppinit.c: Removed.
3404 * cpplex.c: Removed.
3405 * cpplib.c: Removed.
3406 * cpplib.h: Removed.
3407 * cppmacro.c: Removed.
3408 * cpppch.c: Removed.
3409 * cpptrad.c: Removed.
3410 * cppucnid.h: Removed.
3411 * cppucnid.pl: Removed.
3412 * cppucnid.tab: Removed.
3413 * hashtable.c: Removed.
3414 * hashtable.h: Removed.
3415 * line-map.c: Removed.
3416 * line-map.h: Removed.
3417 * mkdeps.c: Removed.
3418 * mkdeps.h: Removed.
3419 * stringpool.h: Include symtab.h instead of hashtable.h.
3420 * tree.h: Include symtab.h instead of hashtable.h.
3421 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3423 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3425 * gcc.c (struct prefix_list): Add forward declaration.
3426 (do_spec_path): New function, extracted from...
3427 (do_spec_1) <'D'>: ... here. Drop support for
3428 SPACE_AFTER_L_OPTION.
3429 (do_spec_1) <'I'>: Use do_spec_path.
3430 (process_command): Do not store the 'include' suffix
3431 in include_prefixes.
3432 * system.h: Poison SPACE_AFTER_L_OPTION.
3434 2002-05-23 Roger Sayle <roger@eyesopen.com>
3436 * fold-const.c (non_lvalue): Explicitly list the tree codes that
3437 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3439 2004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
3441 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3442 Update based on printed manual. Enable setting of offsets for
3443 FSFPRINT and move it to gcc-common.texi.
3444 * doc/gcc.texi: Update FSF printing details.
3445 * doc/gccint.texi: Remove FSF printing details.
3447 2004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
3449 * config/rs6000/t-rs6000: Remove the disabling -Werror.
3451 2004-05-22 Roger Sayle <roger@eyesopen.com>
3453 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3454 expand_builtin_strrchr, expand_builtin_strpbrk,
3455 expand_builtin_mempcpy, expand_builtin_memcmp,
3456 expand_builtin_strcmp, expand_builtin_strncmp,
3457 expand_builtin_strcat, std_expand_builtin_va_start,
3458 std_expand_builtin_va_arg, expand_builtin_va_copy,
3459 expand_builtin_signbit, fold_builtin_cabs,
3460 fold_builtin_logarithm, fold_builtin_mempcpy,
3461 fold_builtin_signbit, fold_builtin_isascii,
3462 fold_builtin_toascii, fold_builtin_isdigit,
3463 fold_builtin_1, build_function_call_expr,
3464 simplify_builtin_strchr, simplify_builtin_strrchr,
3465 simplify_builtin_strpbrk, simplify_builtin_strncpy,
3466 simplify_builtin_memcmp, simplify_builtin_strcmp,
3467 simplify_builtin_strncmp, simplify_builtin_strncat,
3468 simplify_builtin_strspn, simplify_builtin_strcspn,
3469 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3470 to build with calls to build2, build3 or omit_one_operand.
3472 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3474 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3475 section when generating EABI code.
3477 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3480 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3481 Call mark_decl_referenced on the SYMBOL_REF_DECL.
3483 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3485 * c-common.c (c_common_truthvalue_conversion): Handle
3486 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3487 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3488 i.e. set the type to truthvalue_type_node and return.
3490 2004-05-22 Zack Weinberg <zack@codesourcery.com>
3492 * tree.h (struct tree_decl): Add possibly_inlined bit.
3493 (DECL_POSSIBLY_INLINED): New accessor macro.
3494 * cgraph.h: Remove declaration of cgraph_inline_hash.
3495 * cgraph.c: Remove definition of cgraph_inline_hash.
3496 (hash_node): Revert to hashing DECL_UID.
3497 (eq_node): Take two pointers to cgraph_node structures.
3499 (cgraph_remove_node): Pass the node directly to htab_find_slot.
3500 (cgraph_varpool_hash_node): Rename hash_varpool_node;
3502 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3503 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3504 (cgraph_node): Allocate a temporary node on the stack, fill in
3505 its DECL field, and pass that to htab_find_slot.
3506 (cgraph_varpool_node): Likewise.
3507 (cgraph_function_possibly_inlined_p): If global info is ready,
3508 return the DECL_POSSIBLY_INLINED bit.
3509 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3510 instead of mucking with cgraph_inline_hash.
3512 2004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
3514 * doc/contrib.texi: Add g77 contributors.
3516 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3518 * calls.c (initialize_argument_information): Forbid sibcalls if a
3519 callee-copied argument is stored in the current function's frame.
3521 2004-05-22 Eric Christopher <echristo@redhat.com>
3523 * fix-header.c (read_scan_file): Update for add_path change.
3525 2004-05-22 Ben Elliston <bje@au.ibm.com>
3527 * c.opt (Wmissing-include-dirs): New.
3528 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3529 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3530 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3531 * c-incpath.h (add_path): Add fourth (bool) argument.
3532 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3533 (add_standard_paths): Likewise.
3534 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3535 is used and the directory was user-supplied via -I.
3536 (add_path): Set p->user_supplied_p. Remove duplicated code by
3537 using add_cpp_dir_path ().
3538 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3539 (struct cpp_dir): Add user_supplied_p.
3540 * doc/invoke.texi (Warning Options): Document new option.
3542 2004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
3544 * fold-const.c (fold_read_from_constant_string): Convert result to
3547 2004-05-21 Richard Henderson <rth@redhat.com>
3549 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3550 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3551 Don't mark VA_ARG_EXPRs volatile here.
3552 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3554 2004-05-21 Richard Henderson <rth@redhat.com>
3556 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3557 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3559 2004-05-21 Roger Sayle <roger@eyesopen.com>
3561 * fold-const.c (fold, fold_relational_hi_lo,
3562 nondestructive_fold_binary_to_constant,
3563 fold_read_from_constant_string): Use fold_convert instead of convert.
3564 * builtins.c (simplify_builtin, simplify_builtin_strstr,
3565 simplify_builtin_strchr, simplify_builtin_strrchr,
3566 simplify_builtin_strpbrk): Use fold_convert instead of convert.
3568 2004-05-21 Diego Novillo <dnovillo@redhat.com>
3570 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3573 2004-05-21 Jakub Jelinek <jakub@redhat.com>
3575 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3576 override sparc.h definition.
3578 2004-05-20 Roger Sayle <roger@eyesopen.com>
3580 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3581 get_unwidened, get_narrower): Replace build with build2.
3582 * fold-const.c (negate_expr, associate_trees, size_binop,
3583 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3584 pedantic_omit_one_operand, distribute_bit_expr,
3585 make_bit_field_ref, optimize_bit_field_compare,
3586 decode_field_reference, range_binop, make_range,
3587 build_range_check, fold_range_test, fold_truthop,
3588 optimize_minmax_comparison, extract_muldiv_1,
3589 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3590 fold_inf_compare, fold_single_bit_test, fold,
3591 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3592 Likewise replace build with either build2 or build3.
3594 2004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
3596 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3597 * calls.c (prepare_call_address): Don't test
3598 NO_RECURSIVE_FUNCTION_CSE.
3599 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3600 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3601 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3602 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3603 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3604 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3605 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3606 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3607 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3608 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3609 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3610 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3612 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3613 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3614 * doc/tm.texi (Costs): Remove documentation for
3615 NO_RECURSIVE_FUNCTION_CSE.
3617 2004-05-20 Paul Brook <paul@codesourcery.com>
3619 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3620 * unwind-dw2.c (extract_cie_info): Ditto.
3621 (_Unwind_FrameState): Change retaddr_column to word type.
3623 2004-05-20 Roger Sayle <roger@eyesopen.com>
3626 * fold-const.c (strip_compound_expr): Delete function.
3627 (count_cond): Delete function.
3628 (fold_binary_op_with_conditional_arg): Only perform transformations
3629 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3630 when a is constant. This greatly simplifies this routine.
3632 * tree.c (saved_expr_p): Delete function.
3633 * tree.h (saved_expr_p): Delete function prototype.
3635 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3637 * common.opt (ftree-loop-optimize): Remove.
3639 2004-05-20 Daniel Jacobowitz <dan@debian.org>
3641 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3642 (NM_FOR_TARGET): Use := and $(shell).
3643 (mainversion): Remove unused variable.
3645 2004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3647 * reorg.c (delete_from_delay_slot): If we have a barrier after the
3648 sequence containing the insn to be deleted, always reemit it.
3650 2004-05-20 Richard Henderson <rth@redhat.com>
3653 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3654 * function.c (expand_function_start): Expand static_chain_decl by hand.
3655 * gimplify.c (create_tmp_var_name): Export.
3656 * tree-gimple.h (create_tmp_var_name): Declare.
3658 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3660 * rs6000.c (print_operand) <case 'z'>: Call
3661 mark_decl_referenced before assemble_name.
3663 2004-05-20 Zack Weinberg <zack@codesourcery.com>
3665 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3666 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3667 (cgraph_varpool_node): Hash on the pointer to the decl, not
3668 the DECL_UID. Fixes 64-bit bootstrap failure.
3670 2004-05-20 Richard Earnshaw <rearnsha@arm.com>
3672 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3673 we don't earlyclobber operands used in the second insn.
3675 2004-05-20 Steven Bosscher <stevenb@suse.de>
3677 * tree-mudflap.c: Formatting fixes.
3679 2004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
3681 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3682 * gengtype.c (open_base_files): Include reload.h in ifiles.
3683 * reload.h (reg_equiv_memory_loc_varray): Declare.
3684 * reload1.c (reg_equiv_memory_loc_varray): New variable.
3685 (init_reload): Initialize it.
3686 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3687 reg_equiv_memory_loc_varray to size 0.
3688 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3689 growing reg_equiv_memory_loc_varray to the desired size.
3690 * passes.c (rest_of_handle_old_regalloc): Likewise.
3691 * reload.c: Amend comment on calling init_reload.
3693 2004-05-20 Nick Clifton <nickc@redhat.com>
3695 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3696 with 'TRAMP' in the body of the macro definition.
3698 2004-05-19 H.J. Lu <hongjiu.lu@intel.com>
3701 * config/ia64/ia64.c (ia64_expand_compare): Don't check
3702 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3703 cmptf_libfunc isn't set.
3704 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3706 (ia64_sysv4_init_libfuncs): New.
3708 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3709 ia64_sysv4_init_libfuncs.
3711 2004-05-20 Falk Hueffner <falk@debian.org>
3714 * libgcc2.c (__mulvsi3): Fix overflow test.
3716 2004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
3719 * reg-stack.c (nan): Rename to ...
3721 (reg_to_stack): Rename nan to not_a_num.
3722 (subst_stack_regs_pat): Likewise.
3723 (convert_regs_entry): Likewise.
3724 (convert_regs_1): Likewise.
3726 * tree-cfg.c (find_case_label_for_value): Replace call to
3727 simple_cst_equal with tree_int_cst_equal.
3729 2004-05-19 Jeff Law <law@redhat.com>
3731 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3732 If the operand is for a use, then strip away the SSA_NAME, do not
3733 strip away the SSA_NAME for a set. Never call release_ssa_name.
3734 (mark_def_sites): Appropriately pass additional argument to
3735 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
3736 then set the VDEF_RESULT to the VDEF_OP.
3737 (set_def_block): Strip away any SSA_NAME to get to the real
3738 underlying variable.
3740 * tree-ssa-phiopt.c (value_replacement): Handle the case where
3741 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3744 2004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3747 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
3750 PR rtl-optimization/15274
3751 * loop-iv.c (determine_max_iter, shorten_into_mode,
3752 iv_number_of_iterations): Handle constants correctly.
3753 * rtl.h (get_mode_bounds): Declaration changed.
3754 * stor-layout.c (get_mode_bounds): Return a constant suitable for
3757 PR rtl-optimization/14692
3758 * loop-unswitch.c (may_unswitch_on): Try folding the result.
3759 (unswitch_single_loop): Work correctly when may_unswitch_on
3760 returns a folded constant.
3762 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3763 * simplify-rtx.c (simplify_const_relational_operation): Optimize
3764 comparisons with mode bounds.
3766 * function.c (struct temp_slot): Add new field prev.
3767 (free_after_compilation, init_temp_slots): Free new fields.
3768 (cut_slot_from_list, insert_slot_to_list,
3769 temp_slots_at_level, max_slot_level, move_slot_to_level,
3770 make_slot_available): New functions.
3771 (assign_stack_temp_for_type, combine_temp_slots,
3772 find_temp_slot_from_address, preserve_temp_slots,
3773 preserve_rtl_expr_result, free_temp_slots,
3774 free_temps_for_rtl_expr, pop_temp_slots): Work with
3775 the new structure of lists.
3776 (mark_all_temps_used): Removed.
3777 * function.h (struct function): Field x_temp_slots
3778 replaced by x_used_temp_slots and x_avail_temp_slots.
3779 (temp_slots): Replaced by ...
3780 (used_temp_slots, avail_temp_slots): New.
3781 * tree.h (mark_all_temps_used): Declaration removed.
3783 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3784 simplify_using_assignment): Take the expression out of
3785 the expr_list wrapper.
3787 * loop-iv.c (iv_number_of_iterations): Improve clasification of
3790 2004-05-19 Roger Sayle <roger@eyesopen.com>
3792 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3793 costs should be based on code size when optimizing for size.
3795 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
3797 * fold-const.c: Remove non-printable character 160.
3799 2004-05-19 Nick Clifton <nickc@redhat.com>
3801 * doc/invoke.texi (ARM Options): Fix typo.
3802 Remove descrption of -mshort-load-bytes and
3803 -mno-short-load-bytes.
3805 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3806 missing parenthesis.
3807 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3808 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3810 2004-05-19 Steven Bosscher <stevenb@suse.de>
3812 * expr.c (store_constructor): Build loop start and end by hand
3813 instead of via loop functions from stmt.c.
3814 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3815 Remove the code to expand them.
3817 * stmt.c (loop_stack): Remove this and everything related.
3818 (struct nesting, enum nesting_desc): Update.
3819 (expand_fixup): Likewise.
3820 (expand_loop_start, expand_start_loop_continue_elsewhere,
3821 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3822 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3823 expand_exit_loop_if_false, expand_exit_loop_top_cond,
3824 expand_exit_something): Remove.
3825 * tree.h: Remove prototypes.
3827 2004-05-18 Mike Stump <mrs@apple.com>
3828 Devang Patel <dpatel@apple.com>
3830 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3831 if this label is for eh.
3832 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3833 * config/darwin.c (darwin_emit_unwind_label): Likewise.
3834 * dwarf2out.c (output_call_frame_info): Likewise.
3835 * output.h (default_emit_unwind_label): Likewise.
3836 * target.h (unwind_label): Likewise.
3837 * varasm.c (default_emit_unwind_label): Likewise.
3839 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3840 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3841 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3842 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3843 DEBUG_RANGES_SECTION): Define.
3845 2004-05-18 Zack Weinberg <zack@codesourcery.com>
3847 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3848 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3849 (cgraph_varpool_node):
3850 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3851 (cgraph_function_possibly_inlined_p): Use the decl itself for
3852 the key, not DECL_ASSEMBLER_NAME.
3853 (change_decl_assembler_name): No need to muck with the hash tables.
3854 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3856 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3857 for the key, not DECL_ASSEMBLER_NAME.
3858 * cgraph.h: Remove prototypes of deleted functions.
3859 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3860 (mark_decl_referenced): New function.
3861 * tree.h: Prototype mark_decl_referenced.
3862 * final.c (output_addr_const) <case SYMBOL_REF>: Call
3863 mark_decl_referenced before assemble_name.
3864 * c-decl.c (finish_decl): Use mark_decl_referenced.
3866 2004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
3867 Jeff Law <law@redhat.com>
3869 * tree-ssa-phiopt.c (abs_replacement): New function.
3870 (empty_block_p): New function extracted from...
3871 (candidate_bb_for_phi_optimization): Break out empty block test.
3872 (conditional_replacement): Use empty_block_p.
3873 (value_replacement): Similarly.
3875 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3876 * tree-ssa-phiopt.c: Include flags.h.
3877 (conditional_replacement): Remove argument names from prototype.
3878 Minor formatting and comment fixes.
3879 (tree_ssa_phiopt): If conditional_replacement returns false, then
3880 call value_replacement.
3881 (value_replacement): New function.
3883 2004-05-18 Jeff Law <law@redhat.com>
3885 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3886 from conditional_replacement.
3887 (candidate_bb_for_phi_optimization): Similarly.
3888 (conditional_replacement): Use replace_phi_with_stmt and
3889 candidate_bb_for_phi_optimization.
3891 * tree-ssa-phiopt.c: Fix various formatting issues.
3893 2004-05-18 Steven Bosscher <stevenb@suse.de>
3895 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3896 s390_expand_cmpmem): Do not use expand_start_loop and
3897 expand_end_loop, instead build the loop manually.
3899 2004-05-18 Alan Modra <amodra@bigpond.net.au>
3901 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3902 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3904 2004-05-17 Jeff Law <law@redhat.com>
3906 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3907 * flags.h (flag_delete_null_pointer_checks): Here.
3908 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3909 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3910 (add_phi_arg, remove_phi_arg_num): Similarly.
3911 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3912 property into PHI nodes.
3913 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3914 (record_equivalences_from_phis): If all PHI arguments are known to be
3915 nonzero, then the result must be nonzero as well.
3916 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3917 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3918 appropriately. Walk the USE-DEF chains and propagate nonzero property
3920 * tree.h (PHI_ARG_NONZERO): Define.
3921 (phi_arg_d): Add nonzero flag.
3923 2004-05-17 Zack Weinberg <zack@codesourcery.com>
3925 * f: Entire directory removed
3927 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3928 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3929 (g77_integer_type_node, g77_uinteger_type_node)
3930 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3931 * c-common.c (c_common_nodes_and_builtins): Do not initialize
3932 the above set of variables.
3934 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3935 * doc/invoke.texi, doc/standards.texi: Remove cross-references
3938 2004-05-17 Steven Bosscher <stevenb@suse.de>
3940 PR tree-optimization/15438
3941 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3942 attributed functions as pure or const.
3944 2004-05-17 Frank Ch. Eigler <fche@redhat.com>
3946 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3947 from source code with errors.
3949 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
3951 Enable tree browser for all front ends.
3952 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3953 (BACKEND): ...to here.
3955 2004-05-17 Jan Hubicka <jh@suse.cz>
3957 * i386.c (construct_container): Do not produce BLKmode registers.
3958 (classify_argument): Properly compute alignment of complex types.
3960 2004-05-17 H.J. Lu <hongjiu.lu@intel.com>
3963 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3964 and renamed to movdi_insv_1_rex64.
3965 (insv): Support SImode for 32bit and DImode for 64bit.
3967 2004-05-17 Richard Sandiford <rsandifo@redhat.com>
3969 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3970 (TARGET_SWITCHES): Remove debugg.
3971 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3973 (subdi3): Replace the define_expand with a define_insn, the latter
3974 renamed from subdi3_internal_3.
3975 (negdi2): Likewise negdi2_internal_2.
3976 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3977 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3978 and associated define_splits.
3979 (adddi3_internal): Renamed from adddi3_internal_3.
3980 (ashldi3_internal): Likewise ashldi3_internal4.
3981 (ashrdi3_internal): Likewise ashrdi3_internal4.