]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
e2d9993f9e0ee1c7f02717989a2802e7d1f8d0f0
[gcc.git] / gcc / ChangeLog
1 2004-06-21 Paolo Bonzini <bonzini@gnu.org>
2
3 * fold-const.c (fold_cond_expr_with_comparison):
4 New function, extracted from fold.
5 (fold): Extract code to fold A op B ? A : C, use
6 it to fold A op B ? C : A. Really optimize
7 A & N ? N : 0 where N is a power of two. Avoid
8 relying on canonicalization and recursion for
9 foldings of COND_EXPR to happen.
10
11 2004-06-20 David Ayers <d.ayers@inode.at>
12
13 * objc/objc-act.h (get_object_reference): Rename to
14 get_protocol_reference.
15 (super_type): Rename to objc_super_type.
16 (selector_type): Rename to objc_selector_type.
17 (id_type): Rename to objc_id_type.
18 (instance_type): Rename to objc_instance_type.
19 (protocol_type): Rename to objc_protocol_type.
20 (IS_ID): Update reference to id_type.
21 * objc/objc-act.c (get_object_reference): Rename to
22 get_protocol_reference; add documentation; update references to
23 id_type.
24 (lookup_method_in_protocol_list): Rename class_meth to
25 is_class; add documentation.
26 (finish_message_expr): Rename is_class to class_tree.
27 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
28 next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
29 build_next_objc_exception_stuff, get_arg_type_list,
30 build_objc_method_call): Update references to id_type.
31 (synth_module_prologue, build_objc_symtab_template,
32 build_selector_reference_decl, build_selector,
33 build_selector_translation_table, build_typed_selector_reference,
34 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
35 synth_self_and_ucmd_args): Update references to selector_type.
36 (build_private_template, build_ivar_reference): Update references
37 to instance_type.
38 (synth_module_prologue, build_protocol_reference,
39 build_protocol_expr, start_protocol): Update references to
40 protocol_type.
41 (synth_module_prologue, get_arg_type_list, build_objc_method_call):
42 Update references to super_type.
43 * c-parse.in: (typespec_nonreserved_nonattr): Update
44 references to get_object_reference.
45 * objc/objc-tree.def: Add C mode identifier sequence.
46
47 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
48
49 * loop-invariant.c: New file.
50 * Makefile.in (loop-invariant.o): New.
51 * cfgloop.h (global_cost_for_size, init_set_costs,
52 move_loop_invariants): Declare.
53 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
54 functions.
55 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
56 variables.
57 * common.opt (floop-optimize2, fmove-loop-invariants): New options.
58 * loop-init.c (loop_optimizer_init): Call init_set_costs.
59 * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
60 (rest_of_compilation): Check flag_loop_optimize2.
61 * toplev.c (process_options): Handle flag_loop_optimize2.
62 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
63 * doc/passes.texi (loop-invariant.c): Document.
64
65 2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
66
67 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
68
69 2004-06-20 Richard Henderson <rth@redhat.com>
70
71 * stmt.c (warn_if_unused_value): Add locus argument.
72 * tree.h (warn_if_unused_value): Update decl.
73 * c-typeck.c (internal_build_compound_expr): Update call.
74 * c-gimplify.c (gimplify_expr_stmt): Likewise.
75
76 2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
77
78 PR middle-end/16089
79 * builtins.c (entry_of_function): Move to ...
80 * cfgrtl.c (entry_of_function): Here and make non-static.
81 * integrate.c (emit_initial_value_sets): Use entry_of_function.
82 * rtl.h (entry_of_function): Prototype.
83
84 2004-06-20 Roger Sayle <roger@eyesopen.com>
85
86 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
87 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
88 TARGET_DECOMPOSE_LEA.
89
90 2004-06-20 Richard Henderson <rth@redhat.com>
91
92 * c-common.h (add_decl_stmt): Move to cp-tree.h.
93 * c-decl.c (finish_decl): Don't use add_decl_stmt.
94 * c-parse.in: Likewise.
95 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
96 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
97 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
98
99 2004-06-20 Richard Henderson <rth@redhat.com>
100
101 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
102 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
103 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
104 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
105 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
106 * c-pretty-print.c (pp_c_statement): Similarly.
107 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
108 gimplify_if_stmt): Move to cp-gimplify.c.
109 (c_genericize, c_gimplify_expr): Don't call them.
110 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
111 * c-typeck.c (push_cleanup): New.
112 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
113 c_finish_if_stmt): Use COND_EXPR.
114 * tree.h (CLEANUP_EH_ONLY): Update documentation.
115
116 2004-06-20 Zack Weinberg <zack@codesourcery.com>
117
118 * c-common.h (has_c_linkage): New interface.
119 * c-cppbuiltin.c: Include target.h.
120 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
121 __PRAGMA_EXTERN_PREFIX when appropriate.
122 * c-pragma.c: Include target.h.
123 Document clarified semantics of symbol-renaming #pragmas.
124 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
125 (maybe_apply_renaming_pragma): Rewrite according to clarified
126 semantics. Always recognize, but do not necessarily execute.
127 (init_pragma): Unconditionally register symbol-renaming pragmas.
128 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
129 and HANDLE_PRAGMA_EXTERN_PREFIX.
130 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
131 and handle_pragma_extern_prefix flags.
132 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
133 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
134 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
135 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
136 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
137 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
138 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
139 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
140 not HANDLE_PRAGMA_EXTERN_PREFIX.
141 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
142 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
143 into one section "Symbol-Renaming Pragmas"; clarify; document
144 adjusted semantics.
145
146 * builtins.c (expand_builtin): Do not issue error for a builtin
147 with no special case code and no DECL_ASSEMBLER_NAME; just do the
148 library call.
149 * c-decl.c (builtin_function): Don't call make_decl_rtl.
150 * c-objc-common.c (has_c_linkage): Stub implementation.
151 * cgraphunit.c (cgraph_expand_function)
152 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
153
154 2004-06-19 Roger Sayle <roger@eyesopen.com>
155
156 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
157 instead of both an ARGLIST and a result TYPE. Handle these C99
158 comparison functions as "polymorphic" builtins. Also handle
159 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
160 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
161 Move handling of BUILT_IN_ISUNORDERED from here to there.
162
163 2004-06-19 Richard Henderson <rth@redhat.com>
164
165 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
166 * c-gimplify.c: Remove unnecessary prototypes.
167 (c_gimplify_stmt): Merge into ...
168 (c_gimplify_expr): ... here. Don't play with prep_stmt.
169 * c-semantics.c (prep_stmt): Remove.
170 * gimplify.c (annotate_one_with_locus): Break out from ...
171 (annotate_all_with_locus): ... here.
172 (gimplify_expr): Add locus to expressions even if pre/post queues
173 are not present.
174
175 2004-06-19 Richard Henderson <rth@redhat.com>
176
177 PR target/15941
178 * function.c (assign_parms): If not padding upward or intentionally
179 forcing upward padding, take offset_rtx into account when determining
180 the alignment for stack_parm.
181
182 2004-06-19 Richard Henderson <rth@redhat.com>
183
184 PR target/15550
185 * ifcvt.c (noce_try_move): Recognize all generated instructions.
186
187 2004-06-19 Jan Hubicka <jh@suse.cz>
188
189 * function.c (free_after_compilation): Do not free computed_goto_common*.
190 * function.h (struct function): Kill computed_goto_common*.
191 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
192 * tree-cfg.c (disband_implicit_edges): Do not forward across the
193 commonized computed goto.
194
195 2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
196
197 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
198 in binutils.
199
200 2004-06-19 Andrew Pinski <apinski@apple.com>
201
202 PR c++/15721
203 * toplev.c (wrapup_global_declarations): Do not check
204 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
205 cgraph_varpool_node's needed field.
206
207 2004-06-19 Jan Hubicka <jh@suse.cz>
208 Steven Bosscher <stevenb@suse.de>
209
210 CFG transparent RTL expansion:
211 * Makefile.in (cfgexpand.o): New object file.
212 (builtins.o): Add dependency on basic-block.h
213 * builtins.c: Include basic-block.h
214 (entry_of_function): New function.
215 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
216 * cfgexpand.c: New file.
217 * expr.c (execute_expand, pass_expand): Kill.
218 * pass.c (rest_of_compilation): Do not build CFG unless called from
219 coverage code.
220 * tree-cfg.c (delete_tree_cfg): Rename to..
221 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
222 * tree-flow.h (delete_tree_cfg_annotations): Declare.
223 (dleete_tree_cfg): Kill.
224 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
225 (execute_del_cfg): Rename to...
226 (execute_free_datastructures): This one...
227 (pass_del_cfg): Rename to...
228 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
229 (init_tree_optimization_passes): Make cfg build and profiling to happen
230 unconditionally.
231
232 2004-06-19 Steven Bosscher <stevenb@suse.de>
233
234 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
235 inserting the cache variables.
236
237 * tree-mudflap.c: Include headers to make basic_block available.
238 Move functions around such that related functions are near each
239 other. Add prototypes for all static functions. Add comments
240 briefly explaining what IR the mudflap1 and mudflap2 work on and
241 what they do.
242 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
243 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
244 (pass_mudflap_1, pass_mudflap_2): Update.
245 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
246 function tree.
247 (mf_build_check_statement_for): Make it work on the CFG.
248 (mf_xform_derefs_1): Likewise. Cleanup code style.
249 (mf_xform_derefs): Likewise.
250
251 2004-06-19 Jan Hubicka <jh@suse.cz>
252
253 * tree-cfg.c (label_to_block): Invent the label destination for
254 undefined labels.
255 (cleanup_dead_labels): Update table in the case label_to_block added
256 new label.
257
258 2004-06-18 Richard Henderson <rth@redhat.com>
259
260 PR c++/16036
261 * gimple-low.c (lower_function_body): Generate return statement for
262 fall off the end of the function here ...
263 * tree-cfg.c (make_edges): ... instead of here.
264 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
265
266 2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
267
268 * tree-ssa.c (raise_value): Removed.
269 (get_eq_name, check_phi_redundancy): New functions.
270 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
271
272 2004-06-18 Roger Sayle <roger@eyesopen.com>
273
274 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
275 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
276 constant folding for unordered comparison tree nodes. If both
277 operands are real constants, call fold_relational_const. If either
278 operand is a NaN, evaluate the other for side-effects and return a
279 constant. Optimize (double)float1 CMP (double)float2 into the
280 equivalent float1 CMP float2.
281 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
282 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
283 LTGT_EXPR>: Call fold_relational_const for constant operands.
284 (fold_relational_const): Add support for unordered comparison tree
285 nodes. Don't constant fold "ordered" floating point comparisons
286 against NaN if when flag_trapping_math is set.
287
288 2004-06-19 Jakub Jelinek <jakub@redhat.com>
289
290 * fold-const.c (build_range_check): If !in_p and recursive call
291 fails, exit immediately. If high - low overflows and etype is
292 a signed type, retry with unsigned etype.
293 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
294 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
295
296 2004-06-18 Richard Henderson <rth@redhat.com>
297
298 * c-gimplify.c (gimplify_condition): Remove.
299 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
300 call it.
301
302 2004-06-18 Richard Henderson <rth@redhat.com>
303
304 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
305 switch estimates.
306
307 2004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
308
309 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
310 (NORMAL_TEXT_SECTION_NAME): Define.
311 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
312 (SECTION_FORMAT_STRING): Define.
313
314 2004-06-18 Steven Bosscher <stevenb@suse.de>
315
316 * config/xtensa/xtensa.c
317 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
318 * xtensa.md: Replace the old pipeline description with a DFA model.
319
320 2004-06-18 Steven Bosscher <stevenb@suse.de>
321 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
322
323 * config/s390/s390.md: Remove the generic pipeline description.
324 * config/s390/2064.md: Make all insn reservations apply to
325 the z900, g5 and g6.
326 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
327 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
328 Define to hook_int_void_1.
329 (s390_adjust_cost): Cleanup. Don't check address dependency here.
330 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
331
332 2004-06-18 Daniel Berlin <dberlin@dberlin.org>
333 Diego Novillo <dnovillo@redhat.com>
334
335 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
336 (create_stmt_ann): Ditto.
337 (create_tree_ann): New function.
338 (create_cst_ann): Remove.
339 (create_expr_ann): Ditto.
340
341 * tree-flow-inline.h (cst_ann): Remove.
342 (get_cst_ann): Ditto.
343 (get_expr_ann): Ditto.
344 (expr_ann): Ditto.
345 (get_tree_ann): New function.
346 (tree_ann): Ditto.
347 (ann_type): tree_ann -> tree_ann_t.
348 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
349 (struct cst_ann_d): Removed.
350 (struct expr_ann_d): Ditto.
351 (union tree_ann_d): Removed cst and expr.
352 (tree_ann): Renamed to tree_ann_t.
353 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
354 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
355 annotation.
356 (set_value_handle): Ditto.
357 (phi_translate): Ditto.
358 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
359
360 2004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
361
362 * config/sh/t-linux64: New file.
363 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
364
365 2004-06-18 Paolo Bonzini <bonzini@gnu.org>
366
367 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
368 (unshare_all_rtl_again): Call unshare_all_rtl_1.
369 (unshare_all_rtl): New.
370 * function.c (instantiate_virtual_regs): Remove parameters.
371 * function.h (instantiate_virtual_regs): Add prototype.
372 * rtl.h (unshare_all_rtl): Add prototype.
373 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
374 prototype.
375 * passes.c: Remove assertions on the parameters to
376 rest_of_handle_* functions. Remove the parameters to
377 the functions, replacing decl with current_function_decl
378 and insns with get_insns ().
379
380 2004-06-17 Roger Sayle <roger@eyesopen.com>
381
382 * fold-const.c (constant_boolean_node): Handle boolean_type_node
383 directly, return either boolean_true_node or boolean_false_node.
384
385 2004-06-18 Kelley Cook <kcook@gcc.gnu.org>
386
387 * opts.sh: Delete. Break out generated code to next four files.
388 * opt-gather.awk: New file.
389 * optc-gen.awk: New file.
390 * opth-gen.awk: New file.
391 * opt-functions.awk: New common file.
392 * Makefile.in: Update for above.
393 * configure.ac: Update comment.
394 * configure: Regenerate.
395
396 2004-06-17 Richard Henderson <rth@redhat.com>
397
398 * c-common.c (flag_objc_sjlj_exceptions): New.
399 * c-common.h (flag_objc_sjlj_exceptions): Declare.
400 * c-opts.c (c_common_handle_option): Set it.
401 (c_common_post_options): Handle interation of different
402 objective-c exception and runtime switches.
403 * c-decl.c (c_eh_initialized_p): New.
404 (finish_decl): Use it instead of local eh_initialized_p.
405 * c-parse.in (nested_function, notype_nested_function): Record
406 the result of compstmt.
407 (compstmt_or_error): Likewise.
408 (compstmt): Don't add_stmt the result.
409 (stmt): Don't return anything. Rewrite objc try and sync rules.
410 (objc_try_stmt, objc_catch_list): Remove.
411 (objc_catch_block, objc_finally_block): Remove.
412 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
413 (objc_try_catch_clause, objc_finally_clause): New.
414 (objc_try_catch_stmt): Rewrite.
415 * c-tree.h (c_eh_initialized_p): Declare.
416 * c-opt (fobjc-sjlj-exceptions): New.
417 * except.c (output_function_exception_table): Don't call cgraph
418 on non-decls.
419 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
420 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
421 catch_count_stack, exc_binding_stack, if_nesting_count,
422 blk_nesting_count, objc_enter_block, objc_exit_block,
423 objc_declare_variable, val_stack_push, val_stack_pop,
424 objc_build_try_enter_fragment, objc_build_extract_expr,
425 objc_build_try_exit_fragment, objc_build_extract_fragment,
426 objc_build_try_prologue, objc_build_try_epilogue,
427 objc_build_catch_stmt, objc_build_catch_epilogue,
428 objc_build_finally_prologue, objc_build_finally_epilogue,
429 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
430 objc_build_synchronized_epilogue): Remove.
431 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
432 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
433 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
434 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
435 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
436 objc_begin_catch_clause, objc_finish_catch_clause,
437 objc_build_finally_clause, objc_finish_try_stmt,
438 objc_build_synchronized): New.
439 (objc_is_object_id, objc_is_class_id): New.
440 (objc_comptypes): Use them.
441 (build_next_objc_exception_stuff): Break NeXT sjlj out from
442 build_objc_exception_stuff.
443 (synth_module_prologue): Update to match.
444 (objc_build_throw_stmt): Use cur_try_context to decide if
445 we're in a @catch.
446 * objc/objc-act.h: Update prototypes.
447 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
448
449 2004-06-17 Andrew Pinski <apinski@apple.com>
450
451 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
452 Use TYPE_FIELDS instead of TYPE_VALUES.
453
454 2004-06-17 Jason Merrill <jason@redhat.com>
455
456 PR c++/16015
457 * gimplify.c (gimplify_target_expr): Handle void initializer.
458 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
459 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
460 and AGGR_INIT_EXPR.
461
462 2004-06-17 Roger Sayle <roger@eyesopen.com>
463
464 * fold-const.c (fold_relational_const): Use constant_boolean_node.
465
466 2004-06-17 Jan Hubicka <jh@suse.cz>
467
468 PR target/15433
469 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
470 operand numbering in the output template.
471 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
472
473 2004-06-17 Jan Hubicka <jh@suse.cz>
474
475 * except.c (can_throw_internal): Recognize RESX expresisons.
476
477 2004-06-17 Jan Hubicka <jh@suse.cz>
478
479 * cfgbuild.c (make_edges): Do not use label_value_list.
480 (find_basic_blocks_1): Do not collect label_value_list.
481 (find_sub_basic_blocks): Update call of make_edges.
482
483 2004-06-17 Andrew MacLeod <amacleod@redhat.com>
484
485 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
486 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
487 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
488 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
489 (get_v_may_def_result_ptr): Return a def_operand_p.
490 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
491 (get_v_must_def_op_ptr): Return a def_operand_p.
492 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
493 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
494 (phi_element_for_edge): Remove.
495 * tree-flow.h (propagate_value, replace_exp): Change prototype.
496 (propagate_tree_value): Add new prototype.
497 (phi_element_for_edge): Remove prototype.
498 * tree-into-ssa.c (mark_def_sites): Use new operand types.
499 (prepare_operand_for_rename): Split into two functions.
500 (prepare_use_operand_for_rename): Prepare use operands.
501 (prepare_def_operand_for_rename): Prepare def operands.
502 (rewrite_stmt): Use new operand types.
503 (rewrite_operand): Use new operand types, change parameter type.
504 * tree-outof-ssa.c (replace_variable): Split into two functions.
505 (replace_use_variable): Rewrite uses.
506 (replace_def_variable): Rewrite defs.
507 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
508 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
509 (add_phi_arg, remove_phi_arg_num): Use new operand types.
510 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
511 (ccp_fold, replace_uses_in): Use new operand types.
512 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
513 and no longer set the value, change parameter type.
514 (replace_exp_1): Use new operand types.
515 (propagate_value): Change parameter type, use new operand types.
516 (propagate_tree_value): Propagate_value without SSA operands.
517 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
518 (cprop_into_successor_phis): Use new operand types.
519 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
520 (eliminate_redundant_computations): Use new operand types.
521 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
522 (fix_stmt_v_may_defs): Use new operand_types.
523 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
524 (build_tree_conflict_graph): Use new operand_types.
525 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
526 * tree-ssa-operands.c (struct freelist_d): Remove.
527 (check_optype_freelist, add_optype_freelist): Remove.
528 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
529 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
530 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
531 Call ggc_free instead of add_optype_freelist.
532 (init_ssa_operands, fini_ssa_operands): Remove free list code.
533 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
534 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
535 (struct use_optype_d): Change underlying type.
536 (def_operand_p, use_operand_p): New types for pointers to operands.
537 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
538 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
539 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
540 pointer types.
541 (SET_USE, SET_DEF): New macros to set operands from their pointer.
542 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
543 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
544 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
545 PHI result as an operand.
546 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
547 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
548 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
549 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
550 PHI_ARG_DEF_FROM_EDGE.
551 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
552 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
553
554 2004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
555
556 PR tree-optimization/15991
557 * tree-cfg.c (tree_block_label): Export.
558 * tree-flow-inline.h (bsi_after_labels): New function.
559 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
560 * tree-ssa.c (propagate_into_addr): New function.
561 (replace_immediate_uses): Handle propagation of pointer constants.
562 (raise_value): Do not restrict propagation of pointer constants.
563 * tree-ssanames.c (duplicate_ssa_name): New function.
564 * tree.h (duplicate_ssa_name): Declare.
565
566 2004-06-17 David Ayers <d.ayers@inode.at>
567
568 * c-parse.in: Unify Objective-C token names.
569
570 2004-06-17 Zack Weinberg <zack@codesourcery.com>
571
572 Bug 14610
573 * Makefile.in (min-insn-modes.o): Correct dependencies.
574 * real.c (encode_ieee_extended, decode_ieee_extended): Always
575 produce/consume 12-byte little-endian Intel format.
576 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
577 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
578 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
579 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
580 New functions which convert between 12-byte little-endian Intel
581 format and the desired format.
582 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
583 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
584 Update.
585
586 2004-06-17 Zack Weinberg <zack@codesourcery.com>
587
588 * expmed.c (expand_mult_const): In sanity check, compare only
589 the bits of val and val_so_far that are significant in the
590 result mode.
591
592 2004-06-17 Daniel Berlin <dberlin@dberlin.org>
593
594 * tree-ssa-pre.c: Update comments.
595 (val_expr_pair_eq): Factor code from here.
596 (expr_pred_trans_eq): and here.
597 (expressions_equal_p): To here.
598 (print_value_set): Print value for expression.
599 (phi_trans_lookup): Rename some variables.
600 (lookup): Ditto.
601 (value_exists_in_set_bitmap): Ditto.
602 (value_remove_from_set_bitmap): Ditto.
603 (value_insert_into_set_bitmap): Ditto.
604
605 2004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
606
607 * config/s390/s390-modes.def (CCL3mode): New machine mode.
608 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
609 (s390_alc_comparison, s390_slb_comparison): Likewise.
610 (s390_branch_condition_mask): Likewise.
611 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
612 ("*subsi3_cc2", "*subsi3_cconly2"): New.
613
614 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
615 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
616 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
617 Handle SIGN_EXTEND and ZERO_EXTEND.
618
619 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
620 * config/s390/s390.c (s390_expand_addcc): New function.
621 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
622 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
623 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
624
625 2004-06-17 Ben Elliston <bje@au.ibm.com>
626
627 * tree-alias-common.c: Add whitespace.
628 * tree-inline.c: Correct comment about this file's purpose.
629 * tree-optimize.c: Likewise.
630 * tree-tailcall.c: Likewise.
631
632 * tree-alias-ander.h: Add standard top-of-file comment.
633 * tree-alias-common.h: Likewise.
634 * tree-alias-type.h: Likewise.
635
636 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
637
638 * tree-ssa-pre.c (compute_avail): Value number uses as well.
639 Strip useless type conversions.
640 Casts have to be treated slightly different than normal unaries.
641
642 2004-06-16 Richard Henderson <rth@redhat.com>
643
644 * c-common.def (COMPOUND_STMT): Remove.
645 * c-common.c (finish_fname_decls): Don't look through it.
646 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
647 * c-common.h (COMPOUND_BODY): Remove.
648 (c_common_stmt_codes): Remove COMPOUND_STMT.
649 * c-dump.c (c_dump_tree): Likewise.
650 * c-gimplify.c (c_gimplify_stmt): Likewise.
651 * c-pretty-print.c (pp_c_statement): Likewise.
652 * tree.h (DECL_SAVED_TREE): Update commentary.
653 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
654 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
655 (GOTO_EXPR): Rename from GOTO_STMT.
656 (GOTO_FAKE_P): Remove.
657 (COMPOUND_STMT): Remove.
658 (HANDLER): Update wrt COMPOUND_STMT.
659 (STMT_EXPR): Likewise.
660 (LABEL_EXPR): Rename from LABEL_STMT.
661 (SCOPE_STMT): Remove.
662 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
663 through COMPOUND_STMT.
664
665 2004-06-16 Richard Henderson <rth@redhat.com>
666
667 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
668 c_finish_while_stmt_cond): Remove decls.
669 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
670 * c-typeck.c (c_begin_if_stmt): Return void.
671 (c_begin_else): Tidy. Save stmt_count.
672 * c-tree.h (c_begin_if_stmt): Update decl.
673
674 * objc/objc-act.c (objc_build_try_enter_fragment,
675 objc_build_extract_fragment, objc_build_try_epilogue,
676 objc_build_catch_stmt, objc_build_catch_epilogue,
677 objc_build_finally_prologue, objc_build_finally_epilogue): Update
678 for if builder function changes.
679
680 2004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
681
682 * config/s390/s390.c (struct machine_function): New member
683 last_restore_gpr.
684 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
685 Do not modify machine->save_return_addr_p or regs_ever_live.
686 Fill in machine->last_restore_gpr.
687 (s390_optimize_prolog): Use s390_frame_info to compute registers
688 to save/restore, remove duplicated code.
689 (s390_arg_frame_offset): Use s390_frame_info to compute frame
690 size, remove duplicated code.
691 (s390_emit_prologue): Adapt s390_frame_info call. Update
692 machine->save_return_addr_p and regs_ever_live.
693 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
694 machine->last_save_gpr.
695
696 2004-06-16 Richard Henderson <rth@redhat.com>
697
698 * c-parse.in (if_stmt_locus): Remove.
699 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
700 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
701 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
702 empty_locus. Add stmt_count, saw_else.
703 (c_begin_if_stmt): Push if_stack here.
704 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
705 (c_finish_then, c_finish_else): Record empty_locus.
706 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
707 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
708 if or else body.
709 * c-tree.h: Update prototypes.
710
711 2004-06-16 Steven Bosscher <stevenb@suse.de>
712
713 * tree.h (PHI_CHAIN): New.
714 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
715 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
716 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
717 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
718 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
719 when traversing a list of PHI_NODEs.
720
721 2004-06-16 Bernardo Innocenti <bernie@develer.com>
722
723 PR target/13292
724 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
725 on -msoft-float.
726 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
727 68040 and soft-float.
728 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
729 in the TARGET_68040_ONLY case.
730
731 2004-06-16 Peter Barada <peter@the-baradas.com>
732
733 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
734 (movsi_cf): Make named, don't match TARGET_CFV4.
735 (pushexthisi_const): Use mov3q if possible.
736 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
737 to special case mvz.w for ColdFire V4.
738 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
739 to special case mvz.b for ColdFire V4.
740 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
741 divide.
742 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
743 * config/m68k/m68k.c(valid_mov3q_const): New function.
744 (const_method): SWAP is valid for ColdFire.
745 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
746 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
747
748 2004-06-16 Richard Henderson <rth@redhat.com>
749
750 * c-common.def (CASE_LABEL): Remove.
751 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
752 (match_case_to_enum_1): Likewise.
753 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
754 * c-dump.c (c_dump_tree): Likewise.
755 * c-gimplify.c (c_gimplify_stmt): Likewise.
756 * c-pretty-print.c (pp_c_statement): Likewise.
757 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
758 * tree.h (CASE_LOW): Update commentary.
759
760 2004-06-16 Richard Henderson <rth@redhat.com>
761
762 * c-common.def (ASM_STMT): Remove.
763 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
764 * c-dump.c (c_dump_tree): Likewise.
765 * c-gimplify.c (c_gimplify_stmt): Likewise.
766 * c-pretty-print.c (pp_c_statement): Likewise.
767 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
768 * tree.h: Fix commentary.
769
770 2004-06-16 Richard Henderson <rth@redhat.com>
771
772 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
773 * c-common.c (c_add_case_label): Use LABEL_EXPR.
774 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
775 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
776 * c-dump.c (c_dump_tree): Likewise.
777 * c-gimplify.c (c_gimplify_stmt): Likewise.
778 * c-pretty-print.c (pp_c_statement): Likewise.
779 * c-parse.in (stmt): Use GOTO_EXPR.
780 (label): Use LABEL_EXPR.
781 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
782 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
783
784 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
785
786 * cfgcleanup.c (try_simplify_condjump): Update test to make
787 sure we have a conditional branch around am unconditional branch.
788
789 2004-06-16 Daniel Berlin <dberlin@dberlin.org>
790
791 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
792
793 2004-06-16 Dale Johannesen <dalej@apple.com>
794
795 * loop.c (loop_givs_reduce): Avoid miscompilation of
796 loops entered at bottom.
797
798 2004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
799
800 * cfglayout.c (fixup_reorder_chain): Handle case where the
801 destination of E_FALL is EXIT_BLOCK_PTR.
802
803 2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
804
805 PR target/15653
806 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
807 after shifts before asm.
808
809 2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
810
811 PR tree-optimization/15993
812 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
813 destination is unchanged.
814
815 2004-06-16 Andreas Jaeger <aj@suse.de>
816
817 * doc/install.texi (Configuration): Update description for
818 --enable-version-specific-runtime-libs.
819
820 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
821
822 * doc/install.texi: boehm-gc now uses automake 1.8.5.
823
824 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
825
826 * toplev.h (rest_of_compilation): Adjust prototype.
827
828 2004-06-16 Paolo Bonzini <bonzini@gnu.org>
829
830 * coverage.c: Remove argument to rest_of_compilation.
831 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
832 * passes.c (rest_of_compilation): Remove argument.
833 (pass_rest_of_compilation): New.
834 (rest_of_handle_final, rest_of_handle_delay_slots,
835 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
836 rest_of_handle_machine_reorg, rest_of_handle_regrename
837 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
838 rest_of_handle_regmove, rest_of_handle_tracer
839 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
840 rest_of_handle_web, rest_of_handle_branch_prob
841 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
842 rest_of_handle_addressof, rest_of_handle_jump_bypass
843 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
844 Check that the two arguments are actually superfluous.
845 * tree-optimize.c (register_dump_files): Add properties argument.
846 Track validity of passes. Only initialize dump files for
847 tree-based passes. Store the full set of provided passes in
848 the pass.
849 (init_tree_optimization_passes): Register pass_expand and
850 pass_rest_of_compilation.
851 (execute_one_pass): Do not track the presence of required properties
852 here. Set in_gimple_form. Do not update current_properties.
853 (current_properties): Remove.
854 (set_save_expr_context): Remove.
855 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
856 expand to RTL here, and do not call rest_of_compilation. Push
857 GGC context even before gimplification.
858 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
859 (pass_expand, pass_rest_of_compilation): Declare.
860
861 2004-06-15 Jeff Law <law@redhat.com>
862
863 * fold-const.c (swap_tree_comparison): No longer static.
864 (tree_swap_operands_p): Similarly. Return true if both operands
865 are SSA_NAMEs and the first operand has a higher version number than
866 the second operand.
867 * tree.h (swap_tree_comparison): Prototype.
868 (tree_swap_operands_p): Prototype.
869 * tree-ssa-operands.c (get_expr_operands): For commutative
870 operators and relational comparisons, canonicalize the
871 order of the operands.
872
873 2004-06-15 Richard Henderson <rth@redhat.com>
874
875 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
876 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
877 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
878 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
879 (finish_fname_decls, fname_decl): Use statement_lists.
880 (c_expand_expr_stmt): Don't set last_expr_type.
881 (c_type_hash): Fix indentation.
882 (c_safe_from_p): Don't follow TREE_CHAIN.
883 (c_tree_chain_matters_p): Remove.
884 * c-common.def (SCOPE_STMT): Remove.
885 (CLEANUP_STMT): Redefine to contain its own body.
886 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
887 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
888 Add x_cur_stmt_list.
889 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
890 (cur_stmt_list): New.
891 (STATEMENT_LIST_STMT_EXPR): New.
892 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
893 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
894 (CLEANUP_BODY): New.
895 (CLEANUP_DECL): Move to operand 2.
896 (c_common_stmt_codes): Remove SCOPE_STMT.
897 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
898 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
899 (c_push_function_context, c_pop_function_context): Don't save it.
900 (finish_decl): Set TREE_USED on the decl for a cleanup.
901 Use push_cleanup.
902 (store_parm_decls): Use statement lists.
903 (finish_function): Remove compstmt rule workaround. Use statement
904 lists. Call finish_fname_decls after finalizing the body.
905 (c_begin_compound_stmt): Move to c-typeck.c.
906 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
907 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
908 (c_genericize): Invoke them.
909 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
910 (c_build_bind_expr): Export.
911 (gimplify_block, gimplify_cleanup): Remove.
912 (gimplify_condition): Use gimplify_stmt.
913 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
914 (gimplify_if_stmt): Remove recursion hack.
915 (c_gimplify_expr): Remove STMT_EXPR handling.
916 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
917 (is_last_stmt_of_scope): Remove.
918 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
919 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
920 c_end_compound_stmt.
921 * c-objc-common.c (build_cdtor): Likewise.
922 * c-parse.in (primary): Use c_finish_stmt_expr.
923 (push_scope, pop_scope): Remove.
924 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
925 (c99_block_end, compstmt): Use c_end_compound_stmt.
926 (c99_block_lineno_labeled_stmt): Likewise.
927 (compstmt_primary_start): Use c_begin_stmt_expr.
928 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
929 (do_stmt_start): Fill in body directly.
930 (lineno_stmt): Avoid setting lineno on constants.
931 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
932 Remove SCOPE_STMT.
933 * c-semantics.c (begin_stmt_tree): Remove.
934 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
935 (add_stmt): Use statement lists.
936 (add_scope_stmt, finish_stmt_tree): Remove.
937 (push_cleanup): New.
938 * c-tree.h: Move some decls from c-common.h.
939 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
940 (do_case, c_finish_case): Likewise.
941 (c_finish_then): Take body for then as argument.
942 (c_finish_else): Similarly.
943 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
944 c_finish_for_stmt_incr, c_finish_for_stmt): New.
945 (c_begin_stmt_expr, c_finish_stmt_expr): New.
946 (c_begin_compound_stmt): Do scope management.
947 (c_end_compound_stmt): New.
948 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
949 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
950 Look through exception handling constructs.
951 (gimplify_bind_expr): Accept temporary argument.
952 (gimplify_target_expr): Special case BIND_EXPR bodies.
953 (gimplify_expr): Handle fallback == fb_none like a statement.
954 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
955 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
956 * langhooks.h (tree_chain_matters_p): Remove.
957 * stub-objc.c (objc_clear_super_receiver): New.
958 * tree-gimple.h (voidify_wrapper_expr): Update decl.
959 (append_to_statement_list, append_to_statement_list_force): Move
960 to tree-iterator.h.
961 * tree-inline.c (expand_call_inline): Update call.
962 (clone_body): Use statement lists.
963 (walk_tree): Don't check tree_chain_matters_p.
964 (copy_tree_r): Likewise.
965 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
966 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
967 * tree-iterator.h (append_to_statement_list,
968 append_to_statement_list_force): Moved from tree-gimple.h.
969 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
970 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
971 (objc_enter_block): Likewise.
972 (objc_exit_block): Use c_end_compound_stmt.
973 (objc_build_try_enter_fragment): Add #error and comment for
974 rewriting for OBJCPLUS.
975 (objc_build_extract_fragment, objc_build_try_epilogue,
976 objc_build_catch_stmt, objc_build_finally_prologue,
977 objc_build_finally_epilogue): Update for C statement builders.
978 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
979 Remove.
980
981 2004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
982
983 * df.c (df_reg_clobber_gen): Removed.
984 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
985 Make more effective for hard regs.
986 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
987
988 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
989
990 * c-pragma.h (c_lex_string_translate): Change type to int.
991 * c-parse.in: Change all assignments of c_lex_string_translate
992 to true and false to 1 and 0.
993 * c-lex.c (c_lex_string_translate): Likewise.
994 (lex_string): Convert string without translation in the -1
995 case.
996
997 2004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
998
999 * convert.h: Add include guards
1000
1001 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1002
1003 * tree-flow-inline.h: Document all functions.
1004
1005 2004-06-15 Daniel Berlin <dberlin@dberlin.org>
1006
1007 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
1008 * tree-dfa.c (create_stmt_ann): Ditto.
1009 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
1010 * tree-inline.c (estimate_num_insns_1): Ditto.
1011 * tree.c (tree_size): Ditto.
1012 (make_node_stat): Ditto.
1013 (tree_node_structure): Ditto.
1014 (ephi_node_elt_check_failed): Remove.
1015 (is_essa_node): Ditto.
1016 * tree.def (EPHI_NODE): Ditto.
1017 (EEXIT_NODE): Ditto.
1018 (EUSE_NODE): Ditto.
1019 (EKILL_NODE): Ditto.
1020 * tree.h (EREF_NODE_CHECK): Remove.
1021 (EPHI_NODE_ELT_CHECK): Ditto.
1022 (struct tree_eref_common): Ditto.
1023 (struct tree_euse_node): Ditto.
1024 (struct ephi_arg_d): Ditto.
1025 (struct tree_ephi_node): Ditto.
1026 (ephi_node_elt_check_failed): Remove prototype.
1027 (is_essa_node): Ditto.
1028 (enum tree_node_structure_enum): Remove TS_E*_NODE.
1029 (union tree_node): Remove E*_NODE uses.
1030
1031 2004-06-15 Jerry Quinn <jlquinn@optonline.net>
1032
1033 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
1034 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
1035 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
1036 Likewise.
1037 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
1038 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
1039 expand_builtin_strcmp, expand_builtin_strncmp,
1040 expand_builtin_frame_address): Likewise.
1041 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
1042 insert_one_insn): Likewise.
1043 * calls.c (prepare_call_address, precompute_register_parameters,
1044 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
1045 * cfganal.c (flow_active_insn_p): Likewise.
1046 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
1047 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
1048 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
1049 make_extraction, recog_for_combine, gen_lowpart_for_combine,
1050 simplify_comparison, record_dead_and_set_regs_1,
1051 record_dead_and_set_regs, record_promoted_value,
1052 check_promoted_subreg, get_last_value_validate, get_last_value,
1053 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
1054 unmentioned_reg_p_1): Likewise.
1055 * conflict.c (mark_reg): Likewise.
1056 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
1057 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
1058 merge_equiv_classes, flush_hash_table, invalidate,
1059 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
1060 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
1061 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
1062 record_jump_cond, cse_insn, addr_affects_sp_p,
1063 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
1064 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
1065 cse_cc_succs, cse_condition_code_reg): Likewise.
1066 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
1067 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1068 cselib_record_set, cselib_record_sets): Likewise.
1069 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1070 dbxout_block): Likewise.
1071 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1072 * dojump.c (do_jump): Likewise.
1073 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1074 is_based_loc, rtl_for_decl_location): Likewise.
1075 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1076 set_decl_incoming_rtl, mark_user_reg): Likewise.
1077 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1078 copy_to_suggested_reg, allocate_dynamic_stack_space,
1079 probe_stack_range, hard_function_value): Likewise.
1080 * expmed.c (store_bit_field, store_fixed_bit_field,
1081 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1082 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1083 Likewise.
1084 * expr.c (convert_move, convert_modes,
1085 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1086 use_group_regs, emit_move_insn, emit_move_insn_1,
1087 compress_float_constant, push_block, emit_single_push_insn,
1088 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1089 store_constructor, store_field, force_operand, safe_from_p,
1090 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1091 Likewise.
1092 * final.c (profile_function, final_scan_insn, alter_subreg,
1093 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1094 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1095 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1096 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1097 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1098 attempt_auto_inc, find_auto_inc, mark_used_regs,
1099 count_or_remove_death_notes_bb): Likewise.
1100 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1101 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1102 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1103 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1104 purge_single_hard_subreg_set, instantiate_decl,
1105 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1106 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1107 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1108 expand_function_start, diddle_return_value, clobber_return_register,
1109 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1110 update_epilogue_consts): Likewise.
1111 * genemit.c (gen_exp, gen_insn): Likewise.
1112 * genrecog.c (make_insn_sequence): Likewise.
1113 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1114 mark_reg_conflicts, set_preference, reg_becomes_live,
1115 build_insn_chain, mark_reg_change): Likewise.
1116 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1117 Likewise.
1118 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1119 Likewise.
1120 * integrate.c (copy_rtx_and_substitute, try_constants,
1121 subst_constants, mark_stores, allocate_initial_values): Likewise.
1122 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1123 delete_computation, rtx_renumbered_equal_p, true_regnum,
1124 reg_or_subregno): Likewise.
1125 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1126 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1127 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1128 wipe_dead_reg, no_conflict_p): Likewise.
1129 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1130 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1131 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1132 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1133 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1134 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1135 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1136 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1137 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1138 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1139 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1140 try_swap_copy_prop): Likewise.
1141 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1142 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1143 Likewise.
1144 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1145 reload_cse_simplify_operands, reload_combine,
1146 reload_combine_note_store, reload_combine_note_use,
1147 reload_cse_move2add, move2add_note_store): Likewise.
1148 * print-rtl.c (print_rtx): Likewise.
1149 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1150 contains_pseudo, handle_asm_insn): Likewise.
1151 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1152 dump_static_insn_cost): Likewise.
1153 * ra-rewrite.c (slots_overlap_p, emit_colors,
1154 remove_suspicious_death_notes): Likewise.
1155 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1156 register_operand, scratch_operand, nonmemory_operand,
1157 constrain_operands): Likewise.
1158 * reg-stack (check_asm_stack_operands, remove_regno_note,
1159 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1160 subst_asm_stack_regs): Likewise.
1161 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1162 record_address_regs, reg_scan_mark_refs): Likewise.
1163 * regmove.c (discover_flags_reg, replacement_quality,
1164 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1165 fixup_match_1): Likewise.
1166 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1167 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1168 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1169 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1170 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1171 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1172 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1173 find_reloads_subreg_address, find_replacement,
1174 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1175 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1176 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1177 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1178 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1179 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1180 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1181 do_output_reload, emit_reload_insns, gen_reload,
1182 delete_address_reloads_1, inc_for_reload): Likewise.
1183 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1184 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1185 * resource.c (update_live_status, mark_referenced_resources,
1186 mark_set_resources, mark_target_live_regs): Likewise.
1187 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1188 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1189 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1190 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1191 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1192 parms_set, find_first_parameter_load, keep_with_call_p,
1193 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1194 num_sign_bit_copies1): Likewise.
1195 * rtlhooks.c (gen_lowpart_general): Likewise.
1196 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1197 sched_analyze): Likewise.
1198 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1199 Likewise.
1200 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1201 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1202 simplify_binary_operation, simplify_const_relational_operation,
1203 simplify_subreg): Likewise.
1204 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1205 expand_end_stmt_expr, expand_return, expand_decl,
1206 expand_anon_union_decl): Likewise.
1207 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1208 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1209 loop_iterations): Likewise.
1210 * var-tracking.c (variable_union, variable_part_different_p,
1211 variable_different_p, count_uses, add_uses, add_stores,
1212 compute_bb_dataflow, set_variable_part, delete_variable_part,
1213 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1214 Likewise.
1215 * varasm.c (assemble_variable): Likewise.
1216
1217 2004-06-15 Chris Demetriou <cgd@broadcom.com>
1218
1219 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1220 definition.
1221 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1222 #undef and #if 0'd definition.
1223
1224 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1225
1226 * combine.c (distribute_notes): Comment typo fix.
1227
1228 2004-06-15 Roger Sayle <roger@eyesopen.com>
1229
1230 * expmed.c (synth_mult): Mask bits of the multiplier to the
1231 machine mode of the multiplication. Don't consider shifts
1232 by more than (or equal to) the width of the operation's mode.
1233
1234 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1235
1236 * doc/install.texi: Yet another update for autoconf
1237 and automake versions.
1238
1239 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1240
1241 * function.h (struct function): Remove cannot_inline field.
1242 (current_function_cannot_inline): Remove.
1243 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1244 Simplify conditionals to ignore warn_return_type.
1245 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1246 DECL_DEFER_OUTPUT.
1247 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1248 Do not set current_function_cannot_inline.
1249
1250 2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1251
1252 * cfglayout.c (fixup_reorder_chain): Handle case where the
1253 destination of E_TAKEN is EXIT_BLOCK_PTR.
1254
1255 2004-06-15 Diego Novillo <dnovillo@redhat.com>
1256
1257 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1258
1259 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1260
1261 * fold-const.c (operand_equal_p): Update comment.
1262
1263 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1264
1265 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1266 (INCOMING_RETURN_ADDR_RTX): Define.
1267 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1268 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1269 __builtin_return_address(0).
1270 (m32r_return_addr): Added for __builtin_return_address(0).
1271 (m32r_reload_lr): Ditto.
1272
1273 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1274
1275 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1276
1277 * doc/install.texi (Prerequisites): Update libbanshee,
1278 fastjar, libcpp, libjava/libltdl entries to
1279 automake 1.8.5.
1280
1281 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
1282 Olivier Hainque <hainque@act-europe.fr>
1283
1284 * function.c (fixup_var_refs): Also adjust the start of sequence
1285 after fixing up the insns.
1286
1287 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1288
1289 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1290
1291 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
1292
1293 * doc/install.texi (Prerequisites): Update libstdc++ entry to
1294 automake 1.8.5.
1295
1296 2004-06-14 Eric Christopher <echristo@redhat.com>
1297
1298 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1299 to -mtpf-trace (-mno-tpf-trace).
1300 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1301 documentation.
1302
1303 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1304
1305 * real.c: Fix bit count in head comment.
1306
1307 2004-06-14 Jeff Law <law@redhat.com>
1308
1309 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1310 PHIs where the destination or an argument is marked with
1311 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1312
1313 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1314
1315 PR middle-end/15945
1316 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1317 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1318
1319 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1320
1321 * opts.sh (var_args): Fix regexp.
1322
1323 2004-06-14 Jakub Jelinek <jakub@redhat.com>
1324
1325 PR target/15178
1326 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1327
1328 2004-06-14 Paul Brook <paul@codesourcery.com>
1329
1330 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1331
1332 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1333
1334 * Makefile.in (FLAGS_H): New.
1335 (flags.h): Replace by FLAGS_H.
1336 * c.opt: Document Var, VarExists, Init and Report attributes.
1337 * common.opt: Fill the values of the attributes.
1338 * diagnostic.c (flag_fatal_errors): Do not define.
1339 * except.c (flag_non_call_exceptions): Do not define.
1340 * flags.h: Include options.h. Remove declarations conflicting with
1341 the automatically defined ones.
1342 * opts.c: Remove automatically defined variables.
1343 (handle_option): Perform default initialization.
1344 (common_handle_option): Do not handle options covered by the
1345 default initialization.
1346 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1347 fields.
1348 (CL_REPORT): New.
1349 * opts.sh: Generate variable declarations, handle CL_REPORT.
1350 * toplev.c: Remove automatically defined variables.
1351 (f_options): Removed.
1352 (print_switch_values): Use cl_options instead of f_options.
1353 * toplev.h (version_flag): Declaration removed.
1354
1355 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
1356
1357 * config/sparc/sparc.h: Correct comment about availability of
1358 little endian option.
1359
1360 * config.gcc: Remove sparc64-*-aout*.
1361 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1362 * config/sparc/sp64-aout.h: Remove.
1363 * config/sparc/aout.h: Remove.
1364
1365 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
1366
1367 * config/s390/s390.c: Include "tree-gimple.h".
1368 (s390_gimplify_va_arg): New function.
1369 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1370 (s390_va_arg): Remove.
1371 * config/s390/s390-protos.h (s390_va_arg): Remove.
1372 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1373
1374 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
1375
1376 * basic-block.h (could_fall_through): Declare.
1377 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1378 Fail if the source already has a fallthrough edge to the exit
1379 block pointer.
1380 (could_fall_through): New function.
1381 * cfgbuild.c (make_edges): Check if we already have a fallthrough
1382 edge to the exit block pointer.
1383 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1384 not called before reload has completed.
1385 Handle special case of first block having a fall-through exit edge.
1386 (cfg_layout_finalize): Don't call it before reload or if we have
1387 rtl epilogues.
1388 (fixup_reorder_chain): A fall through to the exit block does not
1389 require the block to come last. Add sanity checks.
1390 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1391 edges to the exit block.
1392 * function.c (cfglayout.h): #include.
1393 (thread_prologue_and_epilogue_insns): If we have neither return nor
1394 epilogue, but a fall through to the exit block from mid-function,
1395 force a non-fall-through exit.
1396 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1397
1398 2004-06-14 Alan Modra <amodra@bigpond.net.au>
1399
1400 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1401 for power5 and rs64a. Correct condition for default. Correct power3,
1402 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
1403
1404 2004-06-13 Steven Bosscher <stevenb@suse.de>
1405
1406 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1407 Revert previous change, don't use CALL_P.
1408
1409 2004-06-13 Jason Merrill <jason@redhat.com>
1410
1411 * tree.h: Move std_gimplify_va_arg_expr protoype here.
1412 * tree-gimple.h: From here.
1413
1414 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1415
1416 Fix PR tree-optimization/15979
1417 Fix PR tree-optimization/15981
1418 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1419 try to insert values undefined along some path.
1420
1421 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
1422
1423 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1424 are available everywhere too.
1425
1426 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
1427
1428 * fold-const.c (fold_checksum_tree <case 't'>): Only
1429 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1430 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1431 EXPR is an INTEGERAL_TYPE or a scalar float type.
1432
1433 2004-06-13 Diego Novillo <dnovillo@redhat.com>
1434
1435 * tree-sra.c (tree_sra): Update documentation.
1436
1437 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
1438
1439 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1440 function_types_compatible_p, type_lists_compatible_p): Remove
1441 flags parameter.
1442 * c-tree.h (comptypes): Likewise.
1443 (COMPARE_STRICT): Remove.
1444 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1445 callers changed.
1446
1447 2004-06-13 Eric Christopher <echristo@redhat.com>
1448
1449 * c-decl.c (diagnose_mismatched_decls): Improve error message.
1450 Remove unused code.
1451 * c-typeck.c (comptypes): Add location in standard we're checking.
1452
1453 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
1454
1455 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1456 version 3.3.4.
1457
1458 2004-06-12 Roger Sayle <roger@eyesopen.com>
1459
1460 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1461 index by machine mode.
1462 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1463 tables inside the loop over machine modes.
1464 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1465 expand_divmod): Index shift*_cost by the appropriate machine mode.
1466
1467 2004-06-12 Eric Christopher <echristo@redhat.com>
1468
1469 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1470 * config/s390/s390.md: Ditto.
1471 * config/s390/s390.c: Ditto.
1472 (s390_frame_info): Conditionalize frame and setup info on
1473 TARGET_TPF_PROFILING.
1474 (s390_arg_frame_offset): Ditto.
1475
1476 2004-06-12 Roger Sayle <roger@eyesopen.com>
1477
1478 * fold-const.c (omit_two_operands): New function.
1479 * tree.h (omit_two_operands): Prototype here.
1480 * builtins.c (fold_builtin_unordered_cmp): New function to lower
1481 C99 unordered comparison builtins to the appropriate tree nodes.
1482 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1483 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1484 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
1485 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1486 (simplify_builtin_memcmp, simplify_builtin_strncmp,
1487 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1488 omit_two_operands function to build the required COMPOUND_EXPRs.
1489
1490 2004-06-12 Steven Bosscher <stevenb@suse.de>,
1491 Andreas Jaeger <aj@suse.de>
1492
1493 * gcse.c (record_set_info): Use predicates like REG_P.
1494 (mems_conflict_for_gcse_p): Likewise.
1495 (load_killed_in_block_p): Likewise.
1496 (hash_expr_1): Likewise.
1497 (insert_set_in_table): Likewise.
1498 (gcse_constant_p): Likewise.
1499 (hash_scan_set): Likewise.
1500 (hash_scan_insn): Likewise.
1501 (canon_list_insert): Likewise.
1502 (record_last_mem_set_info): Likewise.
1503 (record_last_set_info): Likewise.
1504 (compute_hash_table_work): Likewise.
1505 (mark_set): Likewise.
1506 (mark_clobber): Likewise.
1507 (mark_oprs_set): Likewise.
1508 (compute_transp): Likewise.
1509 (find_avail_set): Likewise.
1510 (cprop_insn): Likewise.
1511 (do_local_cprop): Likewise.
1512 (cprop): Likewise.
1513 (find_implicit_sets): Likewise.
1514 (find_bypass_set): Likewise.
1515 (bypass_conditional_jumps): Likewise.
1516 (insert_insn_end_bb): Likewise.
1517 (pre_insert_copy_insn): Likewise.
1518 (compute_transpout): Likewise.
1519 (next_ls_expr): Likewise.
1520 (invalidate_any_buried_refs): Likewise.
1521 (compute_ld_motion_mems): Likewise.
1522 (reg_set_info): Likewise.
1523 (reg_clear_last_set): Likewise.
1524 (find_moveable_store): Likewise.
1525 (compute_store_table): Likewise.
1526 (find_loads): Likewise.
1527 (store_killed_in_insn): Likewise.
1528 (insert_insn_start_bb): Likewise.
1529 (reg_set_between_after_reload_p): Likewise.
1530 (reg_used_between_after_reload_p): Likewise.
1531 (is_jump_table_basic_block): Likewise.
1532 (gcse_after_reload): Likewise.
1533 (hash_scan_set_after_reload): Likewise.
1534 (compute_hash_table_after_reload): Likewise.
1535
1536 2004-06-12 Steven Bosscher <stevenb@suse.de>
1537
1538 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1539 (INSN_P): Don't look at the rtx code class, just explicitly
1540 check for one of the tree RTX_INSN codes.
1541
1542 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1543
1544 * c-typeck.c (default_function_array_conversion): Use
1545 build_pointer_type not TYPE_POINTER_TO.
1546
1547 2004-06-11 Zack Weinberg <zack@codesourcery.com>
1548
1549 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1550 * configure, config.in: Regenerate.
1551 * system.h: Unconditionally define bool as unsigned char,
1552 BOOL_BITFIELD as unsigned int.
1553 * domwalk.h: Use BOOL_BITFIELD.
1554
1555 2004-06-12 Andreas Jaeger <aj@suse.de>
1556
1557 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1558 * libgcc-darwin.ver: Likewise.
1559
1560 2004-06-12 Peter Jakubek <peter@laseranimation.com>
1561
1562 * reload.c (find_reloads): Force reload for pseudo registers on big
1563 endian machines.
1564
1565 2004-06-11 Steven Bosscher <stevenb@suse.de>
1566
1567 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1568 Don't try to mark anything control dependent on the entry or
1569 exit blocks.
1570
1571 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
1572
1573 Fix Bug 15899
1574 Fix Bug 15460
1575 * tree.h (SSA_NAME_VALUE): New macro.
1576 (struct tree_ssa_name): Add value_handle member.
1577 * tree-ssa-pre.c: Replaced.
1578 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1579 (struct cst_ann_d): New.
1580 (struct expr_ann_d): New.
1581 (union tree_ann_d): Add cst_ann, expr_ann.
1582 * tree-dfa.c (create_cst_ann): New function.
1583 (create_expr_ann): Ditto.
1584 * tree-flow-inline.h (cst_ann): New function.
1585 (expr_ann): Ditto.
1586 (get_cst_ann): Ditto.
1587 (get_expr_ann): Ditto..
1588
1589 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1590
1591 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1592 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1593 _U_Qfcmp library function.
1594 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1595 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1596
1597 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1598 unspec used for loading address from DLT.
1599 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1600 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1601 Don't use short code sequence when loading the address of a nonlocal
1602 label.
1603 (nonlocal_goto): New expander.
1604 (indirect_goto): New jump pattern for nonlocal gotos.
1605 (short_jump): Remove extra whitespace.
1606 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
1607 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1608 pattern.
1609
1610 2004-06-11 Roger Sayle <roger@eyesopen.com>
1611
1612 * expmed.c (synth_mult): Add an additional MODE argument for the
1613 machine mode of the multiplication. Update recursive calls. Use
1614 mode instead of word_mode for determining operation costs.
1615 (choose_mult_variant): Update calls to synth_mult with "mode".
1616
1617 2004-06-11 Richard Henderson <rth@redhat.com>
1618
1619 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1620 and makes_aliased_stores.
1621
1622 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1623
1624 * doc/install.text (--enable-shared): Fix typo.
1625
1626 2004-06-11 Richard Henderson <rth@redhat.com>
1627
1628 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1629 argument. Use internal post for call to gimplify_expr. Tidy
1630 rounded type size computation.
1631 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1632 get_initialized_tmp_var.
1633
1634 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1635
1636 * doc/install.texi (--enable-shared): Update libobjc's shared library
1637 status. Remove reference to libf2c.
1638
1639 2004-06-11 Jason Merrill <jason@redhat.com>
1640
1641 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1642 * config/i386/i386.c (ix86_va_arg): Remove.
1643 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1644 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1645 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1646 * config/alpha/alpha.c (alpha_va_arg): Remove.
1647 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1648 * config/sparc/sparc.c (sparc_va_arg): Remove.
1649
1650 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1651 assignment might throw.
1652 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1653 expressions.
1654
1655 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
1656
1657 PR 15886:
1658 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1659
1660 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
1661
1662 * doc/install.texi (Prerequisites): Update documentation of
1663 required versions of autoconf and automake. Remove mention of
1664 libf2c.
1665
1666 2004-06-11 Jason Merrill <jason@redhat.com>
1667
1668 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1669 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1670
1671 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
1672
1673 * typeclass.h: Add GPL plus exception license. Add include
1674 guard.
1675
1676 2004-06-10 Jason Merrill <jason@redhat.com>
1677
1678 * gimplify.c (gimplify_modify_expr): Don't force a temporary
1679 of an aggregate_value_p type.
1680
1681 2004-06-10 Jeff Law <law@redhat.com>
1682
1683 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1684 code when we are in gimple form.
1685
1686 2004-06-10 Diego Novillo <dnovillo@redhat.com>
1687
1688 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1689 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1690 (highest_ssa_version): Remove.
1691 * tree-outof-ssa.c (new_temp_expr_table): Replace
1692 highest_ssa_version with num_ssa_names.
1693 (dump_replaceable_exprs): Likewise.
1694 (rewrite_vars_out_of_ssa): Likewise.
1695 * tree-ssa-ccp.c (initialize): Likewise
1696 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1697 * tree-ssa-dce.c (tree_dce_init): Likewise.
1698 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1699 * tree-ssa-live.c (create_ssa_var_map): Likewise.
1700 (dump_var_map): Likewise.
1701 * tree-ssa.c (verify_ssa): Likewise.
1702 (kill_redundant_phi_nodes): Likewise.
1703 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
1704 * tree-ssanames.c: Include tree-flow.h
1705 (ssa_names): New varray.
1706 (init_ssa_names): Initialize ssa_names.
1707 Reserve the first slot of the ssa_names table.
1708 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1709 Assign version numbers using num_ssa_names.
1710
1711 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
1712
1713 * doc/sourcebuild.texi (Front End): Add details of more
1714 installation documentation required.
1715
1716 2004-06-10 Brian Booth <bbooth@redhat.com>
1717
1718 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1719 of V_MAY_DEF and V_MUST_DEF.
1720 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1721 num_vdefs to num_v_may_defs.
1722 (compute_immediate_uses_for_stmt): Rename occurences of vdef
1723 to v_may_def.
1724 (redirect_immediate_uses): Ditto.
1725 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1726 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1727 Also add code to sum up the number of v_must_defs.
1728 (vdefs_disappeared_p): Replace with...
1729 (v_may_defs_disappeared_p): This.
1730 (v_must_defs_disappeared_p): New function.
1731 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1732 Also add code to mark new variables found in V_MUST_DEFs for
1733 renameing.
1734 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1735 vdef_ops to v_may_def_ops.
1736 (get_vdef_ops): Replace with...
1737 (get_v_may_def_ops): This.
1738 * tree-flow-inline.h (get_vdef_ops): Replace with...
1739 (get_v_may_def_ops): This.
1740 (get_v_must_def_ops): New function.
1741 (get_vdef_result_ptr): Replace with...
1742 (get_v_may_def_result_ptr): This.
1743 (get_vdef_op_ptr): Ditto with...
1744 (get_v_may_def_op_ptr); This.
1745 (get_v_must_def_op_ptr): New function.
1746 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1747 to v_may_def. Also add code to mark statements with
1748 V_MUST_DEFs as definition sites.
1749 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1750 add code to register new V_MUST_DEFs made by the statement.
1751 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1752 (check_replaceable): Rename occurences of vdef to v_may_def. Also
1753 add check for V_MUST_DEFs.
1754 (find_replaceable_in_bb): Ditto.
1755 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1756 to v_may_def. Also add code to dump V_MUST_DEFs.
1757 * tree-sra.c (mark_all_vdefs): Replace with...
1758 (mark_all_v_may_defs): This.
1759 (mark_all_v_must_defs): New function.
1760 (create_scalar_copies): Replace call to mark_all_vdefs with
1761 calls to mark_all_v_may_defs and mark_all_v_must_defs.
1762 (scalarize_structures): Rename occurences of vdef to v_may_def.
1763 Also add a check for V_MUST_DEFs.
1764 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1765 * tree-ssa-alias.c (global_var): Update comment.
1766 (compute_may_aliases): Ditto.
1767 (compute_points_to_and_addr_escape): Rename occurences of vdef
1768 to v_may_def. Also add code to mark variables in V_MUST_DEF
1769 operands as being written to.
1770 (group_aliases): Update comment.
1771 (maybe_create_global_var): Ditto.
1772 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1773 Also add a check for V_MUST_DEFs on GIMPLE registers.
1774 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1775 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1776 to v_may_def. Also add code to mark all V_MUST_DEF operands
1777 VARYING.
1778 (initialize): Ditto.
1779 (set_rhs): Rename occurences of vdef to v_may_def. Also add
1780 code to update SSA_NAMEs in V_MUST_DEFs.
1781 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1782 to v_may_def.
1783 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1784 occurences of vdef to v_may_def. Also add code to mark statements
1785 with V_MUST_DEFs as necessary.
1786 (propagate_necessity): Rename occurences of vdef to v_may_def.
1787 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1788 occurences of vdef to v_may_def. Also add code to mark operands
1789 in V_MUST_DEFs for renaming.
1790 (eliminate_redundant_computations): Rename occurences of vdef
1791 to v_may_def.
1792 (record_equivalences_from_stmt): Rename occurences of vdef
1793 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1794 (optimize_stmt): Remove unnesessary variable vdefs. Update
1795 comment.
1796 (register_definitions_for_stmt): Rename occurences of vdef
1797 to v_may_def. Also add code to register definitions made with
1798 V_MUST_DEFs.
1799 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1800 (fix_stmt_v_may_defs): This.
1801 (fix_phi_uses): Rename occurences of vdef to v_may_def.
1802 (dse_optimize_stmt): Ditto.
1803 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1804 to v_may_def. Also add code to mark V_MUST_DEF operands as being
1805 used in virtual operators.
1806 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1807 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1808 renaming.
1809 * tree-ssa-operands.c (opf_kill_def): New flag for killing
1810 definitions.
1811 (build_vdefs): Renamed to...
1812 (build_v_may_defs): This.
1813 (build_v_must_defs): New variable.
1814 (voperands_d): Add v_must_def_ops and replace vdef_ops with
1815 v_may_def_ops.
1816 (append_vdef): Replace with...
1817 (append_v_may_def): This.
1818 (append_v_must_def): New function.
1819 (NUM_FREE): Increment for V_MUST_DEF
1820 (optype_freelist): Increment its size for V_MUST_DEF
1821 (allocate_vdef_optype): Replace with...
1822 (allocate_v_may_def_optype): This.
1823 (allocate_v_must_def_optype): New function.
1824 (free_vdefs): Replace with...
1825 (free_v_may_defs): This.
1826 (free_v_must_defs): New function.
1827 (remove_vdefs): Replace with...
1828 (remove_v_may_defs): This.
1829 (remove_v_must_defs): New function.
1830 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1831 add code to initialize build_v_must_defs.
1832 (finalize_ssa_vdefs): Replace with...
1833 (finalize_ssa_v_may_defs): This.
1834 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1835 (finalize_ssa_v_must_defs): New function.
1836 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1837 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1838 (verify_start_operands): Rename occurences of vdef to v_may_def.
1839 Also add check for build_v_must_defs.
1840 (get_stmt_operands): Rename occurences of vdef to v_may_def.
1841 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1842 killing definitions.
1843 (get_expr_operands): Update comment and use opf_kill_def for
1844 killing definitions.
1845 (add_stmt_operand): Replace code that appends VDEFs with code
1846 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1847 otherwise.
1848 (add_call_clobber_ops): Update comments.
1849 * tree-ssa-operands.h (vdef_optype_d): Replace with...
1850 (v_may_def_optype_d): This.
1851 (v_must_def_optype_d): New structure.
1852 (VDEF_OPS): Replace with...
1853 (V_MAY_DEF_OPS): This.
1854 (STMT_VDEF_OPS): Same with...
1855 (STMT_V_MAY_DEF_OPS): This.
1856 (NUM_VDEFS): And...
1857 (NUM_V_MAY_DEFS): This.
1858 (VDEF_RESULT_PTR): As well as...
1859 (V_MAY_DEF_RESULT_PTR): This.
1860 (VDEF_RESULT): Same goes for...
1861 (V_MAY_DEF_RESULT): This.
1862 (VDEF_OP_PTR): And...
1863 (V_MAY_DEF_OP_PTR): This.
1864 (VDEF_OP): And...
1865 (V_MAY_DEF_OP): This.
1866 (V_MUST_DEF_OPS): New macro.
1867 (STMT_V_MUST_DEF_OPS): Ditto.
1868 (NUM_V_MUST_DEFS): Ditto.
1869 (V_MUST_DEF_OP_PTR): Ditto.
1870 (V_MUST_DEF_OP): Ditto.
1871 (remove_vdefs): Replace signature with...
1872 (remove_v_may_defs): This.
1873 (remove_v_must_defs): New function signature.
1874 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1875 with calls to remove_v_may_defs and remove_v_must_defs.
1876 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1877 Also add code that marks left occurences of operands in V_MUST_DEFs.
1878 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1879 to v_may_def. Also add check for V_MUST_DEFs.
1880 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1881
1882 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
1883
1884 PR target/15653
1885 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1886 insn.
1887
1888 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1889
1890 PR web/15263
1891 * doc/install.texi: Remove superfluous linebreak.
1892
1893 2004-06-10 Roger Sayle <roger@eyesopen.com>
1894
1895 * builtins.c (expand_builtin): Fall back to library function call for
1896 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1897 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1898 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1899 IMAGPART_EXPR respectively.
1900
1901 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
1902
1903 * sh.c (dump_table): New argument start. Changed caller.
1904 (fixup_mova): New function.
1905 (find_barrier): Use it.
1906 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
1907 If the label a mova refers to is above the mova itself, change
1908 the mova into a load.
1909 * sh.md (*casesi_worker): Rename to:
1910 (casesi_worker_1).
1911 (casesi_worker_2): New insn.
1912
1913 2004-06-10 Jason Merrill <jason@redhat.com>
1914
1915 * target.h (struct gcc_target): Change gimplify_va_arg_expr
1916 hook signature.
1917 * tree-gimple.h: Adjust.
1918 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1919 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1920 Use fold_convert.
1921 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1922 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1923 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
1924 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
1925 (gimplify_va_arg_expr): Return GS_ERROR in error case.
1926 Gimplify valist rather than calling stabilize_va_list.
1927
1928 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1929
1930 * Makefile.in (df.o): Remove fibheap dependency.
1931 * df.h: Do not include sbitmap.h.
1932 (struct ref): New field "data".
1933 (DF_REF_DATA): New accessor macro.
1934 (struct df): Field "dom" removed.
1935 (df_analyze_subcfg): New function.
1936 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1937 (transfer_function): ... new type.
1938 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1939 (iterative_dataflow): ... new function.
1940 (enum set_representation, struct dataflow): New.
1941 * df.c: Do not include fibheap.h.
1942
1943 (df_reg_def_chain_clean, df_reg_use_chain_clean,
1944 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1945 prune_to_subcfg, df_bb_modify): New functions.
1946 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1947 df_refs_update, df_reg_table_realloc, df_ref_create,
1948 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1949 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1950 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1951
1952 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1953 (df_rd_transfer_function, df_ru_transfer_function,
1954 df_lr_transfer_function): Type of bitmaps changed to void *.
1955 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1956 (hybrid_search): ... new function.
1957 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1958 (iterative_dataflow): ... new function. Avoid use of fibheaps for
1959 a worklist. Do not process basic blocks unnecessarily.
1960
1961 2004-06-10 Roger Sayle <roger@eyesopen.com>
1962
1963 * fold-const.c (fold_abs_const): Make extern.
1964 * tree.h (fold_abs_const): Prototype here.
1965 * builtins.c (fold_builtin_fabs): New function to transform
1966 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1967 (fold_builtin_abs): New function to transform abs, labs, llabs
1968 and imaxabs builtins into ABS_EXPR tree nodes.
1969 (expand_builtin): Fall back to a function call for abs, labs,
1970 llabs and imaxabs builtins that survive constant folding.
1971 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1972 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1973
1974 2004-06-10 Jakub Jelinek <jakub@redhat.com>
1975
1976 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1977 leaf function without unwind info at RP 0.
1978
1979 2004-06-10 Jakub Jelinek <jakub@redhat.com>
1980
1981 PR c++/14791
1982 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1983 (fileptr_type_node): Define.
1984 * tree.c (build_common_tree_nodes_2): Initialize
1985 fileptr_type_node to ptr_type_node.
1986 * c-common.c (c_common_nodes_and_builtins): For C++, make
1987 fileptr_type_node a distinct type copy.
1988 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1989 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1990 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1991 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1992 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1993 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1994 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1995 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1996 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1997 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1998 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1999 the above *FILEPTR* types instead of *PTR*.
2000
2001 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
2002
2003 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
2004 match.
2005
2006 2004-06-09 Roger Sayle <roger@eyesopen.com>
2007
2008 * fold-const.c (fold_not_const): New function.
2009 (fold) <ABS_EXPR>: Don't bother testing wins.
2010 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
2011 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
2012
2013 2004-06-09 Richard Henderson <rth@redhat.com>
2014
2015 PR middle-end/15228
2016 * function.c (assign_parms): Always set_mem_align with the computed
2017 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
2018
2019 2004-06-09 Richard Henderson <rth@redhat.com>
2020
2021 PR opt/15108
2022 * tree-tailcall.c (find_tail_calls): Don't check early for
2023 tail_recursion failure.
2024
2025 2004-06-09 Diego Novillo <dnovillo@redhat.com>
2026
2027 Move SSA_NAME annotations into tree_ssa_name.
2028
2029 * tree-dfa.c (create_ssa_name_ann): Remove.
2030 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
2031 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
2032 (struct ssa_name_ann_d): Remove.
2033 (union tree_ann_d): Update.
2034 (ssa_name_ann_t): Remove.
2035 * tree-ssa-alias.c: (get_ptr_info): New local function.
2036 Replace references to ssa_name_ann_t with struct ptr_info_def.
2037 * tree-ssa-operands.c (get_expr_operands): Likewise.
2038 * tree.h (SSA_NAME_PTR_INFO): Define.
2039 (struct ptr_info_def): Declare.
2040 (struct tree_ssa_name): Add field 'ptr_info'.
2041
2042 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
2043
2044 * config/i386/winnt.c (i386_pe_output_labelref): Correct
2045 misplaced ')'.
2046
2047 2004-06-09 Steven Bosscher <stevenb@suse.de>
2048
2049 * config/i386/k6.md: Rewrite using the DFA model.
2050 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
2051 cost of load-operation insns for the K6.
2052 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
2053 (ia32_multipass_dfa_lookahead): Likewise.
2054
2055 2004-06-09 Richard Henderson <rth@redhat.com>
2056
2057 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
2058 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
2059
2060 2004-06-09 Richard Henderson <rth@redhat.com>
2061
2062 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
2063
2064 2004-06-09 Geoffrey Keating <geoffk@apple.com>
2065
2066 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
2067 (CPP_ID_DATA_H): New.
2068 (gtype-desc.o): Update dependencies.
2069 (GTFILES): Use CPP_ID_DATA_H.
2070
2071 2004-06-09 Mark Mitchell <mark@codesourcery.com>
2072
2073 Revert:
2074 PR c++/15815
2075 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2076 * doc/extend.texi: Deprecate #pragma interface and #pragma
2077 implementation.
2078
2079 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
2080
2081 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2082
2083 2004-06-09 Richard Henderson <rth@redhat.com>
2084
2085 * basic-block.h (struct edge_def): Add goto_locus.
2086 * tree-cfg.c (make_goto_expr_edges): Set it.
2087 (disband_implicit_edges): Use it.
2088 * tree-pretty-print.c (dump_implicit_edges): Print it.
2089
2090 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2091
2092 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2093
2094 2004-06-08 Jason Merrill <jason@redhat.com>
2095
2096 Gimplify VA_ARG_EXPR into simpler forms.
2097 * target.h: Add gimplify_va_arg_expr hook.
2098 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2099 * fold-const.c (build_fold_addr_expr)
2100 (build_fold_addr_expr_with_type): Move from gimplify.c.
2101 * tree.h: Declare them.
2102 * gimplify.c (gimplify_and_add): New fn.
2103 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2104 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2105 (gimplify_expr): Use build_fold_*.
2106 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2107 don't know how to gimplify it.
2108 * builtins.c (std_gimplify_va_arg_expr): New fn.
2109 (dummy_object): New static fn.
2110 (gimplify_va_arg_expr): New fn.
2111 (stabilize_va_list): Use build_fold_*.
2112 * tree-gimple.h: Declare new fns.
2113 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2114 (ix86_gimplify_va_arg): New fn.
2115 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2116 (ia64_gimplify_va_arg): New fn.
2117 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
2118 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2119 * alias.c (get_varargs_alias_set): Just return 0 for now.
2120
2121 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2122
2123 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2124
2125 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2126 of convert.
2127 * tree-inline.c (setup_one_parameter): Likewise.
2128 * tree-sra.c (csc_build_component_ref): Likewise.
2129 * tree-ssa-ccp.c (ccp_fold): Likewise.
2130 * tree-ssa-copy.c (cprop_operand): Likewise.
2131 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2132 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2133
2134 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2135
2136 PR rtl-optimization/15521:
2137 * sched-int.h (in_post_call_group_p): Change type to enum.
2138 * sched-deps.c (sched_analyze_insn):
2139 (sched_analyze): When in_post_call_group_p is post_call_initial,
2140 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2141 and also reset in_post_call_group_p to post_call.
2142 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2143 initialize in_post_call_group_p as post_call_initial.
2144 (init_deps): initialize in_post_call_group_p to not_post_call.
2145
2146 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2147
2148 PR ada/6637
2149 * doc/install.texi: List ada, libada as options to --enable-shared
2150
2151 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
2152
2153 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2154 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2155 config.in entries.
2156 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2157 if hard links are not available.
2158 * configure: Regenerate.
2159 * config.in: Regenerate.
2160
2161 2004-06-08 Per Bothner <per@bothner.com>
2162
2163 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2164
2165 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2166
2167 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2168 Correct formatting.
2169
2170 2004-06-08 James E Wilson <wilson@specifixinc.com>
2171
2172 PR target/15790
2173 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2174
2175 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2176
2177 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2178 POINTER_TYPE and INTEGER_TYPE.
2179
2180 2004-06-08 Bernardo Innocenti <bernie@develer.com>
2181
2182 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2183 defined.
2184
2185 2004-06-08 Jeff Law <law@redhat.com>
2186
2187 * doc/contrib.texi: Add entries for Stefan Olsson and
2188 Ola Ronnerup.
2189
2190 2004-06-08 DJ Delorie <dj@redhat.com>
2191
2192 * toplev.c (floor_log2_wide): Replace loop with faster bit
2193 operations.
2194 (exact_log2_wide): Define in terms of the above.
2195 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2196 available.
2197
2198 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2199
2200 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2201 Make sure that we are in INDIRECT mode when getting the
2202 stub name.
2203
2204 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2205
2206 * h8300.md (extendqisi2_h8300): Add constraints.
2207 (ldm_h8300s_4_normal): Fix typo.
2208
2209 2004-06-08 Richard Henderson <rth@redhat.com>
2210
2211 * gimple-low.c (struct lower_data): Replace the_return_label and
2212 one_return_stmt with return_statements.
2213 (lower_function_body): Process the entire list of return_statements.
2214 (lower_return_expr): Check source value before unifying return_exprs.
2215 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2216 for !aggregate_value_p.
2217 * tree-gimple.c: Update RETURN_EXPR grammer.
2218
2219 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2220
2221 PR target/15598
2222 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2223
2224 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2225
2226 PR rtl-optimization/15717
2227 * config/i386/i386.c (legitimate_constant_p): Do not allow
2228 x - symbol_ref.
2229
2230 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
2231
2232 * gimplify.c (copy_if_shared_r): Revert:
2233 2004-05-21 Richard Henderson <rth@redhat.com>
2234 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2235
2236 2004-06-07 Roger Sayle <roger@eyesopen.com>
2237
2238 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2239 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2240 (init_expmed): Initialize these cost arrays as appropriate.
2241 (store_bit_field, extract_bit_field): Correct whitespace.
2242 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2243 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2244 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2245 word_mode or compute_mode as appropriate.
2246
2247 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2248
2249 PR target/15783
2250 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2251 parameter. Enumerate the registers inside the PARALLEL.
2252 (function_arg): Adjust call to function_arg_union_value.
2253 (function_value): Likewise.
2254
2255 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2256
2257 2004-06-07 Roger Sayle <roger@eyesopen.com>
2258
2259 * real.c (real_copysign): New function to implement libm's copysign.
2260 * real.h (real_copysign): Prototype here.
2261 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2262 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2263 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2264 fold_builtin_isdigit): Add function prototypes.
2265 (fold_builtin_copysign): New function to fold copysign, copysignf
2266 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
2267 constant arguments at compile-time using real_copysign. Fold
2268 copysign(X,Y) as fabs(X) if Y is always non-negative.
2269 (fold_builtin_1): Correct minor whitespace/style issues. Call
2270 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2271
2272 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
2273
2274 * tree.c (iterative_hash_expr): Use real_hash.
2275
2276 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
2277
2278 PR c/14765
2279 * c-parse.in (compstmt_primary_start): Set last_expr_type to
2280 NULL_TREE.
2281
2282 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2283
2284 PR c++/15815
2285 * doc/extend.texi: Deprecate #pragma interface and #pragma
2286 implementation.
2287
2288 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
2289
2290 PR middle-end/15666
2291 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2292 builtin decl as well.
2293
2294 2004-06-07 Roger Sayle <roger@eyesopen.com>
2295
2296 PR c/14649
2297 * c-typeck.c (require_constant_value, require_constant_elements):
2298 Move declarations to the top of the file.
2299 (build_function_call): If we require a constant value, fold with
2300 fold_initializer. If the result is a constant, and the function
2301 wasn't called using __builtin_foo, issue a pedantic warning.
2302 (build_unary_op): If we require a constant value, fold tree with
2303 fold_initializer.
2304 (build_binary_op): Use require_constant_value to determine whether
2305 to call fold or fold_initializer.
2306
2307 2004-06-07 Richard Henderson <rth@redhat.com>
2308
2309 * gimple-low.c (struct lower_data): Add the_return_label and
2310 one_return_stmt.
2311 (lower_function_body): Initialize and use them.
2312 (lower_return_expr): New.
2313 (lower_stmt): Call it.
2314 * gimplify.c (gimplify_return_expr): Force the argument to be either
2315 null or a result_decl.
2316 * tree-gimple.c: Update gimple grammer to match.
2317 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2318 coalescing of result_decls.
2319
2320 2004-06-07 Richard Henderson <rth@redhat.com>
2321
2322 PR rtl-opt/15193
2323 * expmed.c (extract_bit_field): Fix vector_extract return.
2324
2325 * config/i386/i386.md (negv4sf2): New pattern.
2326
2327 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2328
2329 PR c++/15337
2330 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
2331 message.
2332
2333 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
2334
2335 * config.in: Regenerate.
2336
2337 2004-06-06 Steven Bosscher <stevenb@suse.de>
2338
2339 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2340 SWITCH_LABELS are always sorted.
2341
2342 2004-06-06 Steven Bosscher <stevenb@suse.de>
2343
2344 * hooks.c (hook_int_void_1): New generic hook.
2345 * hooks.h (hook_int_void_1): Add prototype.
2346 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2347 Define to hook_int_void_1.
2348 * config/c4x/c4x.md: Replace dummies for the old pipeline model
2349 with dummies for the new one.
2350
2351 2004-06-06 Roger Sayle <roger@eyesopen.com>
2352
2353 * tree.h (lvalue_or_else): Delete function prototype.
2354 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
2355
2356 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2357
2358 PR target/14542
2359 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2360 a live change of a register after peephole replacement.
2361
2362 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
2363
2364 PR c/13519
2365 * c-typeck.c (composite_type, common_pointer_type): New functions.
2366 (common_type): Split parts into composite_type and
2367 common_pointer_type. Ensure that arithmetic operations return
2368 unqualified types without attributes. Don't make composite type
2369 of signed enum and compatible integer be unsigned.
2370 (build_conditional_expr, build_binary_op): Use
2371 common_pointer_type.
2372 * c-decl.c (merge_decls): Use composite_type.
2373 * c-tree.h (composite_type): Declare.
2374
2375 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2376
2377 PR target/14457
2378 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2379 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2380 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2381 (inhibit_libc): Must define.
2382 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2383 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2384 ("xorhi3"): Likewise.
2385
2386 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2387
2388 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2389 always_inline pass.
2390
2391 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
2392
2393 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2394 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2395
2396 2004-06-05 Bernardo Innocenti <bernie@develer.com>
2397
2398 * regclass.c (init_reg_sets): Check for missing registers in target
2399 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2400
2401 2004-06-05 Zack Weinberg <zack@codesourcery.com>
2402
2403 * Makefile.in (MKDEPS_H): New shorthand.
2404 (c-opts.o): Update dependencies.
2405 * c-opts.c: Include mkdeps.h.
2406 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2407 not cpp_add_dependency_target.
2408
2409 2004-06-05 Steven Bosscher <stevenb@suse.de>
2410
2411 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2412 * config/v850/v850.md: Convert to DFA scheduler description.
2413
2414 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2415
2416 PR fortran/15478
2417 * doc/install.texi: Document GMP as prerequisite. Document
2418 --with-gmp and --with-gmp-dir configure options.
2419 * fortran/gfortran.texi: Remove section "Compiling and testing",
2420 remove TOC reference to it.
2421
2422 2004-06-05 Graham Stott <graham.stott@btinternet.com>
2423
2424 * combine.c(simplify_shift_const): Check shift amount is a
2425 CONST_INT.
2426
2427 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
2428
2429 * toplev.c (init_asm_output): Add explicit 'b' to mode when
2430 opening asm_out_file.
2431 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2432 reading asm_out_file. Replace fflush after reading asm_out_file
2433 with fseek.
2434 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
2435 default and add to HOST_HOOKS_INITIALIZER.
2436 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2437 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
2438 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
2439 to set mmi.offset padding.
2440 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2441 $(srcdir)/config/i386/winnt.c.
2442 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2443 (i[34567]86-*-uwin*): Likewise.
2444 *i[34567]86-*-interix3*): Likewise.
2445 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2446 * config/i386/host-mingw32.c: New file.
2447 * config/i386/x-mingw32: Add rule for host-mingw32.o.
2448 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2449 (extern_head): Likewise.
2450 (struct export_list) Likewise.
2451 (export_head): Likewise.
2452 (i386_pe_record_external_function): Use ggc_alloc.
2453 (i386_pe_record_exported_symbol): Likewise.
2454 Include "gt-winnt.h" at end.
2455 * doc/hostconfig.texi: Document
2456 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2457
2458 2004-06-04 Bernardo Innocenti <bernie@develer.com>
2459
2460 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2461 Rename 68000 and 68k to m68k for consistency in comments. Remove
2462 trailing whitespace before EOLs and before TABs.
2463 (MAX_CODE_ALIGN): Remove unused macro.
2464 (CALL_USED_REGISTERS): Reformat and add comments.
2465
2466 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
2467
2468 * gcc.c (MFLIB_SPEC): Remove library references, to require users
2469 to enumerate -lmudflap* and dependencies when linking.
2470
2471 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
2472
2473 PR target/15822
2474 * dojump.c (do_jump): Fix uninitialized variable tcode1.
2475
2476 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
2477
2478 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2479 * genconditions.c (write_header): Back out removal of reload.h.
2480
2481 2004-06-04 Jan Hubicka <jh@suse.cz>
2482
2483 Re-apply hopefully fixed patch:
2484 * i386.md (UNSPECV_EH_RETURN): Kill.
2485 (eh_return): Use jump_insn.
2486 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2487
2488 2004-06-04 Jeff Law <law@redhat.com>
2489
2490 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2491
2492 2004-06-04 Steven Bosscher <stevenb@suse.de>
2493
2494 * except.c (for_each_eh_region): New function.
2495 * except.h (for_each_eh_region): Add a prototype for it.
2496 * tree-cfg.c (update_eh_labels): New function, callback for
2497 for_each_eh_region.
2498 (label_for_bb): Make global static, unfortunately.
2499 (cleanup_dead_labels): Also update label references for
2500 exception regions.
2501
2502 2004-06-03 Chris Demetriou <cgd@broadcom.com>
2503
2504 * config/mips/mips.c (struct irix_section_align_entry): Fix
2505 GTY marker.
2506
2507 2004-06-03 Geoffrey Keating <geoffk@apple.com>
2508
2509 * toplev.c (check_global_declarations): Don't ask for
2510 DECL_ASSEMBLER_NAME unless the function really is declared
2511 static and not defined.
2512
2513 2004-06-03 Matt Austern <austern@apple.com>
2514
2515 PR c++/15428
2516 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2517 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2518 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2519 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
2520 documentation to reflect the new macro name and to clarify its
2521 meaning.
2522
2523 2004-06-03 Steven Bosscher <stevenb@suse.de>
2524
2525 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2526
2527 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
2528
2529 * config/darwin.c (machopic_indirect_data_reference): Copy
2530 the SYMBOL_REF_DECL from the original RTX for the new
2531 non-lazy pointer RTX.
2532
2533 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2534
2535 * tree.h: Remove include of version.h
2536 * c-cppbuiltin.c: Include version.h
2537 * diagnostic.c: Include version.h
2538 * dwarf2out.c: Include version.h
2539 * toplev.c: Include version.h
2540 * vmsdbgout.c: Include version.h
2541 * Makefile.in: Remove dependency on version.h from TREE_H, and
2542 add dependencies to required .o targets
2543
2544 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
2545
2546 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2547 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2548 (TARGET_H): Add insn-modes.h.
2549 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2550 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2551 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2552 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2553 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2554 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2555 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2556 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2557 CFGLAYOUT_H.
2558 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2559 Replace ra.h with RA_H.
2560 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2561 insn-recog.o): Replace resource.h with RESOURCE_H.
2562 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2563 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
2564 with SCHED_INT_H.
2565 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2566 ra-rewrite.o): Replace df.h with DF_H.
2567 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2568 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2569 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2570 (insn-conditions.o): Remove unused reload.h.
2571 * cfglayout.h: Add include guard. Include basic-block.h.
2572 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
2573 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2574 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
2575 basic-block.h.
2576 * genconditions.c: Remove reload.h.
2577 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
2578 hard-reg-set.h, insn-modes.h.
2579 * resource.h: Add include guard. Include hard-reg-set.h.
2580 * sched-int.h: Add include guard. Include insn-attr.h,
2581 basic-block.h, rtl.h.
2582 * target.h: Add include guard. Include insn-modes.h.
2583 * tree-ssa-live.h: Include partition.h.
2584
2585 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
2586 Kenneth Zadeck <zadeck@naturalbridge.com>
2587
2588 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2589 (add_var_to_ssa_edges_worklist): Add value argument.
2590 Update callers.
2591 Use new worklist.
2592 (process_ssa_edge_worklist): New function.
2593 (tree_ssa_ccp): Move worklist processing core to
2594 process_ssa_edge_worklist, and just call that for the two worklists.
2595
2596 2004-06-03 Steven Bosscher <stevenb@suse.de>
2597
2598 * basic-block.c (tail_recursion_label_list): Don't declare.
2599 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
2600 accordingly.
2601 * cfgbuild.c (find_label_refs): Remove.
2602 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2603 * cfgcleanup.c (tail_recursion_label_p): Remove.
2604 (merge_blocks_move): Do not check for tail recursion.
2605 (try_optimize_cfg): Likewise.
2606 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2607 * cfgrtl.c (tail_recursion_label_list): Remove.
2608 * except.c (remove_unreachable_regions): Don't handle
2609 CALL_PLACEHOLDER insns.
2610 (convert_from_eh_region_ranges_1, can_throw_internal,
2611 can_throw_external): Likewise.
2612 * function.c (free_after_compilation): Don't clear
2613 x_tail_recursion_label.
2614 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2615 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2616 (reorder_blocks_1): Likewise.
2617 * function.h (struct function): Remove x_tail_recursion_label
2618 member. Don't define tail_recursion_label.
2619 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2620 * print-rtl.c (print_rtx): Likewise.
2621 * rtl.def (CALL_PLACEHOLDER): Remove.
2622 * rtl.h (sibcall_use_t): Remove enum.
2623 (optimize_sibling_and_tail_recursive_calls,
2624 replace_call_placeholder): Remove function prototypes.
2625 * stmt.c (tail_recursion_args): Remove.
2626 (optimize_tail_recursion): Remove.
2627 (expand_return): Don't check for possible tail recursion.
2628 * tree.h (optimize_tail_recursion): Remove prototype.
2629
2630 2004-06-02 Jan Hubicka <jh@suse.cz>
2631
2632 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
2633 return_stmt.
2634
2635 2004-06-02 Jason Merrill <jason@redhat.com>
2636
2637 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2638 Do include c-parse.in.
2639
2640 2004-06-02 Eric Christopher <echristo@redhat.com>
2641
2642 * c-typeck.c (common_type): Don't lose type qualifiers
2643 when creating new variants.
2644
2645 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
2646
2647 PR tree-optimization/14042
2648 PR tree-optimization/14729
2649 PR tree-optimization/14736
2650 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2651 Check the type which the pointer points to
2652 instead of the pointer types.
2653
2654 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
2655
2656 PR tree-optimization/15738.
2657 * builtins.c (fold_builtin_strchr): Transform
2658 strrchr (s, '\0') to strchr (s, '\0').
2659
2660 2004-06-02 Steven Bosscher <stevenb@suse.de>
2661
2662 * i386.c (ix86_adjust_cost): Don't increase the cost for
2663 load+operation for PROCESSOR_PENTIUMPRO, it is already
2664 modelled in the DFA description
2665
2666 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
2667
2668 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2669 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2670 (ALIAS_H, EMIT_RTL_H): New.
2671 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2672 (cfgcleanup.o): Add EMIT_RTL_H.
2673 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2674 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2675 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2676 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2677 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
2678 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2679 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2680 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2681 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2682 set_mem_size): Move to emit-rtl.h.
2683 * emit-rtl.h: New.
2684 * alias.h: New.
2685
2686 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
2687
2688 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2689 Call fixup_memory_subreg only if the MEM is equal to 'var'.
2690 Adjust recursive calls to self.
2691 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2692
2693 2004-06-01 Richard Henderson <rth@redhat.com>
2694 Andrew Pinski <pinskia@physics.uc.edu>
2695
2696 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2697 (primary): Handle offsetof. Add error productions for faux functions.
2698 Move component_ref objc checking to build_component_ref.
2699 (reswords): Add offsetof.
2700 (rid_to_yy): Add offsetof.
2701 * c-tree.h (build_offsetof): Declare.
2702 * c-common.h (objc_is_public): Declare.
2703 * c-typeck.c (build_component_ref): Check objc_is_public.
2704 (build_offsetof): New.
2705 * stub-objc.c (objc_is_public): New.
2706 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2707 from is_public.
2708 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2709 * doc/extend.texi (Offsetof): Move from C++ section to C section
2710 and rewrite for __builtin_offsetof.
2711
2712 2004-06-01 Peter Barada <peter@the-baradas.com>
2713 Peter Jakubek <peter@laseranimation.com>
2714
2715 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
2716 a scratch to perform an add to memory.
2717
2718 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2719
2720 PR target/14018
2721 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2722 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2723 m68k_align_funcs): Remove.
2724 (override_options): Remove code to handle -malign-* options.
2725 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2726 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2727 (m68k_align_loops_string, m68k_align_jumps_string,
2728 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2729 m68k_align_funcs): Remove definitions.
2730
2731 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
2732
2733 PR target/15626
2734 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2735 by the Sun linker in conjunction with the Sun assembler.
2736 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2737
2738 2004-06-01 Jeff Law <law@redhat.com>
2739
2740 * stmt.c (expand_decl): Be more selective about calling
2741 mark_reg_pointer.
2742
2743 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
2744
2745 PR objc/7993
2746 * objc-act.c (is_private): Do not emit the 'instance variable %s
2747 is declared private' error.
2748 (is_public): Emit the error after calling is_private.
2749 (lookup_objc_ivar): If the instance variable is private, return 0
2750 - the instance variable is invisible here.
2751
2752 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2753
2754 * doc/invoke.texi (-static-libgcc): Explicitly mention
2755 non-GNU linkers.
2756
2757 2004-06-01 Bernardo Innocenti <bernie@develer.com>
2758
2759 PR target/12968
2760 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2761
2762 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
2763
2764 PR c/15749
2765 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2766 misuses of structures with flexible array members if
2767 in_system_header.
2768
2769 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2770
2771 PR target/15693
2772 * config/sparc/sparc.c (compare_operand): New predicate.
2773 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2774 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
2775 operand is a ZERO_EXTRACT and the second operand is not zero,
2776 force the former to a register.
2777 (cmpdi expander): Likewise.
2778
2779 2004-05-31 Geoffrey Keating <geoffk@apple.com>
2780
2781 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2782 looks at.
2783 * alias.c (alias_invariant_size): Make alias_invariant_size
2784 static, fix GTY marker.
2785
2786 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2787
2788 PR tree-optimization/15743.
2789 * builtins.c (fold_builtin_1): Fold index() and rindex().
2790
2791 2004-05-31 Roger Sayle <roger@eyesopen.com>
2792
2793 PR middle-end/15069
2794 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2795 into "X < 0" (where C is the signbit) if X's type is a full mode.
2796
2797 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2798
2799 * pa.md: Disable the peephole2 patterns that generate indexed
2800 floating-point stores when indexing is disabled.
2801
2802 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2803
2804 * c-pretty-print.c (pp_c_left_bracket): Make a function.
2805 (pp_c_right_bracket): Likewise.
2806 (pp_c_star): Likewise.
2807 (pp_c_ampersand): Define.
2808 * c-pretty-print.h (pp_c_left_bracket): Declare.
2809 (pp_c_right_bracket): Likewise.
2810 (pp_c_star): Likewise.
2811 (pp_c_ampersand): Likewise.
2812
2813 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2814
2815 * config/sol2.h (__enable_execute_stack): ANSIfy function
2816 definition.
2817
2818 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
2819
2820 * c-incpath.c (add_path): Canonicalize paths to use '/' if
2821 HAVE_DOS_BASED_FILESYSTEM.
2822
2823 2004-05-31 Steven Bosscher <stevenb@suse.de>
2824
2825 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2826 Only look at case labels if the immediate dominator is also
2827 the only predecessor. Don't look for more case labels if the
2828 first seen is a case range.
2829
2830 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2831
2832 * builtins.c: Add a prototype for fold_builtin_strchr().
2833
2834 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
2835
2836 Revert this patch:
2837 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
2838
2839 * combine.c (gen_binary): Remove.
2840 (known_cond, simplify_shift_const
2841 find_split_point, combine_simplify_rtx,
2842 simplify_if_then_else, simplify_set,
2843 simplify_logical, expand_field_assignment,
2844 extract_left_shift, force_to_mode,
2845 if_then_else_cond, apply_distributive_law,
2846 simplify_and_const_int, simplify_shift_const,
2847 gen_lowpart_for_combine, simplify_comparison,
2848 reversed_comparison): Replace with
2849 simplify_gen_binary, simplify_gen_relational or
2850 distribute_and_simplify_rtx.
2851 (distribute_and_simplify_rtx): New function.
2852
2853 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2854
2855 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2856 when generating PIC code.
2857
2858 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2859
2860 * c-decl.c (c_expand_body_1): Remove and fold back into ...
2861 (c_expand_body): here.
2862 (c_expand_decl): Move to ...
2863 * c-common.c (c_expand_decl): Here and remove check for nested
2864 functions.
2865 * c-common.h (c_expand_decl): Add prototype.
2866 * c-tree.h (c_expand_decl): Remove.
2867
2868 2004-05-30 Roger Sayle <roger@eyesopen.com>
2869
2870 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2871 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2872 fold_mathfn_compare, fold_inf_compare, fold,
2873 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2874 Use constant_boolean_node where appropriate. Don't bother using
2875 fold_convert on the second argument to omit_one_operand.
2876
2877 2004-05-30 Roger Sayle <roger@eyesopen.com>
2878
2879 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2880 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2881 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
2882 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2883 Add missing (but documented) tree nodes to the index.
2884
2885 2004-05-30 Steven Bosscher <stevenb@suse.de>
2886
2887 PR tree-optimization/14819
2888 * builtins.c (fold_builtin_strchr): New.
2889 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2890 with fold_builtin_strchr().
2891
2892 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2893
2894 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2895 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2896 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2897 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2898 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2899 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2900 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2901 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2902 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2903 formatting.
2904
2905 2004-05-30 Steven Bosscher <stevenb@suse.de>
2906
2907 * gimplify.c (sort_case_labels): New. Split out from...
2908 (gimplify_switch_expr): ...here. Use it.
2909 * tree-eh.c (lower_try_finally_switch): Sort the labels of
2910 the SWITCH_EXPR created here before leaving the function.
2911 * tree.c (sort_case_labels): Add prototype.
2912
2913 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2914
2915 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2916 of BOOLEAN_TYPE.
2917
2918 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2919
2920 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2921 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2922 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2923 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2924 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2925 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2926 comment typos. Follow spelling conventions.
2927
2928 2004-05-29 Geoffrey Keating <geoffk@apple.com>
2929
2930 * gengtype-yacc.y: Add NESTED_PTR token.
2931 (option): Record `nested_ptr' option.
2932 * gengtype-lex.l: Handle `nested_ptr' keyword.
2933 * gengtype.c (walk_type): Process `nested_ptr' option.
2934 * gengtype.h (struct nested_ptr_data): New.
2935 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2936 * stringpool.c (struct string_pool_data): Make 'entries' point to
2937 ht_identifier instead of tree.
2938 (gt_pch_save_stringpool): Don't adjust pointers.
2939 (gt_pch_restore_stringpool): Call ht_load.
2940
2941 2004-05-29 Jason Merrill <jason@redhat.com>
2942
2943 * gimplify.c (gimplify_expr): Don't build a statement list
2944 if no gimplification was necessary.
2945
2946 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2947
2948 * pretty-print.c (pp_base_format_text): Support %< instead of %`
2949 and %> as well as %'.
2950 * c-format.c: Use %< and %>.
2951 (gcc_diag_char_table, gcc_cdiag_char_table,
2952 gcc_cxxdiag_char_table): Update.
2953
2954 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2955
2956 * c-typeck.c (common_type): Correct comment.
2957
2958 2004-05-29 Peter Barada <peter@the-baradas.com>
2959
2960 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2961 * config/m68k/m68k.c (const_method): Likewise.
2962 * config/m68k/m68k.c (const_int_cost): Likewise.
2963 * config/m68k/m68k.c (const_int_cost): Likewise.
2964 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2965
2966 2004-05-29 Peter Barada <peter@the-baradas.com>
2967
2968 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2969 addressing.
2970 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2971 movsi,movhi,movqi insn patterns.
2972
2973 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
2974
2975 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2976
2977 PR target/15720
2978 * config/darwin.c (machopic_indirect_call_target): Copy
2979 the SYMBOL_REF_DECL from the original RTX for the new
2980 stub RTX.
2981
2982 2004-05-28 DJ Delorie <dj@redhat.com>
2983
2984 * stor-layout.c (place_field): Revert erroneous commit.
2985
2986 2004-05-28 Ziemowit Laski <zlaski@apple.com>
2987
2988 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2989 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2990 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2991 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2992 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2993 vec_ste): Remove type checks for integral parameters and literals
2994 from '..._args_eq' macros.
2995
2996 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
2997
2998 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2999
3000 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
3001
3002 * testsuite/g++.dg/charset/function.cc: New.
3003
3004 * testsuite/gcc.dg/charset/function.c: New.
3005
3006 * c-decl.c (c_make_fname_decl): Free return value from
3007 fname_as_string.
3008
3009 * cp/decl.c (cp_make_fname_decl): Free return value from
3010 fname_as_string.
3011
3012 * c-common.c (fname_as_string): Translate if necessary.
3013
3014 2004-05-28 Geoffrey Keating <geoffk@apple.com>
3015
3016 * stringpool.c: Add comments to PCH saving/restoring routines.
3017
3018 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
3019
3020 * c-common.c (c_estimate_num_insns_1): Kill.
3021 (c_estimate_num_insns): Kill.
3022 * c-common.h (c_estimate_num_insns): Kill.
3023
3024 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
3025 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
3026 Remove comment about not checking for
3027 _POSIX_PRIORITY_SCHEDULING.
3028 * gthr-posix.c: Likewise.
3029
3030 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
3031 Roger Sayle <roger@eyesopen.com>
3032
3033 PR rtl-optimization/15649
3034 Add LTGT_EXPR and improve pretty-printing of unordered
3035 comparisons.
3036 * c-common.c (c_common_truthvalue_conversion):
3037 Handle LTGT_EXPR.
3038 * c-typeck.c (build_binary_op): Likewise.
3039 * dojump.c (do_jump): Likewise.
3040 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
3041 * predict.c (tree_predict_by_opcode): Likewise.
3042 * real.c (real_compare): Likewise.
3043 * tree-cfg.c (verify_expr): Likewise.
3044 * tree-inline.c (estimate_num_insns_1): Likewise.
3045 * tree-pretty-print.c (dump_generic_node): Likewise.
3046 Handle ORDERED_EXPR, UNORDERED_EXPR.
3047 (op_symbol): Print unordered comparisons differently
3048 than ordered ones.
3049 * tree.def (LTGT_EXPR): New '<' tree code.
3050 * doc/c-tree.texi (Expressions): Document floating-point
3051 comparison nodes.
3052
3053 Fold comparisons between floating point values.
3054 * fold-const.c (enum comparison_code): New, from
3055 #define'd constants. Define compcodes for unordered
3056 comparisons and for invalid transformations.
3057 (invert_tree_comparison): Add "honor_nans" parameter.
3058 (fold_truthop): Revamp to work on floating-point types too.
3059 (comparison_to_compcode): Support unordered comparisons.
3060 Use new enum comparison_code.
3061 (compcode_to_comparison): Likewise.
3062 (combine_compcodes): New function.
3063 (invert_truthvalue): Let invert_tree_comparison decide
3064 whether it is valid to fold the comparison. Fold ORDERED
3065 and UNORDERED even if flag_unsafe_math_optimizations is off,
3066 and the remaining even if flag_unsafe_math_optimizations
3067 is off but we are under -fno-trapping-math.
3068 (fold_relational_const): Integer modes do not honor NaNs.
3069
3070 2004-05-28 Paul Brook <paul@codesourcery.com>
3071
3072 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3073
3074 2004-05-28 Paul Brook <paul@codesourcery.com>
3075
3076 * config/arm/arm.c (thumb_force_lr_save): New function.
3077 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3078 thumb_output_function_prologue): Use it.
3079 (thumb_expand_prologue): Set lr_save_eliminated.
3080
3081 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3082
3083 * config/mips/mips.md (extendsidi2): Tie the source and destination
3084 of the register alternative. Split it into nothing.
3085
3086 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
3087
3088 * rtl.h (skip_consecutive_labels): Declare.
3089 * emit-rtl.c (skip_consecutive_labels): New function.
3090 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3091 * jump.c (follow_jumps): Say what null return values mean.
3092
3093 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3094
3095 PR target/13250
3096 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3097
3098 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3099
3100 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3101 libgcc-std.ver.
3102 * config/sh/libgcc-std.ver: New file.
3103
3104 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3105
3106 * except.c: Revert change of 2004-05-26.
3107 * config/i386/i386.md: Revert change of 2004-05-27.
3108
3109 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3110
3111 * configure.ac: Remove --enable-tree-browser option.
3112 Define TREEBROWSER when ac_tree_checking is defined.
3113 * configure: Rebuilt.
3114
3115 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
3116
3117 * expr.c (store_constructor): Restore sanity check on
3118 the size of the type before clearing.
3119
3120 2004-05-27 Jan Hubicka <jh@suse.cz>
3121
3122 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3123
3124 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
3125
3126 * combine.c (gen_binary): Remove.
3127 (known_cond, simplify_shift_const
3128 find_split_point, combine_simplify_rtx,
3129 simplify_if_then_else, simplify_set,
3130 simplify_logical, expand_field_assignment,
3131 extract_left_shift, force_to_mode,
3132 if_then_else_cond, apply_distributive_law,
3133 simplify_and_const_int, simplify_shift_const,
3134 gen_lowpart_for_combine, simplify_comparison,
3135 reversed_comparison): Replace with
3136 simplify_gen_binary, simplify_gen_relational or
3137 distribute_and_simplify_rtx.
3138 (distribute_and_simplify_rtx): New function.
3139 * simplify-rtx.c (simplify_binary_operation):
3140 Use nonzero_bits to simplify ANDs where we are
3141 turning off bits already known to be off in OP0.
3142
3143 2004-05-27 Alan Modra <amodra@bigpond.net.au>
3144
3145 PR target/14478
3146 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3147
3148 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
3149
3150 PR middle-end/14084
3151 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3152 to size of decl.
3153
3154 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
3155
3156 PR/14924
3157 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3158
3159 2004-05-26 Roger Sayle <roger@eyesopen.com>
3160
3161 * tree.h: Fix comment typo.
3162
3163 2004-05-27 Steven Bosscher <stevenb@suse.de>
3164
3165 * gimplify.c (compare_case_labels): New function.
3166 (gimplify_switch_expr): Sort case labels, and make sure the
3167 last label in the label vector is the default case.
3168 * tree-cfg.c (group_case_labels): New function.
3169 (build_tree_cfg): Cleanup redundant labels and group case labels
3170 before creating edges.
3171 (cleanup_dead_labels): Handle GOTO_EXPRs.
3172 (find_case_label_for_value): Use a binary search to find the
3173 case label for the given value.
3174 * tree-gimple.c: Mention that labels are sorted, and that the
3175 last label must be the default.
3176
3177 2004-05-27 Jan Hubicka <jh@suse.cz>
3178
3179 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3180
3181 2004-05-27 Jan Hubicka <jh@suse.cz>
3182
3183 * i386.md (UNSPECV_EH_RETURN): Kill.
3184 (eh_return): Use jump_insn.
3185 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3186
3187 2004-05-26 Jan Hubicka <jh@suse.cz>
3188
3189 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3190 not loop optimizing.
3191
3192 2004-05-26 Jan Hubicka <jh@suse.cz>
3193
3194 * except.c (can_throw_internal): Notice RESX instructions.
3195
3196 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3197
3198 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3199 of the two sizes to assemble_integer.
3200
3201 2004-05-25 Paul Brook <paul@codesourcery.com>
3202
3203 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3204 pointless #ifdef.
3205
3206 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
3207
3208 * Makefile.in (top_builddir): Define to .
3209
3210 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
3211
3212 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3213 top-level detects, except when in-tree ld is being cross-built.
3214 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3215 then AS only if target is host.
3216 * configure: Rebuilt.
3217
3218 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3219
3220 * global.c (global_alloc): Call make_accurate_live_analysis.
3221 (record_one_conflict): Remove dead code.
3222 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3223 (bb_info): New structure.
3224 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3225 (allocate_bb_info, free_bb_info, mark_reg_change,
3226 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3227 modify_bb_reg_pav, calculate_reg_pav,
3228 make_accurate_live_analysis): New functions.
3229
3230 2004-05-25 Devang Patel <dpatel@apple.com>
3231
3232 * alias.c (init_alias_analysis): Use ggc_calloc instead of
3233 xrealloc.
3234 (end_alias_analysis): Use ggc_free instead fo free.
3235
3236 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
3237
3238 PR target/15546
3239 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3240 as needed to be outputted.
3241
3242 2004-05-25 Jan Hubicka <jh@suse.cz>
3243
3244 * builtins.def (__builtin_expect): Mark the function as const&nothrow.
3245
3246 2004-05-25 Ayal Zaks <zaks@il.ibm.com>
3247 Mostafa Hagog <mustafa@il.ibm.com>
3248
3249 * Makefile.in (modulo-sched.o, ddg.o): New.
3250 * ddg.h, ddg.c, modulo-sched.c: New files.
3251 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3252 internals to "dupicate_insn".
3253 (duplicate_insn): New function.
3254 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3255 declarations.
3256 * common.opt (fmodulo-sched): New flag.
3257 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3258 Remove static and forward declaration.
3259 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3260 functions.
3261 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3262 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3263 declarations.
3264 * flags.h (flag_modulo_sched): New flag.
3265 * opts.c (common_handle_option): Handle modulo-sched flag.
3266 * params.def (max-sms-loop-number, sms-max-ii-factor,
3267 sms-dfa-history, sms-loop-average-count-threshold): New
3268 parameters.
3269 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3270 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3271 parameters.
3272 * passes.c ("sms", "sms-vcg"): New dumps.
3273 (rest_of_handle_sched): Call sms_schedule.
3274 * rtl.h (sms_schedule): New declaration.
3275 * timevar.def (TV_SMS): New.
3276 * toplev.c (flag_modulo_sched): Initialize.
3277 (f_options): Handle -fmodulo-sched option.
3278 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3279 * docs/passes.texi: Document new SMS pass.
3280
3281 2004-05-25 Paolo Bonzini <bonzini@gnu.org>
3282
3283 * Makefile.in (OBJS): Add rtlhooks.o.
3284 (rtlanal.o): Depend on function.h.
3285 (cse.o): Depend on rtlhooks-def.h.
3286 (combine.o): Depend on rtlhooks-def.h.
3287 (rtlhooks.o): New rule.
3288 * combine.c: Include rtlhooks-def.h.
3289 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3290 num_sign_bit_copies, cached_num_sign_bit_copies,
3291 num_sign_bit_copies1): Move most of the code to rtlanal.c.
3292 (reg_nonzero_bits_for_combine,
3293 reg_num_sign_bit_copies_for_combine): New functions holding
3294 the remnants of the above.
3295 (combine_rtl_hooks): New.
3296 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3297 * cse.c: Include rtlhooks-def.h.
3298 (cse_rtl_hooks): New.
3299 (cse_main): Set rtl_hooks instead of gen_lowpart.
3300 * emit-rtl.c (gen_lowpart): Remove.
3301 (gen_lowpart_general): Move to rtlhooks.c.
3302 * rtl.h (nonzero_bits, num_sign_bit_copies,
3303 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3304 (gen_lowpart_general): Remove.
3305 (gen_lowpart): Temporarily redefine as a macro.
3306 * rtlanal.c: Include function.h.
3307 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3308 num_sign_bit_copies, cached_num_sign_bit_copies,
3309 num_sign_bit_copies1): New, from combine.c.
3310 * rtlhooks.c: New file.
3311 * rtlhooks-def.h: New file.
3312
3313 2004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
3314
3315 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3316 to support 32-bit -mint8 mode.
3317
3318 * doc/invoke.texi (-mint8): Added documentation for the -mint8
3319 option in the AVR architecture.
3320
3321 2004-05-24 Mike Stump <mrs@apple.com>
3322
3323 * doc/install.texi: Document that dejagnu 1.4.4 is required.
3324
3325 2004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
3326
3327 * intl.h (open_quote, close_quote): New.
3328 * intl.c (open_quote, close_quote): New.
3329 (gcc_init_libintl): Set them.
3330 * pretty-print.c: Include "intl.h".
3331 (pp_base_format_text): Support 'q' format flag and %` and %'
3332 formats. Use ' instead of ` in comments.
3333 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3334 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3335 foramt_types_orig): Describe these new formats.
3336 (decode_format_attr, check_function_format,
3337 check_format_info_main): Use these new formats.
3338 (status_warning): Use ATTRIBUTE_GCC_DIAG.
3339 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3340 check these formats to 3.5.
3341
3342 2004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3343
3344 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3345 (BACKEND): Reflect this.
3346 (LIBDEPS): Move CPPLIB before LIBIBERTY.
3347 (LIBS): Likewise.
3348
3349 2004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
3350
3351 PR tree-optimization/14197
3352 * builtins.c: Include "tree-gimple.h"
3353 (readonly_data_expr): Use get_base_address. Make sure to call
3354 decl_readonly_section only on trees it can handle.
3355 * tree-gimple.c (get_base_address): Accept STRING_CST and
3356 CONSTRUCTOR expressions.
3357 * Makefile.in: Update dependencies.
3358
3359 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3360
3361 Move libcpp to the toplevel.
3362 * Makefile.in: Remove references to libcpp files,
3363 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
3364 and change hashtable.h to that.
3365 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3366 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3367 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3368 * configure: Regenerate.
3369 * config.in: Regenerate.
3370 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3371 * cppcharset.c: Removed.
3372 * cpperror.c: Removed.
3373 * cppexp.c: Removed.
3374 * cppfiles.c: Removed.
3375 * cpphash.c: Removed.
3376 * cpphash.h: Removed.
3377 * cppinit.c: Removed.
3378 * cpplex.c: Removed.
3379 * cpplib.c: Removed.
3380 * cpplib.h: Removed.
3381 * cppmacro.c: Removed.
3382 * cpppch.c: Removed.
3383 * cpptrad.c: Removed.
3384 * cppucnid.h: Removed.
3385 * cppucnid.pl: Removed.
3386 * cppucnid.tab: Removed.
3387 * hashtable.c: Removed.
3388 * hashtable.h: Removed.
3389 * line-map.c: Removed.
3390 * line-map.h: Removed.
3391 * mkdeps.c: Removed.
3392 * mkdeps.h: Removed.
3393 * stringpool.h: Include symtab.h instead of hashtable.h.
3394 * tree.h: Include symtab.h instead of hashtable.h.
3395 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3396
3397 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
3398
3399 * gcc.c (struct prefix_list): Add forward declaration.
3400 (do_spec_path): New function, extracted from...
3401 (do_spec_1) <'D'>: ... here. Drop support for
3402 SPACE_AFTER_L_OPTION.
3403 (do_spec_1) <'I'>: Use do_spec_path.
3404 (process_command): Do not store the 'include' suffix
3405 in include_prefixes.
3406 * system.h: Poison SPACE_AFTER_L_OPTION.
3407
3408 2002-05-23 Roger Sayle <roger@eyesopen.com>
3409
3410 * fold-const.c (non_lvalue): Explicitly list the tree codes that
3411 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3412
3413 2004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
3414
3415 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3416 Update based on printed manual. Enable setting of offsets for
3417 FSFPRINT and move it to gcc-common.texi.
3418 * doc/gcc.texi: Update FSF printing details.
3419 * doc/gccint.texi: Remove FSF printing details.
3420
3421 2004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
3422
3423 * config/rs6000/t-rs6000: Remove the disabling -Werror.
3424
3425 2004-05-22 Roger Sayle <roger@eyesopen.com>
3426
3427 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3428 expand_builtin_strrchr, expand_builtin_strpbrk,
3429 expand_builtin_mempcpy, expand_builtin_memcmp,
3430 expand_builtin_strcmp, expand_builtin_strncmp,
3431 expand_builtin_strcat, std_expand_builtin_va_start,
3432 std_expand_builtin_va_arg, expand_builtin_va_copy,
3433 expand_builtin_signbit, fold_builtin_cabs,
3434 fold_builtin_logarithm, fold_builtin_mempcpy,
3435 fold_builtin_signbit, fold_builtin_isascii,
3436 fold_builtin_toascii, fold_builtin_isdigit,
3437 fold_builtin_1, build_function_call_expr,
3438 simplify_builtin_strchr, simplify_builtin_strrchr,
3439 simplify_builtin_strpbrk, simplify_builtin_strncpy,
3440 simplify_builtin_memcmp, simplify_builtin_strcmp,
3441 simplify_builtin_strncmp, simplify_builtin_strncat,
3442 simplify_builtin_strspn, simplify_builtin_strcspn,
3443 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3444 to build with calls to build2, build3 or omit_one_operand.
3445
3446 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3447
3448 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
3449 section when generating EABI code.
3450
3451 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3452
3453 PR 15546
3454 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3455 Call mark_decl_referenced on the SYMBOL_REF_DECL.
3456
3457 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3458
3459 * c-common.c (c_common_truthvalue_conversion): Handle
3460 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3461 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3462 i.e. set the type to truthvalue_type_node and return.
3463
3464 2004-05-22 Zack Weinberg <zack@codesourcery.com>
3465
3466 * tree.h (struct tree_decl): Add possibly_inlined bit.
3467 (DECL_POSSIBLY_INLINED): New accessor macro.
3468 * cgraph.h: Remove declaration of cgraph_inline_hash.
3469 * cgraph.c: Remove definition of cgraph_inline_hash.
3470 (hash_node): Revert to hashing DECL_UID.
3471 (eq_node): Take two pointers to cgraph_node structures.
3472 Compare DECL_UIDs.
3473 (cgraph_remove_node): Pass the node directly to htab_find_slot.
3474 (cgraph_varpool_hash_node): Rename hash_varpool_node;
3475 hash on DECL_UID.
3476 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3477 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3478 (cgraph_node): Allocate a temporary node on the stack, fill in
3479 its DECL field, and pass that to htab_find_slot.
3480 (cgraph_varpool_node): Likewise.
3481 (cgraph_function_possibly_inlined_p): If global info is ready,
3482 return the DECL_POSSIBLY_INLINED bit.
3483 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3484 instead of mucking with cgraph_inline_hash.
3485
3486 2004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
3487
3488 * doc/contrib.texi: Add g77 contributors.
3489
3490 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
3491
3492 * calls.c (initialize_argument_information): Forbid sibcalls if a
3493 callee-copied argument is stored in the current function's frame.
3494
3495 2004-05-22 Eric Christopher <echristo@redhat.com>
3496
3497 * fix-header.c (read_scan_file): Update for add_path change.
3498
3499 2004-05-22 Ben Elliston <bje@au.ibm.com>
3500
3501 * c.opt (Wmissing-include-dirs): New.
3502 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3503 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3504 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3505 * c-incpath.h (add_path): Add fourth (bool) argument.
3506 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3507 (add_standard_paths): Likewise.
3508 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3509 is used and the directory was user-supplied via -I.
3510 (add_path): Set p->user_supplied_p. Remove duplicated code by
3511 using add_cpp_dir_path ().
3512 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3513 (struct cpp_dir): Add user_supplied_p.
3514 * doc/invoke.texi (Warning Options): Document new option.
3515
3516 2004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
3517
3518 * fold-const.c (fold_read_from_constant_string): Convert result to
3519 requested type.
3520
3521 2004-05-21 Richard Henderson <rth@redhat.com>
3522
3523 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3524 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3525 Don't mark VA_ARG_EXPRs volatile here.
3526 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3527
3528 2004-05-21 Richard Henderson <rth@redhat.com>
3529
3530 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3531 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3532
3533 2004-05-21 Roger Sayle <roger@eyesopen.com>
3534
3535 * fold-const.c (fold, fold_relational_hi_lo,
3536 nondestructive_fold_binary_to_constant,
3537 fold_read_from_constant_string): Use fold_convert instead of convert.
3538 * builtins.c (simplify_builtin, simplify_builtin_strstr,
3539 simplify_builtin_strchr, simplify_builtin_strrchr,
3540 simplify_builtin_strpbrk): Use fold_convert instead of convert.
3541
3542 2004-05-21 Diego Novillo <dnovillo@redhat.com>
3543
3544 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3545 is NULL.
3546
3547 2004-05-21 Jakub Jelinek <jakub@redhat.com>
3548
3549 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3550 override sparc.h definition.
3551
3552 2004-05-20 Roger Sayle <roger@eyesopen.com>
3553
3554 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3555 get_unwidened, get_narrower): Replace build with build2.
3556 * fold-const.c (negate_expr, associate_trees, size_binop,
3557 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3558 pedantic_omit_one_operand, distribute_bit_expr,
3559 make_bit_field_ref, optimize_bit_field_compare,
3560 decode_field_reference, range_binop, make_range,
3561 build_range_check, fold_range_test, fold_truthop,
3562 optimize_minmax_comparison, extract_muldiv_1,
3563 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3564 fold_inf_compare, fold_single_bit_test, fold,
3565 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3566 Likewise replace build with either build2 or build3.
3567
3568 2004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
3569
3570 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3571 * calls.c (prepare_call_address): Don't test
3572 NO_RECURSIVE_FUNCTION_CSE.
3573 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3574 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3575 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3576 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3577 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3578 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3579 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3580 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3581 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3582 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3583 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3584 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3585 Likewise.
3586 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3587 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3588 * doc/tm.texi (Costs): Remove documentation for
3589 NO_RECURSIVE_FUNCTION_CSE.
3590
3591 2004-05-20 Paul Brook <paul@codesourcery.com>
3592
3593 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3594 * unwind-dw2.c (extract_cie_info): Ditto.
3595 (_Unwind_FrameState): Change retaddr_column to word type.
3596
3597 2004-05-20 Roger Sayle <roger@eyesopen.com>
3598
3599 PR middle-end/3074
3600 * fold-const.c (strip_compound_expr): Delete function.
3601 (count_cond): Delete function.
3602 (fold_binary_op_with_conditional_arg): Only perform transformations
3603 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3604 when a is constant. This greatly simplifies this routine.
3605
3606 * tree.c (saved_expr_p): Delete function.
3607 * tree.h (saved_expr_p): Delete function prototype.
3608
3609 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3610
3611 * common.opt (ftree-loop-optimize): Remove.
3612
3613 2004-05-20 Daniel Jacobowitz <dan@debian.org>
3614
3615 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3616 (NM_FOR_TARGET): Use := and $(shell).
3617 (mainversion): Remove unused variable.
3618
3619 2004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3620
3621 * reorg.c (delete_from_delay_slot): If we have a barrier after the
3622 sequence containing the insn to be deleted, always reemit it.
3623
3624 2004-05-20 Richard Henderson <rth@redhat.com>
3625
3626 PR 15454
3627 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3628 * function.c (expand_function_start): Expand static_chain_decl by hand.
3629 * gimplify.c (create_tmp_var_name): Export.
3630 * tree-gimple.h (create_tmp_var_name): Declare.
3631
3632 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3633
3634 * rs6000.c (print_operand) <case 'z'>: Call
3635 mark_decl_referenced before assemble_name.
3636
3637 2004-05-20 Zack Weinberg <zack@codesourcery.com>
3638
3639 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3640 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3641 (cgraph_varpool_node): Hash on the pointer to the decl, not
3642 the DECL_UID. Fixes 64-bit bootstrap failure.
3643
3644 2004-05-20 Richard Earnshaw <rearnsha@arm.com>
3645
3646 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3647 we don't earlyclobber operands used in the second insn.
3648
3649 2004-05-20 Steven Bosscher <stevenb@suse.de>
3650
3651 * tree-mudflap.c: Formatting fixes.
3652
3653 2004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
3654
3655 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3656 * gengtype.c (open_base_files): Include reload.h in ifiles.
3657 * reload.h (reg_equiv_memory_loc_varray): Declare.
3658 * reload1.c (reg_equiv_memory_loc_varray): New variable.
3659 (init_reload): Initialize it.
3660 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3661 reg_equiv_memory_loc_varray to size 0.
3662 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3663 growing reg_equiv_memory_loc_varray to the desired size.
3664 * passes.c (rest_of_handle_old_regalloc): Likewise.
3665 * reload.c: Amend comment on calling init_reload.
3666
3667 2004-05-20 Nick Clifton <nickc@redhat.com>
3668
3669 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3670 with 'TRAMP' in the body of the macro definition.
3671
3672 2004-05-19 H.J. Lu <hongjiu.lu@intel.com>
3673
3674 PR target/15383
3675 * config/ia64/ia64.c (ia64_expand_compare): Don't check
3676 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3677 cmptf_libfunc isn't set.
3678 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3679 conventions.
3680 (ia64_sysv4_init_libfuncs): New.
3681
3682 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3683 ia64_sysv4_init_libfuncs.
3684
3685 2004-05-20 Falk Hueffner <falk@debian.org>
3686
3687 PR other/15526
3688 * libgcc2.c (__mulvsi3): Fix overflow test.
3689
3690 2004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
3691
3692 PR c/14171
3693 * reg-stack.c (nan): Rename to ...
3694 (not_a_num): Here.
3695 (reg_to_stack): Rename nan to not_a_num.
3696 (subst_stack_regs_pat): Likewise.
3697 (convert_regs_entry): Likewise.
3698 (convert_regs_1): Likewise.
3699
3700 * tree-cfg.c (find_case_label_for_value): Replace call to
3701 simple_cst_equal with tree_int_cst_equal.
3702
3703 2004-05-19 Jeff Law <law@redhat.com>
3704
3705 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3706 If the operand is for a use, then strip away the SSA_NAME, do not
3707 strip away the SSA_NAME for a set. Never call release_ssa_name.
3708 (mark_def_sites): Appropriately pass additional argument to
3709 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
3710 then set the VDEF_RESULT to the VDEF_OP.
3711 (set_def_block): Strip away any SSA_NAME to get to the real
3712 underlying variable.
3713
3714 * tree-ssa-phiopt.c (value_replacement): Handle the case where
3715 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3716 BB directly.
3717
3718 2004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3719
3720 PR c++/15463
3721 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
3722 result of inverse.
3723
3724 PR rtl-optimization/15274
3725 * loop-iv.c (determine_max_iter, shorten_into_mode,
3726 iv_number_of_iterations): Handle constants correctly.
3727 * rtl.h (get_mode_bounds): Declaration changed.
3728 * stor-layout.c (get_mode_bounds): Return a constant suitable for
3729 the target mode.
3730
3731 PR rtl-optimization/14692
3732 * loop-unswitch.c (may_unswitch_on): Try folding the result.
3733 (unswitch_single_loop): Work correctly when may_unswitch_on
3734 returns a folded constant.
3735
3736 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3737 * simplify-rtx.c (simplify_const_relational_operation): Optimize
3738 comparisons with mode bounds.
3739
3740 * function.c (struct temp_slot): Add new field prev.
3741 (free_after_compilation, init_temp_slots): Free new fields.
3742 (cut_slot_from_list, insert_slot_to_list,
3743 temp_slots_at_level, max_slot_level, move_slot_to_level,
3744 make_slot_available): New functions.
3745 (assign_stack_temp_for_type, combine_temp_slots,
3746 find_temp_slot_from_address, preserve_temp_slots,
3747 preserve_rtl_expr_result, free_temp_slots,
3748 free_temps_for_rtl_expr, pop_temp_slots): Work with
3749 the new structure of lists.
3750 (mark_all_temps_used): Removed.
3751 * function.h (struct function): Field x_temp_slots
3752 replaced by x_used_temp_slots and x_avail_temp_slots.
3753 (temp_slots): Replaced by ...
3754 (used_temp_slots, avail_temp_slots): New.
3755 * tree.h (mark_all_temps_used): Declaration removed.
3756
3757 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3758 simplify_using_assignment): Take the expression out of
3759 the expr_list wrapper.
3760
3761 * loop-iv.c (iv_number_of_iterations): Improve clasification of
3762 infinite loops.
3763
3764 2004-05-19 Roger Sayle <roger@eyesopen.com>
3765
3766 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3767 costs should be based on code size when optimizing for size.
3768
3769 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
3770
3771 * fold-const.c: Remove non-printable character 160.
3772
3773 2004-05-19 Nick Clifton <nickc@redhat.com>
3774
3775 * doc/invoke.texi (ARM Options): Fix typo.
3776 Remove descrption of -mshort-load-bytes and
3777 -mno-short-load-bytes.
3778
3779 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3780 missing parenthesis.
3781 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3782 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3783
3784 2004-05-19 Steven Bosscher <stevenb@suse.de>
3785
3786 * expr.c (store_constructor): Build loop start and end by hand
3787 instead of via loop functions from stmt.c.
3788 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3789 Remove the code to expand them.
3790
3791 * stmt.c (loop_stack): Remove this and everything related.
3792 (struct nesting, enum nesting_desc): Update.
3793 (expand_fixup): Likewise.
3794 (expand_loop_start, expand_start_loop_continue_elsewhere,
3795 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3796 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3797 expand_exit_loop_if_false, expand_exit_loop_top_cond,
3798 expand_exit_something): Remove.
3799 * tree.h: Remove prototypes.
3800
3801 2004-05-18 Mike Stump <mrs@apple.com>
3802 Devang Patel <dpatel@apple.com>
3803
3804 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3805 if this label is for eh.
3806 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3807 * config/darwin.c (darwin_emit_unwind_label): Likewise.
3808 * dwarf2out.c (output_call_frame_info): Likewise.
3809 * output.h (default_emit_unwind_label): Likewise.
3810 * target.h (unwind_label): Likewise.
3811 * varasm.c (default_emit_unwind_label): Likewise.
3812
3813 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3814 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3815 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3816 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3817 DEBUG_RANGES_SECTION): Define.
3818
3819 2004-05-18 Zack Weinberg <zack@codesourcery.com>
3820
3821 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3822 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3823 (cgraph_varpool_node):
3824 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3825 (cgraph_function_possibly_inlined_p): Use the decl itself for
3826 the key, not DECL_ASSEMBLER_NAME.
3827 (change_decl_assembler_name): No need to muck with the hash tables.
3828 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3829 Delete.
3830 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3831 for the key, not DECL_ASSEMBLER_NAME.
3832 * cgraph.h: Remove prototypes of deleted functions.
3833 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3834 (mark_decl_referenced): New function.
3835 * tree.h: Prototype mark_decl_referenced.
3836 * final.c (output_addr_const) <case SYMBOL_REF>: Call
3837 mark_decl_referenced before assemble_name.
3838 * c-decl.c (finish_decl): Use mark_decl_referenced.
3839
3840 2004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
3841 Jeff Law <law@redhat.com>
3842
3843 * tree-ssa-phiopt.c (abs_replacement): New function.
3844 (empty_block_p): New function extracted from...
3845 (candidate_bb_for_phi_optimization): Break out empty block test.
3846 (conditional_replacement): Use empty_block_p.
3847 (value_replacement): Similarly.
3848
3849 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3850 * tree-ssa-phiopt.c: Include flags.h.
3851 (conditional_replacement): Remove argument names from prototype.
3852 Minor formatting and comment fixes.
3853 (tree_ssa_phiopt): If conditional_replacement returns false, then
3854 call value_replacement.
3855 (value_replacement): New function.
3856
3857 2004-05-18 Jeff Law <law@redhat.com>
3858
3859 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3860 from conditional_replacement.
3861 (candidate_bb_for_phi_optimization): Similarly.
3862 (conditional_replacement): Use replace_phi_with_stmt and
3863 candidate_bb_for_phi_optimization.
3864
3865 * tree-ssa-phiopt.c: Fix various formatting issues.
3866
3867 2004-05-18 Steven Bosscher <stevenb@suse.de>
3868
3869 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3870 s390_expand_cmpmem): Do not use expand_start_loop and
3871 expand_end_loop, instead build the loop manually.
3872
3873 2004-05-18 Alan Modra <amodra@bigpond.net.au>
3874
3875 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3876 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3877
3878 2004-05-17 Jeff Law <law@redhat.com>
3879
3880 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3881 * flags.h (flag_delete_null_pointer_checks): Here.
3882 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3883 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3884 (add_phi_arg, remove_phi_arg_num): Similarly.
3885 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3886 property into PHI nodes.
3887 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3888 (record_equivalences_from_phis): If all PHI arguments are known to be
3889 nonzero, then the result must be nonzero as well.
3890 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3891 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3892 appropriately. Walk the USE-DEF chains and propagate nonzero property
3893 as appropriate.
3894 * tree.h (PHI_ARG_NONZERO): Define.
3895 (phi_arg_d): Add nonzero flag.
3896
3897 2004-05-17 Zack Weinberg <zack@codesourcery.com>
3898
3899 * f: Entire directory removed
3900
3901 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3902 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3903 (g77_integer_type_node, g77_uinteger_type_node)
3904 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3905 * c-common.c (c_common_nodes_and_builtins): Do not initialize
3906 the above set of variables.
3907
3908 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3909 * doc/invoke.texi, doc/standards.texi: Remove cross-references
3910 to g77 manual.
3911
3912 2004-05-17 Steven Bosscher <stevenb@suse.de>
3913
3914 PR tree-optimization/15438
3915 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3916 attributed functions as pure or const.
3917
3918 2004-05-17 Frank Ch. Eigler <fche@redhat.com>
3919
3920 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3921 from source code with errors.
3922
3923 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
3924
3925 Enable tree browser for all front ends.
3926 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3927 (BACKEND): ...to here.
3928
3929 2004-05-17 Jan Hubicka <jh@suse.cz>
3930
3931 * i386.c (construct_container): Do not produce BLKmode registers.
3932 (classify_argument): Properly compute alignment of complex types.
3933
3934 2004-05-17 H.J. Lu <hongjiu.lu@intel.com>
3935
3936 PR target/15084
3937 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3938 and renamed to movdi_insv_1_rex64.
3939 (insv): Support SImode for 32bit and DImode for 64bit.
3940
3941 2004-05-17 Richard Sandiford <rsandifo@redhat.com>
3942
3943 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3944 (TARGET_SWITCHES): Remove debugg.
3945 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3946 TARGET_64BIT.
3947 (subdi3): Replace the define_expand with a define_insn, the latter
3948 renamed from subdi3_internal_3.
3949 (negdi2): Likewise negdi2_internal_2.
3950 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3951 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3952 and associated define_splits.
3953 (adddi3_internal): Renamed from adddi3_internal_3.
3954 (ashldi3_internal): Likewise ashldi3_internal4.
3955 (ashrdi3_internal): Likewise ashrdi3_internal4.
3956 (lshrdi3_internal): Likewise lshrdi3_internal4.
3957
3958 2004-05-17 Richard Sandiford <rsandifo@redhat.com>
3959
3960 * optabs.c (expand_unop): Try implementing negation using subtraction
3961 from zero.
3962
3963 2004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3964
3965 * pa.md: Fix typo from last change. Remove DFmode move to and from
3966 SAR register.
3967
3968 2004-05-16 Richard Earnshaw <rearnsha@arm.com>
3969
3970 PR target/10982
3971 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3972 (ne_zeroextractsi_shifted): New pattern.
3973 (ite_ne_zeroextractsi): New pattern.
3974 (ite_ne_zeroextractsi_shifted): New pattern.
3975
3976 2004-05-15 Steven Bosscher <stevenb@suse.de>
3977
3978 * c-gimplify.c (c_genericize):
3979 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3980 * c-parse.in <expr_no_commas>: Likewise.
3981 <if_prefix>: Likewise.
3982 <select_or_iter_stmt>: Likewise.
3983 * expr.c (expand_var, expand_expr_real_1): Likewise.
3984 * expr.h (expand_expr): Make it a static inline function.
3985 Move prototype for expand_expr_real up before this.
3986 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3987 Likewise.
3988 * gimplify.c (gimple_boolify, gimplify_addr_expr,
3989 gimplify_asm_expr, gimplify_expr): Likewise.
3990 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3991 dump_function_to_file): Likewise.
3992 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3993 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3994 * tree-into-ssa.c (dump_tree_ssa): Likewise.
3995 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3996 Likewise.
3997 * tree-optimize.c (execute_one_pass): Likewise.
3998 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3999 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
4000
4001 * objc/objc-act.c (objc_build_try_enter_fragment,
4002 objc_build_try_epilogue, objc_build_catch_stmt,
4003 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
4004 with lang_hooks.foo ().
4005
4006 2004-05-15 Roger Sayle <roger@eyesopen.com>
4007
4008 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
4009 that simplify_builtin doesn't destructively modify its argument.
4010
4011 2004-05-15 Richard Earnshaw <reanrsha@arm.com>
4012
4013 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
4014 implementations for ARM and Thumb.
4015 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
4016
4017 2004-05-15 Thomas Quinot <quinot@act-europe.fr>
4018
4019 * prefix.c (update_path): Replace PREFIX with KEY only
4020 when it matches a full directory name in PATH.
4021
4022 2004-05-15 Richard Earnshaw <reanrsha@arm.com>
4023
4024 * arm.h (TARGET_APCS_32): Delete.
4025 (TARGET_MMU_TRAPS): Delete.
4026 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
4027 define __APCS_26__.
4028 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
4029 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
4030 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
4031 (prog_mode_type): Delete.
4032 (PROMOTE_MODE): Always promote unsigned for HImode.
4033 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
4034 (MASK_RETURN_ADDR): Simplify.
4035 * arm.c (arm_prgmode): Delete.
4036 (arm_override_options, arm_gen_rotated_half_load): Simplify.
4037 (print_multi_reg, output_return_instruction): Simplify.
4038 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
4039 (arm_return_addr): Simplify.
4040 * arm.md (prog_mode): Delete.
4041 (conds): Simplify.
4042 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
4043 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
4044 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
4045 (loadhi_shiftpredec): Delete.
4046 (peephole for post-increment on HImode load): Delete.
4047 * arm/crtn.asm: (FUNC_END): Simplify.
4048 * arm/lib1funcs.asm: Remove APCS-26 return macros.
4049 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
4050 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
4051 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
4052 MULTILIB_DEFAULTS as required.
4053 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
4054 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
4055 variables as required.
4056 * doc/invoke.texi (ARM Options): Remove obsolete flags.
4057
4058 2004-05-15 Alan Modra <amodra@bigpond.net.au>
4059
4060 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
4061 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
4062 count to 8 to handle n_reg > 2.
4063
4064 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
4065
4066 * doc/extend.texi: Update WG14 URL.
4067
4068 2004-05-15 Steven Bosscher <stevenb@suse.de>
4069
4070 * basic-block.h (life_analysis, delete_noop_moves):
4071 Update prototypes.
4072 * bt-load.c (branch_target_load_optimize): Don't take the
4073 insns stream as an argument. Update the life_analysis calls.
4074 * combine.c (combine_instructions): Update delete_noop_moves
4075 calls.
4076 * flow.c (notice_stack_pointer_modification): Don't take the
4077 insns stream as an argument. Work on the flow graph.
4078 (life_analysis): Likewise.
4079 (delete_noop_moves): Likewise.
4080 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
4081 (rest_of_handle_life): Update life_analysis call.
4082 (rest_of_compilation): Likewise, and also update
4083 branch_target_load_optimize call.
4084 * ra.c (reg_alloc): Update life_analysis call.
4085 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
4086 the insns stream as an argument.
4087 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
4088 call.
4089 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
4090 prototypes.
4091 * value-profile.c (branch_prob): Update life_analysis call.
4092 * web.c (web_main): Work on the CFG, not on the insns stream.
4093
4094 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
4095 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
4096 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4097
4098 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
4099
4100 PR c/15444
4101 * c-format.c (avoid_dollar_number): New function.
4102 (check_format_info_main): Call avoid_dollar_number when operand
4103 numbers might occur but has_operand_number == 0.
4104
4105 2004-05-14 Richard Earnshaw <rearnsha@arm.com>
4106
4107 * arm.md (all peephole2 patterns): Use predicates that validate
4108 register classes as appropriate.
4109
4110 2004-05-14 Steven Bosscher <stevenb@suse.de>
4111
4112 PR opt/14472
4113 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
4114 ignore type conversions that do not inhibit tail calling.
4115 (find_tail_calls): Likewise.
4116
4117 2004-05-14 Jeff Law <law@redhat.com>
4118
4119 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
4120 bother marking bypassed virtuals for out-of-ssa. Instead merge
4121 bypassed virtuals into vars_to_rename just before into-ssa pass.
4122
4123 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
4124 so that it picks up more opportunities to eliminate ABS expressions
4125 or turn them into negations.
4126
4127 2004-05-14 Steven Bosscher <stevenb@suse.de>
4128
4129 * passes.c (rest_of_handle_null_pointer): Remove.
4130 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
4131 (rest_of_compilation): Likewise.
4132 * rtl.h (delete_null_pointer_checks): Remove prototype.
4133 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
4134 Remove declarations.
4135 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
4136 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
4137 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
4138 expr_reaches_here_p, computing_insn, def_reaches_here_p,
4139 can_disregard_other_sets, handle_avail_expr, classic_gcse,
4140 one_classic_gcse_pass, invalidate_nonnull_info,
4141 delete_null_pointer_checks_1, delete_null_pointer_checks,
4142 expr_reached_here_p_work): Remove.
4143 (gcse_main): Do not perform classic GCSE when optimizing for size.
4144 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
4145 are never used.
4146
4147 2004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
4148
4149 PR optimization/14466
4150 * tree-complex.c (make_temp): Remove.
4151 (gimplify_val): Replace make_temp with make_rename_temp
4152 and add NULL as the second argument.
4153 (expand_complex_div_wide): Likewise.
4154 * tree-dfa.c (make_rename_temp): New function.
4155 * tree-flow.h (make_rename_temp): Declare.
4156 * tree-sra.c (make_temp): Remove.
4157 (lookup_scalar): Replace make_temp with make_rename_temp.
4158 (create_scalar_copies): Likewise.
4159 * tree-ssa-phiopt.c (conditional_replacement): When we
4160 get non gimple create a temporary variable to hold the
4161 casted expression.
4162
4163 2004-05-14 Paul Brook <paul@codesourcery.com>
4164
4165 * stor-layout.c (update_alignment_for_field): Use
4166 targetm.align_anon_bitfield.
4167 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
4168 (TARGET_INITIALIZER): Use it.
4169 * target.h (struct gcc_target): Add align_anon_bitfield.
4170 * config/arm/arm.c (arm_align_anon_bitfield): New function.
4171 (TARGET_ALIGN_ANON_BITFIELD): Define.
4172 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
4173
4174 2004-05-13 Zack Weinberg <zack@codesourcery.com>
4175
4176 * tree.def (documentation): Remove mention of class 'b'.
4177 (BLOCK): Now in class 'x'.
4178 * c-common.c (verify_tree): Remove case 'b'.
4179 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4180 * calls.c (calls_function_1): Control cannot get past the switch
4181 when exp is a BLOCK.
4182 * print-tree.c (print_node): Move code for class 'b' to the class
4183 'c'/'x' switch, as case BLOCK.
4184 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4185 (unsafe_for_reeval, substitute_placeholder_in_expr)
4186 (stabilize_reference_1): Remove case 'b'.
4187 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4188 of something being 'b' to tests for TREE_CODE of something being
4189 BLOCK.
4190 * tree-ssa-operands.c (get_expr_operands): Likewise.
4191
4192 2004-05-13 Diego Novillo <dnovillo@redhat.com>
4193
4194 * tree-gimple.c: Rename from tree-simple.c.
4195 * tree-gimple.h: Rename from tree-simple.h.
4196 * c-gimplify.c: Rename from c-simplify.c
4197 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4198 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4199 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4200 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4201 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4202 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4203 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4204 Update.
4205
4206 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
4207
4208 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4209
4210 2004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
4211
4212 * tree-ssa.c (delete_tree_ssa): XFREE
4213 bitmaps allocated with BITMAP_XMALLOC.
4214
4215 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4216 idfs_cache at the end of the function.
4217
4218 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
4219 at the end of the function.
4220
4221 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4222 el at the end of the function.
4223
4224 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4225 bitmaps allocated with BITMAP_XMALLOC.
4226
4227 * loop-unswitch.c (unswitch_single_loop): Free bbs at
4228 the end.
4229
4230 * final.c (shorten_branches): Free uid_shuid before
4231 reallocating it.
4232
4233 * bb-reoder.c (connect_traces): Free cold_traces at the end.
4234
4235 2004-05-13 Jeff Law <law@redhat.com>
4236
4237 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4238 variables. Simplify slightly by using USE_OP/DEF_OP instead
4239 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4240
4241 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4242 rather than iterating through the blocks testing each bit in
4243 livein to initialize the worklist.
4244 (mark_def_sites): Remove useless checks of KILLS for virtual
4245 operands.
4246
4247 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4248 new parameters for the statement and variable worklist as well
4249 as a bitmap of interesting SSA_NAMEs. Walk over the statement
4250 worklist recording interesting variables in the variable worklist
4251 and bitmap. Handle casts between integral and boolean types.
4252 (substitute_single_use_vars): Accept new parameters for the statement
4253 and variable worklist. When a substitution is made add a new
4254 entry to the statement worklist. Handle casts between integral
4255 and boolean types.
4256 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4257 worklists to children. Iterate until the statement worklist
4258 is empty.
4259
4260 2004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
4261
4262 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4263 the end of the block.
4264
4265 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4266 with BITMAP_XMALLOC.
4267
4268 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4269 with BITMAP_XMALLOC.
4270
4271 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4272 Free nonzero_vars at the end of the function.
4273
4274 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4275 need to generate code instead of a NOP_EXPR.
4276
4277 2004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
4278
4279 * gcc.c (default_compilers): Fill out initializers for new Fortran
4280 entries.
4281
4282 2004-05-13 Paul Brook <paul@codesourcery.com>
4283
4284 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4285
4286 2004-05-13 Paul Brook <paul@codesourcery.com>
4287
4288 * config/arm/arm.c (arm_default_short_enums): New function.
4289 (TARGET_DEFAULT_SHORT_ENUMS): Define.
4290
4291 2004-05-13 Diego Novillo <dnovillo@redhat.com>
4292
4293 Merge from tree-ssa-20020619-branch.
4294
4295 * Makefile.in (reload1.o-warn): Add.
4296 (tree-alias-ander.o-warn): Add.
4297 (GMPLIBS): Define.
4298 (GMPINC): Define.
4299 (BANSHEELIB): Define.
4300 (BANSHEEINC): Define.
4301 (TREE_DUMP_H): Define.
4302 (TREE_SIMPLE_H): Define.
4303 (TREE_FLOW_H): Define.
4304 (LIBDEPS): Add BANSHEELIB.
4305 (INCLUDES): Add BANSHEEINC and GMPINC.
4306 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4307 c-mudflap.o and c-pretty-print.o.
4308 (C_OBJS): Remove c-pretty-print.o.
4309 (OBJS-common): Remove sibcall.o.
4310 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4311 tree-ssa.o, tree-optimize.o, tree-simple.o,
4312 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4313 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4314 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4315 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4316 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4317 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4318 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4319 tree-tailcall.o, gimple-low.o, tree-iterator.o,
4320 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4321 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4322 tree-profile.o.
4323 (OBJC-archive): Add tree-nomudflap.o.
4324 (cc1): Add dependency on @TREEBROWSER@.
4325 (c-decl.o): Add dependency on TREE_DUMP_H.
4326 (c-dump.o): Likewise.
4327 (c-common.o): Add dependency on tree-iterator.h
4328 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4329 (gtype-desc.o): Add dependency on TREE_FLOW_H.
4330 (tree.o): Add dependency on tree-iterator.h,
4331 BASIC_BLOCK_H and TREE_FLOW_H.
4332 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4333 (langhooks.o): Add dependency on TREE_SIMPLE_H.
4334 (tree-alias-type.o, tree-alias-ander.o,
4335 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4336 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4337 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4338 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4339 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4340 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4341 tree-nested.o, tree-iterator.o, tree-dfa.o,
4342 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4343 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4344 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4345 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4346 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4347 tree-sra.o, tree-complex.o, tree-profile.o,
4348 rtl-profile.o): New rules.
4349 (function.o): Add dependency on basic-block.h
4350 (expr.o): Add dependency on tree-iterator.h.
4351 (sibcall.o): Remove.
4352 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4353 (cfg.o): Add dependency on TIMEVAR_H.
4354 (cfghooks.o): Add dependency on TREE_FLOW_H.
4355 (reg-stack.o): Add dependency on basic-block.h.
4356 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4357 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4358 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4359 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4360 tree-alias-type.h, tree-alias-common.h,
4361 tree-alias-type.c, tree-alias-common.c,
4362 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4363 rtl-profile.c and tree-nested.c.
4364 (gt-tree-alias-common.h, gt-tree-mudflap.h,
4365 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4366 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4367 gt-tree-cfg.h, gt-tree-nested.h): New rules.
4368 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4369 * basic-block.h: Include predict.h
4370 (struct edge_def): Add GTY marker.
4371 Change field 'insns' to be a union of tree and rtx.
4372 (EDGE_TRUE_VALUE): Define.
4373 (EDGE_FALSE_VALUE): Define.
4374 (EDGE_EXECUTABLE): Define.
4375 (struct bb_ann_d): Forward declare.
4376 (struct basic_block_def): Add GTY marker.
4377 Remove fields head_tree and end_tree.
4378 Add fields stmt_list, rbi and tree_annotations.
4379 (struct reorder_block_def): Define.
4380 (basic_block_info): Add GTY marker.
4381 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4382 variables instead of macros.
4383 (flow_call_edges_add): Remove declaration.
4384 (make_eh_edge): Remove declaration.
4385 (brief_dump_cfg, find_edge, tree_predicted_by_p,
4386 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4387 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4388 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4389 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4390 (try_redirect_by_replacing_jump): Modfiy return type to
4391 edge instead of bool.
4392 * bb-reorder.c (copy_bb): Call duplicate_block
4393 instead of cfg_layout_duplicate_bb.
4394 (copy_bb_p): Call can_duplicate_block_p instead of
4395 cfg_layout_can_duplicate_bb_p.
4396 * bitmap.c (bitmap_first_set_bit): Abort if word
4397 wasn't found.
4398 (bitmap_last_set_bit): Likewise.
4399 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4400 (DEF_FUNCTION_TYPE_3): Add.
4401 * builtins.c (c_strlen): Make extern.
4402 (builtin_save_expr): New.
4403 (expand_builtin_nonlocal_goto): New.
4404 (expand_builtin_constant_p): Remove.
4405 (expand_builtin_mathfn): Call builtin_save_expr instead
4406 of save_expr.
4407 (expand_builtin_mathfn_2): Likewise.
4408 (expand_builtin_strcmp): Likewise.
4409 (expand_builtin_strncmp): Likewise.
4410 (expand_builtin_strcat): Likewise.
4411 (fold_builtin_cabs): Likewise.
4412 (expand_builtin_alloca): Don't trigger if -fmudflap is
4413 given.
4414 (build_string_literal): Set TREE_INVARIANT on new node.
4415 (expand_builtin_profile_fun): New.
4416 (round_trampoline_addr): New.
4417 (expand_builtin_init_trampoline): New.
4418 (expand_builtin_adjust_trampoline): New.
4419 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4420 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4421 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4422 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4423 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4424 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4425 Handle.
4426 (fold_builtin_expect): New.
4427 (fold_builtin_isascii): Don't return non-constant results
4428 in GIMPLE form.
4429 (fold_builtin_isdigit): Likewise.
4430 (fold_builtin_1): New.
4431 (fold_builtin): Call it.
4432 (build_function_call_expr): Update call to build a new
4433 CALL_EXPR.
4434 (purge_builtin_constant_p): Remove.
4435 (simplify_builtin, simplify_builtin_memcmp,
4436 simplify_builtin_strcmp, simplify_builtin_strncmp,
4437 simplify_builtin_strpbrk, simplify_builtin_strstr,
4438 simplify_builtin_strchr, simplify_builtin_strrchr,
4439 simplify_builtin_strcat, simplify_builtin_strncat,
4440 simplify_builtin_strspn, simplify_builtin_strcspn,
4441 simplify_builtin_next_arg, simplify_builtin_va_start,
4442 simplify_builtin_sprintf): New.
4443 * builtins.def (BUILT_IN_STACK_ALLOC,
4444 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4445 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4446 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4447 BUILT_IN_PROFILE_FUNC_EXIT): Define.
4448 * c-common.c: Include tree-iterator.h and hashtab.h.
4449 (lang_statement_code_p): Declare.
4450 (lang_gimplify_stmt): Declare.
4451 (fix_string_type): Set TREE_INVARIANT for value.
4452 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4453 (c_type_hash): New.
4454 (c_common_get_alias_set): Handle multiple type nodes
4455 referring to "the same" type, currently for C90 only.
4456 (c_add_case_label): Use create_artificial_label.
4457 (finish_label_address_expr): Don't set TREE_CONSTANT on
4458 result.
4459 (c_expand_expr): Don't handle STMT_EXPR.
4460 (handle_alias_attribute): Marke aliased variables to be
4461 TREE_STATIC.
4462 (handle_nonnull_attribute): Initialize arg_num.
4463 (check_function_nonnull): Likewise.
4464 (c_walk_subtrees): New.
4465 (c_estimate_num_insns_1): Don't handle
4466 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4467 (c_decl_uninit_1): Remove.
4468 (c_decl_uninit): Remove.
4469 (c_warn_unused_result): New.
4470 * c-common.def (ASM_STMT): Change number of operands
4471 to 4.
4472 (FILE_STMT): Remove.
4473 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4474 Remove.
4475 (lang_gimplify_stmt): Add.
4476 (expand_stmt): Remove.
4477 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4478 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4479 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4480 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4481 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4482 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4483 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4484 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4485 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4486 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4487 genrtl_compound_stmt, genrtl_asm_stmt,
4488 genrtl_cleanup_stmt, c_decl_uninit): Remove.
4489 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4490 c_tree_chain_matters_p, c_warn_unused_result,
4491 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4492 Declare.
4493 * c-convert.c (convert): Make convert work when
4494 converting to compatible types across translation unit.
4495 * c-decl.c: Include langhooks.h, tree-mudflap.h,
4496 tree-simple.h, diagnostic.h and tree-dump.h
4497 (merge_decls): Initialize oldtype to NULL.
4498 (finish_decl): Use DECL_HARD_REGISTER instead of
4499 DECL_C_HARD_REGISTER.
4500 (check_bitfield_type_and_width): Check for null
4501 lang_type_specific when check the precision of an enum.
4502 (grokdeclarator): Immediately layout an ARRAY_TYPE used
4503 in a pointer-to-array declarator.
4504 (finish_struct): Clear allocated struct lang_type.
4505 (finish_enum): Set enum_min and enum_max. Set
4506 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4507 not to the enumerators.
4508 (set_decl_nonlocal): New.
4509 (store_parm_decls): Use it via walk_tree.
4510 (c_finalize): New.
4511 (finish_function): When !targetm.have_ctors_dtors,
4512 record static constructors and destructors here...
4513 (c_expand_body_1): ... not here.
4514 (c_expand_decl): Rename from c_expand_decl_stmt.
4515 Handle all C-specific expansion semantics.
4516 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4517 STMT_LINENO.
4518 * c-format.c (handle_format_arg_attribute): Initialize
4519 format_num.
4520 * c-lang.c: Include tree-inline.h
4521 (LANG_HOOKS_EXPAND_DECL,
4522 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4523 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4524 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4525 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4526 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4527 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4528 (c_types_compatible_p): New.
4529 * c-mudflap.c: New file.
4530 * c-objc-common.c: Include tree-mudflap.h
4531 (start_cdtor, finish_cdtor): Collapse
4532 together into
4533 (build_cdtor): ...here. Update to construct a complete tree
4534 for the function. No need to call push_scope, pop_scope, or
4535 clear_last_expr, or set current_function_cannot_inline.
4536 (c_missing_noreturn_ok_p): Change prototype to return
4537 bool.
4538 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4539 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4540 opts.c.
4541 (c_common_post_options): Don't ever use rtl inlining.
4542 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4543 * c-pragma.c (handle_pragma_redefine_extname): Define
4544 always.
4545 (init_pragma): Activate #pragma redefine_extname for mudflap.
4546 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4547 (pp_c_initializer): Accept any type CONSTRUCTOR.
4548 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4549 COMPLEX_TYPE.
4550 (decl_name_str): New local function.
4551 (pp_c_direct_declarator): Call it.
4552 (pp_c_primary_expression): Call it.
4553 (pp_c_id_expression): Call it.
4554 (pp_c_statement): Call it.
4555 (print_c_tree): Create new pp object.
4556 * c-pretty-print.h (pp_c_tree_decl_identifier,
4557 print_c_tree): Declare.
4558 * c-semantics.c: Include langhooks.h
4559 (lang_expand_stmt, lang_expand_decl_stmt,
4560 find_reachable_label_1, find_reachable_label,
4561 expand_unreachable_if_stmt, expand_unreachable_stmt,
4562 genrtl_do_stmt_1): Remove.
4563 (begin_stmt_tree): Don't check for changed filename.
4564 Call annotate_with_locus.
4565 (finish_stmt_tree): Don't set line for end of function.
4566 (build_stmt): Don't check type nodes for
4567 side effects.
4568 (build_stmt): Set TREE_SIDE_EFFECTS.
4569 Set EXPR_LOCUS instead of STMT_LINENO.
4570 (lang_expand_stmt, lang_expand_decl_stmt,
4571 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4572 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4573 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4574 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4575 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4576 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4577 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4578 find_reachable_label_1, expand_unreachable_if_stmt,
4579 expand_unreachable_stmt): Remove.
4580 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4581 * c-simplify.c: New file.
4582 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4583 (struct lang_type): Add fields enum_min and enum_max.
4584 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4585 (c_expand_decl, c_missing_noreturn_ok_p,
4586 c_types_compatible_p): Declare.
4587 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4588 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4589 (default_function_array_conversion): Rely on build to
4590 set TREE_CONSTANT.
4591 (parser_build_binary_op, pointer_diff): Likewise.
4592 (build_unary_op, build_binary_op): Likewise.
4593 (build_array_ref):
4594 (build_external_ref): Set TREE_INVARIANT.
4595 (build_c_cast, pop_init_level): Likewise.
4596 (process_init_element): Use ASM_VOLATILE_P.
4597 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4598 (c_finish_case): Call c_do_switch_warnings.
4599 * c.opt (fdump-): Remove.
4600 * calls.c (try_to_integrate): Remove.
4601 (prepare_call_address): Replace fndecl arg with a
4602 precomputed static chain value.
4603 (emit_call_1): New argument for full call expr.
4604 (flags_from_decl_or_type): Call special_function_p.
4605 (initialize_argument_information): Add argument
4606 may_tailcall.
4607 (purge_reg_equiv_notes): New.
4608 (expand_call): Do not try to expand calls inline.
4609 (fixup_tail_calls): New.
4610 * cfg.c: Include timevar.h and ggc.h.
4611 (bb_pool, edge_pool): Remove.
4612 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4613 (entry_exit_blocks): Remove.
4614 (rbi_pool): Declare.
4615 (init_flow): Do not create pools.
4616 Allocate entry/exit block.
4617 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4618 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4619 (unlink_block): Clear b->prev_bb and b->next_bb.
4620 (compact_blocks): Clear all slots of BASIC_BLOCK array.
4621 (dump_flow_info): Work on trees too.
4622 (dump_cfg_bb_info): New.
4623 (brief_dump_cfg): New.
4624 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4625 (find_edge): New.
4626 * cfgbuild.c (rtl_make_eh_edge): Rename from
4627 make_eh_edge. Update all users.
4628 (find_basic_blocks): Don't call VARRAY_FREE on
4629 basic_block_info.
4630 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4631 and newpos2.
4632 (delete_unreachable_blocks): Return changed status.
4633 (merge_seq_blocks): New.
4634 * cfghooks.c: Include tree-flow.h
4635 (tree_register_cfg_hooks, ir_type): New.
4636 (redirect_edge_and_branch): Change return type to edge.
4637 (predict_edge, predicted_by_p, can_duplicate_block_p,
4638 duplicate_block, block_ends_with_call_p,
4639 block_ends_with_condjump_p, flow_call_edges_add): New.
4640 * cfghooks.h (redirect_edge_and_branch): Change return
4641 type to edge.
4642 (predict_edge, predicted_by_p, can_duplicate_block_p,
4643 duplicate_block, block_ends_with_call_p,
4644 block_ends_with_condjump_p, flow_call_edges_add): Declare.
4645 (redirect_edge_and_branch): Change return type to edge.
4646 (struct cfg_hooks): Add fields block_ends_with_call_p,
4647 block_ends_with_condjump_p, flow_call_edges_add,
4648 predict_edge, predicted_by_p, can_duplicate_block_p and
4649 duplicate_block.
4650 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4651 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4652 (fixup_reorder_chain): Use initialize_bb_rbi.
4653 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4654 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4655 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4656 (insn_locators_initialize): Use new info about blocks.
4657 * cfglayout.h (typedef struct reorder_block_def): Moved to
4658 basic_block.h.
4659 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4660 removed.
4661 * cfgloop.c: Include tree.h and tree-flow.h.
4662 * cfgloop.h (create_loop_notes): Declare.
4663 * cfgloopmanip.c (create_loop_notes): New.
4664 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4665 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4666 and duplicate_block fields.
4667 (create_basic_block_structure): Don't look at
4668 RTX_INTEGRATED_P.
4669 (rtl_block_ends_with_call_p): New.
4670 (rtl_block_ends_with_condjump_p): New.
4671 (need_fake_edge_p): Moved from cfganal.c.
4672 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4673 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4674 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4675 (cfg_layout_rtl_cfg_hooks): Ditto.
4676 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4677 functions to be reachable.
4678 * cgraphunit.c (decide_is_function_needed):
4679 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4680 inline functions don't need to be output.
4681 (cgraph_assemble_pending_functions): Don't do anything
4682 special for nested functions.
4683 (cgraph_mark_functions_to_output): Likewise.
4684 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4685 (cgraph_analyze_function): Use estimate_num_insns.
4686 (cgraph_mark_functions_to_output): Likewise.
4687 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4688 (cgraph_expand_function): Allow functions to not be
4689 emitted.
4690 (cgraph_remove_unreachable_nodes):
4691 (cgraph_recursive_inlining_p): Simplify.
4692 (lookup_recursive_calls,
4693 cgraph_decide_recursive_inlining): New.
4694 (cgraph_decide_inlining_*): Update calls of
4695 cgraph_mark_inline.
4696 * combine.c (get_pos_from_mask): Always set *plen.
4697 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4698 ftree-based-profiling, ftree-ccp, ftree-ch,
4699 ftree-combine-temps, ftree-copyrename, ftree-dce,
4700 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4701 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4702 ftree-lrs): Add.
4703 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4704 Undefine.
4705 * configure.ac: Add --enable-tree-browser option.
4706 Add --with-libbanshee option.
4707 Add GMPLIBS and GMPINC.
4708 * configure: Regenerate.
4709 * coverage.c (tree_ctr_tables): New.
4710 (coverage_counter_alloc): Use it.
4711 (build_ctr_info_value): Ditto.
4712 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
4713 (tree_coverage_counter_ref): New.
4714 * coverage.h (coverage_counter_ref): Remove declaration.
4715 (rtl_coverage_counter_ref): Declare.
4716 (tree_coverage_counter_ref): Declare.
4717 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4718 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4719 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4720 (struct cse_basic_block_data): Rename enum values to not
4721 conflict with profile.h; update all uses.
4722 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4723 in comments.
4724 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4725 * diagnostic.h (debug_output_buffer, dump_generic_node,
4726 print_generic_stmt, print_generic_stmt_indented,
4727 print_generic_expr, print_generic_decl,
4728 debug_generic_expr, debug_generic_stmt, debug_c_tree):
4729 Declare.
4730 * dominance.c: Cache immediate dominators.
4731 * domwalk.c: New file.
4732 * domwalk.h: New file.
4733 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4734 (gen_subprogram_die): Generate a DIE for a named
4735 return value.
4736 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4737 (add_location_or_const_value_attribute): Likewise.
4738 (add_bound_info): Likewise.
4739 (gen_decl_die): Likewise.
4740 * emit-rtl.c (maybe_set_first_label_num): New.
4741 (copy_most_rtx): Don't copy the integrated flag.
4742 Copy the new return_val flag.
4743 * et-forest.c (MAX_NODES): Define.
4744 (record_path_before_1): Abort if len is greater than
4745 MAX_NODES.
4746 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4747 gen_eh_region_catch, gen_eh_region_allowed,
4748 gen_eh_region_must_not_throw, get_eh_region_number,
4749 get_eh_region_may_contain_throw, get_eh_region_tree_label,
4750 set_eh_region_tree_label, expand_resx_expr): New.
4751 (expand_eh_region_start, expand_start_catch): Use them.
4752 (expand_end_catch): Tidy.
4753 (note_eh_region_may_contain_throw): Take region argument.
4754 (note_current_region_may_contain_throw): New.
4755 (get_exception_filter): Export.
4756 (collect_eh_region_array): Export.
4757 (remove_unreachable_regions): Check ERT_TRY based on reachability
4758 of catches, not reachability of continue_label. Never remove
4759 ERT_MUST_NOT_THROW regions.
4760 (collect_rtl_labels_from_trees): New.
4761 (convert_from_eh_region_ranges): Use it.
4762 (connect_post_landing_pads): Handle dying cleanups.
4763 (struct reachable_info): Add callback data.
4764 (add_reachable_handler): Invoke the callback.
4765 (foreach_reachable_handler): New.
4766 (reachable_handlers): Use it.
4767 (arh_to_landing_pad, arh_to_label): New.
4768 (can_throw_internal_1): Split out from can_throw_internal.
4769 (can_throw_external_1): Similarly.
4770 * except.h: Update.
4771 * explow.c (emit_stack_save): Remove savearea mode check.
4772 (update_nonlocal_goto_save_area): New.
4773 (allocate_dynamic_stack_space): Use it.
4774 (probe_stack_range): Never emit loop notes.
4775 * expmed.c (extract_fixed_bit_field): Always propagate the
4776 target for the shift if it is a REG.
4777 * expr.c: Include tree-iterator.h
4778 (is_zeros_p): Remove.
4779 (categorize_ctor_elements_1, categorize_ctor_elements): New.
4780 (count_type_elements): New.
4781 (mostly_zeros_p): Use them.
4782 (expr_wfl_stack): Remove.
4783 (convert_move): Do nothing if to and from are the same.
4784 (emit_block_move_via_loop): Don't emit LOOP notes.
4785 (emit_move_insn): Don't handle CONSTANT_P_RTX.
4786 (emit_move_insn_1): Don't generate inline warnings.
4787 (expand_vars, expand_var): Split from ...
4788 (expand_expr_1): ... here.
4789 (expand_expr_real, expand_expr_real_1): Use new macros
4790 EXPR_LOCATION and EXPR_HAS_LOCATION.
4791 * expr.h (simplify_builtin_fputs,
4792 simplify_builtin_strcpy, simplify_builtin_strncpy,
4793 expand_var, fixup_tail_calls,
4794 update_nonlocal_goto_save_area): Declare.
4795 (lookup_static_chain, expand_inline_function,
4796 mark_seen_cases): Remove.
4797 (prepare_call_address): Change type of 2nd argument to
4798 rtx.
4799 * final.c (profile_function): Update static chain test.
4800 (final): Don't look at RTX_INTEGRATED_P.
4801 * flags.h (flag_mudflap, flag_mudflap_threads,
4802 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4803 flag_tree_dce, flag_tree_combine_temps,
4804 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4805 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4806 flag_tree_points_to): Declare.
4807 (enum pta_type): Declare.
4808 * flow.c (lang_missing_noreturn_ok_p): Remove.
4809 (check_function_return_warnings): Remove.
4810 (update_life_info): Update comments.
4811 (free_basic_block_vars): Don't call VARRAY_FREE for
4812 basic_block_info.
4813 (regno_uninitialized): Remove.
4814 * fold-const.c (int_const_binop): Make extern.
4815 (non_lvalue): Rely on build to set TREE_CONSTANT.
4816 (operand_equal_p): Replace only_const argument with
4817 flags. Allow pure functions if OEP_PURE_SAME.
4818 (fold): Use OEP_ONLY_CONST.
4819 (invert_truthvalue) <NOP_EXPR> Break if argument is of
4820 boolean type.
4821 (fold_relational_hi_lo,
4822 nondestructive_fold_binary_to_constant,
4823 nondestructive_fold_unary_to_constant,
4824 fold_read_from_constant_string): New.
4825 * function.c (struct function): Remove calls_constant_p.
4826 (current_function_calls_constant_p): Remove.
4827 (inline_function_decl): Remove.
4828 (put_var_into_stack): Don't use it.
4829 (fix_lexical_addr): Likewise.
4830 (inline_function_decl): Remove extern declaration.
4831 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4832 (trampolines_created): Move to varasm.c.
4833 (free_after_compilation): Update for removed fields.
4834 (allocate_struct_function): Likewise.
4835 (delete_handlers, lookup_static_chain): Remove.
4836 (fix_lexical_addr): Don't consider non-local variable refs.
4837 (trampoline_address): Remove.
4838 (round_trampoline_addr): Move to builtins.c.
4839 (adjust_trampoline_addr): Remove.
4840 (expand_function_start): Update for changes to static chain
4841 and nonlocal goto handling.
4842 (initial_trampoline): Move to varasm.c.
4843 (expand_function_end): Don't build trampolines or kill
4844 unreferenced nonlocal goto labels.
4845 (free_after_compilation): Don't set it.
4846 (expand_function_end): Likewise.
4847 (setjmp_vars_warning): Rename from
4848 uninitialized_vars_warning, remove uninitialized vars warning.
4849 (uninitialized_vars_warning): Remove old comment
4850 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4851 and do not call the langhook.
4852 (expand_function_start, expand_function_end): Don't do
4853 function instrumentation here.
4854 (clear_block_marks): Rename from reorder_blocks_0, export.
4855 (blocks_nreverse): Export.
4856 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4857 of rtl.
4858 (reset_block_changes, record_block_change, finalize_block_changes,
4859 check_block_change, free_block_changes): New functions.
4860 (assign_parms): Setting of current_function_stdarg
4861 moved ...
4862 (allocate_struct_function): ... here.
4863 * function.h (struct function): Remove x_nonlocal_labels,
4864 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4865 x_context_display, x_trampoline_list, needs_context.
4866 Add static_chain_decl, nonlocal_goto_save_area.
4867 (struct function): Remove x_clobber_return_insn.
4868 Add tail_call_emit field, last_label_uid,
4869 unexpanded_var_list, dont_emit_block_notes,
4870 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4871 (clear_block_marks): Declare.
4872 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4873 (mfwrap_spec, mflib_spec): Declare.
4874 (cpp_unique_options, cc1_options): Ditto.
4875 (default_compilers): Add .F and .f90.
4876 (static_specs): Add mfwrap and mflib.
4877 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4878 CONSTANT_RTX_P.
4879 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4880 Update to match insns field in struct edge_def.
4881 * gdbinit.in (pgs, pge): Define.
4882 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4883 instead of the integrated flag.
4884 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4885 * gengtype-yacc.y (bitfieldlen): Add empty action.
4886 (struct_fields): Accept unnamed bitfields.
4887 (bitfieldlen): Split from ...
4888 (bitfieldopt): ... here.
4889 * gengtype.c (ifiles): Add tree-alias-type.h and
4890 tree-flow.h.
4891 * genrecog.c (validate_pattern): Do not handle
4892 CONSTANT_P_RTX.
4893 * gimple-low.c: New file.
4894 * gimplify.c: New file.
4895 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4896 (restore_line_notes): Do not set RTX_INTEGRATED_P.
4897 * ifcvt.c (dead_or_predicable): Initialize local variable
4898 'earliest'.
4899 * input.h (expr_wfl_stack): Remove.
4900 * integrate.c (INTEGRATE_THRESHOLD): Remove.
4901 (setup_initial_hard_reg_value_integration): Likewise.
4902 (initialize_for_inline): Likewise.
4903 (note_modified_parmregs): Likewise.
4904 (integrate_parm_decls): Likewise.
4905 (process_reg_param): Likewise.
4906 (save_parm_insns): Likewise.
4907 (copy_insn_list): Likewise.
4908 (copy_insn_notes): Likewise.
4909 (compare_blocks): Likewise.
4910 (find_block): Likewise.
4911 (inlining): Likewise.
4912 (function_cannot_inline_p): Likewise.
4913 (parmdecl_map): Likewise.
4914 (in_nonparam_insns): Likewise.
4915 (save_for_inline): Likewise.
4916 (FIXED_BASE_PLUS): Likewise.
4917 (expand_inline_function): Likewise.
4918 (copy_rtx_and_substitute): Don't look at map->integrating,
4919 map->inline_target, and inlining, since we are never copying
4920 for integrating.
4921 Don't abort on RTX_INTEGRATED_P.
4922 (old_fun): Remove.
4923 (output_inline_function): Remove.
4924 * integrate.h (struct inline_map): Remove fields integrating,
4925 block_map, leaf_reg_map, inline_target, and local_return_label.
4926 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4927 copy_loop_headers, never_reached_warning): Removed.
4928 (any_uncondjump_p): Reject nonlocal goto.
4929 * langhooks-def.h (lhd_types_compatible_p,
4930 lhd_expand_decl, lhd_gimplify_expr): Declare.
4931 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4932 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4933 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4934 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4935 LANG_HOOKS_GIMPLIFY_EXPR,
4936 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4937 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4938 LANG_HOOKS_GIMPLIFY_EXPR,
4939 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4940 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4941 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4942 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4943 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4944 LANG_HOOKS_DECL_UNINIT,
4945 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4946 * langhooks.c: Include tree-simple.h.
4947 (lhd_expand_decl): New.
4948 (lhd_types_compatible_p): New.
4949 (lhd_decl_uninit): Remove.
4950 (lhd_gimplify_expr): New.
4951 * langhooks.h (struct lang_hooks_for_rtl_expansion):
4952 Remove.
4953 (struct lang_hooks_for_functions): Add field
4954 missing_noreturn_ok_p.
4955 (struct lang_hooks): Add field expand_decl,
4956 types_compatible_p, gimplify_expr and
4957 gimple_before_inlining.
4958 Remove fields decl_uninit and rtl_expand
4959 * opts.c (decode_options): Set flag_tree_ccp,
4960 flag_tree_dce, flag_tree_dom, flag_tree_dse,
4961 flag_tree_pre, flag_tree_ter,
4962 flag_tree_live_range_split, flag_tree_sra,
4963 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4964 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4965 OPT_fmudflapth, OPT_fmudflapir,
4966 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4967 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4968 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4969 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4970 OPT_ftree_points_to_ and OPT_ftree_pre.
4971 * output.h (regno_uninitialized, find_basic_blocks,
4972 cleanup_cfg, delete_unreachable_blocks,
4973 check_function_return_warnings): Remove.
4974 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4975 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4976 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4977 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4978 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4979 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4980 Define.
4981 * passes.c (rest_of_decl_compilation):
4982 (rest_of_handle_sibling_calls): Remove.
4983 (rest_of_handle_inlining): Remove.
4984 (rest_of_handle_gcse): Do not run
4985 purge_builtin_constant_p.
4986 (rest_of_compilation): Update.
4987 Do not call copy_loop_headers.
4988 Do rtl-based profiling only when
4989 !flag_tree_based_profiling. Register rtl-based profiling
4990 hooks.
4991 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
4992 (predicted_by_p): Rename to ...
4993 (rtl_predicted_by_p): .. this one; make global
4994 (tree_predicted_by_p): New.
4995 (dump_prediction): Add FILE argument.
4996 (predict_edge): Rename to ...
4997 (rtl_predict_edge): .. this one.
4998 (tree_predict_edge): New.
4999 (combine_predictions_for_insn): Update calls of predict_edge.
5000 (predict_loops): Break out from ...
5001 (estimate_probability): ... here; update comments; move updating
5002 of unknown probabilities from ...
5003 (estimate_bb_frequencies): ... here.
5004 (combine_predictions_for_bb): New.
5005 (tree_predict_by_opcode): New.
5006 (tree_estimate_probability): New.
5007 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
5008 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
5009 * predict.h: Add include guard.
5010 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
5011 * pretty-print.c (pp_write_text_to_stream): Make extern.
5012 * pretty-print.h (pp_write_text_to_stream): Declare.
5013 * print-rtl.c (print_rtx): Don't print the integrated flag.
5014 Print the return_val flag.
5015 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
5016 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
5017 Remove support for EXPR_WITH_FILE_LOCATION nodes.
5018 (print_node): Print TREE_INVARIANT and TREE_VISITED.
5019 * profile.c: Include cfghooks.h, tree-flow.h.
5020 (profile_hooks): New.
5021 (profile_dump_file): New.
5022 (instrument_edges): Use hooks instead of RTL-specific code.
5023 (instrument_values): Ditto.
5024 (get_exec_counts): Ditto.
5025 (compute_branch_probabilities): Ditto.
5026 (compute_value_histograms): Ditto.
5027 (branch_prob): Ditto.
5028 (find_spanning_tree): Ditto.
5029 (end_branch_prob): Ditto.
5030 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
5031 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
5032 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
5033 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
5034 (tree_register_profile_hooks): New.
5035 (rtl_register_profile_hooks): New.
5036 * ra-rewrite.c (rewrite_program): Clear variable info.
5037 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
5038 * regs.h: Add include guards.
5039 * reload.c (decompose): Clear val using memset.
5040 * rtl.def (CONSTANT_P_RTX): Remove.
5041 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
5042 (copy_loop_headers): Remove.
5043 (struct rtx_def): Replace the integrated flag with the
5044 return_val flag.
5045 (maybe_set_first_label_num): Declare.
5046 (init_branch_prob): Move declaration to value-prof.h.
5047 (end_branch_prob): Ditto.
5048 (branch_prob): Ditto.
5049 (never_reached_warning): Don't declare it.
5050 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
5051 (hoist_insn_to_edge): Update to match field insns in
5052 struct edge_def.
5053 * sbitmap.c (sbitmap_realloc): New.
5054 * sbitmap.h (sbitmap_realloc): Declare.
5055 * sibcall.c: Remove file.
5056 * simplify-rtx.c (simplify_rtx): Do not handle
5057 CONSTANT_P_RTX.
5058 * stmt.c (parse_output_constraint): Don't warn for read-write
5059 memory operand.
5060 (tail_recursion_args): Use types_compatible_p langhook.
5061 (force_label_rtx): Don't look at inline_function_decl.
5062 (label_rtx): Set LABEL_PRESERVE_P appropriately.
5063 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
5064 (declare_nonlocal_label): Remove.
5065 (expand_goto): Don't handle nonlocal gotos.
5066 (expand_nl_handler_label): Remove.
5067 (expand_nl_goto_receivers): Remove.
5068 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
5069 update_nonlocal_goto_save_area.
5070 (expand_expr_stmt_value): Check TREE_NO_WARNING.
5071 (warn_if_unused_value): Likewise.
5072 (expand_start_loop, expand_loop_continue_here,
5073 expand_end_loop): Don't create loop notes.
5074 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
5075 mark_seen_cases, check_for_full_enumeration_handling): Remove.
5076 (expand_end_case_type): Don't do warn_switch handling.
5077 (pushcase, pushcase_range) Update add_case_node calls.
5078 (add_case_node): Add dont_expand_label argument.
5079 (same_case_target_p): Don't search rtl.
5080 (expand_start_bindings_and_block, expand_end_bindings):
5081 Don't emit block notes when dont_emit_block_notes.
5082 (using_eh_for_cleanups_p): Export.
5083 (expand_return): Allow any typed rhs.
5084 (expand_stack_alloc): New.
5085 (expand_stack_save, expand_stack_restore): New.
5086 (containing_blocks_have_cleanups_or_stack_level): New
5087 function.
5088 (asm_op_is_mem_input): New fn.
5089 (expand_asm_expr): New fn.
5090 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
5091 nodes.
5092 * stor-layout.c (layout_type): Just return if type is
5093 error_mark_node.
5094 (update_alignment_for_field): Export.
5095 (variable_size): We don't care about global_bindings_p if
5096 the frontend doesn't want a list of the expressions.
5097 * system.h: Poison INTEGRATE_THRESHOLD.
5098 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
5099 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
5100 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
5101 TV_TREE_SSA_OTHER, TV_TREE_OPS,
5102 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
5103 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
5104 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
5105 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
5106 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
5107 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
5108 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
5109 TV_CONTROL_DEPENDENCES): Define.
5110 * toplev.c: Include tree-alias-common.h
5111 (current_file_decl, flag_mudflap, flag_mudflap_threads,
5112 flag_mudflap_ignore_reads, flag_tree_based_profiling,
5113 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
5114 flag_tree_dce, flag_tree_ch, flag_tree_sra,
5115 flag_tree_combine_temps, flag_tree_ter,
5116 flag_tree_live_range_split, flag_tree_dom,
5117 flag_tree_copyrename, flag_tree_dse): Declare.
5118 (f_options): Add tree-based-profiling, tree-gvn,
5119 tree-pre, tree-ccp, tree-dce,
5120 tree-dominator-opts, tree-copyrename, tree-dse,
5121 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
5122 (wrapup_global_declarations): Don't output nested inlined functions.
5123 (general_init): Call init_tree_optimization_passes.
5124 (process_options): Sorry for -ftree-based-profiling plus
5125 -ftest-coverage or -fprofile-values.
5126 * toplev.h (init_tree_optimization_passes,
5127 flag_tree_based_profiling): Declare.
5128 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
5129 * tree-alias-ander.c: New file.
5130 * tree-alias-ander.h: New file.
5131 * tree-alias-common.c: New file.
5132 * tree-alias-common.h: New file.
5133 * tree-alias-type.c: New file.
5134 * tree-alias-type.h: New file.
5135 * tree-browser.c: New file.
5136 * tree-browser.def: New file.
5137 * tree-cfg.c: New file.
5138 * tree-complex.c: New file.
5139 * tree-dfa.c: New file.
5140 * tree-dump.c (dump_enable_all): New.
5141 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
5142 (dump_node): Remove const from field suffix and swtch.
5143 (dump_files): Add null entry, .generic, .nested, .vcg,
5144 .xml and a match-all entry.
5145 (extra_dump_files, extra_dump_files_in_use,
5146 extra_dump_files_alloced): Declare
5147 (dump_option_value_info): Add raw, details, stats,
5148 blocks, vops, lineno, uid and all.
5149 (dump_register): New.
5150 (get_dump_file_info): New.
5151 (dump_begin): Call it.
5152 Do nothing for TDI_none.
5153 (dump_begin): Include phase number in dump filename.
5154 (dump_enable_all): New.
5155 (dump_switch_p_1): Split out from dump_switch_p.
5156 (dump_switch_p): Handle extra_dump_files.
5157 Start our scan at TDI_none + 1.
5158 If -fdump-tree-all was given, call dump_enable_all.
5159 * tree-dump.h: Include splay-tree.h.
5160 (dump_function, dump_function_to_file, dump_register):
5161 Declare.
5162 * tree-eh.c: New file.
5163 * tree-flow-inline.h: New file.
5164 * tree-flow.h: New file.
5165 * tree-inline.c: Re-write to handle inlining on GIMPLE.
5166 * tree-inline.h (walk_tree,
5167 walk_tree_without_duplicates): Move to tree.h.
5168 (estimate_num_insns): Declare.
5169 * tree-into-ssa.c: New file.
5170 * tree-iterator.c: New file.
5171 * tree-iterator.h: New file.
5172 * tree-mudflap.c: New file.
5173 * tree-mudflap.h: New file.
5174 * tree-nested.c: New file.
5175 * tree-nomudflap.c: New file.
5176 * tree-nrv.c: New file.
5177 * tree-optimize.c (dump_flags, vars_to_rename,
5178 in_gimple_form, all_passes, pass_gimple,
5179 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5180 (execute_gimple, execute_rebuild_bind,
5181 gate_all_optimizations, execute_del_cfg,
5182 register_one_dump_file, register_dump_files, dup_pass_1,
5183 init_tree_optimization_passes, execute_todo,
5184 execute_one_pass, execute_pass_list): New.
5185 (clear_decl_rtl): Remove.
5186 (tree_rest_of_compilation): Update to use tree
5187 optimizers.
5188 * tree-outof-ssa.c: New file.
5189 * tree-pass.h: New file.
5190 * tree-phinodes.c: New file.
5191 * tree-pretty-print.c: New file.
5192 * tree-profile.c: New file.
5193 * tree-simple.c: New file.
5194 * tree-simple.h: New file.
5195 * tree-sra.c: New file.
5196 * tree-ssa-alias.c: New file.
5197 * tree-ssa-ccp.c: New file.
5198 * tree-ssa-copy.c: New file.
5199 * tree-ssa-copyrename.c: New file.
5200 * tree-ssa-dce.c: New file.
5201 * tree-ssa-dom.c: New file.
5202 * tree-ssa-dse.c: New file.
5203 * tree-ssa-forwprop.c: New file.
5204 * tree-ssa-live.c: New file.
5205 * tree-ssa-live.h: New file.
5206 * tree-ssa-loop.c: New file.
5207 * tree-ssa-operands.c: New file.
5208 * tree-ssa-operands.h: New file.
5209 * tree-ssa-phiopt.c: New file.
5210 * tree-ssa-pre.c: New file.
5211 * tree-ssa.c: New file.
5212 * tree-ssanames.c: New file.
5213 * tree-tailcall.c: New file.
5214 * tree.c: Include tree-iterator.h, basic-block.h and
5215 tree-flow.h.
5216 (tree_node_kind): Add phi_nodes and ssa names.
5217 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5218 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5219 (make_node_stat): Handle PHI_NODE and SSA_NAME.
5220 <'c'> Set TREE_INVARIANT.
5221 (copy_node_stat): Abort if trying to copy a
5222 STATEMENT_LIST.
5223 Clear TREE_VISITED.
5224 Clear annotation field.
5225 (build_constructor): Copy TREE_INVARIANT from vals.
5226 Don't clear TREE_CONSTANT.
5227 (expr_first, expr_last, expr_length): Remove.
5228 (staticp): Pass unknown component references to the language.
5229 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5230 (skip_simple_arithmetic): Likewise.
5231 (stabilize_reference_1): Likewise.
5232 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5233 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5234 STATEMENT_LIST.
5235 (lhd_unsave_expr_now): Remove.
5236 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5237 (recompute_tree_invarant_for_addr_expr): New.
5238 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5239 Call recompute_tree_invarant_for_addr_expr.
5240 Set TREE_INVARIANT accordingly.
5241 (build2_stat): Don't handle CALL_EXPR.
5242 (build3_stat): Don't call build2_stat for CALL_EXPRs.
5243 (build_expr_wfl): Remove.
5244 (annotate_with_file_line, annotate_with_locus): New.
5245 (simple_cst_equal): Call simple_cst_list_equal to compare
5246 CONSTRUCTOR_ELTS pointers.
5247 (iterative_hash_expr): Don't hash types associated
5248 with conversions. Instead hash on the signedness of the
5249 toplevel object and the operand of the conversion.
5250 (dump_tree_statistics): Call ssanames_print_statistics
5251 and phinodes_print_statistics.
5252 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5253 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5254 needs_to_live_in_memory): New.
5255 (initializer_zerop): Handle VECTOR_CST. Don't check
5256 AGGREGATE_TYPE_P for CONSTRUCTOR.
5257 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5258 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5259 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5260 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5261 (CALL_EXPR): Add another operand.
5262 (EXPR_WITH_FILE_LOCATION): Remove.
5263 (SWITCH_EXPR): Add another operand.
5264 * tree.h: Update various comments.
5265 (union tree_ann_d): Forward declare.
5266 (struct tree_common): Add fields nowarning_flag,
5267 invariant_flag and visited.
5268 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5269 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5270 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5271 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5272 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5273 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5274 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5275 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5276 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5277 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5278 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5279 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5280 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5281 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5282 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5283 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5284 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5285 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5286 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5287 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5288 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5289 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5290 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5291 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5292 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5293 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5294 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5295 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5296 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5297 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5298 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5299 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5300 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5301 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5302 TDF_UID,): Define.
5303 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5304 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5305 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5306 EXPR_WFL_SET_LINECOL): Remove.
5307 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5308 make_phi_node, init_phinodes, fini_phinodes,
5309 release_phi_node, phinodes_print_statistics,
5310 init_ssanames, fini_ssanames, make_ssa_name,
5311 release_ssa_name, ssanames_print_statistics,
5312 annotate_with_file_line, build_empty_stmt,
5313 annotate_with_locus, expr_only, categorize_ctor_elements,
5314 count_type_elements, add_var_to_bind_expr, is_essa_node,
5315 expand_stack_alloc, expand_stack_save,
5316 expand_stack_restore, add_case_node, operand_equal_p,
5317 nondestructive_fold_unary_to_constant,
5318 nondestructive_fold_binary_to_constant,
5319 fold_read_from_constant_string, int_const_binop,
5320 strip_float_extensions, simplify_builtin, c_strlen,
5321 recompute_tree_invarant_for_addr_expr,
5322 needs_to_live_in_memory, make_vector,
5323 setjmp_vars_warning, update_alignment_for_field,
5324 expand_asm_expr, asm_op_is_mem_input,
5325 containing_blocks_have_cleanups_or_stack_level,
5326 create_artificial_label, gimplify_function_tree,
5327 get_name, unshare_expr, walk_tree,
5328 walk_tree_without_duplicates, in_gimple_form): Declare.
5329 (struct tree_exp): Add fields locus and block.
5330 (struct tree_ssa_name, struct edge_def, struct
5331 tree_phi_node, struct tree_eref_common, struct
5332 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5333 union alias_var_def, struct tree_statement_list_node,
5334 struct tree_statement_list, enum operand_equal_flag): Declare.
5335 (enum tree_node_structure_enum): Add TS_SSA_NAME,
5336 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5337 TS_STATEMENT_LIST.
5338 (union tree_node): Add fields ssa_name, phi, eref, ephi,
5339 euse and stmt_list.
5340 (function_cannot_inline_p, uninitialized_vars_warning,
5341 save_for_inline, output_inline_function, all_cases_count,
5342 check_for_full_enumeration_handling,
5343 declare_nonlocal_label): Remove.
5344 (enum tree_dump_index): Add TDI_none, TDI_tu,
5345 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5346 * unroll.c (unroll_loop): Don't clear map->inline_target.
5347 * unwind-sjlj.c (uw_install_context): Make a proper static inline
5348 function.
5349 * value-prof.c (value_prof_hooks): New.
5350 (find_values_to_profile): Rename to rtl_find_values_to_profile.
5351 Move rtl-specific bits in from branch_prob.
5352 (value_profile_transformations): Rename to
5353 rtl_value_profile_transformations.
5354 (struct value_prof_hooks): New.
5355 (rtl_value_prof_hooks): New.
5356 (rtl_register_value_prof_hooks): New.
5357 (tree_find_values_to_profile): New stub.
5358 (tree_value_profile_transformations): New stub.
5359 (tree_value_prof_hooks): New stub.
5360 (tree_register_value_prof_hooks): New stub.
5361 (find_values_to_profile): New.
5362 (value_profile_transformations): New.
5363 * value-prof.h: Add multiple inclusion guard.
5364 (struct histogram_value): Change rtx fields to void *.
5365 (rtl_register_value_prof_hooks): New declaration.
5366 (tree_register_value_prof_hooks): New declaration.
5367 (find_values_to_profile): New declaration.
5368 (free_profiled_values): New declaration.
5369 (value_profile_transformations): New declaration.
5370 (struct profile_hooks): New declaration.
5371 (init_branch_prob): Declaration moved from rtl.h.
5372 (branch_prob): Declaration moved from rtl.h.
5373 (end_branch_prob): Declaration mooved from rtl.h.
5374 (tree_register_profile_hooks): New declaration.
5375 (rtl_register_profile_hooks): New declaration.
5376 (tree_profile_hooks): New declaration.
5377 (rtl_profile_hooks): New declaration.
5378 * varasm.c: Include tree-mudflap.h.
5379 (TRAMPOLINE_ALIGNMENT): Remove.
5380 (make_decl_rtl): Call mudflap_enqueue_decl.
5381 (assemble_static_space):
5382 (assemble_trampoline_template): Set and return
5383 TRAMPOLINE_ALIGNMENT.
5384 * varray.c (element): Add GENERIC_PTR_NOGC entry.
5385 Add entry for 'tree *'.
5386 Add entry for struct edge_def *.
5387 (varray_copy): New.
5388 * varray.h (enum varray_data_enum): Add
5389 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5390 VARRAY_DATA_TREE_PTR.
5391 (union varray_data_tag): Corresponding changes.
5392 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5393 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5394 VARRAY_EDGE, VARRAY_TREE_PTR,
5395 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5396 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5397 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5398
5399 * config/*/*: Various updates for changed macros, tree
5400 codes, etc. Check ChangeLog.tree-ssa.
5401
5402 * doc/cfg.texi: New file.
5403 * doc/tree-ssa.texi: New file.
5404 * doc/c-tree.texi: Document new codes.
5405 * doc/gccint.texi: Include new files.
5406 * doc/install.texi: Document new features.
5407 * doc/invoke.texi: Document new switches.
5408 * doc/passes.texi: Document new passes.
5409 * doc/rtl.texi: Update changed RTL codes.
5410 * doc/sourcebuild.texi: Update build instructions.
5411 * doc/standards.texi: Document Fortran changes.
5412 * doc/tm.texi: Update.
5413
5414 2004-05-12 Paolo Bonzini <bonzini@gnu.org>
5415
5416 Replace several arrays with a struct of arrays.
5417 * combine.c (struct reg_stat): New.
5418 (init_reg_last_arrays): Renamed to...
5419 (init_reg_last): ...this. Callers adjusted.
5420 (reg_stat): New.
5421 (combine_instructions): Allocate it and use it.
5422 (reg_last_death, reg_last_set, reg_last_set_value,
5423 reg_last_set_label, reg_last_set_table_tick,
5424 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5425 reg_last_set_mode, reg_last_set_nonzero_bits,
5426 reg_last_set_sign_bit_copies): Replace throughout
5427 with items of reg_stat.
5428
5429 2004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
5430
5431 PR optimization/15100
5432 * combine.c (distribute_notes): Don't create a dangling
5433 REG_LIBCALL/REG_RETVAL note.
5434
5435 2004-05-11 Aldy Hernandez <aldyh@redhat.com>
5436
5437 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5438
5439 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5440 negv2si2.
5441
5442 2004-05-11 Aldy Hernandez <aldyh@redhat.com>
5443
5444 * doc/md.texi (Standard Names): Fix typo in vec_init description.
5445
5446 2004-05-11 Geoffrey Keating <geoffk@apple.com>
5447
5448 * doc/gty.texi (GTY Options): Clarify example.
5449
5450 2004-05-11 Fariborz Jahanian <fjahanian@apple.com>
5451
5452 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5453 Add const qualifier to altivec vector type if one is needed.
5454
5455 2004-05-11 Paul Brook <paul@codesourcery.com>
5456
5457 * flags.h (flag_short_enums): Update comment.
5458 * opts.c (decode_options): Set flag_short_enums to 2.
5459 * toplev.c (flag_short_enums): Update comment.
5460 (process_options): Call default_short_enums target hook.
5461
5462 2004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
5463
5464 PR target/14063
5465 * config/rs6000/altivec.md (altivec_dssall):
5466 Change to unspec_volatile.
5467 (altivec_dss): Likewise.
5468
5469 2004-05-10 Aldy Hernandez <aldyh@redhat.com>
5470
5471 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5472 vnor.
5473 ("one_cmplv8hi2"): Same.
5474 ("one_cmplv4si2"): Same.
5475
5476 2004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
5477
5478 PR target/15130
5479 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5480 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5481 into account. Compute the correct number of general registers
5482 for the return value. Generate a special push/pop sequence when
5483 failing to get a temporary register for non SHmedia epilogue.
5484 (sh_expand_epilogue): Add an argument to show whether it's for
5485 sibcall or not. Set the 3rd argument of output_stack_adjust to
5486 -1 if needed.
5487 (sh_need_epilogue): Call sh_expand_epilogue with 0.
5488 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5489 with 1.
5490 (epilogue): Call sh_expand_epilogue with 0.
5491
5492 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
5493
5494 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5495 goto a cleanup label. After the cleanup, free the allocated memory.
5496
5497 2004-05-10 Ziemowit Laski <zlaski@apple.com>
5498
5499 * config/rs6000/altivec.h (vec_sld): Add overloads for
5500 argument/return types of 'vector bool int', 'vector bool short'
5501 and 'vector bool char'.
5502
5503 2004-05-10 Zack Weinberg <zack@codesourcery.com>
5504
5505 * c-decl.c (store_parm_decls_newstyle): Correct test for a
5506 nested function.
5507
5508 2004-05-10 Richard Sandiford <rsandifo@redhat.com>
5509
5510 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5511 treating missing ones as "".
5512 * config/mips/mips.md: Remove constraints from match_operands and
5513 match_scratches if they appear in define_expands (except reload*),
5514 define_peephole2s, define_splits or attribute specifications.
5515 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5516 constraint strings.
5517
5518 2004-05-10 Alan Modra <amodra@bigpond.net.au>
5519
5520 * config/rs6000/rs6000.c (function_arg_boundary): Always align
5521 AltiVec vectors.
5522 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5523 vectors by refererence. Align the same for TARGET_64BIT to a 16
5524 byte boundary. Remove useless code. Add function comment.
5525 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
5526 call to where it belongs.
5527 (function_arg_partial_nregs): Return true for all TARGET_32BIT
5528 -mabi=no-altivec AltiVec vectors. Fix debug output.
5529 (rs6000_va_arg): Adjust for AltiVec change.
5530
5531 2004-05-10 Paul Brook <paul@codesourcery.com>
5532
5533 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5534 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5535 (TARGET_DOUBLEWORD_ALIGN): Use it.
5536 (WCHAR_TYPE): Define.
5537 (WCHAR_SIZE_TYPE): Define.
5538 (SIZE_TYPE): Define.
5539
5540 2004-05-10 Alan Modra <amodra@bigpond.net.au>
5541
5542 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5543 when size is 8 bytes.
5544 (function_arg_advance): Account for stack space used by AltiVec
5545 args when -mabi=altivec. Simplify alignment calculations. For
5546 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5547 (function_arg): Similarly.
5548 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5549 not AltiVec ABI.
5550 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
5551 Correct alignment, and align before testing reg count. Remove
5552 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
5553 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5554 TARGET_FPRS here..
5555 (rs6000_function_value): .. not here before call.
5556
5557 2004-05-09 Aldy Hernandez <aldyh@redhat.com>
5558
5559 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5560
5561 2004-05-09 Zack Weinberg <zack@codesourcery.com>
5562
5563 PR 15007
5564 * c-decl.c (current_file_decl): Rename to all_translation_units,
5565 adjust comment.
5566 (pop_scope): If popping file_scope, construct a
5567 TRANSLATION_UNIT_DECL and make it the context of all the
5568 symbols in the scope.
5569 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5570 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
5571 anything to current_file_decl.
5572 (pushdecl_top_level): Likewise.
5573 (store_parm_decls_newstyle): Adjust check for nested function.
5574 (c_write_global_declarations): Update for renamed variable.
5575
5576 2004-05-09 Aldy Hernandez <aldyh@redhat.com>
5577
5578 * config/rs6000/rs6000-protos.h
5579 (rs6000_conditional_register_usage): Protoize.
5580
5581 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5582
5583 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5584 function.
5585
5586 2004-05-08 Roger Sayle <roger@eyesopen.com>
5587
5588 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5589 where op is a comparison operator and C1 and C2 are integer constants
5590 into a range check.
5591 (fold): Call fold_div_compare.
5592
5593 2004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5594
5595 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5596 problems with earlier versions of the GNU compiler.
5597
5598 2004-05-07 Aldy Hernandez <aldyh@redhat.com>
5599
5600 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5601 Declare.
5602
5603 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5604 (rs6000_hard_regno_mode_ok): New.
5605 (rs6000_init_hard_regno_mode_ok): New.
5606 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5607
5608 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5609 result.
5610
5611 2004-05-07 Ziemowit Laski <zlaski@apple.com>
5612
5613 * config/rs6000/altivec.h (vector, pixel, bool): Do not
5614 define as macros #ifdef __APPLE_ALTIVEC__.
5615
5616 2004-05-07 Fariborz Jahanian <fjahanian@apple.com>
5617
5618 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5619 Generate appropriate parallels for vector arguments
5620 passed to vararg functions. (function_arg): make the call
5621 to rs6000_mixed_function_arg for vector args as needed.
5622
5623 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
5624
5625 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5626 EABI_FLOAT_VARARGS_P.
5627
5628 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
5629
5630 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5631 * config/mips/mips.c (override_options): Disable branch likely
5632 instructions if TUNE_MIPS5500.
5633
5634 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
5635
5636 * config/mips/mips.c (override_options): Allow the hi and lo registers
5637 to store any integral mode, not just MODE_INTs.
5638
5639 2004-05-07 Paul Brook <paul@codesourcery.com>
5640
5641 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5642 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5643 (TARGET_DOUBLEWORD_ALIGN): Use it.
5644 (WCHAR_TYPE): Define.
5645 (WCHAR_SIZE_TYPE): Define.
5646 (SIZE_TYPE): Define.
5647
5648 2004-05-07 Uros Bizjak <uros@kss-loka.si>
5649
5650 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5651 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5652
5653 2004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
5654
5655 * loop-doloop.c (doloop_valid_p): Make sure that body
5656 gets freed.
5657
5658 2004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
5659
5660 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5661 declaration.
5662 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5663 (sparc_skip_caller_unimp): New global variable.
5664 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5665 Use it instead of SKIP_CALLERS_UNIMP_P.
5666 * config/sparc/sparc.md (call expander): Add sanity check.
5667 (call_address_struct_value_sp32): Re-sync with expander.
5668 (call_symbolic_struct_value_sp32): Likewise.
5669 (return peepholes): Use 'sparc_skip_caller_unimp' instead
5670 of custom predicate.
5671
5672 2004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5673
5674 PR c++/14962
5675 * c-pragma.c (handle_pragma_redefine_extname): Only change
5676 the assembler name of FUNCTION_DECLs and VAR_DECLs.
5677
5678 2004-05-07 Uros Bizjak <uros@kss-loka.si>
5679
5680 * optabs.h (enum optab_index): Add new OTI_log1p.
5681 (log1p_optab): Define corresponding macro.
5682 * optabs.c (init_optabs): Initialize log1p_optab.
5683 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5684 patterns.
5685 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5686 using log1p_optab.
5687 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5688 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5689
5690 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5691
5692 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5693 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5694 Prototype here.
5695 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5696 x87's fyl2xp1 instruction.
5697 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5698 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5699 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5700 log1p and log1pl built-ins as inline x87 intrinsics.
5701
5702 2004-05-07 Loren James Rittle <ljrittle@acm.org>
5703
5704 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
5705 * config/arm/freebsd.h: Likewise.
5706 * config/ia64/freebsd.h: Likewise.
5707 * config/sparc/freebsd.h: Likewise.
5708
5709 2004-05-07 Hans-Peter Nilsson <hp@axis.com>
5710
5711 PR optimization/15296
5712 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5713 getting last consecutive label at a branch.
5714 (relax_delay_slots): Similar, near top of loop.
5715
5716 2004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5717
5718 PR target/15202
5719 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5720 register to general register.
5721
5722 2004-05-07 Alan Modra <amodra@bigpond.net.au>
5723
5724 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5725 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5726 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5727 (STACK_BOUNDARY): Delete.
5728
5729 2004-05-06 Stuart Hastings <stuart@apple.com>
5730
5731 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5732 mistakenly clobbered by 1.423.
5733
5734 2004-05-06 Richard Sandiford <rsandifo@redhat.com>
5735
5736 * doc/invoke.texi: Document -mvr4130-align.
5737 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5738 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5739 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5740 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5741 * config/mips/mips.md: Include sched-int.h.
5742 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5743 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5744 (override_options): Enable -mvr4130-align at -O3 and above.
5745 (mips_sim_insn): New variable.
5746 (mips_sim): New structure.
5747 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5748 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5749 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5750 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5751 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5752 (mips_reorg): Call vr4130_align_insns.
5753 (vr4130_last_insn): New variable.
5754 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5755 (vr4130_swap_insns_p, vr4130_reorder): New functions.
5756 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5757 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5758 (mips_use_dfa_pipeline_interface): Return true for the same.
5759 * config/mips/4130.md: New file.
5760 * config/mips/mips.md: Include it. Add a peephole2 to convert
5761 "mult;mflo" into "mtlo;macc".
5762 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5763 target of maccs.
5764 (*msac_using_macc): New pattern.
5765
5766 2004-05-06 Richard Sandiford <rsandifo@redhat.com>
5767
5768 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5769 (ir_vr55_hilo): Split into...
5770 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5771 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5772 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
5773 Add various multiplication bypasses.
5774 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5775 multiplication.
5776
5777 2004-05-06 Uros Bizjak <uros@kss-loka.si>
5778
5779 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5780 attribute to "XF".
5781
5782 2004-05-05 Uros Bizjak <uros@kss-loka.si>
5783
5784 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5785 (fmod_optab, drem_optab): Define corresponding macros.
5786 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5787 * genopinit.c (optabs): Implement fmod_optab and drem_optab
5788 using fmod?f3 and drem?f3 patterns.
5789 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5790 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5791 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5792 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5793 flag_unsafe_math_optimizations is set.
5794
5795 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5796 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5797
5798 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5799 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5800 Prototype here.
5801 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5802 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5803 fprem and fprem1 instructions.
5804 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5805 Rename insn definition to x86_fnstsw_1.
5806 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5807 x87 instructions.
5808 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5809 and fmodl built-ins as inline x87 intrinsics.
5810 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5811 and dreml built-ins as inline x87 intrinsics.
5812
5813 2004-05-05 Roger Sayle <roger@eyesopen.com>
5814
5815 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5816
5817 2004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
5818
5819 PR driver/9822
5820 * doc/invoke.texi (Spec Files): Remove documentation of %c.
5821
5822 2004-05-05 Chris Demetriou <cgd@broadcom.com>
5823
5824 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5825 representation.
5826
5827 2004-05-06 Paul Brook <paul@codesourcery.com>
5828
5829 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5830 (arm_coproc_mem_operand): ... To this.
5831 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5832 (arm_legitimate_index_p): Ditto.
5833 (vfp_mem_operand): Rename ...
5834 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
5835 (vfp_secondary_reload_class): Use it.
5836 (output_move_double): Use doubleword load/store instructions.
5837 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5838 * config/arm/arm.h (TARGET_LDRD): Define.
5839 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5840 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5841 New splitter for invalid doubleword loads.
5842 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5843 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5844 * doc/md.texi: Document Uy constraint.
5845
5846 2004-05-05 Jan Hubicka <jh@suse.cz>
5847
5848 PR opt/14980
5849 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5850 inline clones.
5851
5852 2004-05-05 H.J. Lu <hongjiu.lu@intel.com>
5853
5854 PR target/15290
5855 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5856 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5857
5858 2004-05-05 Mike Stump <mrs@apple.com>
5859
5860 * config/darwin-c.c (add_framework): Copy the directory name as it
5861 can be freed later. Also, ensure we always allocate enough room
5862 for the cached framework information.
5863 (find_subframework_header): Keep track of the directory where the
5864 subframework header was found.
5865 (framework_construct_pathname): Speed up by not trying to re-add a
5866 framework.
5867 * cppfiles.c (search_path_exhausted): Arrange for the missing
5868 header callback to be able to set the directory where the header
5869 was found.
5870 (cpp_get_dir): Add.
5871 * cpplib.h (missing_header_cb): Add a parameter.
5872 (cpp_get_dir): Add.
5873
5874 2004-05-03 Mike Stump <mrs@apple.com>
5875
5876 * doc/invoke.texi (Directory Options): Document -iquote.
5877 * doc/cpp.texi: Likewise.
5878 * doc/cppopts.texi: Likewise.
5879 * c-opts.c (c_common_missing_argument): Add -iquote processing.
5880 (c_common_handle_option): Likewise.
5881 * c.opt (iquote): Add.
5882 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5883 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5884
5885 * c-opts.c (case OPT_I): Deprecate -I- support.
5886 * doc/invoke.texi: Likewise.
5887 * doc/cpp.texi: Likewise.
5888 * doc/cppopts.texi: Likewise.
5889
5890 2004-05-05 Steven Bosscher <stevenb@suse.de>
5891
5892 * basic-block.h (free_basic_block_vars): Update prototype.
5893 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5894 argument.
5895 (life_analysis): Update call.
5896 * ifcvt.c (if_convert): Likewise.
5897 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5898 * passes.c (rest_of_handle_final): Likewise.
5899 (rest_of_compilation): Likewise.
5900 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5901
5902 * emit-rtl.c (next_real_insn): Use INSN_P.
5903 (prev_real_insn): Likewise.
5904
5905 2004-05-05 Eric Christopher <echristo@redhat.com>
5906
5907 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5908 representation.
5909
5910 2004-05-05 Paolo Bonzini <bonzini@gnu.org>
5911
5912 * config/rs6000/rs6000.c (build_opaque_vector_type):
5913 New function.
5914 (rs6000_init_builtins): Use it.
5915
5916 2004-05-04 Bernard Giroud <bgiroud2@free.fr>
5917
5918 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5919 (func_table): Change type from char ** to vms_func_ref.
5920 (write_rtnbeg): Update to reflect func_table change. Use
5921 fde->funcdef_number instead of rtnnum in output.
5922 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5923
5924 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
5925 Richard Henderson <rth@redhat.com>
5926
5927 PR target/14899
5928
5929 * c-common.c (vector_types_convertible_p): New function.
5930 * c-typeck.c (comptypes): Recurse on vector types.
5931 (convert_for_assignment): Use vector_types_convertible_p.
5932 (digest_init): Use vector_types_convertible_p to check
5933 validness of constant vector initializers; otherwise treat
5934 them as scalars.
5935 * tree.c (make_or_reuse_type): New.
5936 (build_common_tree_nodes): Use it.
5937 * cp/call.c (standard_conversion): Likewise.
5938 * cp/typeck.c (comptypes): Recurse on vector types.
5939 (convert_for_assignment): Use vector_types_convertible_p.
5940
5941 2004-05-04 Chris Demetriou <cgd@broadcom.com>
5942
5943 * config/mips/mips.c (override_options): Default to no
5944 generation of branch-likely operations when tuning for
5945 CPUs where they tend to have a negative performance impact
5946 (e.g., SB-1).
5947
5948 2004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5949
5950 * expr.c (store_constructor_field): Don't call store_constructor
5951 if bitsize is not a multiple of a byte.
5952
5953 2004-05-04 Richard Sandiford <rsandifo@redhat.com>
5954
5955 * reload1.c (inherit_piecemeal_p): New function.
5956 (emit_reload_insns): When reloading a group of hard registers, use
5957 inherit_piecemeal_p to decide whether the values of individual hard
5958 registers can be inherited.
5959
5960 2004-05-04 H.J. Lu <hongjiu.lu@intel.com>
5961
5962 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5963 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5964 * config/t-linux (LIB2ADDEHDEP): Likewise.
5965
5966 2004-05-04 Paul Brook <paul@codesourcery.com>
5967
5968 * config/arm/crti.asm: Push an even number of registers.
5969 * config/arm/crtn.asm: And restore them. Load via sp.
5970
5971 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
5972
5973 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5974 Collect overhead information.
5975 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
5976 parameter and pass it through.
5977 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
5978 MEM_STAT_DECL parameter and pass it through.
5979 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
5980 MEM_STAT_DECL parameter and pass it through.
5981
5982 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
5983
5984 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5985
5986 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5987
5988 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5989 rs6000_hard_regno_nregs.
5990
5991 2004-05-03 Eric Christopher <echristo@redhat.com>
5992
5993 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5994 prologue insn instead of setting up call.
5995 (s390_emit_epilogue): Ditto.
5996 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5997 (define_constants): Add numbers for above patterns.
5998
5999 2004-05-03 Eric Christopher <echristo@redhat.com>
6000
6001 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
6002 * config/s390/s390.c (s390_conditional_register_usage): ...here.
6003 * config/s390/s390-protos.h: Prototype.
6004
6005 2004-05-03 Joe Buck <jbuck@welsh-buck.org>
6006
6007 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
6008 assignment.
6009
6010 2004-05-03 Eric Christopher <echristo@redhat.com>
6011
6012 * config/mips/mips.md: Fix branch length attribute definition.
6013
6014 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
6015
6016 * config.gcc: Remove --enable-altivec support.
6017
6018 * config/rs6000/altivec-defs.h: Remove.
6019
6020 2004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6021
6022 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
6023 * fixinc/fixincl.x: Regenerate.
6024
6025 2004-05-03 Uros Bizjak <uros@kss-loka.si>
6026
6027 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
6028 definition.
6029 (log?f2, log10?f2, log2?f2): Reimplement expanders with
6030 float_truncate insn.
6031 (*fxtractsf3, *fxtractdf3): Remove insn definition.
6032 (logb?f2): Reimplement expanders with float_truncate insn.
6033
6034 2004-05-03 Graham Stott <graham.stott@btinternet.com>
6035
6036 PR 14718
6037 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
6038 force_type_die for CONST_DECL.
6039
6040 2004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
6041 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6042
6043 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
6044 tm-dwarf2.h to tm_file.
6045 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
6046 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
6047 (ASM_DEBUG_SPEC): Delete.
6048
6049 2004-05-03 Uros Bizjak <uros@kss-loka.si>
6050
6051 * optabs.h (enum optab_index): Add new OTI_expm1.
6052 (expm1_optab): Define corresponding macro.
6053 * optabs.c (init_optabs): Initialize expm1_optab.
6054 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
6055 patterns.
6056 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
6057 using expm1_optab.
6058 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
6059 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6060
6061 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
6062 to implement expm1, expm1f and expm1l built-ins as inline x87
6063 intrinsics.
6064
6065 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
6066
6067 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
6068 * config/frv/frv.md (*return_true, *return_false): New patterns.
6069
6070 2004-05-02 Kazu Hirata <kazu@cs.umass.edu>
6071
6072 * rtl.h (PHI_NODE_P): Remove.
6073
6074 2004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
6075
6076 PR middle-end/14988
6077 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
6078 when passed -2 as 'align'.
6079 (put_var_into_stack): Use 'bool' as the type for the three local
6080 predicates. Adjust calls to put_reg_into_stack.
6081 When passed a CONCAT, instruct put_reg_into_stack to use
6082 a consecutive stack slot for the second part.
6083 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
6084 'consecutive_p' parameter. Turn the three predicates into 'bool'
6085 parameters. Retrieve the register mode from 'reg'.
6086 When consecutive_p is true, instruct assign_stack_local_1 to use
6087 BITS_PER_UNIT alignment.
6088 (put_addressof_into_stack): Use 'bool' as the type for the two
6089 local predicates. Adjust call to put_reg_into_stack.
6090
6091 2004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6092
6093 * fold-const.c (fold_convert_const, fold): Add missing
6094 FIX_ROUND_EXPR case.
6095
6096 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
6097
6098 * configure.ac (FLEX, BISON): Only use tools from the build tree
6099 if build equals host.
6100 * configure: Rebuilt.
6101
6102 * config/frv/frv-protos.h (frv_expand_epilogue,
6103 frv_expand_fdpic_call): Add bool argument.
6104 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
6105 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
6106 (frv_expand_epilogue): Use new argument to decide whether to emit
6107 return instruction or copy the return address to LR.
6108 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
6109 sibcalls.
6110 (sibcall_operand): New.
6111 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
6112 PLUS nor LABEL_REF. Add sibcall_operand.
6113 * config/frv/frv.md (call, call_value): Pass false to
6114 frv_expand_fdpic_call.
6115 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
6116 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
6117 sibcall_value_internal, sibcall_value_fdpicdi): New.
6118 (return_unsigned_true, return_unsigned_false): New.
6119 (epilogue): Adjust call to frv_expand_epilogue.
6120 (sibcall_epilogue): New.
6121
6122 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
6123 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
6124 before redefining them.
6125
6126 2004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6127
6128 * builtins.c (fold_fixed_mathfn): New function.
6129 (fold_builtin_lround, fold_builtin): Use it.
6130
6131 2004-05-01 Jakub Jelinek <jakub@redhat.com>
6132
6133 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
6134 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
6135
6136 2004-05-01 Kazu Hirata <kazu@cs.umass.edu>
6137
6138 * config/cris/cris.h: Revert my "fix comment typos" patch.
6139
6140 2004-05-01 Richard Sandiford <rsandifo@redhat.com>
6141
6142 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
6143
6144 2004-05-01 Falk Hueffner <falk@debian.org>
6145
6146 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
6147 builtin_insll): Disallow 0 as first input operand.
6148
6149 2004-05-01 Falk Hueffner <falk@debian.org>
6150
6151 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
6152
6153 2004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
6154
6155 PR middle-end/15054
6156 * expr.c (expand_expr_real): Do not call preserve_temp_slots
6157 on a TARGET_EXPR temp.
6158 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
6159 TARGET_EXPR temp slots.
6160
6161 2004-05-01 Paolo Bonzini <bonzini@gnu.org>
6162
6163 * simplify-rtx.c (simplify_ternary_operation): When
6164 converting an IF_THEN_ELSE to a relational op, return
6165 correct mode.
6166
6167 2004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6168
6169 * builtins.c (fold_builtin_round): Fix comment typo.
6170 (fold_builtin_lround): New function.
6171 (fold_builtin): Use it.
6172
6173 2004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
6174
6175 PR target/11608
6176 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6177 more like the one in config/dbxelf.h.
6178
6179 2004-04-30 Zack Weinberg <zack@codesourcery.com>
6180
6181 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6182 and adjust definition accordingly.
6183 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6184 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6185 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6186 VECTOR_TYPE.
6187
6188 2004-04-30 Jason Merrill <jason@redhat.com>
6189
6190 PR c++/14587
6191 * config/i386/winnt.c (associated_type): Look for attributes on
6192 the TYPE_MAIN_VARIANT of *this.
6193 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6194 apply the attributes to the variants.
6195
6196 2004-04-30 Paul Brook <paul@codesourcery.com>
6197
6198 * config.gcc: Simplify arm --with-{cpu,tune} test.
6199 * config/arm/arm-cores.def: Document whitespace restrictions.
6200
6201 2004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6202
6203 PR other/1963
6204 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6205
6206 2004-04-30 Brian Ford <ford@vss.fsi.com>
6207 DJ Delorie <dj@redhat.com>
6208
6209 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6210 (DWARF2_DEBUGGING_INFO): Define to enable.
6211 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6212 DWARF2.
6213 * configure.ac (Target-specific assembler checks)
6214 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6215 relocs.
6216 * configure: Regenerate.
6217 * config.in: Likewise.
6218
6219 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6220 (ASM_OUPUT_DWARF_OFFSET): Define.
6221
6222 2004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6223
6224 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6225 (s390_emit_call): New function prototype added.
6226 (s390_tls_get_offset): Function removed.
6227 * config/s390/s390.c (s390_function_ok_for_sibcall,
6228 s390_call_saved_register_used_p): New functions.
6229 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6230 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6231 (s390_emit_tls_call_insn): New function.
6232 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6233 emit_call_insn.
6234 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
6235 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
6236 added.
6237 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
6238 register number used to hold the target address for sibcalls.
6239 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6240 New expanders.
6241 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
6242 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
6243 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
6244 Expanders removed.
6245 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
6246 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
6247 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6248 ("epilogue"): Changed the call to s390_emit_epilogue to use the
6249 new parameter.
6250
6251 2004-04-30 Kazu Hirata <kazu@cs.umass.edu>
6252
6253 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6254 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6255 reg-stack.c, varasm.c, config/alpha/ev4.md,
6256 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6257 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6258 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6259 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6260 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6261 config/ia64/itanium2.md, config/ip2k/ip2k.c,
6262 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6263 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6264 comment typos.
6265
6266 2004-04-30 Paul Brook <paul@codesourcery.com>
6267
6268 * config.gcc: Default ep9312 to hard-float.
6269 * config/arm/arm-cores.def: Add ARCH field.
6270 * config/arm/arm.c (FL_FOR_ARCH*): Define.
6271 (arm_arch_cirrus): New variable.
6272 (all_cores): Set and use arch.
6273 (all_architectures): Ditto.
6274 (arm_arch_name): New variable.
6275 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6276 Set and use arm_arch_cirrus.
6277 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6278 (enum processor_type): Update ARM_CORE define.
6279 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
6280 (CPP_SPEC): Remove %(cpp_cpu_arch).
6281 (CPP_ARCH_DEFAULT_SPEC): Remove.
6282 (CPP_CPU_ARCH_SPEC): Remove.
6283 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6284 (FPUTYPE_DEFAULT): Don't define here.
6285
6286 2004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
6287
6288 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6289 updates too.
6290
6291 2004-04-30 Paul Brook <paul@codesourcery.com>
6292
6293 * arm.c (arm_needs_doubleword_align): Use mode alignment.
6294
6295 2004-04-30 Paolo Bonzini <bonzini@gnu.org>
6296
6297 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6298 vec_sububs.
6299 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6300 duplicates.
6301
6302 2004-04-30 Uros Bizjak <uros@kss-loka.si>
6303
6304 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6305 atan2?f3 expanders.
6306
6307 2004-04-29 Nick Clifton <nickc@redhat.com>
6308
6309 Bug 14093
6310 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6311 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6312 Delete static from definition.
6313 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6314
6315 2004-04-30 Uros Bizjak <uros@kss-loka.si>
6316
6317 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6318 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6319 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6320 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6321
6322 2004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
6323
6324 * commom.opt (Wfatal-errors): Add it.
6325 * diagnostic.c (flag_fatal_errors): Define it.
6326 (diagnostic_action_after_output): Check for flag_fatal_errors.
6327 * flags.h (flag_fatal_errors): Declare it.
6328 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6329 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6330
6331 2004-04-30 Josef Zlomek <zlomekj@suse.cz>
6332
6333 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6334 blocks which have kill flag set.
6335
6336 2004-04-29 Ben Elliston <bje@au.ibm.com>
6337
6338 * configure.ac (--with-as): Abort if user-supplied assembler
6339 cannot be executed.
6340 (--with-ld): Likewise for the linker.
6341 * configure: Regenerate.
6342
6343 2004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6344
6345 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6346 isn't NULL before using it.
6347
6348 2004-04-29 Richard Sandiford <rsandifo@redhat.com>
6349
6350 PR target/15189
6351 * config/mips/mips.md (load_df_low): Use default length.
6352 (load_df_high, store_df_high): Likewise.
6353
6354 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
6355
6356 * config/mips/mips.md, config/mips/sb1.md,
6357 config/rs6000/rs6000.c: Fix comment typos.
6358
6359 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
6360
6361 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6362 Fix comment typos.
6363
6364 2004-04-29 Douglas B Rupp <rupp@gnat.com>
6365
6366 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6367 (delete_if_ordinary): Use above macro.
6368 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6369 Update copyright.
6370 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6371
6372 2004-04-29 Richard Earnshaw <rearnsha@arm.com>
6373
6374 * c-decl.c (get_parm_info): Use the correct tag keywords when
6375 warning about type declarations in prototypes.
6376
6377 2004-04-29 Paul Brook <paul@codesourcery.com>
6378
6379 * config.gcc: Pull list of cores from arm-cores.def.
6380
6381 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
6382
6383 * combine.c (combine_simplify_rtx): Adjust call to use
6384 simplify_relational_operation. Do not use SELECT_CC_MODE
6385 when a comparison already has a MODE_CC mode.
6386
6387 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
6388
6389 (simplify_set): simplify_relational_operation may now
6390 return another relational expression.
6391 * cse.c (fold_rtx): simplify_relational_operation now
6392 takes of computing the comparison mode.
6393 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6394 remove dead code.
6395 (do_compare_rtx_and_jump): Likewise.
6396 * integrate.c (subst_constants): simplify_relational_operation
6397 may now return another relational expression.
6398 * simplify-rtx.c (simplify_gen_relational): Move most code to
6399 the new simplify_relational_operation and
6400 simplify_relational_operation_1 functions.
6401 (simplify_relational_operation): Rewritten.
6402 (simplify_relational_operation_1): New function.
6403 (simplify_ternary_operation): simplify_relational_operation
6404 may now return another relational expression.
6405 (simplify_rtx): Remove unnecessary temp variable.
6406
6407 2004-04-29 Uros Bizjak <uros@kss-loka.si>
6408
6409 * reg-stack.c (swap_to_top): New function.
6410 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6411 swap_to_top().
6412 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
6413 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
6414 UNSPEC_FSCALE_EXP.
6415
6416 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6417 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6418 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6419 x87's fscale insn.
6420 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6421 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6422 patterns.
6423
6424 2004-04-28 Serge Belyshev <1319@bot.ru>
6425
6426 PR 14944
6427 * coverage.c (read_counts_file): Fix usage of warning () call.
6428 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6429
6430 2004-04-28 Ben Elliston <bje@au.ibm.com>
6431
6432 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6433 options with "-" in the option index.
6434 (SPARC Options): Likewise.
6435 (M32R/D Options): Likewise.
6436
6437 2004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6438
6439 * convert.c (convert_to_integer): Convert (long)round -> lround,
6440 etc.
6441
6442 2004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
6443
6444 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6445 Return false if we do not have fp register.
6446 (addrs_ok_for_quad_peep): Rename to ...
6447 (mems_ok_for_quad_peep): this.
6448 Add check for volatile memory.
6449 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6450 Rename to ...
6451 (mems_ok_for_quad_peep): this.
6452 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6453 to peephole2's.
6454 (lfq_power2): New instruction.
6455 (stfq_power2): Likewise.
6456
6457 2004-04-28 Jan Hubicka <jh@suse.cz>
6458
6459 PR c/15004
6460 * function.c (do_warn_unused_parameter): Break out form ...
6461 (expand_function_end): ... here; warn only when not using cgraphunit.
6462 * function.h (do_warn_unused_parameter): Declare.
6463 * cgraphunit.c: Include function.h.
6464 (cgraph_finalize_function): Do unused parameter warning.
6465 * Makefile.in (cgraphunit.o): Depend on function.h
6466
6467 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
6468
6469 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6470 calling install-info on $(DESTDIR)$(infodir)/dir already being
6471 present.
6472
6473 2004-04-28 Paul Brook <paul@codesourcery.com>
6474
6475 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6476
6477 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
6478
6479 * gcse.c (find_moveable_store): Do not accept store insns with
6480 REG_EH_REGION note.
6481
6482 2004-04-28 Paul Brook <paul@codesourcery.com>
6483
6484 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6485 * function.c (assign_temp): Ditto.
6486 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6487
6488 2004-04-28 Paul Brook <paul@codesourcery.com>
6489
6490 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6491
6492 2004-04-28 Josef Zlomek <zlomekj@suse.cz>
6493
6494 * var-tracking.c (variable_different_p): Add a parameter
6495 compare_current_location, compare current location of variable parts
6496 if it is true.
6497 (dataflow_set_different_1): Pass compare_current_location == false.
6498 (dataflow_set_different_2): Pass compare_current_location == false.
6499 (emit_notes_for_differences_1): Pass compare_current_location == true.
6500
6501 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
6502
6503 * config/s390/s390.md ("casesi"): Mark jump table access as
6504 non-trapping and unchanging.
6505
6506 2004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6507
6508 PR debug/14829
6509 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
6510 callers.
6511 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6512 number for indexing hard_regno_nregs array.
6513
6514 2004-04-27 Geoffrey Keating <geoffk@apple.com>
6515
6516 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6517 * config/darwin-crt2.c: Only have contents on __ppc__.
6518
6519 2004-04-27 Bob Wilson <bob.wilson@acm.org>
6520
6521 * config/xtensa/xtensa.c (call_insn_operand): Check
6522 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6523 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6524 * config/xtensa/xtensa.md (call, call_value): Likewise.
6525
6526 2004-04-27 Wu Yongwei <adah@sh163.net>
6527
6528 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6529 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6530 (__gthread_mutex_init_function): Replace CreateMutex with
6531 initialization of custom mutex using CreateSemaphore.
6532 (__gthread_mutex_lock): Use InterlockedIncrement.
6533 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6534 (__gthread_mutex_unlock): Use InterlockedDecrement and
6535 ReleaseSemaphore to unlock
6536 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6537 __gthread_mutex_lock, __gthread_mutex_trylock,
6538 __gthread_mutex_unlock): Adjust to match inline versions in
6539 gthr-win32.h.
6540
6541 2004-04-27 Paul Brook <paul@codesourcery.com>
6542
6543 * config/arm/arm.c (arm_promote_prototypes): New function.
6544 (TARGET_PROMOTE_PROTOTYPES): Use it.
6545
6546 2004-04-27 Paul Brook <paul@codesourcery.com>
6547
6548 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6549
6550 2004-04-26 Bernard Giroud <bgiroud@free.fr>
6551
6552 * config/alpha.c (alpha_end_function): For OpenVMS gas,
6553 correctly output .pdesc directive before .end.
6554
6555 2004-04-26 James E Wilson <wilson@specifixinc.com>
6556
6557 Bug 14927
6558 * config/ia64/ia64.md (movxf): New local op0. Handle case where
6559 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
6560
6561 2004-04-26 Zack Weinberg <zack@codesourcery.com>
6562
6563 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6564 * config/pa/pa-hpux10.h: Likewise.
6565 * config/pa/pa-hpux11.h: Likewise.
6566
6567 2004-04-26 Geoffrey Keating <geoffk@apple.com>
6568
6569 * doc/invoke.texi (Overall Options): Document default for -o
6570 for PCH files.
6571
6572 2004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6573
6574 * builtins.c (expand_builtin_update_setjmp_buf): New function.
6575 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6576 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6577
6578 2004-04-26 Paul Brook <paul@codesourcery.com>
6579
6580 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6581
6582 2004-04-26 Paul Brook <paul@codesourcery.com>
6583
6584 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6585
6586 2004-04-25 Roger Sayle <roger@eyesopen.com>
6587
6588 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6589 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
6590 X % -1 as 0.
6591
6592 2004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
6593
6594 PR bootstrap/15141
6595 * except.c (connect_post_landing_pads): Delete insns after the
6596 barrier when generating a unwind_resume_libfunc call.
6597
6598 2004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6599
6600 PR/c++ 15119
6601 * tree.c (substitute_placeholder_in_expr, case 4): New case,
6602 for TARGET_EXPR.
6603
6604 2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6605
6606 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6607 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6608 inhibit_libc is defined.
6609
6610 2004-04-25 Richard Sandiford <rsandifo@redhat.com>
6611
6612 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6613 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6614 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6615 (TARGET_SCHED_VARIABLE_ISSUE): Define.
6616 (mips_adjust_cost): Move later in file, next to other sched hooks.
6617 (mips_macc_chains_last_hilo): New variable.
6618 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6619 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6620 * config/mips/mips.md (may_clobber_hilo): New attribute.
6621
6622 2004-04-24 Roger Sayle <roger@eyesopen.com>
6623 Bruce Korb <bkorb@gnu.org>
6624
6625 * fixinc/inclhack.def (aix_syswait_2): New fix.
6626 * fixinc/fixincl.x: Regenerate.
6627 * fixinc/tests/base/sys/wait.h: Update for new test.
6628
6629 2004-04-24 Alan Modra <amodra@bigpond.net.au>
6630
6631 PR target/14960
6632 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6633 to non_fixed_size, and leave out fixed_size from the sum.
6634 (generate_set_vrsave): Correct clobbers.
6635 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6636 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6637 (rs6000_libcall_value): Likewise.
6638 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6639 (FUNCTION_ARG_REGNO_P): Likewise.
6640
6641 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
6642
6643 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6644 is a CONST_INT.
6645 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6646 with NARROW_OP1 instead of OP1.
6647
6648 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
6649
6650 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6651 and __s390x__ hosts.
6652
6653 2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6654
6655 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6656 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6657 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6658 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6659 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6660 * builtins.c (expand_builtin_fork_or_exec): New.
6661 (expand_builtin): Call it.
6662 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6663 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6664 * c-common.c (PID_TYPE): New macro.
6665 (c_common_nodes_and_builtins): Initialize pid_type_node.
6666 * calls.c (special_function_p): Do not handle fork and exec.
6667 (expand_call): Do not handle ECF_FORK_OR_EXEC.
6668 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6669 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6670 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6671 __gcov_execv, __gcov_execvp, __gcov_execve): New.
6672 * tree.h (enum tree_index): Add TI_PID_TYPE.
6673 (pid_type_node): New macro.
6674 (ECF_FORK_OR_EXEC): Removed.
6675
6676 2004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
6677
6678 PR optimization/13985
6679 * cfgloopmanip.c (fix_loop_placements): New prototype.
6680 Call fix_bb_placements on the preheader of loops that have
6681 been reparented.
6682 (remove_path): Adjust call to fix_loop_placements.
6683
6684 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
6685
6686 * config/darwin7.h: New file.
6687 * config.gcc (*-*-darwin*): Add darwin7.h if the
6688 version is greater than 6.
6689 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6690 (MATH_LIBRARY): Wrap in ifdefs.
6691
6692 2004-04-23 Daniel Jacobowitz <drow@mvista.com>
6693
6694 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6695 loading iWMMXt registers with a frame pointer. Use post-increment
6696 without a frame pointer.
6697 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6698
6699 2004-04-23 Paolo Bonzini <bonzini@gnu.org>
6700
6701 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6702 mode" rather than "-funit-at-a-time" since -O2 enables it
6703 without requiring -f* options. Refer to -fprofile-generate and
6704 -fprofile-use correctly. Move -funit-at-a-time among options
6705 enabled by -O. Add information about unit-at-a-time caveats.
6706
6707 2004-04-22 Per Bothner <per@bothner.com>
6708
6709 * line-map.h (struct line_maps): New field highest_line.
6710 (linemap_position_for_column): Make non-inline function.
6711 (LINEMAP_POSITION_FOR_COLUMN): New macro.
6712 * line-map.c (linemap_init): Clear highest_line field.
6713 (linemap_add): Set highest_line field.
6714 (linemap_line_start): Minor optimization - use highest_line field.
6715 Reduce maximum column hint to 10000. Update highest_line field.
6716 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
6717 * cpphash.h (struct cpp_reader): Remove line field - instead use
6718 line_table->highest_line.
6719 (saved_line): Remove unused field.
6720 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
6721 Use line_table's highest_line field instead of cpp_reader's line.
6722 * cpplib.c (start_directive): Likewise use highest_line field.
6723 (do_line, do_linemarker): Likewise just use newest map.
6724 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
6725 * cpperror.c (cpp_error): Likewise use highest_line field.
6726 * cppfiles.c (open_file_failed: Likewise.
6727 (cpp_make_system_header): Likewise use newest map and highest_line.
6728 * cppinit.c (cpp_create_reader): Don't initialize removed field.
6729 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6730 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6731 _cpp_lex_direct): Likewise use highest_line.
6732 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
6733 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
6734 and use newest map.
6735 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
6736 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
6737 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
6738
6739 2004-04-23 Alan Modra <amodra@bigpond.net.au>
6740
6741 PR bootstrap/14992
6742 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6743 * config/linux.h (USE_LD_AS_NEEDED): Define.
6744 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6745 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6746 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6747 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6748 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6749 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6750 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6751
6752 2004-04-22 Per Bothner <per@bothner.com>
6753
6754 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
6755 Fixes PR preprocessor/15067.
6756
6757 2004-04-23 Andreas Schwab <schwab@suse.de>
6758
6759 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6760 avoid aliasing warning.
6761
6762 2004-04-22 Jan Hubicka <jh@suse.cz>
6763 Mostafa Hagog <mustafa@il.ibm.com>
6764
6765 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6766 * cfgloopanal.c (expected_loop_iterations): Change the return value
6767
6768 2004-04-22 Jakub Jelinek <jakub@redhat.com>
6769
6770 * cselib.h (struct elt_loc_list): Remove canon_loc field.
6771 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6772 (cselib_invalidate_mem): Remove all canon_loc and canon_x
6773 traces.
6774
6775 2004-04-22 Josef Zlomek <zlomekj@suse.cz>
6776
6777 Revert
6778 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
6779
6780 * var-tracking.c (variable_part_different_p): Variable parts
6781 differ when the most recent locations differ.
6782
6783 2004-04-22 Richard Sandiford <rsandifo@redhat.com>
6784
6785 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6786 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6787 (embedded_pic_offset): Delete.
6788 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
6789 MASK_* constants.
6790 (TARGET_EMBEDDED_PIC): Delete.
6791 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6792 (ASM_SPEC): Remove -membedded-pic.
6793 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6794 (ASM_OUTPUT_CASE_LABEL): Likewise.
6795 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6796 * config/mips/windiss.h (ASM_SPEC): Likewise.
6797 * config/mips/mips.c (struct machine_function): Remove
6798 embedded_pic_fnaddr_rtx.
6799 (TARGET_ENCODE_SECTION_INFO): Remove override.
6800 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6801 (override_options): Remove -membedded-pic handling.
6802 (print_operand): Remove handling of '%S'.
6803 (mips_select_section: Remove -membedded-pic handling.
6804 (mips_encode_section_info): Delete.
6805 (mips_output_conditional_branch): Remove mention of -membedded-pic.
6806 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6807 -membedded-pic handling.
6808 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6809
6810 2004-04-22 Alan Modra <amodra@bigpond.net.au>
6811
6812 * var-tracking.c (frame_base_decl): Remove useless GTY.
6813
6814 2004-04-21 Aldy Hernandez <aldyh@redhat.com>
6815
6816 * config/rs6000/rs6000.c (rs6000_override_options): Error when
6817 user wants altivec and e500 instructions.
6818
6819 2004-04-21 H.J. Lu <hongjiu.lu@intel.com>
6820
6821 PR target/14813
6822 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6823 in .init_array section to ...
6824 * config/ia64/crtbegin.asm: Here.
6825
6826 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6827 and hidden if HAVE_INITFINI_ARRAY is defined.
6828
6829 2004-04-21 James E Wilson <wilson@specifixinc.com>
6830
6831 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6832 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6833 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6834 (fp_register_operand, lo_operand): New.
6835 (mips_rtx_costs): Add TUNE_SB1 support.
6836 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
6837 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6838 (mips_multipass_dfa_lookahead): New.
6839 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6840 TUNE_SB1): New.
6841 (TARGET_SWITCHES): Add -mfp-exceptions support.
6842 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6843 (BRANCH_COST): Fix whitespace.
6844 * config/mips/mips.md: Include sb1.md.
6845 * config/mips/sb1.md: New file.
6846 * doc/invoke.texi: Document -mfp-exceptions.
6847
6848 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
6849 comment.
6850 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6851 (fixincl.o-warn): Delete.
6852
6853 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
6854
6855 * config/rs6000/rs6000 (print_operand) ['z']:
6856 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6857
6858 2004-04-21 Daniel Jacobowitz <drow@mvista.com>
6859
6860 * config.gcc: Support --with-arch=iwmmxt for ARM.
6861
6862 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6863
6864 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6865 in two more places; remove unneeded force_reg
6866
6867 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
6868
6869 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6870 for TARGET_MACHO.
6871 (print_operand): For TARGET_MACHO check to see if we need a stub
6872 and output one if we need it.
6873
6874 PR debug/15033
6875 * dwarf2out.c (rtl_for_decl_location): Check for NULL
6876 rtl.
6877
6878 2004-04-20 James E Wilson <wilson@specifixinc.com>
6879
6880 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6881 (vall_value_gp): Likewise.
6882
6883 2004-04-20 DJ Delorie <dj@redhat.com>
6884
6885 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6886 variables stored in word registers, then in memory.
6887
6888 2004-04-20 Eric Christopher <echristo@redhat.com>
6889
6890 * cp/parser.c (cp_parser_declaration): Move translate
6891 up before tokens are lexed.
6892
6893 2004-04-20 Uros Bizjak <uros@kss-loka.si>
6894
6895 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6896 (asin_optab, acos_optab): Define corresponding macros.
6897 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6898 * genopinit.c (optabs): Implement asin_optab and acos_optab
6899 using asin?f2 and acos?f2 patterns.
6900 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6901 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6902 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6903 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6904
6905 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6906 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6907 acos, acosf and acosl built-ins as inline x87 intrinsics.
6908
6909 2004-04-20 Paul Brook <paul@codesourcery.com>
6910
6911 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6912
6913 2004-04-20 Paul Brook <paul@codesourcery.com>
6914
6915 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6916
6917 2004-04-20 Paolo Bonzini <bonzini@gnu.org>
6918
6919 Revert part of 2004-04-17 change that moved -frename-registers
6920 to -O1. -frename-registers is buggy.
6921
6922 * toplev.c (flag_rename_registers): Initialize to 0.
6923 * doc/invoke.texi (Optimize options): Move -frename-registers
6924 to "Not triggered by any -O level" section. Adjust commentary
6925 accordingly.
6926
6927 2004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
6928
6929 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6930
6931 2004-04-20 Richard Sandiford <rsandifo@redhat.com>
6932
6933 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6934 for mflo and mfhi instructions.
6935 (mips_output_move): Remove mflo and mfhi handling.
6936 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6937 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6938 Likewise various define_peephole2s.
6939 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6940 alternatives.
6941 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6942 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6943 (mfhilo_di, mfhilo_si): New patterns.
6944
6945 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
6946
6947 * function.c (assign_parms): Force
6948 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6949
6950 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
6951
6952 * var-tracking.c (variable_part_different_p): Variable parts differ
6953 when the most recent locations differ.
6954
6955 2004-04-19 James E Wilson <wilson@specifixinc.com>
6956
6957 * rtl.h (reg_set_last): Delete declaration.
6958 * rtlanal.c (reg_set_last): Delete.
6959
6960 2004-04-19 Roger Sayle <roger@eyesopen.com>
6961
6962 * fold-const.c (fold_convert): Make function extern/public.
6963 * tree.h (fold_convert): Prototype here.
6964 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6965 expand_builtin_strrchr, expand_builtin_strpbrk,
6966 expand_builtin_mempcpy, expand_builtin_bcopy,
6967 expand_builtin_bzero, expand_builtin_memcmp,
6968 expand_builtin_strcmp, expand_builtin_strncmp,
6969 stabilize_va_list, expand_builtin_sprintf,
6970 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6971 fold_builtin_exponent, fold_builtin_mempcpy,
6972 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6973 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6974 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6975
6976 2004-04-19 Aldy Hernandez <aldyh@redhat.com>
6977
6978 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6979 (move_from_CR_gt_bit): New.
6980 (cceq_ior_compare): Name previously unnamed pattern. Disable for
6981 E500.
6982 (cceq_rev_compare): Name previously unnamed pattern. Allow for
6983 E500.
6984
6985 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6986 (tstsfeq_gpr): Same.
6987 (cmpsfgt_gpr): Same.
6988 (tstsfgt_gpr): Same.
6989 (cmpsflt_gpr): Same.
6990 (tstsflt_gpr): Same.
6991 (e500_cceq_ior_compare): New.
6992 (e500_flip_gt_bit): New.
6993
6994 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6995 (print_operand): Add 'c' and 'D'.
6996 (rs6000_generate_compare): Rewrite to generate correct rtl.
6997 (rs6000_emit_sCOND): Handle E500.
6998 (output_cbranch): Adjust for changes in rs6000_generate_compare.
6999 (output_e500_flip_gt_bit): New.
7000
7001 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
7002 Protoize.
7003
7004 2004-04-19 Eric Christopher <echristo@redhat.com>
7005
7006 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
7007
7008 2004-04-19 David Edelsohn <edelsohn@gnu.org>
7009
7010 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
7011 fix information.
7012
7013 2004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7014
7015 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
7016 download URL.
7017
7018 2004-04-19 Daniel Jacobowitz <drow@mvista.com>
7019
7020 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
7021 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
7022
7023 2004-04-19 Andrew PInski <pinskia@physics.uc.edu>
7024
7025 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
7026 (fold_builtin): Update caller to match.
7027
7028 PR bootstrap/15009
7029 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
7030
7031 PR bootstrap/14999
7032 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
7033
7034 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7035
7036 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
7037
7038 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
7039 (expand_mult_highpart_optab): Likewise.
7040 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
7041
7042 2004-04-19 Paul Brook <paul@codesourcery.com>
7043
7044 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
7045 floatunssisf2, floatunssidf2): New patterns.
7046
7047 2004-04-18 Mark Mitchell <mark@codesourcery.com>
7048
7049 PR other/14918
7050 * doc/invoke.texi (-fprofile-generate): Document requirement to
7051 use -fprofile-generate when linking.
7052
7053 * doc/extend.texi (Strong Using): Warn users against using this
7054 feature.
7055
7056 2004-04-18 Richard Sandiford <rsandifo@redhat.com>
7057
7058 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
7059 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
7060 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
7061 * config/mips/mips.c (struct mips16_constant): Renamed from struct
7062 constant. Propogate change throughout file.
7063 (struct machine_function): Remove insns_len.
7064 (mips_string_length, mips16_strings, string_constants): Delete.
7065 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
7066 when generating mips16 code. Remove special mips16 treatment of
7067 string constants.
7068 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
7069 to have the form LABEL+CONSTANT.
7070 (mips_symbolic_address_p): Fix comment.
7071 (m16_usym8_4, m16_usym5_4): Delete.
7072 (mips_output_function_epilogue): Remove mips16 string handling.
7073 (mips_output_mi_thunk): Call mips16_lay_out_constants.
7074 (mips_select_section, mips_encode_section_info): Remove mips16
7075 string handling.
7076 (struct mips16_constant_pool): New.
7077 (add_constant): Take a mips16_constant_pool structure. Keep pool
7078 sorted into order of ascending mode size. Keep track of the highest
7079 possible start address, taking padding and the masking of the base PC
7080 value into account.
7081 (dump_constants_1): New function, split out from dump_constants.
7082 Handle vector constants. Use gen_consttable_{int,float} rather than
7083 separate functions for each mode.
7084 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
7085 rather than separate functions for each alignment.
7086 (mips_find_symbol): Delete.
7087 (mips16_insn_length): New function, split out from
7088 mips16_lay_out_constants.
7089 (mips16_rewrite_pool_refs): New function.
7090 (mips16_lay_out_constants): Rework. Remove string handling.
7091 Always create an inline constant pool.
7092 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
7093 (UNSPEC_ALIGN): New constants.
7094 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
7095 (UNSPEC_ALIGN_[248]): Delete.
7096 (consttable_int, consttable_float, align): New patterns.
7097 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
7098
7099 2004-04-17 Aldy Hernandez <aldyh@redhat.com>
7100
7101 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
7102 __unn_args_eq.
7103
7104 2004-04-17 Alan Modra <amodra@bigpond.net.au>
7105
7106 PR target/14715
7107 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
7108 with STARTING_FRAME_OFFSET.
7109
7110 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
7111
7112 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
7113 * config/mips/mips.c (macc_msac_operand): New function.
7114 * config/mips/mips.md (*msac): Move after *macc.
7115 (*msac2): New. Generalize macc-related peepholes so that they apply
7116 to msac too.
7117
7118 2004-04-17 Paolo Bonzini <bonzini@gnu.org>
7119
7120 * opts.c (decode_options): Do not enable flag_rename_registers
7121 and flag_web at -O3.
7122 * toplev.c (flag_rename_registers): Initialize
7123 flag_rename_registers and flag_web to
7124 AUTODETECT_FLAG_VAR_TRACKING.
7125 (default_debug_hooks): New global.
7126 (process_options): Initialize default_debug_hooks. Warn if
7127 -fvar-tracking specified but not supported by the current
7128 debug format. Do not run var tracking at -O0 or if not
7129 supported by the current debug format, even if
7130 -fvar-tracking was given. If -fno-rename-registers
7131 is not specified, always run register renaming if var
7132 tracking is supported by the default debugging information
7133 format for the target, and we are at -O1 or higher; similarly
7134 for -fweb, but only at -O2 or higher.
7135 * doc/invoke.texi (Optimize Options): Document this.
7136
7137 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
7138
7139 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
7140 * configure: Regenerate.
7141
7142 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
7143
7144 * gcc.c (used_arg): Check whether an option has been removed.
7145
7146 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7147
7148 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
7149 debugging on Solaris 7 and up.
7150
7151 2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7152
7153 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
7154 IRIX 5 port.
7155 Remove -save-temps workaround, handled automatically.
7156 Require GNU binutils 2.15 for debugging.
7157 Remove SGI make warnings since GNU make is now required.
7158 (Specific, mips-sgi-irix6): Some markup fixes.
7159 Describe MIPSpro C problems and workarounds.
7160 Mention working O32 ABI support.
7161 Recommend GNU as 2.15 for O32 with debugging.
7162 Remove description of fixed structure pass/return bug.
7163
7164 2004-04-16 DJ Delorie <dj@redhat.com>
7165
7166 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
7167 TYPE_FIELDS.
7168 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
7169
7170 2004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7171
7172 * pa.md: Remove unnecessary declarations for asm_out_file.
7173
7174 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7175 SAR register. Fix comment.
7176 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7177 (%cr11).
7178
7179 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7180
7181 2004-04-16 Nick Clifton <nickc@redhat.com>
7182
7183 * config/arm/arm.c (arm_override_options): Revert previous patch.
7184 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7185 be safely built.
7186
7187 2004-04-16 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7188
7189 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7190 bug.
7191 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7192 TARGET_DEFAULT): Changed. Ditto.
7193 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7194 TARGET_ENDIAN_DEFAULT): Added. Ditto.
7195 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7196 (TARGET_ENDIAN_DEFAULT): Added.
7197
7198 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7199
7200 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7201 ATTR_CONST_NOTHROW_LIST.
7202
7203 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7204
7205 PR/middle-end 14915
7206 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7207 BITS_BIG_ENDIAN.
7208
7209 2004-04-15 Pat Haugen <pthaugen@us.ibm.com>
7210
7211 * ra-debug.c (ra_print_rtx): Add break's to case legs.
7212
7213 2004-04-14 James E Wilson <wilson@specifixinc.com>
7214
7215 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7216
7217 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
7218
7219 * libada-mk.in: New file.
7220 * configure.ac: Create libada-mk from libada-mk.in.
7221 * configure: Regenerate.
7222
7223 2004-04-14 Uros Bizjak <uros@kss-loka.si>
7224
7225 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7226 (logb_optab, ilogb_optab): Define corresponding macros.
7227 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7228 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7229 using logb?f2 and ilogb?i2 patterns.
7230 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7231 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7232 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7233 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7234
7235 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7236 and UNSPEC_XTRACT_EXP.
7237
7238 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7239 patterns to implement fxtract x87 instruction.
7240 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7241 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7242 intrinsics.
7243 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7244 x87's fxtract insn.
7245
7246 2004-04-14 Eric Christopher <echristo@redhat.com>
7247
7248 * config/mips/t-elf: Enable multilibs by default.
7249
7250 2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
7251
7252 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7253 previous fix to check HAVE_return at runtime too.
7254
7255 2004-04-14 Nick Clifton <nickc@redhat.com>
7256
7257 * config/arm/arm.c (arm_override_options): If the user has not
7258 specified an ABI, then default to AAPCS for the iWMMXt processor.
7259 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7260 * config/arm/t-xscale-coff: Likewise.
7261
7262 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7263
7264 * builtins.c (fold_builtin_isdigit): New.
7265 (fold_builtin): Handle BUILT_IN_ISDIGIT.
7266 * defaults.h: Add TARGET_DIGIT0 and sort.
7267 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7268
7269 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7270
7271 * builtins.c (fold_builtin_cabs, fold_builtin): Use
7272 `mathfn_built_in' to determine the new builtin.
7273 * fold-const.c (fold): Likewise.
7274
7275 2004-04-14 Richard Sandiford <rsandifo@redhat.com>
7276
7277 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7278 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7279 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7280 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7281 (ASM_SPEC): Update accordingly.
7282 * config/mips/mips.c: Update after above renaming.
7283 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7284 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7285
7286 2004-04-13 James E Wilson <wilson@specifixinc.com>
7287
7288 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7289 increment errorcount and return false instead of true.
7290
7291 2004-04-13 Uros Bizjak <uros@kss-loka.si>:
7292
7293 * optabs.c (expand_twoval_unop): Reorder function arguments.
7294 * builtins.c (expand_builtin_mathfn_3): Update calls to
7295 expand_twoval_unop.
7296
7297 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7298 and UNSPEC_TAN_TAN. Add missing comment.
7299
7300 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7301 patterns to implement fptan x87 instruction.
7302 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7303 and tanl built-ins as inline x87 intrinsics. Define corresponding
7304 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7305 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7306 x87's fptan insn.
7307
7308 2004-03-13 Richard Henderson <rth@redhat.com>
7309
7310 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7311 for LABEL_REFs.
7312
7313 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7314 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7315 * doc/invoke.texi: Update to match.
7316
7317 * varasm.c (unlikely_text_section): Use assemble_align instead of
7318 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
7319 correct alignment argument.
7320
7321 2004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
7322
7323 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7324 after setting reg_last_reload_reg for optional output reloads.
7325
7326 2004-04-12 Fariborz Jahanian <fjahanian@apple.com>
7327
7328 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7329 Definition of these two macros are corrected by adding
7330 matchine right paren.
7331
7332 2004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
7333
7334 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7335
7336 2004-04-12 Roger Sayle <roger@eyesopen.com>
7337
7338 * config/i386/i386.c (output_387_reg_move): New function.
7339 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7340 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7341 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7342 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7343 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7344
7345 2004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7346
7347 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7348 TYPE_DECL.
7349 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7350 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7351 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7352 Use skip_simple_arithmetic to find SAVE_EXPR.
7353 (force_type_save_exprs, force_type_save_exprs_1): New functions.
7354 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7355 Properly chain multiple pointers.
7356 (copy_tree_r): Copy a TYPE_DECL.
7357 * tree.c (variably_modified_type_p): Add some missing tests and
7358 make some other minor changes.
7359 * tree.h (force_type_save_exprs): New declaration.
7360
7361 2004-04-12 Roger Sayle <roger@eyesopen.com>
7362
7363 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7364 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
7365 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
7366 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
7367 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
7368 x%-1 into 0 (or x&0 if x has side-effects).
7369
7370 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
7371
7372 * config/rs6000/rs6000.md: Document why a pattern is not
7373 available.
7374
7375 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7376 of floats on the E500.
7377 (branch_positive_comparison_operator): Do not allow NE even on the
7378 E500.
7379
7380 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
7381
7382 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7383 in_text_unlikely_section to in_unlikely_text_section.
7384
7385 2004-04-11 Roger Sayle <roger@eyesopen.com>
7386
7387 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
7388 calling convention to allow a NULL_TREE to be returned. Factor
7389 sanity checks from callers, return NULL_TREE when appropriate.
7390 (fold): Handle COMPOUND_EXPR operands of binary expressions
7391 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
7392 whether a op (b,c) can be rewritten as (b, a op c). Simplify
7393 calls to fold_binary_op_with_conditional_arg.
7394
7395 2004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7396
7397 * config/mips/iris5.h (current_section_flags): Add
7398 in_unlikely_executed_text and default case.
7399
7400 2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
7401
7402 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7403 failure on solaris. Place ifdef HAVE_return around gen_ret call.
7404 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7405 HAVE_return and place it around the place where it is needed.
7406
7407 2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
7408
7409 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7410 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7411 and NORMAL_TEXT_SECTION_NAME.
7412 (unlikely_text_section): Check targetm.have_named_sections
7413 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7414 instead of SECTION_FORMAT_STRING.
7415 * config/mips/iris5.h (current_section_name): Add
7416 in_unlikely_executed_text case and move the abort into the switch.
7417 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7418 (NORMAL_TEXT_SECTION_NAME): Remove.
7419 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7420 (SECTION_FORMAT_STRING): Remove.
7421 * defaults.h (SECTION_FORMAT_STRING): Remove.
7422 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7423 (SECTION_FORMAT_STRING): Remove.
7424
7425 2004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
7426
7427 * c-typeck.c (common_type): Prefer long long to long when same
7428 precision.
7429
7430 2004-04-09 Zack Weinberg <zack@codesourcery.com>
7431
7432 PR 14887
7433 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7434 mode argument.
7435 * config/ia64/ia64.c (ia64_hpux_file_end): Check
7436 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7437
7438 2004-04-09 Roger Sayle <roger@eyesopen.com>
7439
7440 * simplify-rtx.c (mode_signbit_p): New function to check whether
7441 an RTX is an immediate constant that represents the most significant
7442 bit of a given machine mode.
7443 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7444 C is the sign bit.
7445 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7446 when C2 is the sign bit.
7447 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7448 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7449 sign bit.
7450
7451 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7452
7453 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7454 TYPE_MODE.
7455
7456 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
7457
7458 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7459 of TREE_READONLY for types.
7460
7461 2004-04-09 Caroline Tice <ctice@apple.com>
7462
7463 * basic-block.h (struct edge_def): Add new field, crossing_edge.
7464 (struct basic_block_def): Add new field, partition.
7465 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
7466 definitions.
7467 (partition_hot_cold_basic_blocks): Add extern function
7468 declaration.
7469 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
7470 include statements.
7471 (N_ROUNDS): Increase the maximum number of rounds by 1.
7472 (branch_threshold): Add array value for new round.
7473 (exec_threshold): Add array value for new round.
7474 (push_to_next_round_p): New function.
7475 (add_unlikely_executed_notes): New function.
7476 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7477 (mark_bb_for_unlikely_executed_section): New function.
7478 (add_labels_and_missing_jumps): New function.
7479 (add_reg_crossing_jump_notes): New function.
7480 (fix_up_fall_thru_edges): New function.
7481 (find_jump_block): New function.
7482 (fix_crossing_conditional_branches): New function.
7483 (fix_crossing_unconditional_branches): New function.
7484 (fix_edges_for_rarely_executed_code): New function.
7485 (partition_hot_cold_basic_blocks): New function.
7486 (find_traces): Add an extra round for partitioning hot/cold
7487 basic blocks.
7488 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
7489 and only cold blocks, into the last (extra) round of collecting traces.
7490 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
7491 over crossing edges.
7492 (bb_to_key): Add code to correctly identify cold blocks when
7493 doing partitioning.
7494 (connect_traces): Modify to connect all the non-cold traces first, then
7495 go back and connect up all the cold traces.
7496 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
7497 * cfg.c (entry_exit_blocks): Add initialization for partition field in
7498 entry and exit blocks.
7499 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
7500 if we are doing hot/cold partitioning.
7501 * cfgcleanup.c (cfglayout.h): Add new include statement.
7502 (try_simplify_condjump): Modify to not attempt on blocks with jumps
7503 that cross section boundaries.
7504 (try_forward_edges): Likewise.
7505 (merge_blocks_move_predecessor_nojumps): Likewise.
7506 (merge_blocks_move_successor_nojumps): Likewise.
7507 (merge_blocks_move): Likewise.
7508 (try_crossjump_to_edge): Modify to not attempt after we have done
7509 the block partitioning.
7510 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7511 cross section boundaries.
7512 (try_optimize_cfg): Likewise.
7513 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7514 jumps that cross section boundaries.
7515 * cfglayout.c (flags.h): Add new include statement.
7516 (update_unlikely_executed_notes): New function.
7517 (fixup_reorder_chain): Add code so when a new jumping basic block is
7518 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
7519 updated appropriately.
7520 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
7521 introduced by this optimization.
7522 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
7523 extern function declaration.
7524 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7525 list of notes that can be deleted.
7526 (create_basic_block_structure): Add initialization for partition field.
7527 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
7528 section boundaries.
7529 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
7530 cross section boundaries.
7531 (commit_one_edge_insertion): Add code so newly created basic block
7532 ends up in correct (hot or cold) section. Modify to disallow
7533 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7534 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
7535 crosses section boundaries.
7536 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7537 cross section boundaries.
7538 (force_nonfallthru_and_redirect): Modify to make sure new basic block
7539 ends up in correct section, with correct notes attached.
7540 * common.opt (freorder-blocks-and-partition): Add new flag for this
7541 optimization.
7542 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
7543 the end of functions are written into the correct (hot or cold)
7544 section.
7545 (dbx_source_file): Add code so writing debug file information
7546 doesn't incorrectly change sections.
7547 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
7548 in partitioning hot/cold basic blocks into separate sections.
7549 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
7550 section partitioning.
7551 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7552 conditional branches can span all of memory.
7553 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7554 unconditional branches can span all of memory.
7555 * final.c (scan_ahead_for_unlikely_executed_note): New function.
7556 (final_scan_insn): Add code to check for NOTE instruction indicating
7557 whether basic block belongs in hot or cold section, and to make sure
7558 the current basic block is being written to the appropriate section.
7559 Also added code to ensure that jump table basic blocks end up in the
7560 correct section.
7561 * flags.h (flag_reorder_blocks_and_partition): New flag.
7562 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
7563 one of the branches has a jump that crosses between sections.
7564 (find_if_case_2): Likewise.
7565 (ifcvt): Modify to not attempt to mark loop exit edges after
7566 hot/cold partitioning has occurred.
7567 * opts.c (decode_options): Code to handle new flag,
7568 flag_reorder_blocks_and_partition; also to turn it off if
7569 flag_exceptions is on.
7570 (common_handle_option): Code to handle new flag,
7571 flag_reorder_blocks_and_partition.
7572 * output.h (unlikely_text_section): New extern function declaration.
7573 (in_unlikely_text_section): New extern function declaration.
7574 * passes.c (rest_of_handle_stack_regs): Add
7575 flag_reorder_blocks_and_partition as an 'or' condition for calling
7576 reorder_basic_blocks.
7577 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
7578 as an 'or' condition for calling reorder_basic_blocks.
7579 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
7580 * print-rtl.c (print_rtx): Add code for handling new note,
7581 NOTE_INSN_UNLIKELY_EXECUTED_CODE
7582 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
7583 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7584 cross between section boundaries.
7585 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
7586 indicating the basic block containing it belongs in the cold section.
7587 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7588 between hot and cold sections.
7589 * toplev.c (flag_reorder_blocks_and_partition): Add code to
7590 initialize this flag, and to tie it to the command-line option
7591 freorder-blocks-and-partition.
7592 * varasm.c (cfglayout.h): Add new include statement.
7593 (unlikely_section_label_printed): New global variable, used for
7594 determining when to output section name labels for cold sections.
7595 (in_section): Add in_unlikely_executed_text to enum data structure.
7596 (text_section): Modify code to use SECTION_FORMAT_STRING and
7597 NORMAL_TEXT_SECTION_NAME macros.
7598 (unlikely_text_section): New function.
7599 (in_unlikely_text_section): New function.
7600 (function_section): Add code to make sure beginning of function is
7601 written into correct section (hot or cold).
7602 (assemble_start_function): Add code to make sure stuff is written to
7603 the correct section.
7604 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
7605 to an if statement that was checking 'in_text_section'.
7606 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
7607 condition to an if statement that was checking 'in_text_section'.
7608 (default_section_type_flags_1): Add check: if in cold section
7609 flags = SECTION_CODE.
7610 * config/darwin.c (darwin_asm_named_section): Modify to use
7611 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7612 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
7613 specifically for the i386.
7614 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
7615 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
7616 text string to something more informative.
7617 (NORMAL_TEXT_SECTION_NAME): Add new definition.
7618 (SECTION_FORMAT_STRING): Add new definition.
7619 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
7620 '!in_unlikely_text_section' as an 'and' condition to an if statement
7621 that was already checking '!in_text_section'.
7622 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7623 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7624 sure these are properly defined for linux on ppc.
7625 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
7626 for this new flag.
7627 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
7628 reg_note.
7629 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7630 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
7631 these new macros.
7632
7633 2004-04-08 Roger Sayle <roger@eyesopen.com>
7634
7635 * function.c (gen_mem_addressof): When changing the RTX from a REG
7636 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7637
7638 2004-04-08 Roger Sayle <roger@eyesopen.com>
7639
7640 PR target/14888
7641 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7642 truncxfdf2_noop): Provide dummy "fmov" implementations.
7643
7644 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
7645
7646 * gcc.c (default_compilers): Add missing initializers.
7647
7648 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7649 Return 1 if file was successfully mapped.
7650
7651 2004-04-08 Geoffrey Keating <geoffk@apple.com>
7652
7653 PR pch/13419
7654 PR pch/14137
7655 Radar #: 3315288
7656 * doc/invoke.texi (Precompiled Headers): Suggest -o
7657 to put an output file in a particular place. Be more detailed
7658 about which options affect PCH validity and which options
7659 might not work.
7660 * c-pch.c (pch_matching): New.
7661 (MATCH_SIZE): New.
7662 (struct c_pch_validity): New field 'match'.
7663 (pch_init): Handle pch_matching.
7664 (c_common_valid_pch): Check pch_matching.
7665
7666 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7667
7668 2004-04-08 Mark Mitchell <mark@codesourcery.com>
7669
7670 * doc/invoke.texi (Precompiled Headers): Warn about known
7671 problems.
7672
7673 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7674
7675 PR c++/14808
7676 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7677 to 1 if ASM_OUTPUT_DEF is defined.
7678 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7679 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7680 Set to non-zero iff not a one_only decl.
7681
7682 2004-04-08 Paul Brook <paul@codesourcery.com>
7683
7684 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7685
7686 2004-04-08 Paul Brook <paul@codesourcery.com>
7687
7688 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7689 PROMOTE_FOR_CALL_ONLY.
7690 * config/arm/arm-protos.h (arm_function_value): Declare.
7691 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7692 (TARGET_PROMOTE_PROTOTYPES): Return false.
7693 (arm_function_value): New function.
7694 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7695 (FUNCTION_VALUE): Call arm_function_value.
7696 * config/cris/cris.h (PROMOTE_MODE): Rename ...
7697 (PROMOTE_FUNCTION_MODE): ... to this.
7698 (PROMOTE_FOR_CALL_ONLY): Remove.
7699 * config/mmix/mmix.h: Likewise.
7700 * config/s390/s390.h: Likewise.
7701 * config/sparc/sparc.h: Likewise.
7702 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7703 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7704 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7705 (PROMOTE_FOR_CALL_ONLY): Remove.
7706
7707 2004-04-08 Joel Sherrill <joel@oarcorp.com>
7708
7709 PR ada/14538
7710 * ada/5rosinte.adb: Remove fake mprotect() body.
7711 * ada/5rosinte.ads: Add SA_SIGINFO.
7712 * ada/5rtpopsp.adb: Rewrite to use new interface.
7713 * ada/init.c: Reorder so the simple single OS conditional __rtems__
7714 is tested before more complex ones which mix UNIX and embedded
7715 systems in the conditional.
7716
7717 2004-04-08 Joel Sherrill <joel@oarcorp.com>
7718
7719 PR ada/14665
7720 * ada/osint.adb (Find_Program_Name): Rework to properly handle
7721 filenames which end in .exe or have versioning suffixes like VMS.
7722
7723 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
7724
7725 PR target/10129
7726 * config/darwin.c (darwin_encode_section_info): When the decl has
7727 a DECL_INITIAL, it is only defined also when it is not a common.
7728
7729 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7730
7731 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7732 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7733
7734 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
7735
7736 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7737 global register variables.
7738
7739 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
7740
7741 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7742 rpc_xdr_lvalue_cast_b): New fixes.
7743 * fixinc/fixincl.x: Regenerate.
7744 * fixinc/tests/base/rpc/xdr.h: Add new tests.
7745
7746 2004-04-07 David Edelsohn <edelsohn@gnu.org>
7747
7748 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7749 to power4 and power5 entries.
7750
7751 2004-04-06 Geoffrey Keating <geoffk@apple.com>
7752
7753 * c-common.h (pending_lang_change): Mark for PCH.
7754
7755 2004-04-07 Caroline Tice <ctice@apple.com>
7756
7757 * gcc.c (main): Move 'break' in main loops (on an error)
7758 to wait until error processing has occurred.
7759
7760 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
7761
7762 * config.gcc: Stop changing enable_threads midstream.
7763 Replace uses of enable_threads_flag with enable_threads.
7764 * configure.ac: Replace uses of enable_threads_flag with
7765 enable_threads. Improve autoconf quotation in one place.
7766 * configure: Regenerate.
7767
7768 2004-04-06 Uros Bizjak <uros@kss-loka.si>
7769
7770 * builtins.c: Implement support for sincos function.
7771 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7772 BUILT_IN_COS{,F,L}.
7773 (expand_builtin_mathfn_3): New function.
7774 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7775 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7776 flag_unsafe_math_optimization is set.
7777
7778 * optabs.h (enum optab_index): Add new OTI_sincos.
7779 (sincos_optab): Define corresponding macro.
7780
7781 * optabs.c (init_optabs): Initialize sincos_optab.
7782 (expand_twoval_unop): New function.
7783
7784 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7785 patterns.
7786
7787 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7788 and UNSPEC_SINCOS_SIN.
7789
7790 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7791 sincosxf3): New patterns to implement sincos, sincosf and sincosl
7792 built-ins as inline x87 intrinsics. Define splits for
7793 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7794 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7795 sincos patterns.
7796 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7797 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7798
7799 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7800 x87's fsincos insn.
7801
7802 2004-04-06 Devang Patel <dpatel@apple.com>
7803
7804 PR 14467
7805 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7806
7807 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7808
7809 * doc/install.texi: Update HP-UX 11 installation procedure.
7810
7811 2004-04-06 Paul Brook <paul@codesourcery.com>
7812
7813 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7814
7815 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
7816
7817 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7818 when the TLS address is generated by a function call.
7819 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7820 (tls_local_dynamic): Likewise.
7821
7822 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
7823
7824 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7825 and TYPE_VOLATILE.
7826
7827 2004-04-05 Caroline Tice <ctice@apple.com>
7828
7829 * gcc.c (combine_flag): New global variable, for new driver option.
7830 (struct compiler): Add two new fields, to be used when
7831 combining multiple input files in a single pass (IMA).
7832 (default_compilers): Add values for the new fields to all
7833 compiler entries. Modify the "@c" compiler entry for doing IMA
7834 properly with "-save-temps" and the "combine" flag.
7835 (option_map): Add new driver option, "--combine", to tell driver
7836 to pass multiple input files to compiler at one time.
7837 (have_o_argbuf_index): New global variable.
7838 (store_arg): Modify to assign value to have_o_argbuf_index.
7839 (struct infile): Add three new fields, to help with IMA.
7840 (display_help): Add help for new "combine" option.
7841 (process_command): Remove local variable have_o; add code to check
7842 for new "combine" option; remove assignment to combine_inputs.
7843 (do_spec_1): Modify to deal with IMA better.
7844 (main): Make variable 'lang_n_infiles' local to entire function
7845 rather than to a single block. Use flag combine_flag to
7846 determine whether to do IMA or not; Modify loop initializing
7847 infiles to deal properly with linker files.
7848 Add code for doing preprocessing in presence of
7849 IMA with "-save-temps" flag. Modify "main" loop to handle
7850 multiple input files, in multiple languages, with or without
7851 preprocessing, gracefully.
7852 * toplev.c (set_src_pwd): Modify to not complain if attempting to
7853 re-set it to same directory it's previously been set to (avoid
7854 irritating, meaningless warning messages when doing IMA with
7855 save-temps).
7856 * doc/invoke.texi: Add "-combine" to list of Overall Options;
7857 remove documentation about IMA that is no longer accurate; Add
7858 documentation explaining what "-combine" does.
7859 * ada/lang-specs.h: Add initialization values for new fields in
7860 "struct compiler".
7861 * cp/lang-specs.h: Likewise.
7862 * f/lang-specs.h: Likewise.
7863 * java/lang-specs.h: Likewise.
7864 * objc/lang-specs.h: Likewise.
7865 * treelang/lang-specs.h: Likewise.
7866
7867 2004-04-05 David Edelsohn
7868
7869 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7870 symbol handling.
7871
7872 2004-04-05 Jakub Jelinek <jakub@redhat.com>
7873 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7874
7875 PR optimization/13424 (hppa), bootstrap/14462, c/14828
7876 * pa.md: Use replace_equiv_address to retain the attributes of the
7877 memory operands used in the split and peephole2 patterns for optimizing
7878 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7879
7880 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7881
7882 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7883 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7884 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7885 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7886 PARM_DECL.
7887 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7888 for a type.
7889 * print-tree.c (print_node): Properly handle side-effects, readonly,
7890 and constant flags.
7891 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7892 and TREE_CONSTANT if not a type.
7893 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7894 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7895 (NON_TYPE_CHECK): New macro.
7896 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7897
7898 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
7899
7900 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7901 to DWARF2_DEBUG unconditionally.
7902 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7903
7904 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
7905 Nathanael Nerode <neroden@gcc.gnu.org>
7906
7907 PR target/14548
7908 * config.host: Set the shell variable host_can_use_collect2.
7909 Set it to yes by default, and to no for alpha*-dec-*vms*,
7910 i[34567]86-*-mingw32*, and powerpc-*-beos*.
7911 * configure.ac: Set and substitute the shell variable collect2.
7912 Give an error if use_collect2 is yes and host_can_use_collect2 is
7913 no.
7914 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
7915 uses. Initialize to @collect2@.
7916 (STAGESTUFF): Remove $(USE_COLLECT2).
7917 * config/alpha/x-vms (USE_COLLECT2): Don't set.
7918 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7919 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7920 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7921 * configure: Regenerate.
7922
7923 2004-04-04 Roger Sayle <roger@eyesopen.com>
7924
7925 * simplify-rtx.c (simplify_binary_operation): Constant fold
7926 DIV, MOD, UDIV and UMOD using div_and_round_double.
7927
7928 2004-04-04 Mark Mitchell <mark@codesourcery.com>
7929
7930 PR c++/14804
7931 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7932 RECORD_TYPEs.
7933
7934 2004-04-04 Mark Mitchell <mark@codesourcery.com>
7935
7936 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7937 documentation.
7938
7939 2004-04-04 Roger Sayle <roger@eyesopen.com>
7940
7941 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7942 updating the REG_EQUAL note on an insn's libcall_insn.
7943
7944 2004-04-04 Roger Sayle <roger@eyesopen.com>
7945
7946 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7947
7948 2004-04-03 Roger Sayle <roger@eyesopen.com>
7949
7950 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7951 with reorder_operands_p.
7952
7953 2004-04-03 Jan Hubicka <jh@suse.cz>
7954
7955 * md.texi (vec_set, vec_extract, vec_init): Document.
7956
7957 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
7958
7959 * opts.c (decode_options): Do function inlining with very small
7960 max-inline-insns-* parameters when optimizing for size.
7961
7962 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
7963
7964 * config/i386/i386.h (TARGET_NOCONA): New macro.
7965 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7966 (processor_type): Add PROCESSOR_NOCONA.
7967
7968 * config/i386/i386.md (cpu): Add nocona to the attribute values.
7969
7970 * config/i386/i386.c (nocona_cost): New variable.
7971 (m_NOCONA): New macro.
7972 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7973 x86_branch_hints, x86_use_sahf, x86_single_stringop,
7974 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7975 x86_integer_DFmode_moves, x86_partial_reg_dependency,
7976 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7977 x86_decompose_lea, x86_arch_always_fancy_math_387,
7978 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7979 x86_ext_80387_constants, x86_four_jump_limit):
7980 (override_options): Add nocona_cost to processor_target_table.
7981 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7982 (incdec_operand): Prevent inc/dec generation for Nocona too.
7983 (ix86_issue_rate): Add PROCESSOR_NOCONA.
7984
7985 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
7986
7987 * rtlanal.c (find_reg_note): Manually
7988 unswitch the loop.
7989
7990 2004-04-01 Mark Mitchell <mark@codesourcery.com>
7991
7992 * genemit.c (gen_split): Change prototype of generated code.
7993 * genrecog.c (write_action): Adjust prototype for and calls to
7994 gen_split_*.
7995 * gensupport.c (struct queue_elem): Add split field.
7996 (queue_pattern): Return a value. Clear the split field.
7997 (process_rtx): Maintain an association between an insn and the
7998 split generated from it for a define_insn_and_split.
7999 (process_one_cond_exec): Generate a new split for a
8000 define_insn_and_split.
8001 * config/arm/arm-protos.h (arm_split_constant): Add insn
8002 parameter.
8003 (emit_constant_insn): New function.
8004 (arm_gen_constant): Use it.
8005 * config/arm/arm.md: Adjust calls to arm_split_constant.
8006
8007 2004-04-02 Jan Hubicka <jh@suse.cz>
8008
8009 * cgraph.c: Add overall comment.
8010 (cgraph_inline_hash): New global variable.
8011 (cgraph_create_node): Break out from ...
8012 (cgraph_node): ... here.
8013 (cgraph_edge): New function.
8014 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
8015 (cgraph_remove_edge): Accept edge, intead of source and destination.
8016 (cgraph_redirect_edge_callee): New.
8017 (cgraph_remove_node): Update all new datastructures.
8018 (cgraph_record_call, cgraph_remove_call): Kill.
8019 (dump_cgraph_node): Break out from ... ; dump new datastructures.
8020 (dump_cgraph): ... here.
8021 (cgraph_function_possibly_inlined_p): Use new hashtable.
8022 (cgraph_clone_edge, cgraph_clone_node): New.
8023 * cgraph.h: Include hashtab.h
8024 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
8025 fields, add inlined_to pointer.
8026 (cgraph_node): Add pointer to next_clone.
8027 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
8028 (cgraph_remove_call, cgraph_record_call): Kill.
8029 (cgraph_inline_hash): Declare.
8030 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
8031 cgraph_redirect_edge_callee): Declare.
8032 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
8033 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
8034 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
8035 * cgraphunit.c: Add overall comment.
8036 (cgraph_optimize_function): Kill.
8037 (cgraph_assemble_pending_functions): Do not assemble inline clones.
8038 (cgraph_finalize_function): Update call of cgraph_remove_node
8039 (record_call_1): Record call sites.
8040 (cgraph_create_edges): Accept node instead of decl argument.
8041 (error_found): New static variable.
8042 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
8043 (cgraph_analyze_function): Update for new datastructures.
8044 (cgraph_finalize_compilation_unit): Plug memory leak.
8045 (cgraph_optimize_function): Kill.
8046 (cgraph_expand_function): Do not use cgraph_optimize_function.
8047 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
8048 cgraph_inlined_callees): Kill.
8049 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
8050 clones.
8051 (estimate_growth): Simplify.
8052 (cgraph_clone_inlined_nodes): New function.
8053 (cgraph_mark_inline_edge): Re-implement.
8054 (cgraph_mark_inline): Likewise.
8055 (cgraph_check_inline_limits): Simplify.
8056 (cgraph_recursive_inlining_p): New.
8057 (update_callee_keys): Break out from ...
8058 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
8059 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
8060 Likewise.
8061 (cgraph_expand_all_functions): Remove inline clones from the ordered
8062 list.
8063 (cgraph_preserve_function_body_p): New predicate.
8064 (cgraph_optimize): Verify cgraph.
8065 * function.h (struct function): Add fields saved_tree/saved_args.
8066 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
8067 * toplev.c (rest_of_compilation): Do not free cfun.
8068 * tree-inline.c: Include function.h
8069 (struct inline_data): Add saving_p field; replace decl/current_decl by
8070 node/current_node.
8071 (insert_decl_map): New function.
8072 (copy_body_r): Handle saving; update cgraph datastructure.
8073 (copy_body): Handle recursive inlining.
8074 (initialize_inlined_parameters): Likewise.
8075 (expand_call_inline): Propagate node attributes; update cgraph.
8076 (optimize_inline_calls): Verify that datastructure still match.
8077 (save_body): New function.
8078 * tree-inline.h (save_body): New.
8079 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
8080 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
8081 * langhooks.c (lang_hooks): Add update_decl_after_saving.
8082
8083 2004-04-01 Serge Belyshev <1319@bot.ru>
8084
8085 PR target/14702
8086 * config/i386/i386.md: fix source operand constraints in
8087 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
8088
8089 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
8090
8091 * fold-const.c (folda): Preserve types of comparisons.
8092
8093 2004-04-01 Richard Henderson <rth@redhat.com>
8094
8095 * toplev.c (backend_init): Move init_optimization_passes call ...
8096 (lang_dependent_init): ... here.
8097
8098 2004-04-01 Alan Modra <amodra@bigpond.net.au>
8099 Jakub Jelinek <jakub@redhat.com>
8100
8101 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
8102 -lgcc --as-needed -lgcc_s --no-as-needed by default.
8103 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
8104 * configure: Rebuilt.
8105 * config.in: Rebuilt.
8106 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
8107 (stage2-start, stage3-start, stage4-start): Likewise.
8108 (stageprofile-start, stagefeedback-start): Likewise.
8109
8110 2004-04-01 Jakub Jelinek <jakub@redhat.com>
8111
8112 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
8113 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8114 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8115 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8116 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
8117 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
8118 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
8119 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
8120 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
8121 * config/sparc/t-linux: Removed.
8122
8123 2004-04-01 Jakub Jelinek <jakub@redhat.com>
8124
8125 PR c++/14755
8126 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
8127 "bitfld++ == const" to "++bitfld == const + incr" transformations.
8128
8129 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8130
8131 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
8132 * stor-layout.c (layout_decl): Likewise.
8133 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
8134 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
8135 * print-tree.c (print_node): Handle various used of unsigned_flag.
8136 * tree.def (BIT_FIELD_REF): Update comment.
8137 * tree.h (TREE_UNSIGNED): Deleted.
8138 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
8139
8140 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8141
8142 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
8143 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
8144 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
8145 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
8146 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
8147 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
8148 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
8149 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
8150 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
8151 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
8152 REAL_TYPE, not INTEGER_TYPE.
8153 (layout_type, case VECTOR_TYPE): Simplify code.
8154 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
8155 * tree.h: Update comments.
8156 (STRIP_NOPS): Use TYPE_UNSIGNED.
8157 (TYPE_UNSIGNED): New macro.
8158 (TYPE_TRAP_SIGNED): Remove now redundant check.
8159 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
8160
8161 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8162
8163 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
8164
8165 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
8166
8167 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
8168 Add darwin-fpsave.asm, darwin-vecsave.asm,
8169 and darwin-world.asm.
8170 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
8171 as the asm files contain altivec instructions.
8172 * config/rs6000/darwin-fpsave.asm: New file.
8173 * config/rs6000/darwin-vecsave.asm: New file.
8174 * config/rs6000/darwin-world.asm: New file.
8175
8176 2004-03-31 Zack Weinberg <zack@codesourcery.com>
8177
8178 * gengtype-yacc.y (option, stringseq): Add missing
8179 terminating semicolon.
8180
8181 2004-03-30 David Edelsohn <edelsohn@gnu.org>
8182
8183 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8184 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8185 tls_dtprel_ha_32, tls_dtprel_ha_64,
8186 tls_dtprel_lo_32, tls_dtprel_lo_64,
8187 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8188 tls_tprel_ha_32, tls_tprel_ha_64,
8189 tls_tprel_lo_32, tls_tprel_lo_64,
8190 tls_got_tprel_32, tls_got_tprel_64,
8191 tls_tls_32, tls_tls_64): Replace register_operand with
8192 gpc_reg_operand.
8193
8194 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
8195
8196 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8197 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8198 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8199 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8200 *ctrdi_internal6): Replace register_operand with
8201 nonimmediate_operand.
8202
8203 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
8204
8205 * fold-const.c (fold): Reassociate multiply expression
8206 with an adjacent non-multiply expression to use
8207 architecture's multiply-add instruction.
8208
8209 2004-03-30 Zack Weinberg <zack@codesourcery.com>
8210
8211 * gengtype.c (create_option): New function.
8212 * gengtype.h: Prototype it.
8213 * gengtype-yacc.y (stringseq): New rule.
8214 (option): Use create_option. Add new bare ID production. Use
8215 stringseq, not STRING directly.
8216
8217 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8218 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8219 * varray.h, config/alpha/alpha.c:
8220 Use new shorter form of GTY markers.
8221
8222 * doc/gty.texi: Rewrite.
8223
8224 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
8225
8226 * config/darwin.c (machopic_function_base_name):
8227 Remove current_name and getting the name of the
8228 current function.
8229
8230 2004-03-30 Nick Clifton <nickc@redhat.com>
8231
8232 * config/arm/arm.md (thumb_jump): Reduce the backward branch
8233 range, and increase the forward branch range, to allow for
8234 the fact that the PC will be off by 4.
8235
8236 2004-03-30 Alan Modra <amodra@bigpond.net.au>
8237
8238 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8239
8240 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
8241
8242 * config/rs6000/rs6000.c (output_vec_const_move):
8243 Find all cases of EASY_VECTOR_15_ADD_SELF.
8244 (easy_vector_constant_add_self): Accept
8245 all vector constant loadable by vsplt* and vadd*.
8246 (easy_vector_same): Use easy_vector_splat_const.
8247 (easy_vector_const): Use easy_vector_splat_const.
8248 (easy_vector_splat_const): New function.
8249 (gen_easy_vector_constant_add_self): New function.
8250
8251 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8252 New prototype.
8253
8254 * config/rs6000/altivec.md (movv4si splitter): Change to
8255 emit move insn with halfed vector constant.
8256 (*movv8hi splitter): Likewise.
8257 (*movv16qi splitter): Likewise.
8258
8259 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
8260
8261 PR 11591
8262 * config/rs6000/rs6000.c (rs6000_legitimate_address):
8263 Allow any offset to argument pointer in no-strict case.
8264
8265 2004-03-30 Jan Hubicka <jh@suse.cz>
8266
8267 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8268 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8269 dump file in non-unit-at-a-time mode.
8270
8271 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
8272
8273 * config/cris/cris.h: Correct #ifdef to test for
8274 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8275 HAVE_AS_MUL_BUG_ABORT_OPTION.
8276
8277 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8278
8279 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8280 the address inside the old RTL.
8281
8282 2004-03-28 Zack Weinberg <zack@codesourcery.com>
8283
8284 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8285 (struct c_binding, struct c_scope): Add chain_next
8286 attributes to GTY markers.
8287 (struct lang_identifier, struct lang_tree_node): Define
8288 here...
8289 * c-tree.h: ... not here. No longer need to declare struct
8290 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8291 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8292 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8293
8294 PR 14734, 11944
8295 * c-decl.c (get_parm_info): If error_mark_node is encountered
8296 in the bindings chain, unbind and discard it; don't abort.
8297
8298 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
8299 Dorit Naishlos <dorit@il.ibm.com>
8300
8301 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8302 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
8303
8304 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
8305
8306 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8307
8308 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8309 (m68hc11_attribute_table): New attribute "page0" to mark a global
8310 variable as being allocated from within page0 section.
8311 (m68hc11_encode_label): New function.
8312 (m68hc11_strip_name_encoding): New function.
8313 (m68hc11_page0_symbol_p): New function.
8314 (m68hc11_indirect_p): Accept global variables marked in page0.
8315 (m68hc11_encode_section_info): Lookup "page0" attribute.
8316
8317 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8318 represents access to page0 variables.
8319
8320 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8321 ("*logicalsi3_silshl16_zext"): Likewise.
8322 ("*ashldi3_const32"): Likewise.
8323 (peephole2 ashift): Likewise.
8324
8325 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
8326
8327 * c-tree.h (C_DECL_REGISTER): New.
8328 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8329 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8330 (build_array_ref, c_mark_addressable): Set and use it.
8331 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8332 Allow structures with volatile fields to be declared register.
8333 Don't check TREE_ADDRESSABLE before warning about taking address
8334 of register.
8335 * c-decl.c (finish_decl): Don't allow structures with volatile
8336 fields to be placed in named register.
8337 * doc/trouble.texi: Remove reference to structures with volatile
8338 fields in registers.
8339
8340 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
8341
8342 * function.c (thread_prologue_and_epilogue): Move
8343 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8344 before the epilogue.
8345
8346 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
8347
8348 * expr.c (store_constructor): Use gen_int_mode to correctly
8349 sign-extend CONST_INT value.
8350
8351 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8352
8353 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8354 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
8355 * doc/extend.texi: Likewise.
8356
8357 2004-03-26 Diego Novillo <dnovillo@redhat.com>
8358
8359 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8360 with TYPE_ORIG_SIZE_TYPE.
8361
8362 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
8363
8364 PR 14219
8365 * c-typeck.c (build_binary_op): Do not allow comparisons of
8366 vectors.
8367
8368 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
8369
8370 * config.gcc: Remove sparc-tti-*.
8371 * config/sparc/pbd.h: Delete.
8372
8373 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8374 * config/sparc/aout.h: Likewise.
8375
8376 * config/sparc/sparc.h: Remove if 0'd code.
8377 * config/sparc/sparc.md (call): Remove if 0'd code.
8378 (call_value): Likewise.
8379 (nonlocal_goto): Likewise.
8380 (unimp_insn): Delete.
8381
8382 2004-03-25 Roger Sayle <roger@eyesopen.com>
8383
8384 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8385 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8386
8387 2004-03-25 Richard Henderson <rth@redhat.com>
8388
8389 PR 11527
8390 * c-typeck.c (pop_init_level): Emit pending init elements earlier
8391 rather than later.
8392
8393 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8394
8395 * builtins.c (fold_builtin): Fix error in last change.
8396
8397 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
8398
8399 * config/mips/mips.h: Formatting fix.
8400
8401 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8402
8403 * builtins.def: Add ctype builtins.
8404 * doc/extend.texi: Likewise.
8405
8406 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8407
8408 * builtins.c (fold_builtin): Add new builtin optimizations for
8409 sqrt and/or cbrt.
8410 * fold-const.c (fold): Likewise.
8411
8412 2004-03-25 David Edelsohn <edelsohn@gnu.org>
8413
8414 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8415 (rs6000_sched_groups): New variable.
8416 (processor_target_table): Add power5.
8417 (rs6000_override_options): Set rs6000_sched_insert_nops,
8418 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8419 from rs6000_sched_groups.
8420 (output_cbranch): Use rs6000_always_hint.
8421 (rs6000_variable_issue): Use rs6000_sched_groups.
8422 (rs6000_adjust_cost): Add CPU_POWER5.
8423 (is_microcoded_insn): Use rs6000_sched_groups.
8424 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8425 Return 2 for POWER5 cracked instructions.
8426 (is_cracked_insn): Use rs6000_sched_groups.
8427 (is_branch_slot_insn): Use rs6000_sched_groups.
8428 (rs6000_issue_rate): Add CPU_POWER5.
8429 (rs6000_sched_finish): Use rs6000_sched_groups.
8430 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8431 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8432 (DEFAULT_SCHED_COSTLY_DEP): Delete.
8433 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8434 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8435 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8436 * config/rs6000/power5.md: New file.
8437 * doc/invoke.texi: Add power5 option.
8438
8439 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
8440
8441 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8442 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8443 * doc/invoke.texi: Fix a typo.
8444
8445 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
8446
8447 PR optimization/9707.
8448 * stmt.c (emit_case_nodes): Emit equality comparisons instead
8449 of recursing if both children are single-valued cases with no
8450 children.
8451
8452 2004-03-25 Paul Brook <paul@codesourcery.com>
8453
8454 * config/arm/arm.c (vfp_print_multi): Remove.
8455 (arm_output_fldmx): New function.
8456 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8457 (arm_expand_prologue): Update to match.
8458 (arm_get_vfp_saved_size): New Function.
8459 (arm_get_frame_offsets): Use it.
8460 (arm_output_epilogue): Use new functions.
8461
8462 2004-03-24 Richard Henderson <rth@redhat.com>
8463
8464 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8465 (reg_known_value, reg_known_value_size): Likewise; make static.
8466 (reg_known_equiv_p): Make static.
8467 (clear_reg_alias_info): Update for new indexing.
8468 (get_reg_known_value, set_reg_known_value): New.
8469 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8470 (canon_rtx): Use them.
8471 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
8472 Don't play queer offsetting games with reg_known_value and
8473 reg_known_equiv_p.
8474 (end_alias_analysis): Free reg_known_value with gc.
8475 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8476 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8477 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8478 functions instead.
8479
8480 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
8481
8482 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8483 config/i386/mmintrin.h: Update copyright.
8484
8485 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8486
8487 * configure.ac: Add --enable-werror-always (for top level bootstrap
8488 support).
8489 * configure: Regenerate.
8490
8491 2004-03-24 Ziemowit Laski <zlaski@apple.com>
8492
8493 * objc/objc-act.c (objc_comptypes): Treat comparisons
8494 between 'Class' and '<class> *' as explicitly invalid.
8495
8496 2004-03-24 David Edelsohn <edelsohn@gnu.org>
8497
8498 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8499 (-fprofile-values): Add enabled with profile-{generate,use}.
8500 (-fvpt): Same.
8501 (-ftracer): Add enabled with profile-use.
8502 (-funit-at-a-time): Add enabled at -O2,-O3.
8503 (-funroll-loops): Add enabled with profile-use.
8504 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
8505 (max-gcse-passes): Mention default.
8506 (max-cse-path-length): Mention default.
8507
8508 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8509
8510 * Makefile.in (STRICT2_WARN): Reorder.
8511 * configure.ac: Check for -Wold-style-definition, and use it
8512 in strict1_warn if it's available.
8513 * configure: Regnerate.
8514
8515 2004-03-24 Paul Brook <paul@nowt.org>
8516
8517 * config.gcc <arm>: Add --with-abi=
8518 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8519 thumb_far_jump_used): Remove prototypes.
8520 (arm_needs_doubleword_align): Add prototype.
8521 (thumb_compute_initial_elimination_offset): Ditto.
8522 * config/arm/arm.c (arm_get_frame_offsets): New function.
8523 (use_return_insn, output_return_instruction, arm_output_epilogue,
8524 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8525 arm_expand_prologue, thumb_expand_epilogue): Use it.
8526 (arm_abi, target_abi_name, all_arm_abis): New variables.
8527 (arm_override_options): Set them. Set structure padding for AAPCS.
8528 (arm_return_in_memory): Update ABI check.
8529 (arm_init_cumulative_args): Initialize can_split.
8530 (arm_needs_doubleword_align): New function.
8531 (arm_function_arg): Don't split args after pushing to stack. Handle
8532 doubleword/even reg alignment.
8533 (arm_va_arg): Handle all doubleword aligned args.
8534 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8535 on ABI, not CPU.
8536 (arm_compute_save_reg0_reg12_mask): Fix comment.
8537 (thumb_get_frame_size, thumb_get_frame_size): Remove.
8538 (thumb_jump_far_used_p): Remove superfluous argument. Return save
8539 value for alignment.
8540 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8541 to match.
8542 (thumb_compute_initial_elimination_offset): New function.
8543 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
8544 unneccessary rounding.
8545 * config/arm/arm.h (target_abi_name): Declare.
8546 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8547 arm_abi_type, ARM_DEFAULT_ABI): Define.
8548 (ARM_FLAG_ATPCS): Remove.
8549 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8550 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8551 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8552 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8553 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8554 Contitionalize on ABI, not CPU.
8555 (struct arm_stack_offsets): Define.
8556 (struct machine_function): Add stack_offsets. Remove frame_size.
8557 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8558 pushed.
8559 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8560 doubleword alignment.
8561 (THUMB_INITIAL_ELIMINATION_OFFSET,
8562 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8563 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8564 * config/arm/arm.md (align_8): Enable for all targets.
8565 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8566 (ARM_DEFAULT_ABI): Define.
8567 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8568 -mstructure-size-boundary.
8569
8570 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8571
8572 * configure.ac: Check for -Wno-variadic-macros; don't use
8573 -pedantic (in stage 1 or a simple 'make all') unless it's available,
8574 and if it's available, use it. Also, clean up check for
8575 -Wno-long-long.
8576 * configure: Regenerate.
8577
8578 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
8579
8580 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8581 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8582 (MULTILIB_DEFAULTS): Use it.
8583 (MIPS_CPU_STRING_DEFAULT): Remove.
8584 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8585 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
8586 EABI64 -mlong32 the default ABI. Enforce the default architecture.
8587 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
8588 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
8589 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8590 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
8591 accordingly.
8592
8593 2004-03-24 DJ Delorie <dj@redhat.com>
8594 Richard Sandiford <rsandifo@redhat.com>
8595
8596 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8597 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8598 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8599 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8600 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8601 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8602 if TARGET_FIX_VR4122.
8603 * config/mips/mips.md (define_attr length): Account for nops inserted
8604 after macc and dmult when using -mfix-vr4122-bugs.
8605 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8606 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8607 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
8608 * config/mips/vr4122-div.S: New file.
8609 * doc/invoke.texi: Document -mfix-vr4122-bugs.
8610
8611 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
8612
8613 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8614 (TARGET_MIPS4130): New macro.
8615 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8616 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8617 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8618 with PROCESSOR_R4130.
8619 * config/mips/mips.md (define_attr cpu): Add r4130.
8620 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8621
8622 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8623 Richard Sandiford <rsandifo@redhat.com>
8624
8625 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8626
8627 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
8628
8629 PR preprocessor/14438
8630 * cpplib.c (do_pragma): Remove line_change call after pragma
8631 handler.
8632
8633 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
8634
8635 * doc/extend.texi (ARM Built-in Functions): Replace with correct
8636 declarations.
8637
8638 2004-03-23 Roger Sayle <roger@eyesopen.com>
8639
8640 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8641 if flag_unsafe_math_optimizations.
8642 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8643 and TARGET_80387 expand using truncdfsf2_noop pattern.
8644 (truncxfsf2): Likewise using truncxfsf2_noop.
8645 (truncxfdf2): Likewise using truncxfdf2_noop.
8646 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8647
8648 2004-03-23 Ziemowit Laski <zlaski@apple.com>
8649
8650 * hooks.c (hook_constcharptr_tree_null): New hook.
8651 * hooks.h (hook_constcharptr_tree_null): New prototype.
8652 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8653 * target.h (mangle_fundamental_type): New target hook.
8654 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8655 target hook at rs6000_mangle_fundamental_type.
8656 (rs6000_mangle_fundamental_type): New function.
8657 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8658
8659 2004-03-23 Zack Weinberg <zack@codesourcery.com>
8660
8661 PR 12267, 12391, 12560, 13129, 14114, 14133
8662 * c-tree.h: Forward declare struct c_binding. Declare
8663 c_override_bindings_to_false. Update prototypes.
8664 (struct lang_identifier): Update comments. Change fields to be
8665 struct c_binding *.
8666 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8667 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8668 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8669 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8670 * c-common.h: Update prototypes.
8671 * c-decl.c (struct c_scope): Update commentary. Remove names,
8672 names_last, parms, parms_last, tags, and shadowed fields. Add
8673 bindings and depth fields.
8674 (scope_freelist): Move to more appropriate location.
8675 (c_print_identifier): Update for changes to struct lang_identifier.
8676 (objc_mark_locals_volatile): Update for new bindings structures.
8677 (global_bindings_p): Honor c_override_global_bindings_to_false.
8678 (pushlevel): Rename to push_scope; take no arguments; use the
8679 scope_freelist; initialize scope->depth and check for overflow.
8680 (poplevel): Rename to pop_scope; totally rewritten for new bindings
8681 structures.
8682 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8683 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
8684 Improve some commentary. Adjust handling of forward parm decls.
8685 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8686 Preserve C_DECL_IN_EXTERNAL_SCOPE.
8687 (warn_if_shadowing): Correct indentation. Improve diagnostics.
8688 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
8689 decls. Rewrite for new bindings structures. Improve commentary.
8690 Eliminate the copy_node call.
8691 (implicit_decl_warning): Use the "diag" idiom (as seen in
8692 locate_old_decl) to reduce code duplication; call locate_old_decl
8693 if appropriate. Relocate to remove need for forward declaration.
8694 (implicitly_declare): Adjust for new bindings structures. Kludge
8695 around Objective-C not-really-builtin functions.
8696 (undeclared_variable): Improve diagnostics. If current_function_decl
8697 is nonnull but current_function_scope is null, use current_scope.
8698 Use bind.
8699 (lookup_tag): Adjust for new bindings structures. Kludge around
8700 Objective-C's tag declarations that wind up in the external scope.
8701 (lookup_name): Adjust for new bindings structures. Kludge around
8702 c-common.c's pseudo-typedefs that wind up in the external scope.
8703 (lookup_name_current_level): Rename lookup_name_in_scope; take a
8704 second argument indicating the scope to examine; rewrite for
8705 new bindings structures.
8706 (c_init_decl_processing): Adjust for renamed functions. Do not
8707 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8708 First scope pushed is the external scope, not the global scope.
8709 (builtin_function): Use bind, not pushdecl. Adjust other bits
8710 for new data structures. Keep track of builtins that should be
8711 made visible automatically.
8712 (start_decl): Adjust diagnostics. Remove unnecessary call to
8713 expand_decl.
8714 (grokparms): Return 0 if arg_types is error_mark_node.
8715 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8716 reversed sense. Rewrite for new bindings structures. Do not
8717 leave any decls in the scope, to prevent pop_scope from doing
8718 contradictory things with them.
8719 (finish_struct, finish_enum): Remove redundant diagnostics.
8720 (build_enumerator): Don't cascade diagnostics for error_mark_node.
8721 Mark location where -pedantic changes the meaning of the program.
8722 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8723 parameter decls into the function's scope structure using bind.
8724 Warn here about function definitions in the wrong style.
8725 Adjust diagnostics.
8726 (store_parm_decls): Correct the determination of whether a
8727 function was defined with a prototype.
8728 (c_write_global_declarations): Operate on all file decls and on
8729 the external scope. Split body of the loop to...
8730 (c_write_global_declarations_1): ... this new function, to avoid
8731 code duplication.
8732 (truly_local_externals, first_builtin_decl, last_builtin_decl)
8733 (make_scope, pop_scope, in_parm_level_p, set_block)
8734 (any_external_decl, record_external_decl, bind_label, getdecls)
8735 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8736 (c_reset_state): Delete.
8737 (visible_builtins, c_override_global_bindings_to_false)
8738 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8739 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8740 (external_scope, binding_freelist, bind, free_binding_and_advance)
8741 (push_file_scope, pop_file_scope): New.
8742 (pushtag, pushdecl_top_level, lookup_label, declare_label)
8743 (define_label, c_make_fname_decl, finish_decl)
8744 (mark_forward_parm_decls, build_compound_literal)
8745 (grokdeclarator, start_function, check_for_loop_decls)
8746 (identifier_global_value, record_builtin_type): Minor adjustments
8747 for new bindings structures. Improve diagnostics and commentary.
8748 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8749 pushlevel/poplevel respectively.
8750 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8751 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8752 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
8753 correct loop over multiple translation units; call fatal_error if
8754 requested to compile more than one file at once. (This disables
8755 IMA temporarily - an up-front error being preferable to a crash.)
8756 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8757 (all actions): Adjust calls to pushlevel/poplevel.
8758 (parsing_iso_function_signature): Delete.
8759 (extdef_1): Fold into extdef.
8760 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
8761 warn here about function definitions in the wrong style.
8762 (after_tyle_declarator, parm_declarator_starttypename)
8763 (parm_declarator_nostarttypename, notype_declarator): Remove
8764 commented-out productions.
8765 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8766 an empty TREE_LIST node. Adjust calls to get_parm_info.
8767 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8768 to suppress -Wold-style-definition after this error.
8769 (c_parse_file): Don't clear the binding stack or call
8770 finish_fname_decls here. Correct comment.
8771 * c-typeck.c (same_translation_unit_p): Export.
8772 (common_type): Use c_override_global_bindings_to_false, not
8773 pushlevel/poplevel/declare_parm_level.
8774 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8775 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8776 and LANG_HOOKS_GETDECLS with do-nothing stubs.
8777 * objc/objc-lang.c: Likewise.
8778 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8779 get_parm_info.
8780 (OBJC_VOID_AT_END): Delete; replace all uses
8781 with void_list_node.
8782 (generate_forward_declaration_to_string_table): Delete.
8783 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8784
8785 * coverage.c (create_coverage): Don't pushdecl anything.
8786 * langhooks.c (lhd_clear_binding_stack): Call
8787 lang_hooks.decls.poplevel, not poplevel.
8788 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8789 circular list rather than going into an infinite loop.
8790
8791 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
8792
8793 * optabs.c (expand_binop): When synthesizing double word rotates
8794 from single word shifts, use a new register target if the provided
8795 target is not a REG already.
8796
8797 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8798
8799 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8800 * c-common.c (handle_mode_attribute): Add extra arg to
8801 build_pointer_type_for_mode and build_reference_type_for_mode.
8802 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8803 for INTEGER_CST.
8804 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8805 Chain pointers via TYPE_NEXT_PTR_TO.
8806 (build_reference_type_for_mode): Similarly.
8807 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8808 and build_reference_type_for_mode.
8809 (tree_check4_failed): New function.
8810 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8811 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8812 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8813 Add check.
8814
8815 2004-03-23 Roger Sayle <roger@eyesopen.com>
8816
8817 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8818 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
8819 when both A and B are nonnegative.
8820 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8821 nonzero.
8822
8823 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
8824
8825 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8826 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8827
8828 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
8829
8830 PR optimization/14669
8831 * fold-const.c (fold): Only unwiden integer comparisons for equality
8832 and inequality operators, or when the signedness doesn't change.
8833
8834 2004-03-23 Jakub Jelinek <jakub@redhat.com>
8835
8836 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8837 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8838 * config/sparc/t-linux: New file.
8839
8840 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
8841
8842 * gcse.c (can_assign_to_reg_p): New function, split out from...
8843 (want_to_gcse_p): ...here.
8844 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8845 the rhs of a store.
8846
8847 2004-03-22 Diego Novillo <dnovillo@redhat.com>
8848
8849 * c-typeck.c (same_translation_unit_p): Fix pasto.
8850
8851 2004-03-22 David Edelsohn <edelsohn@gnu.org>
8852
8853 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8854 (PARAM_MAX_SCHED_REGION_INSNS): New.
8855 * sched-rgn.c: Include params.h
8856 (MAX_RGN_BLOCKS): Delete.
8857 (MAX_RGN_INSNS): Delete.
8858 (too_large): Return bool. Convert to PARAM_VALUE.
8859 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8860 * doc/invoke.texi (param): Document max-sched-region-blocks and
8861 max-sched-region-insns.
8862
8863 2004-03-22 Joel Brobecker <brobecker@gnat.com>
8864
8865 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8866 for base types.
8867
8868 2004-03-22 Joel Brobecker <brobecker@gnat.com>
8869
8870 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8871 change.
8872
8873 2004-03-22 Jakub Jelinek <jakub@redhat.com>
8874
8875 PR c/14069
8876 * c-decl.c (finish_struct): Change type of incorrect flexible array
8877 field into error_mark_node.
8878
8879 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
8880
8881 PR target/14580
8882 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8883 who are not local for Darwin PIC.
8884
8885 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
8886
8887 * regrename.c (regrename_optimize): Set regs_ever_live for all
8888 registers introduced as replacement.
8889
8890 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
8891
8892 PR middle-end/14470
8893 * expr.c (mark_queue): New function.
8894 (emit_insns_enqueued_after_mark): New function replacing
8895 emit_queue. Clear the body of emitted queued insns.
8896 (emit_queue): Call emit_insns_enqueued_after_mark.
8897 (store_expr): Mark the increment queue on entry. Emit
8898 only the incrementations queued when expanding the source.
8899
8900 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
8901
8902 * configure.ac: Allow --disable-coverage-flags (for the future benefit
8903 of top level bootstrap, and consistency). Reindent.
8904 * configure: Regenerate.
8905
8906 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
8907
8908 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8909 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8910 unnecessary casts.
8911
8912 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
8913
8914 PR target/14291
8915 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8916 __MINGW32__.
8917
8918 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8919
8920 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8921 to nonimmediate_operand.
8922 ("*doloop_di"): Likewise.
8923
8924 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
8925
8926 * real.h (struct real_value): Use the same type for all
8927 bitfields. Rename exp to uexp.
8928 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8929 Adjust all uses of exp...
8930 * builtins.c: ... here, ...
8931 * emit-rtl.c: ... here, and ...
8932 * real.c: ... and here.
8933
8934 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
8935
8936 * pretty-print.c (pp_base_maybe_space): New function.
8937 * pretty-print.h (pp_base_maybe_space): Declare.
8938 (pp_maybe_space): New macro.
8939
8940 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8941
8942 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8943
8944 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8945
8946 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8947 of using register multiplication cost.
8948 (expand_mult): Adapt choose_mult_variant call.
8949 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8950 of MODE; pass appropriate cost bound. Adjust result when
8951 performing signed multiplication by a negative constant.
8952 Don't use intermediate modes larger than word_mode.
8953
8954 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8955
8956 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8957 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8958 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8959 * explow.c (expr_size): Likewise.
8960 * expr.h (placeholder_list, find_placeholder): Deleted.
8961 * expr.c (store_constructor): Likewise.
8962 (get_inner_reference): Likewise. Also don't call find_placeholder.
8963 (placeholder_list, find_placeholder): Deleted.
8964 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8965 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8966 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8967 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8968 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8969 Likewise.
8970 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8971 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8972 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8973 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8974 Clean up by using first_rtl_op.
8975 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8976 (substitute_placeholder_in_expr): New function.
8977 * tree.def (WITH_RECORD_EXPR): Deleted.
8978 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8979 (substitute_placeholder_in_expr): New.
8980
8981 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
8982
8983 * dojump.c (prefer_and_bit_test): Fix which part of
8984 the and_test is replaced.
8985
8986 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
8987
8988 * frontends.texi: Add missing line.
8989
8990 2004-03-21 Zack Weinberg <zack@codesourcery.com>
8991 Chris Devers <cdevers@pobox.com>
8992 Joseph S. Myers <jsm@polyomino.org.uk>
8993
8994 * doc/frontends.texi: Rewrite.
8995 * doc/gcc.texi: Update last modification date.
8996
8997 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
8998
8999 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
9000 message before redirecting the edge.
9001
9002 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9003
9004 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
9005 flag.
9006 * explow.c (force_not_mem): Set REG_POINTER flag according to
9007 MEM_POINTER one.
9008 * rtl.h (MEM_POINTER): New macro.
9009 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
9010 for MEM_POINTER.
9011
9012 2004-03-20 Roger Sayle <roger@eyesopen.com>
9013
9014 PR target/13889
9015 * cse.c (fold_rtx): Avoid substituting constants into unary
9016 conversion operations.
9017
9018 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9019
9020 * fold-const.c (fold): Replace "expr" with "t".
9021
9022 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
9023
9024 PR c/12373
9025 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
9026 DECL_ORIGINAL_TYPE if there isn't one.
9027
9028 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9029
9030 * fold-const.c (fold): Replace "final_type" with "type".
9031 Remove variable "final_type".
9032
9033 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9034
9035 * fold-const.c (fold): Constify "type".
9036 Replace "TREE_TYPE (t)" with "type".
9037
9038 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9039
9040 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
9041 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
9042 via (*targetm.foo) () with targetm.foo ().
9043
9044 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
9045
9046 PR other/14630
9047 * doc/install.texi: Add info directory category and entry.
9048
9049 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9050
9051 * fold-const.c (fold): Replace "t" with "tem" where it is used
9052 as a temporary variable. Remove "orig_t" and all of its uses.
9053
9054 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9055
9056 * fold-const.c (fold): Remove variable "invert".
9057 Move the handling of relational expressions that can be folded
9058 to a constant ...
9059 (fold_relational_const): ... here.
9060 (tree_expr_nonzero_p): New.
9061
9062 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
9063
9064 PR c/14635
9065 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
9066 DEF_GCC_BUILTIN.
9067
9068 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
9069
9070 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
9071 (GTFILES): Add $(srcdir)/dojump.h.
9072 (gt-dojump.h): New dependency.
9073 * dojump.c (and_reg, and_test, shift_test): New static variables.
9074 (prefer_and_bit_test): New function.
9075 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
9076
9077 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9078
9079 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
9080 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
9081 reorg.c, tree.h: Fix comment typos.
9082
9083 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9084
9085 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
9086 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
9087 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
9088 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
9089 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
9090 vmsdbgout.c: Replace calls via (*targetm.foo) () with
9091 targetm.foo ().
9092
9093 2004-03-19 Ziemowit Laski <zlaski@apple.com>
9094
9095 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
9096 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
9097 always_inline attribute.
9098 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
9099 Treat expansion as completed even if literal argument is
9100 invalid (so that other expansions are not tried in vain).
9101
9102 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9103
9104 * loop-doloop.c (add_test): Replace GEN_INT (0) with
9105 const0_rtx.
9106
9107 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9108
9109 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
9110 ...
9111 (fold_abs_const): ... here.
9112
9113 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9114
9115 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
9116
9117 2004-03-19 Denis Chertykov <denisc@overta.ru>
9118
9119 PR target/11520
9120 * config/avr/avr.md ("call_insn"): Handle explicit integer
9121 specially.
9122 (call_value_insn): Likewise.
9123
9124 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9125
9126 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
9127
9128 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9129
9130 * fold-const.c (negate_expr): Move the handling of constants
9131 ...
9132 (fold_negate_const): ... here.
9133
9134 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9135
9136 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
9137 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
9138 * tree.c (debug_no_type_hash): Deleted.
9139 (type_hash_canon): Abort if passed a variant.
9140 Check lang_hooks.types.hash_types.
9141 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
9142 (build_array_type): Remove unnecessary allocation of pointer type.
9143 (build_complex_type): Properly qualify resulting type.
9144
9145 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
9146
9147 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
9148
9149 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
9150
9151 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
9152 (expand_mult): ...here.
9153 (extract_high_half): New, split out from expand_mult_highpart.
9154 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
9155 (expand_highpart): Evaluate the cost of a shift/add sequence,
9156 then see if any of the specialized optabs are cheaper.
9157
9158 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
9159
9160 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
9161
9162 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9163
9164 * convert.c (convert_to_real): Add more math builtins.
9165
9166 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9167
9168 * convert.c (convert_to_real): Reformat using switch stmt.
9169
9170 2004-03-18 Mark Mitchell <mark@codesourcery.com>
9171
9172 * c-common.c (pointer_int_sum): Do not complain about using
9173 pointers to pointers-to-members.
9174
9175 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
9176
9177 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9178 have moved to the target hooks structure".
9179
9180 2004-03-18 James E Wilson <wilson@specifixinc.com>
9181
9182 * config/mips/mips.md (type): Split move into arith and fmove. Split
9183 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
9184 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9185 Likewise.
9186 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9187 Likewise.
9188 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9189 rm7_fp_quick): Likewise.
9190 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9191 rm9k_fquick): Likewise.
9192 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9193 Likewise.
9194 (ir_sr70_icmp): Delete.
9195
9196 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9197
9198 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9199 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9200 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9201 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9202 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9203 Protect with proper check.
9204 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9205 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9206 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9207 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9208 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9209 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9210 not TYPE_FIELDS.
9211 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
9212
9213 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
9214
9215 * gcse.c (eliminate_partially_redundant_loads): Reject change if
9216 dest is set between beginning and current insn.
9217
9218 2004-03-18 Mark Mitchell <mark@codesourcery.com>
9219
9220 * c-decl.c (grokdeclarator): Do not complain about redeclaring
9221 visible "static" identifiers "extern" in a local scope.
9222 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9223 post-increments/decrements.
9224
9225 2004-03-18 Bob Wilson <bob.wilson@acm.org>
9226
9227 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9228 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9229 (xtensa_va_start): Remove assignment to current_function_arg_words.
9230
9231 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
9232
9233 * alias.c (record_set): Detect the case where a register is assigned
9234 a new value that has the same base term as the old one.
9235
9236 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9237
9238 * doloop.c: Removed.
9239 * loop-doloop.c: New file.
9240 * Makefile.in (doloop.o): Remove.
9241 (loop-doloop.o): New.
9242 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9243 * cfgloopanal.c (get_loop_level): New function.
9244 * loop-iv.c (iv_number_of_iterations): Handle case when loop
9245 is leaved immediatelly.
9246 * loop.c (strength_reduce): Do not call doloop optimization.
9247 * loop.h (LOOP_BCT): Removed.
9248 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9249 (rest_of_handle_loop2): Call doloop_optimize_loops.
9250 (rest_of_compilation): Test for optimizations moved to
9251 rest_of_handle_loop2.
9252
9253 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
9254
9255 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9256 for mixed mode.
9257 (rs6000_emit_prologue): Ditto.
9258 (rs6000_emit_epilogue): Ditto.
9259 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9260 macro for mixed mode.
9261
9262 2004-03-18 Jan Hubicka <jh@suse.cz>
9263
9264 * predict.c (propagate_freq): Compute correctly frequency of
9265 EXIT_BLOCK.
9266
9267 2004-03-17 Eric Christopher <echristo@redhat.com>
9268
9269 * builtins.c (apply_args_size): Use reg_raw_mode.
9270 (apply_result_size): Ditto.
9271
9272 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9273
9274 PR target/14620
9275 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9276
9277 2004-03-17 Jakub Jelinek <jakub@redhat.com>
9278
9279 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9280 32-bit builds when defaulting to 32-bit.
9281
9282 2004-03-17 Jan Hubicka <jh@suse.cz>
9283
9284 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9285 array.
9286
9287 2004-03-17 James E Wilson <wilson@specifixinc.com>
9288
9289 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9290 (hazard_nop): Change type to nop.
9291 (type): Split arith into arith, shift, slt, clz. Delete darith.
9292 Fix all uses. Change arith to multi if more than one insn emitted.
9293 * config/mips/5400.md (ir_vr54_arith): Likewise.
9294 * config/mips/5500.md (ir_vr55_arith): Likewise.
9295 * config/mips/7000.md (rm7_int_other): Likewise.
9296 * config/mips/9000.md (rm9k_int): Likewise.
9297 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9298
9299 2004-03-17 Joel Brobecker <brobecker@gnat.com>
9300
9301 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9302 to hold the subtype tree instead of recomputing it several times.
9303
9304 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
9305
9306 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9307 CC_INVERT.
9308 * config/mn10300/mn10300.md (cc): Remove "invert".
9309
9310 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9311
9312 * builtins.c (integer_valued_real_p): Add builtin rint.
9313 (fold_builtin): Likewise.
9314 * convert.c (convert_to_real): Likewise.
9315
9316 * convert.c (convert_to_real): Fix typos in `long double'
9317 builtins.
9318
9319 2004-03-16 Mark Mitchell <mark@codesourcery.com>
9320
9321 PR c++/14481
9322 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9323 generated COMPOUND_EXPRs.
9324
9325 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9326
9327 * config/h8300/t-rtems (h8300-*-rtems*): New.
9328
9329 2004-03-16 Eric Christopher <echristo@redhat.com>
9330
9331 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9332
9333 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
9334
9335 * config/i386/i386-protos.h: Add a prototype for
9336 ix86_reverse_condition.
9337 * config/i386/i386.c (ix86_reverse_condition): New.
9338 * config/i386/i386.h (REVERSE_CONDITION): Use
9339 ix86_reverse_condition.
9340 * config/i386/i386.md: Use ix86_reverse_condition instead of
9341 REVERSE_CONDITION.
9342
9343 2004-03-16 J. Brobecker <brobecker@gnat.com>
9344
9345 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9346
9347 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
9348
9349 PR bootstrap/12974
9350 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9351
9352 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
9353
9354 * c-common.c (c_common_type_for_mode): Build vector types on
9355 demand.
9356 (handle_mode_attribute): Deprecate using the mode attribute
9357 to create vector types. Fix indentation.
9358 (vector_type_node_list): Remove.
9359 (handle_vector_size_attribute): Create vector types on demand.
9360 Strip a NON_LVALUE_EXPR from the attribute if there is one.
9361 * c-typeck.c (comptypes): Make vector types compatible if they
9362 have the same underlying mode.
9363 (convert_for_assignment): Use comptypes to convert between
9364 vector types.
9365 * tree.c (build_common_tree_nodes_2): Do not create vector types.
9366 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9367 vector types.
9368 * tree.h: Remove vector types.
9369 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9370 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9371 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9372 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9373 * doc/extend.texi (Vector Types): Document how to use the
9374 vector_size attribute to create vectors, rather than mode.
9375
9376 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9377 * config/i386/emmintrin.h: Likewise.
9378 * config/i386/mmintrin.h: Likewise.
9379 * config/i386/xmmintrin.h: Likewise.
9380 * config/sh/ushmedia.h: Likewise.
9381
9382 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
9383
9384 * config/freebsd-spec.h, config/arc/arc-protos.h,
9385 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9386 config/arm/linux-gas.h, config/arm/semi.h,
9387 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9388 config/ia64/freebsd.h, config/mips/7000.md,
9389 config/mips/9000.md, config/ns32k/ns32k-protos.h,
9390 config/sparc/pbd.h: Update copyright.
9391
9392 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9393
9394 PR target/14577
9395 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
9396
9397 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
9398
9399 * combine.c (combine_simplify_rtx): Remove the "last"
9400 parameter and its documentation. Adjust recursive calls.
9401 (simplify_logical): Always perform the only simplification
9402 controlled by "last", if the simplified expression is
9403 actually different.
9404 (try_combine): Do not pass the "last" parameter to
9405 combine_simplify_rtx.
9406
9407 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
9408
9409 PR target/14599
9410 * config/mips/mips.md (UNSPEC_GP): New constant.
9411 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9412 an UNSPEC instead of (reg $gp).
9413 (mips16_gp_pseudo_reg): Change accordingly.
9414 (print_operand): Print $gp directly when handling CONST_GP_P.
9415
9416 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
9417
9418 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9419 * longlong.h: Make code 68060 clean when compiling for m68060.
9420
9421 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
9422
9423 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9424 * doc/md.texi: Clarify description of "i" constraint.
9425
9426 2004-03-15 James E Wilson <wilson@specifixinc.com>
9427
9428 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9429 Split store into store, fpstore, fpidxstore. Fix all uses.
9430 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9431 Likewise.
9432 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9433 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9434 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9435 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9436 ir_sr70_fstore): Likewise.
9437
9438 2004-03-15 Richard Henderson <rth@redhat.com>
9439
9440 PR middle-end/14535
9441 * except.c (collect_one_action_chain): Record action for cleanup
9442 outer of exception spec.
9443
9444 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
9445
9446 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9447 Fix the check for abort and only do the mmap if we can.
9448
9449 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
9450
9451 * config/sparc/sparc.h: Rework comments about the code model
9452 in 64-bit environment and the mode 'Pmode'.
9453 * doc/invoke.texi (SPARC options): Rework description of the
9454 different code models supported in 64-bit environment.
9455
9456 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
9457
9458 * defaults.h (REVERSIBLE_CC_MODE): Define.
9459 * jump.c (reversed_comparison_code_parts): Don't check if
9460 REVERSIBLE_CC_MODE is defined.
9461
9462 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
9463
9464 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9465 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9466 hosthooks.h, params.h, ra-colorize.c, web.c,
9467 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9468 config/avr/avr-protos.h, config/avr/avr.md,
9469 config/fr30/fr30-protos.h, config/fr30/fr30.md,
9470 config/h8300/fixunssfsi.c, config/i386/darwin.h,
9471 config/i386/freebsd.h, config/i386/freebsd64.h,
9472 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9473 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9474 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9475 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9476 config/pa/pa64-regs.h, config/rs6000/aix41.h,
9477 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9478 config/sparc/aout.h, config/sparc/freebsd.h,
9479 config/sparc/litecoff.h, config/vax/vax-protos.h,
9480 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9481 copyright.
9482
9483 2004-03-15 Paul Brook <paul@codesourcery.com>
9484
9485 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9486
9487 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
9488
9489 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9490 (pp_c_cv_qualifier): Document.
9491 (pp_c_space_for_pointer_operator): Likewise.
9492 (pp_c_integer_constant): Likewise.
9493 (pp_c_identifier): Likewise.
9494 (pp_c_init_declarator): Don't print function body.
9495
9496 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
9497
9498 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9499 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9500 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9501 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
9502 wording and grammar.
9503
9504 2004-03-14 Roger Sayle <roger@eyesopen.com>
9505
9506 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9507 with lang_hooks.foo ().
9508 * builtins.c (expand_builtin_va_arg): Likewise.
9509 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9510 c_common_type_for_mode, c_common_nodes_and_builtins,
9511 handle_mode_attribute, handle_vector_size_attribute): Likewise.
9512 * c-convert.c (convert): Likewise.
9513 * c-format.c (check_format_types): Likewise.
9514 * c-objc-common.c (c_tree_printer): Likewise.
9515 * c-typeck.c (build_unary_op, build_conditional_expr,
9516 build_binary_op): Likewise.
9517 * calls.c (try_to_integrate, expand_call,
9518 emit_library_call_value_1): Likewise.
9519 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9520 Likewise.
9521 * cgraphunit.c (record_call_1, cgraph_analyze_function,
9522 cgraph_expand_function): Likewise.
9523 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9524 * coverage.c (build_fn_info_type, build_ctr_info_type,
9525 build_gcov_info, create_coverage): Likewise.
9526 * dbxout.c (dbxout_init): Likewise.
9527 * diagnostic.c (diagnostic_report_current_function): Likewise.
9528 * dojump.c (do_jump): Likewise.
9529 * dwarf2out.c (dwarf2_name): Likewise.
9530 * except.c (init_eh): Likewise.
9531 * explow.c (expr_size, int_expr_size): Likewise.
9532 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9533 Likewise.
9534 * expr.c (store_expr, store_constructor, safe_from_p,
9535 expand_expr_real, do_store_flag, try_casesi): Likewise.
9536 * function.c (push_function_context_to, pop_function_context_from,
9537 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9538 put_var_into_stack, allocate_struct_function, current_function_name):
9539 Likewise.
9540 * integrate.c (copy_decl_for_inlining, expand_inline_function):
9541 Likewise.
9542 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9543 lhd_print_error_function): Likewise.
9544 * opts.c (handle_option, decode_options): Likewise.
9545 * passes.c (open_dump_file): Likewise.
9546 * print-tree.c (print_node): Likewise.
9547 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9548 expand_decl_cleanup, emit_case_nodes): Likewise.
9549 * stor-layout.c (variable_size): Likewise.
9550 * toplev.c (announce_function, wrapup_global_declarations,
9551 check_global_declarations, compile_file, default_tree_printer,
9552 process_options, lang_dependent_init, finalize): Likewise.
9553 * tree-dump.c (dequeue_and_dump): Likewise.
9554 * tree-inline.c (remap_decl, remap_block, copy_body_r,
9555 initialize_inlined_parameters, declare_return_variable,
9556 inlinable_function_p, expand_call_inline, optimize_inline_calls,
9557 walk_tree, copy_tree_r): Likewise.
9558 * tree-optimize.c (tree_rest_of_compilation): Likewise.
9559 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9560 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9561 variably_modified_type_p, dump_tree_statistics): Likewise.
9562 * varasm.c (assemble_variable, compare_constant, copy_constant,
9563 force_const_mem, compute_reloc_for_constant, output_constant,
9564 output_addressed_constants, initializer_constant_valid_p): Likewise.
9565
9566 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
9567
9568 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9569
9570 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
9571
9572 * doc/install.texi: Reflect autoconf and automake version for
9573 libffi. Update autoconf version to 2.59.
9574
9575 2004-03-13 Roger Sayle <roger@eyesopen.com>
9576
9577 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9578 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9579 make_range, build_range_check, fold_range_test, unextend,
9580 constant_boolean_node, fold_binary_op_with_conditional_arg,
9581 fold_truthop, fold_mathfn_compare, fold_inf_compare,
9582 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9583 with lang_hooks.foo ().
9584
9585 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
9586
9587 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9588
9589 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
9590
9591 * doc/install.texi: Note status of -fnew-ra.
9592
9593 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
9594
9595 PR middle-end/14470
9596 * expr.c (store_expr): Call emit_queue before generating the move
9597 from the temporary to the original target. Protect the temporary
9598 from emit_queue.
9599
9600 2004-03-13 Jakub Jelinek <jakub@redhat.com>
9601
9602 PR target/14533
9603 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9604 other than UNSPEC_GOTOFF.
9605
9606 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
9607
9608 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
9609 to arm_legitimate_index_p. Update all callers with SET as default
9610 value.
9611 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
9612 range if OUTER is a sign-extend operation on QImode. Correctly
9613 reject shift operations on sign-extended QImode addresses.
9614 (bad_signed_byte_operand): Delete.
9615 (arm_extendqisi_mem_op): New function.
9616 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
9617 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
9618 constraints.
9619 (CONSTRAINT_LEN): New.
9620 (EXTRA_CONSTRAINT): Delete. Replace with...
9621 (EXTRA_CONSTRAINT_STR): ... this.
9622 (PREDICATE_CODES): Remove bad_signed_byte_operand.
9623 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
9624 is now always default.
9625 (define_splits for bad sign-extend loads): Delete.
9626 (arm_extendqisi, arm_extendqisi_v5): Likewise.
9627 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9628 Rework 'U' constraint to 'Uv'.
9629 * arm-protos.h: Remove bad_signed_byte_operand. Add
9630 arm_extendqisi_mem_op.
9631 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9632 Add Uq constraint.
9633
9634 2004-03-13 Alan Modra <amodra@bigpond.net.au>
9635
9636 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9637 with targetm version.
9638
9639 PR target/14567
9640 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9641 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9642 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9643 Update all users of RS6000_ARG_SIZE.
9644 (function_arg_advance): Count fregno using mode size.
9645 (function_arg): Handle long double split over regs and memory.
9646 (function_arg_partial_nregs): Likewise.
9647 (rs6000_va_arg): Repackage complex args.
9648
9649 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
9650
9651 PR target/14047
9652 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9653 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9654 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9655
9656 2004-03-12 Jakub Jelinek <jakub@redhat.com>
9657
9658 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9659 prototype.
9660 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9661 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9662
9663 2004-03-12 Andrew Pinski <apinski@apple.com>
9664
9665 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9666 Use ret instead of result. Use addr instead of base.
9667
9668 2004-03-12 David Edelsohn <edelsohn@gnu.org>
9669
9670 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9671 fixes required by libstdc++ and update installation instructions
9672 for libstdc++.a.
9673
9674 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
9675
9676 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9677 leading '@' on fastcall symbols before stripping suffix.
9678
9679 2004-03-12 Roger Sayle <roger@eyesopen.com>
9680
9681 * combine.c (unmentioned_reg_p): New function to check whether an
9682 expression is a "specialization" of another, i.e. that there are
9683 no registers or memory references mentioned in the first that don't
9684 appear in the second.
9685 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9686 (combine_instructions): Also try combining instructions using the
9687 REG_EQUAL note from a preceding log-linked instruction.
9688
9689 2004-03-12 Roger Sayle <roger@eyesopen.com>
9690
9691 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9692
9693 2004-03-12 Matt Austern <austern@apple.com>
9694
9695 * target.h (struct gcc_target): New target hook, unwind_label.
9696 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9697 * output.h (default_emit_unwind_label): New function.
9698 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9699 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9700 (TARGET_SUPPORTS_HIDDEN): New target macro.
9701 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9702 that corresponds to this FDE.
9703 (FRAME_BEGIN_LABEL): Allow target to override default label.
9704 (output_call_frame_info): If FDEs are linknonce, then use extra
9705 indirection for FDE encoding, output a label for each FDE, and
9706 output an empty label for each function without an FDE.
9707 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9708 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9709 decls with DECL_ONE_ONLY set, if that macro is defined.
9710 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9711 for a SUPPORTS_ONE_ONLY target.
9712 * config/darwin-protos.h (darwin_unique_section): Declare.
9713 (darwin_asm_named_section): Likewise.
9714 (darwin_section_type_flags): Likewise.
9715 (darwin_non_lazy_pcrel): Likewise.
9716 (darwin_emit_unwind_label): Likewise.
9717 (darwin_make_decl_one_only): Likewise.
9718 * config/darwin.c (machopic_finish): Get rid of tweak that
9719 eliminate stubs for symbols that are defined.
9720 (darwin_encode_section_info): Don't treat weak functions as defined.
9721 (darwin_make_decl_one_only): Define.
9722 (darwin_asm_named_section): Likewise.
9723 (darwin_section_type_flags): Likewise.
9724 (darwin_unique_section): Likewise.
9725 (darwin_emit_unwind_label): Likewise.
9726 (darwin_non_lazy_pcrel): Likewise.
9727 (darwin_asm_output_dwarf_delta): Difference between two labels is
9728 local only if both labels are local.
9729 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9730 (ASM_MAKE_LABEL_LINKONCE): Likewise.
9731 (TARGET_SUPPORTS_HIDDEN): Likewise.
9732 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9733 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9734 (FRAME_BEGIN_LABEL): Likewise.
9735 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9736 (ASM_DECLARE_FUNCTION_NAME): Likewise.
9737 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9738 (TARGET_ASM_UNIQUE_SECTION): Define.
9739 (EH_FRAME_SECTION_NAME): Define.
9740 (EH_FRAME_SECTION_ATTR): Likewise.
9741 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9742 (TARGET_ASM_NAMED_SECTION): Likewise.
9743 (TARGET_SECTION_TYPE_FLAGS): Likewise.
9744 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9745 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9746 TARGET_ASM_EMIT_UNWIND_LABEL.
9747
9748 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9749
9750 * builtins.c (expand_builtin_mathfn): Add pow10* to the
9751 existing exp10* case.
9752 (expand_builtin): Likewise.
9753
9754 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
9755
9756 * doc/tm.texi (registers) <Values in Registers>: Add
9757 entry for REGMODE_NATURAL_SIZE.
9758
9759 2004-03-12 Richard Henderson <rth@redhat.com>
9760
9761 PR target/14547
9762 * target.h (struct gcc_target): Move calls substructure before
9763 booleans. Add split_complex_arg.
9764 * function.c (assign_parms, split_complex_args): Use it.
9765 * calls.c (expand_call): Likewise.
9766 (split_complex_values): Likewise. Check for splittable types
9767 before allocating memory.
9768 (split_complex_types): Likewise.
9769 * system.h (SPLIT_COMPLEX_ARGS): Poison.
9770 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9771 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9772 * config/alpha/alpha.c (alpha_split_complex_arg): New.
9773 (TARGET_SPLIT_COMPLEX_ARG): New.
9774 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9775 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9776 (rs6000_override_options): Zap it for non-AIX.
9777 (rs6000_function_value): Use targetm.calls.split_complex_arg.
9778 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9779 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9780 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9781 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9782 SPLIT_COMPLEX_ARGS entry.
9783
9784 2004-03-11 Richard Henderson <rth@redhat.com>
9785
9786 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9787 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9788 (alpha_emit_xfloating_arith): Update to match.
9789 (alpha_emit_xfloating_compare): Likewise.
9790 (alpha_emit_xfloating_cvt): Likewise.
9791 (alpha_emit_xfloating_libcall): Take already built symbol,
9792 mark call const.
9793 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9794 op1 in a register.
9795
9796 2004-03-11 Richard Henderson <rth@redhat.com>
9797
9798 PR target/14539
9799 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9800
9801 * simplify-rtx.c (simplify_relational_operation): Fix typo.
9802
9803 2004-03-11 Richard Henderson <rth@redhat.com>
9804
9805 PR middle-end/14477
9806 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9807
9808 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
9809
9810 PR target/14262
9811 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9812 defined, pass small BLKmode values in registers in the low-order part.
9813
9814 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
9815
9816 * combine.c (if_then_else_cond): Check for NULL return value of
9817 simplify_gen_subreg.
9818
9819 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
9820
9821 PR target/14496
9822 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9823 TARGET_SINGLE_FLOAT.
9824
9825 2004-03-11 Steve Ellcey <sje@cup.hp.com>
9826
9827 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9828 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9829 * config/ia64/ia64.c (ia64_init_libfuncs): New.
9830 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9831
9832 2004-03-11 Roger Sayle <roger@eyesopen.com>
9833
9834 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9835 -((int)X>>C) where C is an integer constant one bit less than the
9836 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
9837 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9838
9839 * simplify-rtx.c (simplify_unary_operation): Also implement the
9840 above transformations at the RTL level.
9841
9842 2004-03-11 Alan Modra <amodra@bigpond.net.au>
9843
9844 * real.c (encode_ibm_extended): Do round low word.
9845
9846 2004-03-11 Ben Elliston <bje@wasabisystems.com>
9847
9848 * config/arm/arm.md (is_xscale): Comment this attribute and move
9849 it a bit further up in the file, closer to related attributes.
9850
9851 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
9852
9853 * config/host-solaris.c (sol_gt_pch_use_address): Add
9854 missing terminating marker to comment.
9855
9856 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
9857
9858 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9859 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9860 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9861 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
9862 move_operand as source predicate in all cases.
9863 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
9864 Test reg_or_0_operand. Use move_operand as source predicate.
9865 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
9866 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9867 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
9868 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9869 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
9870 Use move_operand as source predicate. Remove 'K' constraint.
9871 (*movqi_internal): Likewise movqi_internal.
9872 (*movsf_hardfloat): Renamed from movsf_internal1. Test
9873 reg_or_0_operand. Use move_operand as source predicate.
9874 (*movsf_softfloat): Likewise movsf_internal2.
9875 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9876 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9877 (*movdf_softfloat): Likewise movdf_internal2.
9878 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9879 for DImode if !TARGET_64BIT.
9880 (mips_legitimize_move): Simplify accordingly.
9881
9882 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
9883
9884 PR/14362
9885 * var-tracking.c (struct variable_def): Added field refcount.
9886 (variable_htab_free): Decrease the refcount and delete variable
9887 only if there are no more references.
9888 (unshare_variable): New function.
9889 (vars_copy_1): Increase refcount instead of copying the variable.
9890 (variable_union): Share the variables where possible, unshare
9891 the variables if needed.
9892 (variable_different_p): Return false if var1 and var2 are
9893 the same structure.
9894 (variable_was_changed): Init the refcount of new variable.
9895 (set_frame_base_location): Unshare variable if needed.
9896 (set_variable_part): Init the refcount of new variable.
9897 Unshare the variables if needed.
9898 (delete_variable_part): Unshare the variables if needed.
9899 (emit_notes_for_differences_1): Init the refcount of new variable.
9900 (vt_add_function_parameters): Do not add function parameters to
9901 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9902 (vt_initialize): Do not add frame_base_decl to IN set of
9903 ENTRY_BLOCK_PTR because it is unused anyway.
9904
9905 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
9906
9907 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9908 (vars_copy): Likewise.
9909 (variable_union): Likewise.
9910 (set_variable_part): Likewise.
9911 (delete_variable_part): Likewise.
9912
9913 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
9914
9915 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9916 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9917 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9918 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9919 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9920 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9921 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9922 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9923 config/stormy16/stormy16.c: Fix comment typos and formatting.
9924
9925 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
9926
9927 * configure: Regenerate, since I forgot to while committing Paolo's
9928 changes.
9929
9930 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
9931
9932 PR ada/14131
9933 Move language detection to the top level.
9934 * configure.ac: Remove code to detect languages,
9935 it now lives exclusively in the top level.
9936 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9937 top level, renamed to ACX_PROG_GNAT.
9938
9939 2004-03-10 Richard Henderson <rth@redhat.com>
9940
9941 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9942 extra arguments.
9943 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9944 and host_xmake_file fragments.
9945 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9946 (gt_pch_restore): Similarly for gt_pch_use_address.
9947 (default_gt_pch_get_address): New.
9948 (mmap_gt_pch_get_address): Split out of gt_pch_save.
9949 (default_gt_pch_use_address): Split out of gt_pch_restore.
9950 (mmap_gt_pch_use_address): Likewise.
9951 * hooks.c (hook_voidp_size_t_null): Remove.
9952 (hook_bool_voidp_size_t_false): Remove.
9953 * hooks.h: Likewise.
9954 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9955 default_ or mmap_ definitions.
9956 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9957 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9958 and gt_pch_use_address.
9959 * config/host-linux.c, config/host-solaris.c: New files.
9960 * config/x-linux, config/x-solaris: New files.
9961 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9962 Update for changed definition.
9963 (darwin_rs6000_gt_pch_use_address): Likewise.
9964 * doc/hostconfig.texi: Update docs.
9965
9966 2004-03-10 Richard Henderson <rth@redhat.com>
9967
9968 PR c/14517
9969 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9970 except for pedantic c90 mode.
9971
9972 2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
9973
9974 * configure.ac: Bump AC_PREREQ to 2.59.
9975 * configure: Regenerate.
9976
9977 2004-03-10 Uros Bizjak <uros@kss-loka.si>
9978
9979 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9980 (exp10_optab, exp2_optab): Define corresponding macros.
9981 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9982 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9983 using exp10?f2 and exp2?f2 patterns.
9984 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9985 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9986 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9987 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9988
9989 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9990 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9991 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9992
9993 2004-03-10 Anthony Green <green@redhat.com>
9994
9995 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9996
9997 2004-03-10 David Edelsohn <edelsohn@gnu.org>
9998
9999 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
10000 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
10001 __LONGDOUBLE128.
10002 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
10003 TARGET_OS_AIX_CPP_BUILTINS.
10004 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
10005 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
10006 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
10007 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
10008 previous change.
10009
10010 2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10011
10012 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
10013
10014 2004-03-10 David Edelsohn <edelsohn@gnu.org>
10015
10016 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10017 __LONGDOUBLE128 on AIX.
10018
10019 2004-03-10 Andrew Haley <aph@redhat.com>
10020
10021 PR optimization/14381
10022 * function.c (expand_function_end): Emit a blockage insn before
10023 the epilogue when -fnon-call-exceptions is used.
10024
10025 * except.c (expand_start_all_catch): Make comment more accurate.
10026
10027 2004-03-08 Joel Sherrill <joel@oarcorp.com>
10028
10029 PR target/14480
10030 * config/rs6000/t-rtems: Add missing file on branch.
10031
10032 2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
10033
10034 * dbxout.c (dbxout_symbol_location): Do not output references
10035 to optimized-out constant pool symbols.
10036
10037 2004-03-10 Andreas Schwab <schwab@suse.de>
10038
10039 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
10040 twon34_r.
10041
10042 2004-03-09 James E Wilson <wilson@specifixinc.com>
10043
10044 * alias.c (alias_sets_might_conflict_p): New.
10045 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
10046 * common.opt (Wstrict-aliasing=): New.
10047 * flags.h (warn_strict_aliasing): Change type to int.
10048 * opts.c (warn_strict_aliasing): Change type to int.
10049 (common_handle_option): Handle OPT_Wstrict_aliasing_.
10050 * tree.h (alias_sets_might_conflict_p): Declare it.
10051 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
10052
10053 2004-03-10 Roman Zippel <zippel@linux-m68k.org>
10054
10055 PR bootstrap/12371
10056 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
10057 (CALL_USED_REGISTERS): Likewise.
10058 (REG_CLASS_CONTENTS): Likewise.
10059 (REG_ALLOC_ORDER): New.
10060 (REGNO_REG_CLASS): Use regno_reg_class.
10061 * config/m68k/m68k.c: Add regno_reg_class array.
10062
10063 2004-03-09 Steve Ellcey <sje@cup.hp.com>
10064
10065 * config/ia64/ia64.md (divsi3): Fix algorithm.
10066 (udivsi3): Ditto.
10067 (setf_exp_xf): Remove '*' from name.
10068 * testsuite/gcc.dg/20040309-1.c: New test.
10069
10070 2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
10071
10072 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
10073 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
10074 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
10075 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
10076 (sparc_aout_select_rtx_section): Don't check
10077 SUNOS4_SHARED_LIBRARIES.
10078 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
10079
10080 2004-03-10 Hans-Peter Nilsson <hp@axis.com>
10081
10082 PR other/14474
10083 * doc/md.texi (Pattern Ordering, Dependent Patterns)
10084 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
10085 INTERNALS".
10086
10087 2004-03-09 Zack Weinberg <zack@codesourcery.com>
10088
10089 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
10090 (LIBGCC_SPEC): Update to match.
10091
10092 2004-03-09 Zack Weinberg <zack@codesourcery.com>
10093
10094 * c-decl.c (last_function_parms, last_function_parm_tags)
10095 (last_function_parm_others, current_function_parms)
10096 (current_function_parm_tags, current_function_parm_others):
10097 Delete.
10098 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
10099 New macros.
10100 (grokdeclarator): For function definitions, save the arg-info
10101 block from the declarator in DECL_ARGUMENTS.
10102 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
10103 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
10104 contains only PARM_DECLs. Improve diagnostics.
10105 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
10106 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
10107 (store_parm_decls_newstyle): Take the function to operate on,
10108 and an arg-info block, as arguments; don't get anything from
10109 current_function_* globals.
10110 (store_parm_decls_oldstyle): Likewise.
10111 (store_parm_decls): Pass fndecl and its arg-info block down to
10112 store_parm_decls_newstyle/oldstyle. Send functions with empty
10113 argument lists through store_parm_decls_newstyle to reduce
10114 overhead.
10115 (pushdecl): Comment on the problems with the call to copy_node.
10116 Clear DECL_ARGUMENTS of the old node after copying it, if it
10117 is an arg-info block instead of a chain of decls.
10118 (start_function): Do not manipulate current_function_parm* or
10119 last_function_parm*.
10120
10121 2004-03-09 Roger Sayle <roger@eyesopen.com>
10122 Andrew Pinski <pinskia@physics.uc.edu>
10123
10124 * ifcvt.c (noce_try_sign_mask): New function to transform
10125 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
10126 (noce_process_if_block): Call noce_try_sign_mask.
10127
10128 2004-03-09 Andrew Pinski <apinski@apple.com>
10129
10130 * c-typeck.c (tagged_types_tu_compatible_p):
10131 Fix typo.
10132
10133 2004-03-09 Roger Sayle <roger@eyesopen.com>
10134
10135 * simplify-rtx.c (simplify_const_relational_operation): New function
10136 renamed from simplify_relational_operation.
10137 (simplify_relational_operation): Change prototype to accept an
10138 additional mode argument. Call simplify_const_relational_operation.
10139 (simplify_gen_relational): Update simplify_relational_operation call.
10140 (simplify_ternary_operation): Update simplify_relational_operation
10141 subroutine call to use simplify_const_relational_operation instead.
10142
10143 * rtl.h (simplify_const_relational_operation): Prototype here.
10144 (simplify_relational_operation): Add addtional mode argument.
10145
10146 * combine.c (combine_simplify_rtx): Update calls to
10147 simplify_relational_operation.
10148 (simplify_set): Likewise.
10149 (gen_binary): Likewise.
10150 * cse.c (fold_rtx): Likewise.
10151 * dojump.c (compare_from_rtx): Likewise.
10152 (do_compare_rtx_and_jump): Likewise.
10153 * integrate.c (subst_constants): Likewise.
10154 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
10155
10156 2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
10157
10158 * config/m32r/m32r.md: Remove all define_peephole's.
10159
10160 2004-03-09 Alan Modra <amodra@bigpond.net.au>
10161
10162 * config/rs6000/rs6000.md: Remove trailing whitespace.
10163
10164 2004-03-08 Eric Christopher <echristo@redhat.com>
10165
10166 * Makefile.in (site.exp): Add libiconv variable definition.
10167
10168 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
10169
10170 * configure: Regenerate for config/accross.m4 correction.
10171
10172 2004-03-08 Joel Sherrill <joel@oarcorp.com>
10173
10174 PR target/14480
10175 * config/rs6000/t-rtems: Add missing file on branch.
10176
10177 2004-03-08 Roger Sayle <roger@eyesopen.com>
10178
10179 PR middle-end/14289
10180 * c-typeck.c (c_mark_addressable): A register variable should
10181 be considered global if its not automatic, i.e. TREE_PUBLIC,
10182 TREE_STATIC or DECL_EXTERNAL.
10183 * function.c (put_var_into_stack): Call abort when placing a
10184 hard register into the stack, if x_parm_reg_stack_loc is NULL.
10185
10186 2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
10187
10188 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10189 ("*extendqisi2_short_displ"): Likewise.
10190
10191 2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
10192
10193 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10194 (comp_operator): Likewise.
10195 * config/pdp11/pdp11-protos.h: Remove corresponding
10196 prototypes.
10197
10198 2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
10199
10200 * expr.c (highest_pow2_factor_for_type): Rename into
10201 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
10202 TYPE_ALIGN when the target is a COMPONENT_REF.
10203 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10204
10205 2004-03-08 Alan Modra <amodra@bigpond.net.au>
10206
10207 * config/rs6000/rs6000.c: Formatting fix.
10208 (legitimate_offset_address_p): Correct offset range check.
10209
10210 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10211 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
10212 and MASK_STRING.
10213
10214 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
10215
10216 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10217 for little endian.
10218 ("ashrdi3_no_power"): Disable for little endian.
10219 (ashrdi3): Same.
10220
10221 2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10222
10223 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10224 builtins.
10225
10226 2004-03-08 Hans-Peter Nilsson <hp@axis.com>
10227
10228 PR target/14471
10229 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10230 case, checking for -no-mul-bug-abort option.
10231 * configure, config.in: Regenerate.
10232 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10233 and -mno-mul-bug-workaround.
10234 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10235 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10236 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10237 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
10238 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10239 sure mulu.d is not last on cache-line.
10240 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10241 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10242 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10243 (TARGET_SWITCHES): New options -mmul-bug-workaround and
10244 -mno-mul-bug-workaround.
10245 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10246 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10247 * config/cris/cris.c (cris_operand_extend_operator): Clarify
10248 relation to MULT in head comment.
10249 (cris_op_str): Abort for MULT.
10250 (cris_print_operand) <case '!'>: New case.
10251
10252 2004-03-08 Alan Modra <amodra@bigpond.net.au>
10253
10254 PR debug/11983
10255 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10256 dw_val_class_vec. Replace use throughout file.
10257 (dw_float_const): Delete.
10258 (dw_vec_const): New.
10259 (dw_val_struct_union): Rename val_float to val_vec. Replace use
10260 throughout file.
10261 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
10262 (same_dw_val_p): Adjust vec comparison. Use memcmp.
10263 (size_of_die): Adjust dw_val_class_vec sizing.
10264 (output_die): Output dw_val_class_vec.
10265 (insert_int, extract_int, insert_float): New functions.
10266 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10267 Handle CONST_VECTOR.
10268 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
10269
10270 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
10271
10272 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10273 AltiVec abi cannot co-exist.
10274
10275 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10276
10277 2004-03-07 Jan Hubicka <jh@suse.cz>
10278
10279 * except.c (emit_to_new_bb_before): Break fallthru edges.
10280
10281 2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
10282
10283 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10284 ("*lshrsi3"): Also accept an immediate for 68HC12.
10285 ("*ashrsi3_const"): Likewise.
10286 ("*ashrsi3"): Likewise.
10287 ("*ashlsi3_const"): Likewise.
10288 ("*ashlsi3"): Likewise.
10289 ("cmphi_1_hc12"): Compare two hard register by pushing them and
10290 comparing with a pop; don't use a split for that.
10291 ("cmphi split"): Disable compare split for 68HC12.
10292
10293 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10294 the status operands if they have side effects.
10295
10296 2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
10297
10298 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10299 definition.
10300 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10301 config/h8300/h8300.h, config/ia64/ia64.h,
10302 config/mcore/mcore.h, config/mmix/mmix.h,
10303 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10304 config/stormy16/stormy16.h, config/v850/v850.h,
10305 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10306 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10307 definition.
10308
10309 2004-03-07 Roger Sayle <roger@eyesopen.com>
10310
10311 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10312 <XOR_EXPR>: Fold x ^ x as zero.
10313 <AND_EXPR>: Fold x & x as x.
10314
10315 2004-03-07 Roger Sayle <roger@eyesopen.com>
10316
10317 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10318 "foo++ == const" into "++foo == const+incr".
10319
10320 2004-03-07 Richard Sandiford <rsandifo@redhat.com>
10321
10322 * config/mips/mips.c (mips_in_small_data_p): Return false if
10323 TARGET_ABICALLS.
10324
10325 2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
10326
10327 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10328 the stack register.
10329 (expand_prologue): Don't make an interrupt or a trap handler a far
10330 symbol.
10331 (m68hc11_initial_elimination_offset): Likewise.
10332
10333 2004-03-06 Richard Henderson <rth@redhat.com>
10334
10335 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10336
10337 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
10338
10339 * config/ns32k/ns32k-protos.h: Add a prototype for
10340 ns32k_notice_update_cc.
10341 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10342 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10343 ns32k_notice_update_cc.
10344
10345 2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
10346
10347 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10348 "*load_multiple_si"): Allow only if reload_completed.
10349 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10350 Likewise.
10351
10352 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
10353
10354 * config/vax/vax-protos.h: Add a prototype for
10355 vax_notice_update_cc.
10356 * config/vax/vax.c (vax_notice_update_cc): New.
10357 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10358 vax_notice_update_cc.
10359
10360 2004-03-06 David Edelsohn <edelsohn@gnu.org>
10361
10362 * collect2.c (main): Only export initfunc and finifunc if
10363 LD_INIT_SWITCH not defined.
10364 (scan_prog_file): Only export constructors and destructors if
10365 LD_INIT_SWITCH not defined. Only export symbols not found in
10366 shared objects.
10367
10368 2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10369
10370 * pa.md (icacheflush): Reorder operands to make match_scratch operand
10371 last.
10372 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10373 from calls to gen_icacheflush.
10374
10375 2004-03-06 Richard Henderson <rth@redhat.com>
10376
10377 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10378 (TARGET_LONG_DOUBLE_128): New.
10379 (TARGET_SWITCHES): Add long-double-{128,64}.
10380 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10381 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10382 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10383 (WIDEST_HARDWARE_FP_SIZE): New.
10384 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10385 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10386 if TARGET_VAX_FLOAT.
10387 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10388 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10389
10390 2004-03-06 Richard Henderson <rth@redhat.com>
10391
10392 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10393 botched rtx class conversion.
10394
10395 2004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10396
10397 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10398 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10399
10400 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10401 macros.
10402 * fold-const.c (fold_mathfn_compare, fold): Likewise.
10403
10404 2004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
10405
10406 PR target/14343
10407 * config/i386/i386.md (movv2di_internal): Conditionalize on
10408 TARGET_SSE, not TARGET_SSE2.
10409
10410 2004-03-05 Chris Demetriou <cgd@broadcom.com>
10411
10412 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10413 duplicated line.
10414
10415 2004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10416
10417 * builtins.c: Consistently use logN not log* in comments.
10418
10419 2004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
10420
10421 * rtl.h (mem_expr_equal_p): Function prototype added.
10422 * cfgcleanup.c (merge_memattrs): New function.
10423 (flow_find_cross_jump): Call merge_memattrs for matching insns.
10424 * emit-rtl.c (mem_expr_equal_p): New function.
10425
10426 2004-03-05 Ziemowit Laski <zlaski@apple.com>
10427
10428 * objc/objc-act.c (synth_module_prologue): Const-qualify
10429 objc_selector type if using the GNU runtime; fix generated
10430 signatures for objc_msg_lookup and objc_msg_lookup_super
10431 to match what GNU ObjC headers provide; reformat and clean up.
10432 (synth_self_and_ucmd_args): Use previously constructed (and
10433 hence possibly const-qualified) objc_selector type.
10434
10435 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
10436
10437 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10438
10439 2004-03-05 Jason Merrill <jason@redhat.com>
10440
10441 * tree.h (TYPE_HASH): Use TYPE_UID.
10442 (TREE_HASH): New macro with old definition of TYPE_HASH.
10443 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10444 (build_array_type, build_function_type): Likewise.
10445 (build_method_type_directly): Likewise.
10446 (build_offset_type, build_complex_type): Likewise.
10447 (type_hash_list, attribute_hash_list): Likewise. Now static.
10448 * except.c: s/TYPE_HASH/TREE_HASH/.
10449
10450 2004-03-05 Bob Wilson <bob.wilson@acm.org>
10451
10452 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10453 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
10454 __va_ndx by 2 words when referencing an argument on the stack.
10455 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
10456 words when an arg on the stack is first seen.
10457
10458 2004-03-05 Paul Brook <paul@codesourcery.com>
10459
10460 * arm.h (ARM_FLAG_VFP): Remove.
10461 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10462 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10463
10464 2004-03-05 Paul Brook <paul@codesourcery.com>
10465
10466 * function.c (assign_parms): Include pretend alignment offset.
10467
10468 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10469
10470 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10471 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10472
10473 2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
10474
10475 * configure.ac: When passing --enable-languages to subdir
10476 configure when host != build, make sure we don't pass an empty
10477 value.
10478 * configure: Regenerate.
10479
10480 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
10481
10482 PR 13577
10483 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10484 options.
10485
10486 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
10487
10488 * simplify-rtx.c (simplify_relational_operation): If
10489 flag_wrapv is set, do not move terms between the two
10490 side of a relational operator.
10491
10492 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
10493
10494 * rtlanal.c: Include target.h and output.h
10495 (rtx_cost, address_cost, default_address_cost): Move from...
10496 * cse.c (rtx_cost, address_cost, default_address_cost):
10497 ... this file.
10498 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10499 * Makefile.in: Adjust dependencies.
10500
10501 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
10502
10503 * cse.c (cse_end_of_basic_block): Make static.
10504 * local-alloc.c (function_invariant_p): Move to
10505 reload1.c.
10506 * loop.c (libcall_other_reg, record_excess_regs):
10507 Make static.
10508 * reload1.c (function_invariant_p): Moved here
10509 from local-alloc.c, made static.
10510 * rtl.h (cse_end_of_basic_block, function_invariant_p,
10511 libcall_other_reg, record_excess_regs): Remove
10512 declarations.
10513
10514 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
10515
10516 * config/m32r/m32r.c (signed_comparison_operator): Add a
10517 missing parenthesis.
10518
10519 2004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
10520
10521 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10522 going to call mmap again. Read the file into the right place.
10523 Give a fatal error if we have to relocate.
10524
10525 2004-03-04 Bob Wilson <bob.wilson@acm.org>
10526
10527 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10528 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10529
10530 2004-03-05 Hans-Peter Nilsson <hp@axis.com>
10531
10532 PR other/14354
10533 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10534 round the same. When rounding, clear bits that would cause a
10535 second rounding in pack_d.
10536 (_fpmul_parts): Ditto. Remove #if 0:d code.
10537
10538 2004-03-04 Ziemowit Laski <zlaski@apple.com>
10539
10540 PR c++/14425, c++/14426
10541 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10542 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10543 Change C++ definitions to accept a 'const int' argument;
10544 the prototypes already do.
10545 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10546 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10547 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10548 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10549 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10550 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10551 end in ..._int; change them to accept an int instead of a char
10552 as the last parameter.
10553
10554 2004-03-04 Phil Edwards <phil@codesourcery.com>
10555
10556 * genmultilib: Change '=' to '-' when translating option names
10557 to directory names.
10558
10559 2004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10560
10561 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10562 stack slot for temp used for result of BLKmode but in integral mode.
10563
10564 2004-03-04 Jan Hubicka <jh@suse.cz>
10565
10566 * reload.c (find_reloads): Reorganize if seqeunce to switch.
10567
10568 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
10569 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
10570
10571 2004-03-04 Steve Ellcey <sje@cup.hp.com>
10572
10573 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10574 * testsuite/gcc.dg/20040303-1.c: New test.
10575
10576 2004-03-04 Steven Bosscher <stevenb@suse.de>
10577
10578 * ppro.md: Rewrite as a DFA pipeline description.
10579 * i386.md: Remove all uses of the ppro_uops attribute.
10580 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10581 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10582 ix86_sched_reorder, ix86_variable_issue,
10583 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10584 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10585 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10586 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10587 * athlon.md (athlon_ssecmp_load): Fix comment
10588
10589 2004-03-04 Stuart Hastings <stuart@apple.com>
10590
10591 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10592
10593 2004-03-04 Stuart Hastings <stuart@apple.com>
10594
10595 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10596 686, tell Darwin assembler to allow prefetch insns, non-empty def
10597 of SUBTARGET_OPTION_TRANSLATE_TABLE.
10598
10599 2004-03-04 DJ Delorie <dj@redhat.com>
10600
10601 PR optimization/14282
10602 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10603 between a call and the assignment of its return value.
10604
10605 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
10606
10607 * config/h8300/h8300.c: Put a comment for every function.
10608
10609 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
10610
10611 * config/h8300/h8300.md: Add comments about peephole2's.
10612
10613 2004-03-04 Steven Bosscher <stevenb@suse.de>
10614
10615 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10616
10617 2004-03-04 Jan Hubicka <jh@suse.cz>
10618
10619 * cfgcleanup.c (thread_jump): Update call of cselib_init.
10620 * cselib.c (cselib_record_memory): New static variable.
10621 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10622 Give up on memories when asked for.
10623 (cselib_init): Accept new argument.
10624 * cselib.h (cselib_init): Update prototype.
10625 * gcse.c (local_cprop_pass): Update call of cselib_init.
10626 * loop.c (load_mems): Update call of cselib_init.
10627 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10628 * sched-deps.c (sched_analyze): Update call of cselib_init.
10629
10630 2004-03-04 David Edelsohn <edelsohn@gnu.org>
10631 GP <gp@qnx.com>
10632
10633 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10634 when compiling PIC.
10635
10636 2004-03-04 Josef Zlomek <zlomekj@suse.cz>
10637
10638 PR/14362
10639 * var-tracking.c (track_expr_p): Do not track variables which
10640 should be ignored for debugging purposes.
10641
10642 2004-03-04 Alan Modra <amodra@bigpond.net.au>
10643
10644 * real.c (encode_ibm_extended): Don't bother rounding low double.
10645 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10646 when fmt->pnan < fmt->p.
10647
10648 2004-03-04 Eric Christopher <echristo@redhat.com>
10649
10650 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10651 only range of valid arg registers and fixed_regs.
10652
10653 2004-03-04 Alan Modra <amodra@bigpond.net.au>
10654
10655 PR target/14406
10656 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10657 (abstf2, abstf2_internal): New define_expand.
10658
10659 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
10660
10661 PR optimization/14235
10662 * expr.c (convert_move): Copy the source to a new pseudo
10663 when converting from a sub-word source to a larger-than-word
10664 register which conflicts with the source.
10665
10666 2004-03-03 Zack Weinberg <zack@codesourcery.com>
10667
10668 PR 13728
10669 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10670 parameters with the same name, unless one is a forward decl.
10671 Do not issue a redundant-redeclaration warning for forward
10672 decls of parameters.
10673
10674 2004-03-04 David Edelsohn <edelsohn@gnu.org>
10675
10676 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10677 configuration.
10678
10679 2004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
10680
10681 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10682
10683 2004-03-04 Alan Modra <amodra@bigpond.net.au>
10684
10685 * target-def.h (TARGET_OPTF): Delete.
10686 * c-opts.c (TARGET_OPTF): Define.
10687
10688 2004-03-04 Jan Hubicka <jh@suse.cz>
10689
10690 * cselib.c (cselib_finish): Fix another miss-application of my previous
10691 patch.
10692
10693 2004-03-03 Mike Stump <mrs@apple.com>
10694
10695 Add framework support for darwin.
10696
10697 * c-incpath.c: Include target.h and machmode.h.
10698 (add_path): Use a consistent style for cpp_dir. Initialize
10699 p->construct to 0.
10700 (add_cpp_dir_path): New.
10701 (register_include_chains): Add use of extra_includes callback.
10702 (hook_void_int): Add.
10703 (target_c_incpath): Add.
10704 * c-incpath.h (add_cpp_dir_path): New.
10705 (target_c_incpath_s): Add.
10706 (target_c_incpath): Add.
10707 (C_INCPATH_INIT): Add.
10708 * c-opts.c (c_common_missing_argument,
10709 c_common_handle_option): Add -F argument processing.
10710 * c.opt: Add -F argument processing.
10711 * gcc.c (trad_capable_cpp): Add -F argument processing.
10712 * cppfiles.c (find_file_in_dir): Update to use construct
10713 callback.
10714 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10715 cpp_get_prev): New.
10716 (_cpp_find_file): Use search_path_exhausted.
10717 (make_cpp_dir): Initialize construct to 0.
10718 * cpplib.h (missing_header_cb
10719 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10720 (cpp_callbacks): Add missing_header
10721 (cpp_dir): Add construct.
10722 * target-def.h: (TARGET_OPTF): New.
10723 * hooks.c (hook_void_int, hook_void_charptr): Add.
10724 * hooks.h (hook_void_int, hook_void_charptr): Add.
10725 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10726 $(MACHMODE_H) dependencies.
10727 * doc/invoke.texi (Darwin Options): Document -F.
10728 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10729 (TARGET_OPTF): Add.
10730 * fix-header.c (target_c_incpath): Add.
10731
10732 * config/darwin-c.c: Add c-incpath.h include.
10733 (using_frameworks, find_subframework_file,
10734 find_subframework_header, add_system_framework_path,
10735 frameworks_in_use, num_frameworks, max_frameworks,
10736 add_framework, find_framework, struct framework_header,
10737 framework_header_dirs, framework_construct_pathname,
10738 find_subframework_file, add_system_framework_path,
10739 add_framework_path, framework_defaults,
10740 darwin_register_frameworks, find_subframework_header): Add.
10741 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10742 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10743 (CPP_SPEC): Add __APPLE_CC__ support.
10744 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10745
10746 2004-03-04 Jan Hubicka <jh@suse.cz>
10747
10748 * cselib.c (cselib_finish): Fix miss-application of my previous
10749 patch.
10750
10751 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
10752
10753 * hooks.c (hook_tree_tree_identity): New.
10754 * hooks.h: Add a prototype for hook_tree_tree_identity.
10755 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10756 instead of MD_ASM_CLOBBERS.
10757 * system.h (MD_ASM_CLOBBERS): Poison.
10758 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10759 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10760 * target.h (gcc_target): Add md_asm_clobbers.
10761 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10762 (ix86_md_asm_clobbers): New.
10763 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10764 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10765 TARGET_MD_ASM_CLOBBERS.
10766
10767 2004-03-03 Stuart Hastings <stuart@apple.com>
10768
10769 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10770
10771 2004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
10772
10773 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10774
10775 * config/sparc/sparc.h (ASM_FLOAT): Delete.
10776 (ASM_DOUBLE): Likewise.
10777 (ASM_LONGDOUBLE): Likewise.
10778 * config/sparc/pbd.h (ASM_INT_OP): Delete.
10779
10780 2004-03-03 Richard Henderson <rth@redhat.com>
10781
10782 PR opt/13862
10783 * cselib.c (cselib_record_sets): Don't record multiple sets in
10784 asm insns.
10785
10786 2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
10787
10788 * common.opt: Add description of the new -fgcse-after-reload flag.
10789
10790 * flags.h (flag_gcse_after_reload): Declaration of global variable.
10791
10792 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10793 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10794 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10795 get_bb_avail_insn, hash_scan_set_after_reload,
10796 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10797 gcse_after_reload, get_bb_avail_insn): New functions to implement
10798 gcse-after-reload.
10799 (gcse_after_reload_main): New function, the main entry point to
10800 gcse-after-reload.
10801
10802 * rtl.h (gcse_after_reload_main): Declaration of the new function.
10803
10804 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10805
10806 * toplev.c (flag_gcse_after_reload): Initialization.
10807
10808 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10809
10810 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10811 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10812 the gcse after reload optimization.
10813
10814 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10815 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10816 parameters.
10817
10818 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10819
10820 2004-03-03 Nicolas Pitre <nico@cam.org>
10821
10822 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10823 small negative values.
10824
10825 2004-03-03 Jan Hubicka <jh@suse.cz>
10826
10827 * cselib.c (hash_table): Remove GTY marker.
10828 (reg_values): Turn into array.
10829 (used_regs): Likewise.
10830 (n_used_regs): New static variable.
10831 (reg_values_old): Kill.
10832 (clear_table): Update uses of arrays.
10833 (cselib_lookup): Likewise.
10834 (cselib_record_set): Likewise.
10835 (cselib_init): Likewise.
10836 (cselib_finish): Likewise.
10837 (cselib_udpate_varray_sizes): Kill.
10838 * cselib.h (cselib_update_varray_sizes): Kill.
10839
10840 2004-03-03 Paul Brook <paul@codesourcery.com>
10841
10842 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10843
10844 2004-03-03 Jan Hubicka <jh@suse.cz>
10845
10846 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10847 Rename from ...; make statistics transparent.
10848 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10849 (loc_descriptor): New structure.
10850 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10851 add_statistics):
10852 New static function.
10853 (ggc_record_overhead, dump_statistics): New global function.
10854 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10855 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10856 from ...; accept locations
10857 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10858 ggc_realloc, ggc_alloc_typed): ... this one.
10859 from ...; accept locations
10860 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10861 ggc_alloc_stat): Rename from ... ; pass locations
10862 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10863 ... this one.
10864 (ggc_alloc_stat): Record overehead.
10865 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10866 ggc_realloc, ggc_alloc_typed): Turn to macros
10867 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10868 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10869 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10870 * langhooks.h (lhd_make_node): Declare.
10871 (LANG_HOOKS_MAKE_TYPE): Default to new function,
10872 * langhooks.c (lhd_make_node): New.
10873 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10874 locations.
10875 (rtx_alloc, swallow_copy_rtx): ... this one.
10876 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10877 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10878 * toplpev.c (finalize): Dump stats.
10879 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10880 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10881 Rename from ... ; pass locators.
10882 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10883 build?, build_decl): Declare.
10884 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10885 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10886 Declare.
10887 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10888 build?, build_decl): New macros.
10889 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10890 * statistics.h: New file.
10891
10892 2004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10893 Richard Sandiford <rsandifo@redhat.com>
10894
10895 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10896 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10897 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10898 * config/mips/mips.c (mips_output_division): Fill the branch delay
10899 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
10900 TARGET_FIX_R4400.
10901 (mips_output_division): Adjust accordingly.
10902 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10903 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10904
10905 2004-03-03 Paolo Bonzini <bonzini@gnu.org>
10906
10907 * alias.c (rtx_equal_for_memref_p): Use predicates
10908 to test rtx classes and new rtx class codes, possibly
10909 splitting conditionals that tested against '<' and 'o'.
10910 * caller-save.c (save_call_clobbered_regs): Likewise.
10911 * combine.c (contains_muldiv, find_split_point, subst,
10912 combine_simplify_rtx, simplify_if_then_else,
10913 simplify_set, simplify_logical, expand_compound_operation,
10914 make_compound_operation, if_then_else_cond, known_cond,
10915 apply_distributive_law, cached_nonzero_bits,
10916 cached_num_sign_bit_copies, simplify_shift_const,
10917 gen_binary, simplify_comparison, update_table_tick,
10918 record_value_for_reg, get_lsat_value_validate): Likewise.
10919 * cse.c (mention_regs, find_best_addr, find_comparison_args,
10920 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10921 Likewise.
10922 * emit-rtl.c (copy_insn_1): Likewise.
10923 * expr.c (force_operand): Likewise.
10924 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10925 * flow.c (notice_stack_pointer_modification_1,
10926 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10927 and_reg_cond, elim_reg_cond): Likewise.
10928 * function.c (update_epilogue_consts): Likewise.
10929 * genattrtab.c (attr_rtx_1): Likewise.
10930 * genopinit.c (gen_insn): Likewise.
10931 * integrate.c (subst_constants): Likewise.
10932 * jump.c (reversed_comparison_code_parts,
10933 reversed_comparison_code, delete_related_insns,
10934 rtx_renumbered_equal_p): Likewise.
10935 * local-alloc.c (block_alloc): Likewise.
10936 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10937 canonicalize_condition): Likewise.
10938 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10939 Likewise.
10940 * optabs.c (add_equal_node, expand_binop): Likewise.
10941 * predict.c (estimate_probability): Likewise.
10942 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10943 * recog.c (validate_replace_rtx_1, comparison_operator,
10944 offsettable_address_p, constrain_operands): Likewise.
10945 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10946 Likewise.
10947 * regclass.c (scan_one_insn): Likewise.
10948 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10949 * regrename.c (kill_autoinc_value): Likewise.
10950 * reload.c (find_reusable_reload, find_reloads,
10951 reg_overlap_mentioned_for_reload_p): Likewise.
10952 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10953 * rtl.c (copy_rtx): Likewise.
10954 * rtl.h (CONSTANT_P, INSN_P): Likewise.
10955 * rtlanal.c (commutative_operand_precedence): Likewise.
10956 * sched-deps.c (conditions_mutex_p): Likewise.
10957 * sched-rgn.c (is_cfg_nonregular): Likewise.
10958 * simplify-rtx.c (simplify_gen_binary,
10959 simplify_gen_relational, simplify_replace_rtx,
10960 simplify_unary_operation, simplify_binary_operation,
10961 simplify_ternary_operation, simplify_rtx): Likewise.
10962 * unroll.c (reg_dead_after_loop): Likewise.
10963 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10964 print_operand): Likewise.
10965 * config/arc/arc.c (proper_comparison_operator): Likewise.
10966 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10967 Likewise.
10968 * config/avr/avr.c (_reg_unused_after): Likewise.
10969 * config/frv/frv.c (frv_ifcvt_modify_tests,
10970 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10971 * config/i386/i386.c (ix86_comparison_operator,
10972 ix86_carry_flag_operator, fcmov_comparison_operator,
10973 arith_or_logical_operator, print_operand,
10974 ix86_expand_binary_operator, ix86_binary_operator_ok):
10975 Likewise.
10976 * config/i386/i386.md: Likewise.
10977 * config/ia64/ia64.c (not_postinc_memory_operand,
10978 ia64_print_operand, update_set_flags, errata_emit_nops):
10979 Likewise.
10980 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10981 CONSTRAINT_OK_FOR_S): Likewise.
10982 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10983 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10984 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10985 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10986 Likewise.
10987 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10988 eqne_comparison_operator, signed_comparison_operator):
10989 Likewise.
10990 * config/mips/mips.c (cmp_op, symbolic_expression_p):
10991 Likewise.
10992 * config/mmix/mmix (mmix_foldable_comparison_operator,
10993 mmix_comparison_operator): Likewise.
10994 * config/pa/pa.c (hppa_legitimize_address): Likewise.
10995 * config/rs6000/rs6000.c (stmw_operation,
10996 branch_comparison_operator, trap_comparison_operator,
10997 ccr_bit): Likewise.
10998 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10999 * config/s390/s390.c (s390_alc_comparison,
11000 s390_slb_comparison):L Likewise.
11001 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
11002 Likewise.
11003 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
11004 noov_compare_op, noov_compare64_op, v9_regcmp_op,
11005 emit_hard_tfmode_operation, reg_unused_after)
11006 * doc/md.texi, doc/rtl.texi: Likewise.
11007
11008 * ra-debug.c: Add 2004 to list of copyright years.
11009 * unroll.c: Likewise.
11010
11011 * combine.c (simplify_logical): Remove dummy test,
11012 (apply_distributive_law): Fix typo in comment.
11013 GET_CODE (x) == AND so x is a commutative binary op.
11014 * jump.c (delete_related_insns): simplify loop
11015 condition, move testing of RTX codes inside the loop.
11016 (rtx_renumbered_equal_p): do not use RTX_CODE.
11017 * rtl.c (rtx_class): Declare as enum rtx_class.
11018 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
11019 Move to RTX_COMM_COMPARE class.
11020 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
11021 Move to RTX_CONST_OBJ class.
11022 * rtl.h (enum rtx_class): New declaration,
11023 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
11024 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
11025 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
11026 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
11027 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
11028 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
11029 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
11030 OBJECT_P): New macros.
11031 * config/sparc/sparc.c (noov_compare_op): Remove register
11032 from parameter.
11033
11034 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
11035
11036 * target.h: Remove texi jargons in comments.
11037
11038 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11039
11040 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
11041 threshold to 0x4f.
11042
11043 Revert:
11044 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11045 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11046 as well.
11047 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11048 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11049
11050 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11051
11052 * doc/md.texi (cbranchmode4): New.
11053
11054 2004-03-02 Eric Christopher <echristo@redhat.com>
11055
11056 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
11057 fix_trunc.
11058 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
11059 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
11060 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
11061 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
11062
11063 2004-03-02 Richard Henderson <rth@redhat.com>
11064
11065 PR middle-end/11767
11066 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
11067 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
11068 before the compare, if flag_non_call_exceptions.
11069
11070 2004-03-02 Richard Henderson <rth@redhat.com>
11071
11072 PR middle-end/14327
11073 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
11074 emitting the label, not after.
11075
11076 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11077
11078 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
11079 (m68hc11_mov_addr_mode): Likewise.
11080 (m68hc11_override_options): Initialize them based on target.
11081 (register_indirect_p): Allow a MEM for indirect addressing modes and
11082 use flags to control what is allowed.
11083 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
11084 supported addressing modes.
11085 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
11086 (go_if_legitimate_address_internal): Likewise.
11087 (m68hc11_indirect_p): Likewise and check the mode.
11088 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
11089
11090 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11091
11092 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
11093 (expand_builtin_setjmp_setup): Use
11094 targetm.builtin_setjmp_frame_value instead of
11095 BUILTIN_SETJMP_FRAME_VALUE.
11096 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
11097 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
11098 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11099 * target.h (gcc_target): Add builtin_setjmp_frame_value.
11100 * targhooks.c (default_builtin_setjmp_frame_value): New.
11101 * targhooks.h: Add a prototype for
11102 default_builtin_setjmp_frame_value.
11103 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
11104 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11105
11106 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11107
11108 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
11109 sequences of moves.
11110 (add peepholes): New peepholes to optimize sequences adding small
11111 constants.
11112 (bset peepholes): New peepholes to transform an OR in a bset form
11113 (bclr peepholes): Likewise for bclr form.
11114 (cmp peepholes): New peepholes to avoid register copies when comparing.
11115
11116 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11117
11118 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
11119 to separate push from moves.
11120 ("*pushdf_internal"): Likewise.
11121 ("*pushsf_internal"): Likewise.
11122 ("*pushsi_internal"): Likewise.
11123 ("movdi_internal"): Use define_insn_and_split; non push operand.
11124 ("movdf_internal"): Likewise.
11125 ("movsf_internal"): Likewise.
11126 ("movsi_internal"): Likewise.
11127 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
11128 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
11129 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
11130
11131 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11132
11133 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
11134 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
11135 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
11136 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
11137 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
11138 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
11139 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
11140 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
11141 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
11142 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
11143 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
11144
11145 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11146
11147 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
11148 (SOFT_XY_REGNUM): Define.
11149 (cmp split): Use the above instead of hard coded numbers.
11150 (8-bit op split): No need to check the mode; allow Q_REG.
11151 (ashift split): Adjust the first operand if it uses the SP and we
11152 are pushing the shifted value.
11153 (plus shift split): Fix when a source is in register D+X.
11154 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
11155
11156 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11157
11158 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
11159 comparing with Z register.
11160
11161 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11162
11163 * cfgloop.h (struct loop_desc): Removed.
11164 (struct loop): Fields simple, desc and has_desc removed.
11165 (simple_loop_p, count_loop_iterations): Declaration removed.
11166 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
11167 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
11168 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
11169 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
11170 simple_loop_exit_p, variable_initial_value, variable_initial_values,
11171 simple_condition_p, simple_increment, count_strange_loop_iterations,
11172 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
11173 Removed.
11174 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11175
11176 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11177
11178 * genattrtab.c: Don't handle MATCH_INSN.
11179 * genrecog.c: Likewise.
11180 * gensupport.c: Likewise.
11181 * rtl.def (match_insn): Remove.
11182 * doc/md.texi (match_insn, match_insn2): Remove.
11183
11184 2004-03-02 Mark Mitchell <mark@codesourcery.com>
11185
11186 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11187 macro results in memory allocation.
11188
11189 2004-03-02 David O'Brien <obrien@FreeBSD.org>
11190
11191 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11192 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11193 %(fbsd_dynamic_linker),
11194 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11195 config/i386/freebsd.h
11196 * config/arm/freebsd.h: Ditto.
11197 * config/i386/freebsd.h: Ditto.
11198 * config/i386/freebsd64.h: Ditto.
11199 * config/ia64/freebsd.h: Ditto.
11200 * config/rs6000/sysv4.h: Ditto.
11201 * config/sparc/freebsd.h: Ditto.
11202
11203 2004-03-02 Loren James Rittle <ljrittle@acm.org>
11204
11205 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11206
11207 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11208
11209 * rtl.def (define_combine): Remove.
11210
11211 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11212
11213 * config/h8300/h8300.md: Tweak formatting.
11214
11215 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11216
11217 * config/h8300/h8300.md (*cmphi_h8300): Rename to
11218 *cmphi_h8300_znvc.
11219 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11220
11221 2004-03-01 Mark Mitchell <mark@codesourcery.com>
11222
11223 PR bootstrap/14356
11224 * gcc.c (process_command): Remove const-qualification from argv.
11225 (main): Likewise.
11226
11227 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11228
11229 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11230 pushqi1_h8300hs_advanced. Adjust its caller.
11231 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11232 Adjust its caller.
11233
11234 2004-03-02 Nicolas Roche <roche@act-europe.fr>
11235
11236 * Makefile.in (install-libgcc, install-multilib): Pass
11237 mkinstalldirs var to libgcc.mk.
11238
11239 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
11240
11241 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11242 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11243
11244 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
11245
11246 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11247 * config/h8300/h8300.md: Split several peephole2's, each into
11248 two.
11249
11250 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11251
11252 * dominance.c (recount_dominator): Handle postdominators.
11253
11254 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
11255
11256 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11257 (NUM_SYMBOL_TYPES): Likewise.
11258 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11259 (mips_unspec_address): Declare.
11260 (mips_gotoff_page, mips_gotoff_global): Delete.
11261 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11262 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11263 (mips_symbolic_constant_p, mips_symbolic_address_p)
11264 (mips_symbol_insns): Handle new symbol types.
11265 (general_symbolic_operand): New predicate.
11266 (mips_unspec_address): Make extern.
11267 (mips_gotoff_page, mips_gotoff_global): Delete.
11268 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11269 Handle new symbol types.
11270 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11271 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11272 mips_unspec_address directly.
11273 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11274 the documentation of -mexplicit-relocs.
11275
11276 2004-03-01 Jeff Law <law@redhat.com>
11277
11278 * fold-const.c (fold): An equality comparison of a non-weak object
11279 against zero has a known result. Similarly an equality comparison
11280 of the address of two non-weak, unaliased symbols has a known result.
11281
11282 * ggc-page.c (struct page_entry): New field PREV.
11283 (ggc_alloc): Update PREV field appropriately.
11284 (sweep_pages): Likewise.
11285 (ggc_free): Likewise. Use PREV field rather than loop to
11286 improve ggc_free performance.
11287
11288 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
11289
11290 * config/mips/mips.c (mips_output_division): Use the division
11291 instruction to fill the delay slot of a zero check.
11292 (mips_idiv_insns): Adjust accordingly.
11293
11294 2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
11295
11296 * config.gcc: Create a default tmake_file for linux, and use
11297 it in all but two linux clauses. Comment those two.
11298
11299 2004-03-01 Paolo Bonzini <bonzini@gnu.org>
11300
11301 * combine.c (try_combine): Do not refer to is_replaced.
11302 (gen_lowpart_for_combine): Perverse subregs now have a
11303 more politically correct name.
11304 * cse.c (cse_insn): Likewise.
11305 * jump.c: Fix bogus reference to delete_insn.
11306
11307 2004-02-29 Mark Mitchell <mark@codesourcery.com>
11308
11309 PR debug/14328
11310 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11311 constants as signed values.
11312
11313 PR middle-end/13448
11314 * c-tree.h (readonly_warning): Rename to ...
11315 (readonly_error): ... this.
11316 * c-typeck.c (build_unary_op): Adjust accordingly.
11317 (readonly_warning): Rename to ...
11318 (readonly_error): ... this and issue errors, not warnings.
11319 (build_modify_expr): Call readonly_error, not readonly_warning.
11320 (c_expand_asm_operands): Likewise.
11321 * tree-inline.c (optimize_inline_calls): Do not inline functions
11322 after errors have occurred.
11323
11324 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
11325
11326 * configure.ac: Rearrange some threading code for clarity;
11327 add section comment.
11328 * configure: Regenerate.
11329
11330 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11331
11332 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11333 typos.
11334 * doc/cppopts.texi: Fix a typo.
11335
11336 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11337
11338 * config/i386/i386.md: Fix formatting.
11339
11340 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
11341
11342 * configure.ac: Add some comments delineating sections of code.
11343
11344 * doc/install.texi: Note that libada uses autoconf 2.57 also.
11345
11346 * doc/install.texi: Fix idiot typo in previous commit.
11347
11348 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11349
11350 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11351
11352 * config/h8300/h8300.md: Add comments about peephole2's.
11353
11354 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11355
11356 * config/h8300/h8300.md: Tweak operand numbers of some
11357 peephole2's.
11358
11359 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11360
11361 * config/h8300/h8300.md: Tweak comments about peephole2's.
11362
11363 2004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
11364
11365 PR middle-end/14203
11366 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11367 instead of testing whether DECL_RTL is not NULL.
11368
11369 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11370
11371 * config/sh/sh.c: Fix formatting.
11372
11373 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11374
11375 * config/sh/sh.c: Convert to ISO-C.
11376
11377 2004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
11378
11379 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11380 my previous patch.
11381
11382 * config/darwin.h (machopic_finish): Output stub even if the
11383 symbol is already defined.
11384
11385 2004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11386
11387 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11388
11389 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11390
11391 * genattr.c (main): Don't define
11392 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11393 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11394 (DFA_PIPELINE_INTERFACE): Likewise.
11395 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11396 (DFA_PIPELINE_INTERFACE): Likewise.
11397
11398 2004-02-28 Richard Sandiford <rsandifo@redhat.com>
11399
11400 * config/mips/mips.md (tstsi, tstdi): Delete.
11401
11402 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11403
11404 * config/mips/mips.c (override_options): Remove an obsolete
11405 duplicate definition of the "e" constraint.
11406 * config/mips/mips.h: Update a comment accordingly.
11407
11408 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11409
11410 * config/mips/mips.md: Complete the unfinished R4000
11411 multiply/shift errata workaround. Improve documentation.
11412 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11413 has a hilo hazard.
11414 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11415 (muldi3, muldi3_internal): Likewise.
11416 (muldi3_internal2): Remove, replacing with...
11417 (muldi3_mult3, muldi3_r4000): ...these new patterns.
11418 (mulsidi3): Take the errata into account.
11419 (mulsidi3_32bit): Remove, replacing with...
11420 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11421 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11422 (umulsidi3): Take the errata into account.
11423 (umulsidi3_32bit): Remove, replacing with..
11424 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11425 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11426 TARGET_FIX_R4000.
11427 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11428 (smuldi3_highpart, umuldi3_highpart): Likewise.
11429 * doc/invoke.texi: Document the errata workaround.
11430
11431 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11432
11433 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11434 * config/mips/mips.h (MASK_FIX_SB1): Bump.
11435 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11436 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11437 * config/mips/mips.c (mips_idiv_insns): New function.
11438 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11439 (mips_output_division): Add a workaround for the R4000 divide/shift
11440 errata.
11441 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11442 the length of an "idiv" instruction.
11443 * doc/invoke.texi: Document the new switches.
11444
11445 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11446
11447 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11448 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11449
11450 2004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11451
11452 PR optimization/14229
11453 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11454
11455 2004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
11456
11457 * fold-const.c (fold): Strip NOPs that change the signedness
11458 for RSHIFT too. Expand comment.
11459
11460 2004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
11461
11462 PR optimization/7871
11463 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
11464 from or to call insns.
11465
11466 2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
11467
11468 PR optimization/7871
11469 * flow.c (propagate_one_insn): Interpret calls as setting global
11470 registers, not merely clobbering them.
11471
11472 2004-02-27 Dale Johannesen <dalej@apple.com>
11473
11474 * config/darwin.c (machopic_output_possible_stub_label): Remove.
11475 config/darwin-protos.h: Ditto.
11476 config/darwin.h: Remove call to it.
11477 * combine.c (distribute_notes): Do not place a REG_DEAD note
11478 when value is both set and used.
11479
11480 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11481
11482 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11483 as well.
11484 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11485 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11486
11487 2004-02-27 Andrew Pinski <apinski@apple.com>
11488
11489 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11490 Speedup common case of the type values being in the same order.
11491
11492 2004-02-27 Steve Ellcey <sje@cup.hp.com>
11493
11494 * config/ia64/ia64.h (no-inline-float-divide): New option.
11495 * config/ia64/ia64.h (no-inline-int-divide): New option.
11496 * config/ia64/ia64.h (no-inline-sqrt): New option.
11497 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11498 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11499 * config/ia64/ia64.c (ia64_override_options): Modify error
11500 checking for inlined division/sqrt.
11501
11502 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11503
11504 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11505 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11506 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11507 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11508 copyright.
11509
11510 2004-02-27 Paul Brook <paul@codesourcery.com>
11511
11512 * function.c (assign_parms): Don't count pretend args for alignment.
11513
11514 2004-02-27 Richard Henderson <rth@redhat.com>
11515
11516 * passes.c: New file.
11517 * Makefile.in (OBJS-common): Add it.
11518 * diagnostic.c (rtl_dump_and_exit): Move decl ...
11519 * flags.h (rtl_dump_and_exit): ... here.
11520 * output.h (size_directive_output, last_assemble_variable_decl):
11521 Move from toplev.c.
11522 * rtl.h (reg_alloc): Move from toplev.c.
11523 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11524 struct dump_file_info, enum dump_file_index, dump_file_tbl,
11525 open_dump_file, close_dump_file, rest_of_decl_compilation,
11526 rest_of_type_compilation, rest_of_handle_final,
11527 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
11528 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11529 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11530 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11531 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
11532 rest_of_handle_tracer, rest_of_handle_if_conversion,
11533 rest_of_handle_if_after_combine, rest_of_handle_web,
11534 rest_of_handle_branch_prob,
11535 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
11536 rest_of_handle_addressof, rest_of_handle_sibling_calls,
11537 rest_of_handle_jump_bypass, rest_of_handle_inlining,
11538 rest_of_handle_null_pointer, rest_of_handle_combine,
11539 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
11540 rest_of_handle_gcse, rest_of_handle_loop_optimize,
11541 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11542 (decode_d_option): Use enable_rtl_dump_file.
11543 (compile_file, finalize, do_compile): Move profile+combine+graph
11544 cleanup to finish_optimization_passes.
11545 * toplev.h (init_optimization_passes, finish_optimization_passes,
11546 enable_rtl_dump_file): Declare.
11547
11548 2004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
11549 Roger Sayle <roger@eyesopen.com>
11550
11551 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
11552 operands to build a tree with swapped operands.
11553 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11554 'unsignedp' predicate to specify the signedness.
11555
11556 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11557
11558 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11559 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11560 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11561 comment typos and formatting. Follow spelling conventions.
11562
11563 2004-02-26 Aldy Hernandez <aldyh@redhat.com>
11564
11565 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11566 fix_truncsfsi2.
11567
11568 * config/rs6000/spe.md: Delete spe_efsctuiz.
11569 Add spe_fixuns_truncsfsi2.
11570 Add spe_fix_truncsfsi2.
11571
11572 2004-02-26 Eric Christopher <echristo@redhat.com>
11573
11574 * c-lex.c (c_lex_string_translate): New variable.
11575 (lex_string): Use to determine string translation.
11576 * c-pragma.h: Prototype.
11577 * c-parse.in (start_string_translation): New. Set above.
11578 (stop_string_translation): Ditto.
11579 (attribute, attribute_list, asm_def, asm_stmt,
11580 asm_operand): Use above functions.
11581 * cp/parser.c (cp_parser_declaration): Translate strings
11582 unless token is RID_EXTERN. Set c_lex_string_translate
11583 for recursive use.
11584 (cp_parser_asm_definition): Only translate argument strings
11585 to asms.
11586 (cp_parser_asm_operand_list): Ditto.
11587 (cp_parser_attribute_list): Do not translate attribute strings.
11588
11589 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11590
11591 * stmt.c (expand_start_case_dummy): Remove.
11592 * tree.h: Remove the corresponding prototype.
11593
11594 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11595
11596 * builtins.c (apply_args_register_offset): Remove.
11597 * tree.h: Remove the corresponding prototype.
11598
11599 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11600
11601 * stor-layout.c (is_pending_size): Remove.
11602 * tree.h: Remove the corresponding prototype.
11603
11604 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11605
11606 * recog.c (validate_replace_src): Remove.
11607 * recog.h: Remove the corresponding prototype.
11608
11609 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11610
11611 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11612 MAYBE_REG_PARM_STACK_SPACE.
11613 * function.c: Likewise.
11614 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11615 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11616 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11617 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11618
11619 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11620
11621 * c-decl.c (c_expand_deferred_function): Remove.
11622 * c-tree.h: Remove the corresponding prototype.
11623
11624 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11625
11626 * postreload.c (reload_cse_move2add): Generate just a PLUS
11627 instead of an entire SET.
11628
11629 2004-02-26 Jan Hubicka <jh@suse.cz>
11630
11631 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11632 /pentium4m.
11633 * i386.c (override_options): Add support for new CPUs.
11634 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11635 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11636 constants.
11637 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11638
11639 2004-02-26 Bob Wilson <bob.wilson@acm.org>
11640
11641 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11642
11643 2004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
11644
11645 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11646 (sparc_emit_fixunsdi): New prototype.
11647 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11648 (sparc_emit_fixunsdi): New function.
11649 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11650 operand 1. Pass SFmode to sparc_emit_floatunsdi.
11651 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
11652 to sparc_emit_floatunsdi.
11653 (fixuns_truncsfdi2): New expander.
11654 (fixuns_truncdfdi2): Likewise.
11655
11656 2004-02-26 Alan Modra <amodra@bigpond.net.au>
11657
11658 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11659 unless HAVE_cc0.
11660
11661 2004-02-25 Richard Henderson <rth@redhat.com>
11662
11663 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11664 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11665 use (op0-op1) == 0 if op0 is a pointer.
11666 * config/alpha/alpha.md (cmpdi): Use some_operand.
11667 (three comparison combine splits): Remove.
11668
11669 2004-02-25 Richard Henderson <rth@redhat.com>
11670
11671 PR c/12794
11672 * c-common.c (handle_alias_attribute): Reject the attribute if
11673 current_function_decl is set.
11674
11675 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
11676
11677 * config.gcc: Add comment describing extra_gcc_objs.
11678 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11679 * configure.ac (extra_gcc_objs): New substitution variable.
11680 (host_extra_gcc_objs): Don't substitute.
11681 * configure: Regenerate.
11682 * Makefile.in: Use extra_gcc_objs.
11683
11684 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
11685
11686 * doc/contrib.texi: Add an entry for myself.
11687
11688 2004-02-25 Jan Hubicka <jh@suse.cz>
11689
11690 * basic-block.h (make_eh_edge, break_superblocks): Declare.
11691 * cfgbuild.c (make_eh_edge): Make global.
11692 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11693 * except.c (build_post_landing_pads, connect_post_landing_pads,
11694 dw2_build_landing_pads, sjlj_emit_function_enter,
11695 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11696 sjlj_build_landing_pads): Update CFG.
11697 (emit_to_new_bb_before): New function.
11698 (finish_eh_generation): Do not rebuild the CFG.
11699
11700 2004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11701
11702 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11703 target_cpu_default defines.
11704 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11705 * pa.h (TARGET_DEFAULT): Likewise.
11706
11707 2004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
11708
11709 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11710 comparisons with regard to signedness.
11711
11712 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
11713
11714 * arm.c (thumb_legitimize_address): New function.
11715 * arm-protos.h: Prototype it.
11716 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11717 (LEGITIMIZE_ADDRESS): Use it.
11718
11719 2004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
11720
11721 * reload1.c (reload): Only spill eliminable register with multiple
11722 adjacent elimination alternatives if all alternatives fail.
11723
11724 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
11725
11726 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11727 is -4095...+4095 inclusive.
11728
11729 2004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
11730
11731 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11732 the bootstrap failure with Sun CC 5.4 and 5.5.
11733
11734 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
11735
11736 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11737 which modifies NEWREG.
11738 (cse_condition_code_reg): Update the mode of CC_REG in
11739 CC_SRC_INSN on our own.
11740
11741 2004-02-24 Michael Matz <matz@suse.de>
11742
11743 * config/i386/i386.c (ix86_comp_type_attributes): Check for
11744 regparm attributes.
11745
11746 2004-02-24 Richard Henderson <rth@redhat.com>
11747
11748 * toplev.c (dump_file_tbl): Rename from dump_file.
11749 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11750 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11751 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11752 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11753 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11754 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11755 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11756 s/rtl_dump_file/dump_file/g.
11757
11758 2004-02-24 Aldy Hernandez <aldyh@redhat.com>
11759
11760 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11761 (spe_fixuns_truncsfsi2): Delete.
11762
11763 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11764 (fixuns_truncsfsi2): Delete.
11765
11766 2004-02-24 Josef Zlomek <zlomekj@suse.cz>
11767
11768 PR/14240
11769 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11770
11771 2004-02-24 Geoffrey Keating <geoffk@apple.com>
11772
11773 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11774
11775 2004-02-24 Jason Merrill <jason@redhat.com>
11776
11777 * tree.c (check_qualified_type): New fn.
11778 (get_qualified_type): Use it. If type already has the desired
11779 quals, just return it.
11780 * tree.h: Declare it.
11781
11782 2004-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
11783
11784 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11785 TARGET_SCHED_FINISH_GLOBAL): New macros.
11786
11787 * target.h (md_init_global, md_finish_global): Function
11788 declarations corresponding to new target macros.
11789
11790 * haifa-sched.c (sched_init, sched_finish): Allow target to
11791 call the new schedular hooks.
11792
11793 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11794 call to update_life_info.
11795
11796 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11797 flag_schedule_insns for SH4.
11798
11799 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11800 find_set_regmode_weight, find_insn_regmode_weight,
11801 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11802 sh_variable_issue, high_pressure, ready_reorder,
11803 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11804 functions used to throttle the insn movement in first
11805 scheduling pass for SH.
11806
11807 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11808 TARGET_SCHED_FINISH_GLOBAL.
11809
11810 2004-02-24 Alexandre Oliva <aoliva@redhat.com>
11811
11812 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11813 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
11814 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11815 symbols in sections named by the user.
11816 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
11817 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11818 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
11819 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11820 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11821 the above.
11822 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
11823 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11824 one more pseudo to further improve code generation.
11825 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
11826 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11827 inside UNSPEC.
11828 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
11829 * config/frv/frv.c (frv_legitimate_address_p): Added
11830 allow_double_reg_p argument. Adjust all callers. Use it to
11831 decide whether to enable double-register indirect addressing.
11832 (frv_funcdesc_alias_set): Remove.
11833 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11834 register. Emit movdi_ldd.
11835 (ldd_address_operand): New.
11836 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11837 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11838 (PREDICATE_CODES): Add ldd_address_operand.
11839 * config/frv/frv.md (movdi_ldd): New.
11840 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11841 intermediate computations if possible.
11842 (symGOTOFF2reg_i): Fix harmless typo.
11843 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
11844 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11845 relocated p_vaddr to vaddr type.
11846 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11847 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11848 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11849 MEM, or use a funcdesc alias set. Use regular move instead of
11850 ldd.
11851 (dbl_memory_one_insn_operand): Recognize function descriptors by
11852 type or by alias set, and don't split them.
11853 * config/frv/frv.md (call, call_value): Never use call_internal
11854 for fdpic.
11855 (call_internal, call_value_internal): Never match for FDPIC.
11856 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11857 call_value_fdpicsi): Require FDPIC.
11858 (ldd): Removed.
11859 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
11860 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11861 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11862 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11863 FDPIC. Compute data base address.
11864 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11865 before the other self-specs are processed.
11866 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11867 Build with -fPIC.
11868 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
11869 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11870 inhibit_libc is defined.
11871 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
11872 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11873 __FRV_FDPIC__.
11874 (__RELOC_POINTER): Define.
11875 (_Unwind_IteratePhdrCallback): Use it.
11876 * config/frv/frv.h (Twrite): Define.
11877 (TRANSFER_FROM_TRAMPOLINE): Use it.
11878 * config/frv/linux.h (INVOKE__main): Undefine.
11879 (Twrite): Override.
11880 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
11881 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11882 (-mlibrary-pic): Emphasize that this option generates EABI code.
11883 (-mcpu): Add fr550.
11884 (-mpack): Remove.
11885 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
11886 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11887 and CONSTs in FDPIC mode.
11888 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11889 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11890 * config/frv/frv.c (move_source_operand): Don't accept symbolic
11891 constants.
11892 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11893 rather than 'i' constraint for the 2-instruction alternative.
11894 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11895 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11896 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11897 EXTRA_CONSTRAINT_FOR_Y.
11898 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11899 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11900 (addsi3): Change 'Y' constraint to 'Q'.
11901 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
11902 * reload.c (CONST_POOL_OK_P): New macro.
11903 (find_reloads): Use it to decide whether a constant can be forced
11904 into memory.
11905 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11906 constant satisfies got12_operand.
11907 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11908 (frv_legitimate_address_p): Check for valid unspec offsets using
11909 got12_operand rather than frv_legitimate_fdpic_operand_p.
11910 (frv_legitimate_fdpic_operand_p): Delete.
11911 (frv_emit_movsi): Abort if we try to use the FDPIC register during
11912 or after reload.
11913 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11914 TARGET_FDPIC.
11915 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11916 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
11917 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11918 (frv_fdpic_fptr_operand): Don't declare here.
11919 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11920 rather than fdpic_got12_operand.
11921 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
11922 got12_operand and const_unspec_operand.
11923 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11924 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11925 (symbolic_operand): Remove.
11926 (const_unspec_operand): New predicate.
11927 * config/frv/frv.md (*movsi_got): Use got12_operand.
11928 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11929 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
11930 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11931 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11932 * config/frv/frv.c (frv_unspec): New structure.
11933 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11934 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11935 validate CONST indices. Use frv_output_const_unspec to print them.
11936 (frv_print_operand): Update call to unspec_got_name. Use
11937 frv_output_const_unspec to print constant unspecs.
11938 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11939 Reject UNSPECs otherwise.
11940 (unspec_got_name): Take the relocation number as argument, not an
11941 rtx containing it.
11942 (frv_output_addr_const_extra): Remove, replacing with...
11943 (frv_output_const_unspec): ...this new function.
11944 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11945 (gpr_or_int12_operand): Use fdpic_got12_operand.
11946 (dbl_memory_one_insn_operand): Likewise.
11947 (fdpic_got12_operand): Use frv_const_unspec_p.
11948 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11949 are already legitimate. Use frv_small_data_reloc_p when deciding
11950 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11951 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
11952 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11953 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
11954 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11955 label, for real this time.
11956 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11957 representation of visibility.
11958 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11959 such.
11960 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
11961 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11962 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11963 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11964 it was explicitly disabled.
11965 (frv_stack_info): There is no need to save the link register in every
11966 frame unless TARGET_LINKED_FP is true.
11967 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11968 frame pointer if the stack pointer might change value.
11969 (frv_return_addr_rtx): Check and process "count" argument.
11970 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
11971 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11972 (frv_find_base_term): Declare.
11973 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11974 (FIND_BASE_TERM): Define.
11975 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11976 small_data_register_operand, small_data_symbolic_operand. Add
11977 symbolic_operand.
11978 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11979 (frv_print_operand_memory_reference, output_move_single): Remove
11980 special handling for unlegitimized sdata addresses.
11981 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11982 and symbolic addresses.
11983 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11984 (frv_find_base_term): New function.
11985 (int_2word_operand): Check specifically for symbolic address constants.
11986 (pic_register_operand, pic_symbolic_operand): Delete.
11987 (small_data_register_operand, small_data_symbolic_operand): Delete.
11988 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11989 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11990 (move_source_operand): Only accept CONSTs if they're a two-insn
11991 symbolic constant.
11992 (fdpic_got12_operand): Don't require TARGET_FDPIC.
11993 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11994 using gen_symGOTOFF2reg*.
11995 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11996 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
11997 themselves a cost of 3 insns.
11998 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11999 Change predicate to symbolic_operand.
12000 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
12001 (*movsi_lda_sdata): Delete.
12002 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
12003 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
12004 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
12005 frv-*-*linux*.
12006 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
12007 label.
12008 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
12009 -multilib-library-pic.
12010 (LINK_SPEC): Add -z text for -mfdpic.
12011 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
12012 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
12013 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
12014 Override.
12015 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
12016 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
12017 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
12018 crtstuff-generated files.
12019 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
12020 * config.gcc: Add frv-*-*linux*.
12021 * config/frv/linux.h, config/frv/t-linux: New.
12022 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
12023 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
12024 when -mfdpic even if a linker script is explicitly listed.
12025 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
12026 * config/frv/frv.c (frv_override_options): Clear asm_out
12027 unaligned_op for SImode on FDPIC.
12028 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
12029 argument passed to decl_readonly_section.
12030 (frv_assemble_integer): Revert 2003-09-30's change, but make the
12031 whole block run with FDPIC even with -fno-PIC.
12032 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
12033 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
12034 symbol or label plus offset to memory.
12035 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
12036 GOTOFF and GPREL for LABEL_REF.
12037 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
12038 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
12039 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
12040 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
12041 * doc/invoke.texi: Document them.
12042 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
12043 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
12044 (frv_splittable_got_operand): Removed.
12045 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
12046 LO_SUM. Add comments.
12047 (frv_override_options): Moved enabling of FDPIC to
12048 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
12049 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
12050 (frv_legitimize_fdpic_address): Don't duplicate logic in
12051 frv_emit_movsi.
12052 (frv_gen_GPsym2reg): New.
12053 (unspec_got_name): Added gprel.
12054 (frv_expand_fdpic_call): Add support for inlining PLTs.
12055 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
12056 (gpr_or_int12_operand): Added GPREL12.
12057 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
12058 (small_data_symbolic_operand): Fail if FDPIC.
12059 (fdpic_splittable_got_operand): Removed.
12060 (fdpic_got12_operand): Added GPREL12.
12061 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
12062 when appropriate. Fix sdata GOTOFF.
12063 (frv_legitimate_constant_p): Require legitimate PIC operand for
12064 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
12065 (frv_assemble_integer): Move FDPIC funcdesc handling out of
12066 flag_pic case.
12067 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
12068 frv_assemble_integer fails.
12069 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
12070 (SUBTARGET_DRIVER_SELF_SPECS): New.
12071 (ASM_SPEC): Don't pass -mno-fdpic.
12072 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
12073 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
12074 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
12075 -multilib-library-pic.
12076 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
12077 condexec_si_media_operator, condexec_sf_add_operator and
12078 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
12079 and condexec_sf_unary_operator.
12080 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
12081 New.
12082 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
12083 movsi_internal. Give them internal names. movsi_got has type
12084 int.
12085 (fdpic got splitters): Remove.
12086 (symGPREL2reg, symGPREL2reg_hilo): New.
12087 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
12088 to -mlibrary-pic. Map -multilib-library-pic to it.
12089 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
12090 Document.
12091 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
12092 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
12093 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
12094 (frv_cannot_force_const_mem): New function.
12095 (const_small_data_p, plus_small_data_p): Update comments on sdata
12096 on FDPIC.
12097 (frv_override_options): Set flag_pie for FDPIC too.
12098 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
12099 call-saved registers on FDPIC.
12100 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
12101 don't force LR to be preserved.
12102 (frv_expand_prologue): Likewise.
12103 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
12104 (frv_frame_pointer_required): Don't force it just because the
12105 FDPIC register is used.
12106 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
12107 operand only if !condexec_p.
12108 (frv_legitimize_address): Return the FDPIC-legitimized address.
12109 Don't match small data here on FDPIC.
12110 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
12111 symbols. Use TRUE/FALSE instead of 1/0.
12112 (frv_local_funcdesc_p): New.
12113 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
12114 immediates when possible.
12115 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
12116 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
12117 an UNSPEC_GOT.
12118 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
12119 12-bit immediates when possible.
12120 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
12121 are not legitimate pic operands.
12122 (frv_in_small_data_p): Re-enable for FDPIC.
12123 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
12124 (FRV_GLOBAL_P): Removed.
12125 * config/frv/frv.md: Add modes to CONSTs.
12126 (movsi_got): New.
12127 (movsi_lo_sum_got): Use separate matches instead of match_dup.
12128 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
12129 (fdpic splittable operations): Match on flag_pic != 1.
12130 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
12131 * config/frv/frv.c (frv_asm_out_constructor,
12132 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
12133 bytes, not bits.
12134 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
12135 * config/frv/frv.c (frv_assemble_integer): Reject complex
12136 expressions referencing function SYMBOL_REFs.
12137 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
12138 (move_source_operand): Reject CONSTs that reference function
12139 SYMBOL_REFs on FDPIC.
12140 (frv_emit_movsi): If we get such a CONST, break it up.
12141 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
12142 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
12143 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
12144 MEM.
12145 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
12146 (frv_trampoline_size): Increase for FDPIC.
12147 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
12148 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
12149 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
12150 Disable use of GOTOFF for now.
12151 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
12152 Disable use of small data in FDPIC for now.
12153 (frv_asm_output_mi_thunk): Implement for FDPIC.
12154 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
12155 * config/frv/frv.c (frv_asm_out_constructor): Use
12156 frv_assemble_integer for FDPIC pointers.
12157 (frv_asm_out_destructor): Likewise.
12158 * config/frv/frv.md (ldd): Fix order of operands. Use
12159 address_operand for input.
12160 2003-09-18 DJ Delorie <dj@redhat.com>
12161 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
12162 (unspec_got_name): Correct typo.
12163 (frv_emit_movsi): Pre-expand splittable GOTs.
12164 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
12165 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
12166 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
12167 * config/frv/t-frv: Add -mfdpic multilibs.
12168 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
12169 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
12170 * config/frv/frv.c (frv_override_options): -mfdpic assumes
12171 flag_pic, default to 32-bit pics, require DWORD ops.
12172 (frv_override_options): Add W and Z constraints.
12173 (frv_expand_prologue): No pic prologue for -mfdpic.
12174 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12175 (frv_print_operand_memory_reference): Handle GOT constants.
12176 (frv_legitimate_address_p): Allow GOT constants.
12177 (frv_legitimize_address): Handle GOT addresses too.
12178 (frv_legitimate_fdpic_operand_p): New.
12179 (frv_legitimize_fdpic_address): New.
12180 (unspec_got_name): New.
12181 (frv_output_addr_const_extra): New.
12182 (frv_expand_fdpic_call): New.
12183 (frv_fdpic_fptr_operand): New.
12184 (gpr_or_int12_operand): Handle GOT operands.
12185 (int_2word_operand): Handle GOT operands.
12186 (fdpic_operand): New.
12187 (fdpic_splittable_got_operand): New.
12188 (fdpic_got12_operand): New.
12189 (frv_emit_movsi): Handle GOT operands.
12190 (frv_assemble_integer): -mfdpic doesn't use rofixups.
12191 (frv_print_operand): Support 'g' code for GOT operands.
12192 * config/frv/frv-protos.h: Add prototypes as needed.
12193 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12194 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12195 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12196 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12197 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12198 R_FRV_GOTOFFLO): New.
12199 (movsi_high_got, movsi_lo_sum_got): New.
12200 (*movsi_pic): Don't use this splitter for -mfdpic.
12201 (addsi3): Allow GOT references also.
12202 (call, call_value): Handle -mfdpic separately.
12203 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12204 call_value_fdpicsi): New.
12205 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12206 symGOTOFF2reg_i): New.
12207 * config/frv/frv.h (MASK_FDPIC): New.
12208 (TARGET_FDPIC): New.
12209 (TARGET_SWITCHES): Add -mfdpic.
12210 (FDPIC_FPTR_REGNO): New.
12211 (FDPIC_REGNO): New.
12212 (OUR_FDPIC_REG): New.
12213 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12214 FDPIC_CALL_REGS.
12215 (REG_CLASS_NAMES): Likewise.
12216 (REG_CLASS_CONTENTS): Likewise.
12217 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12218 (EXTRA_CONSTRAINT): Add it here.
12219 (FRV_GLOBAL_P): New.
12220 (OUTPUT_ADDR_CONST_EXTRA): New.
12221
12222 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
12223
12224 * config/sparc/sparc.h: Remove commented-out definitions of
12225 TARGET_EDOM and GEN_ERRNO_RTX.
12226
12227 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
12228
12229 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12230 df_analyse with df_analyze.
12231
12232 2004-02-24 Alan Modra <amodra@bigpond.net.au>
12233
12234 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12235 beginning of block.
12236
12237 2004-02-23 James E Wilson <wilson@specifixinc.com>
12238
12239 * calls.c (precompute_arguments): Update comment.
12240
12241 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12242
12243 * et-forest.c: Replace et_occurences with et_occurrences.
12244
12245 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12246
12247 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12248 with iv_analyze.
12249
12250 2004-02-23 Kelley Cook <kcook@gcc.gnu.org>
12251
12252 * config/i386/i386.c: Rename pni to sse3.
12253 * config/i386/i386.h: Likewise.
12254 * config/i386/i386.md: Likewise.
12255 * config/i386/pmmintrin.h: Likewise.
12256 * doc/extend.texi: Likewise.
12257 * doc/invoke.texi: Likewise.
12258
12259 2004-02-23 Zack Weinberg <zack@codesourcery.com>
12260 Kazu Hirata <kazu@cs.umass.edu>
12261
12262 Remove -fwritable-strings.
12263 * c-common.c (fix_string_type): Don't check
12264 flag_writable_strings.
12265 (fix_string_type): Likewise.
12266 * c-opts.c (set_std_c89): Don't initialize
12267 flag_writable_strings.
12268 (set_std_c99): Likewise.
12269 * common.opt (fwritable-strings): Remove.
12270 * flags.h: Remove the external declaration of
12271 flag_writable_strings.
12272 * opts.c (common_handle_option) <OPT_fwritable_strings>:
12273 Remove.
12274 * toplev.c (flag_writable_strings): Remove.
12275 (f_options): Remove an entry for writable-strings.
12276 * varasm.c (const_hash_1) <STRING_CST>: Don't check
12277 flag_writable_strings.
12278 (compare_constant) <STRING_CST>: Likewise.
12279 (build_constant_desc): Likewise.
12280 * config/darwin.c (machopic_select_section): Likewise.
12281 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12282 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12283 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12284 * config/mips/mips.c (mips_select_section): Likewise.
12285 (mips_encode_section_info): Likewise.
12286 * config/pa/pa.c (pa_select_section): Likewise.
12287 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12288 * config/v850/v850.c (v850_select_section): Likewise.
12289 * doc/invoke.texi (-fwritable-strings): Remove.
12290 (-fno-const-strings): Don't mention -fwritable-strings.
12291 * doc/trouble.texi: Don't mention -fwritable-strings.
12292
12293 2004-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
12294
12295 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12296
12297 2004-02-23 Dale Johannesen <dalej@apple.com>
12298
12299 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12300 (movdf_hardfloat64): Ditto.
12301 (movdf_softfloat64): Ditto.
12302
12303 2004-02-23 Fariborz Jahanian <fjahanian@apple.com>
12304 * config/rs6000/rs6000.c (function_arg): call to
12305 rs6000_mixed_function_arg for DFmode moved to allow
12306 normal DFmode incoming register assignment.
12307
12308 2004-02-23 Dale Johannesen <dalej@apple.com>
12309
12310 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12311 (movdf_hardfloat64): Ditto.
12312
12313 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12314
12315 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12316 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12317 copyright.
12318
12319 2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
12320
12321 PR c/14156
12322 * c-typeck.c (c_expand_return): Change check for VAR_DECL
12323 to use DECL_P instead.
12324
12325 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12326 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12327
12328 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12329
12330 * Makefile.in (opts.o): Depend on target.h.
12331 * opts.c (decode_options): Use targetm.default_short_enums
12332 instead of DEFAULT_SHORT_ENUMS.
12333 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12334 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12335 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12336 * target.h (gcc_target): Add default_short_enums.
12337 * config/cris/cris.h: Remove a comment about
12338 DEFAULT_SHORT_ENUMS.
12339 * config/ip2k/ip2k.h: Likewise.
12340 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12341 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
12342
12343 2004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
12344 Falk Hueffner <falk@debian.org>
12345
12346 PR c/14188
12347 * builtins.c (expand_builtin_va_arg): Emit an informative message
12348 if a trap is generated.
12349 * c-typeck.c (build_function_call): Likewise.
12350
12351 2004-02-22 Jakub Jelinek <jakub@redhat.com>
12352
12353 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12354 fopen.
12355 * libgcov.c: Include sys/stat.h.
12356 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12357 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12358 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12359 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12360
12361 2004-02-22 Kazu Hirata <kazu@cs.umass.edu>
12362
12363 * reorg.c: Remove comments about dead ports.
12364
12365 2004-02-22 Christopher Faylor <cgf@redhat.com>
12366
12367 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12368 extra host object file when targetting cygwin rather than generic
12369 object files.
12370
12371 2004-02-22 Josef Zlomek <zlomekj@suse.cz>
12372
12373 Merge from tree-ssa:
12374 2003-11-20 Richard Henderson <rth@redhat.com>
12375
12376 * tree-inline.c (insert_decl_map): New.
12377 (remap_decl, remap_type, remap_block, copy_body_r,
12378 initialize_inlined_parameters, declare_return_variable,
12379 remap_save_expr): Use it.
12380
12381 * function.c (copy_body_r): Add mapping from id->ret_label to
12382 id->ret_label. Revert test for ret_label.
12383
12384 2004-02-22 Jakub Jelinek <jakub@redhat.com>
12385
12386 * genoutput.c (process_template): Strip trailing whitespace in @
12387 templates and issue a warning if there was any.
12388
12389 2004-02-21 Christopher Faylor <cgf@redhat.com>
12390
12391 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12392 object file when targetting cygwin.
12393 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12394 overridden by top-level Makefile.
12395
12396 2004-02-21 Roger Sayle <roger@eyesopen.com>
12397
12398 * config/i386/i386.c (standard_80387_constant_p): Also prefer
12399 the x87's load constant instructions when optimizing for size.
12400
12401 2004-02-21 Kazu Hirata <kazu@cs.umass.edu>
12402
12403 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12404 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12405 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12406 * fold-const.c: Likewise.
12407 * simplify-rtx.c: Likewise.
12408
12409 2004-02-21 Alan Modra <amodra@bigpond.net.au>
12410
12411 * combine.c (can_combine_p): Don't ignore SETs marked with
12412 REG_EH_REGION notes.
12413 (try_combine): When attemting to fix unrecognized insns, don't
12414 split a PARALLEL that contains the original i2.
12415
12416 2004-02-21 Ziemowit Laski <zlaski@apple.com>
12417
12418 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12419 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12420 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12421 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12422 (vector, pixel, bool): #define to __vector, __pixel and __bool.
12423 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12424 portion of header.
12425 (__altivec_link_error_invalid_argument): Remove prototype; will use
12426 __builtin_altivec_compiletime_error("vec_*") instead.
12427 (vec_*): Fix/complete set of available operation overloads given the
12428 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12429 cv-correctness of pointer arguments; in C, always check for correct
12430 argument types before macro expansion.
12431 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12432 defining Darwin/PowerPC-specific '-f[no-]altivec' and
12433 '-W[no-]altivec-long-deprecated' switches.
12434 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12435 '__vector', '__pixel' and '__bool' macros using
12436 '__attribute__((altivec(...)))' types.
12437 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12438 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12439 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12440 New type nodes.
12441 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12442 handling '-W[no-]altivec-long-deprecated'.
12443 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12444 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12445 altivec_expand_dst_builtin): Remove casts from integer literals.
12446 (altivec_expand_builtin): Likewise; handle expansion of new
12447 '__builtin_altivec_compiletime_error' function.
12448 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12449 types, and make them distinct from other vector types; register
12450 '__builtin_altivec_compiletime_error' function.
12451 (print_operand): For 'P', print a full target register name instead of
12452 merely its number.
12453 (rs6000_attribute_table): Add "altivec" attribute.
12454 (rs6000_handle_altivec_attribute): New function.
12455 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
12456 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12457 maps to).
12458 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12459 declare.
12460 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12461
12462 2004-02-20 James E Wilson <wilson@specifixinc.com>
12463
12464 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12465 check.
12466 (shift_mix4left+2): Delete redundant pattern.
12467
12468 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12469
12470 * alias.c (OUTGOING_REGNO): Don't define the default.
12471 * builtins.c (OUTGOING_REGNO): Likewise.
12472 (INCOMING_REGNO): Likewise.
12473 (apply_args_register_offset): Always use OUTGOING_REGNO.
12474 * combine.c (OUTGOING_REGNO): Likewise.
12475 * sibcall.c (OUTGOING_REGNO): Likewise.
12476 * defaults.h (INCOMING_REGNO): Provide the default.
12477 (OUTGOING_REGNO): Likewise.
12478
12479 2004-02-21 Jan Hubicka <jh@suse.cz>
12480
12481 * params.def (max-peeled-insns, max-completely-peeled-insns,
12482 max-once-peeled-insns): Set to 400.
12483
12484 2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12485
12486 PR c++/12007
12487 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12488 are set for parameters before outputing debugging information.
12489
12490 2004-02-20 Falk Hueffner <falk@debian.org>
12491
12492 PR target/14201
12493 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12494 numbers.
12495
12496 2004-02-20 Per Bothner <per@bothner.com>
12497
12498 * input.h: Don't #include line-map.h. It may cause link problems
12499 with undefined linemap_line_start when line-map.h is included but
12500 line-map.o is not linked, as currently happens with gengtype on
12501 compilers that don't support inline.
12502 * toplev.c: So we do have to explicitly #include line-map.h here.
12503
12504 2004-02-20 Richard Henderson <rth@redhat.com>
12505
12506 * doc/invoke.texi: Add -Wvariadic-macros.
12507
12508 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12509
12510 * haifa-sched.c (sched_emit_insn): Remove.
12511 * sched-int.h: Remove the corresponding prototype.
12512
12513 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12514
12515 Revert:
12516 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12517 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12518 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12519 * config/cris/cris.h: Remove a comment about
12520 DEFAULT_SHORT_ENUMS.
12521 * config/ip2k/ip2k.h: Likewise.
12522 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12523
12524 2004-02-20 Mohan Embar <gnustuff@thisiscool.com>
12525 Tom Tromey <tromey@redhat.com>
12526
12527 * doc/install.texi: Moved --disable-libgcj and
12528 --with-system-zlib documentation to new section for
12529 Java-specific options.
12530 Added explicit Cross-Compiler-Specific Options subheading.
12531 Added section for Java-specific options.
12532
12533 2004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
12534
12535 * doc/install.texi (Building the Ada compiler): Remove
12536 example.
12537
12538 2004-02-20 James E Wilson <wilson@specifixinc.com>
12539
12540 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12541
12542 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12543
12544 * gcc.c (process_command): Allow translation of the copyright
12545 symbol but not the rest of the copyright message.
12546 * gcov.c (print_version): Likewise. Allow translation of the
12547 message about warranty.
12548
12549 2004-02-20 Hans-Peter Nilsson <hp@axis.com>
12550
12551 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12552 predicate.
12553 ("*andsi_clear"): Tweak constraints to not match postincrement.
12554 Adjust the predicate to exclude a volatile memory reference.
12555 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
12556 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12557
12558 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
12559
12560 * move-if-change: Remove.
12561 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12562 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12563 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12564 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12565 (s-gtyp-gen, s-iov): Use the top level move-if-change.
12566 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12567
12568 2004-02-19 James E Wilson <wilson@specifixinc.com>
12569
12570 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12571 for operand2. Add condition that requires register_operand operand2
12572 before reload.
12573
12574 2004-02-19 Richard Sandiford <rsandifo@redhat.com>
12575 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
12576
12577 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12578 * config/mips/mips.md: Expand comment above unaligned loads and stores.
12579
12580 2004-02-19 Richard Henderson <rth@redhat.com>
12581
12582 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12583 * tree.c (build0, build1, build2, build3, build4): Split out from...
12584 (build): ... here. Call them.
12585 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12586
12587 * convert.c (convert_to_integer): Remove extra build argument.
12588 * tree-inline.c (expand_call_inline): Likewise.
12589
12590 2004-02-19 Richard Henderson <rth@redhat.com>
12591
12592 * c-opts.c (warn_variadic_macros): New.
12593 (c_common_handle_option): Set it.
12594 (sanitize_cpp_opts): Copy it to cpp_opts.
12595 * c.opt (Wvariadic-macros): New.
12596 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12597 * cppinit.c (cpp_create_reader): Initialize it.
12598 * cppmacro.c (parse_params): Check it.
12599
12600 2004-02-19 David Daney <ddaney@avtrex.com>
12601
12602 PR preprocessor/14198
12603 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12604 builtin_assert ("machine=mips")
12605
12606 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12607
12608 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12609 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12610 * config/cris/cris.h: Remove a comment about
12611 DEFAULT_SHORT_ENUMS.
12612 * config/ip2k/ip2k.h: Likewise.
12613 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12614
12615 2004-02-19 Zack Weinberg <zack@codesourcery.com>
12616
12617 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12618 when passing single SFmode quantities in general registers,
12619 put them in the high half.
12620
12621 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
12622
12623 * doc/md.texi (Standard Names): Document additional dependency on
12624 fix pattern.
12625
12626 * optabs.c (ftruncify): Remove.
12627 (expand_fix): Manually inline ftruncify above.
12628 (can_fix_p): Add FIXME note.
12629
12630 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
12631
12632 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12633 spe_fixuns_truncsfsi2.
12634
12635 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12636 fixuns_truncsfsi2.
12637
12638 2004-02-19 Steve Ellcey <sje@cup.hp.com>
12639
12640 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12641 * testsuite/gcc.dg/20040219-1.c: New test.
12642
12643 2004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
12644
12645 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12646 "*subsf3_cconly"): Subtraction is not commutative.
12647
12648 2004-02-19 Zack Weinberg <zack@codesourcery.com>
12649
12650 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12651 (sdbout_symbol): If called before sdbout_init, queue DECL for
12652 later and return.
12653 (sdbout_init): Set sdbout_initialized true, process decls
12654 queued earlier by sdbout_symbol.
12655 (sdbout_finish): Use size_t for index variable.
12656
12657 2004-02-19 Jeff Law <law@redhat.com>
12658
12659 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12660 for unordered comparison codes.
12661
12662 2004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
12663
12664 * reload1.c (reload): Correct comment.
12665 (scan_paradoxical_subregs): Remove #if 0 and old comment.
12666 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12667 register variables are not used by reload.
12668
12669 2004-02-19 Hans-Peter Nilsson <hp@axis.com>
12670
12671 PR target/14209
12672 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12673 constraints to not match postincrement. Adjust the predicate to
12674 exclude a volatile memory reference.
12675
12676 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12677
12678 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12679
12680 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12681
12682 * hooks.c (hook_void_tree_int): Remove.
12683 (hook_void_constcharptr): Likewise.
12684 (hook_int_void_0): Likewise.
12685 * hooks.h: Remove the prototypes for the above three
12686 functions.
12687 * targhooks.c (hook_bool_machine_mode_true): Remove.
12688 * targhooks.h: Remove the prototype for
12689 hook_bool_machine_mode_true.
12690
12691 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12692
12693 * emit-rtl.c (subreg_realpart_p): Remove.
12694 (reorder_insns_with_line_notes): Likewise.
12695 (end_full_sequence): Likewise.
12696 * rtl.h: Remove the prototype for the above functions.
12697
12698 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12699
12700 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12701 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12702 config/iq2000/iq2000.h, config/m32r/m32r.h,
12703 config/pdp11/pdp11.h, config/sparc/sparc.h,
12704 config/xtensa/xtensa.h: Remove commented-out or useless
12705 definitions of CASE_VECTOR_PC_RELATIVE.
12706
12707 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12708
12709 * loop.c (all_sets_invariant_p): Remove.
12710
12711 2004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
12712
12713 PR target/12916
12714 * config/sparc/sparc.h (NPARM_REGS): Delete.
12715 (BASE_RETURN_VALUE_REG): Likewise.
12716 (BASE_OUTGOING_VALUE_REG): Likewise.
12717 (BASE_PASSING_ARG_REG): Likewise.
12718 (BASE_INCOMING_ARG_REG): Likewise.
12719 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12720 TARGET_ARCH64, not TARGET_V9.
12721 (function_arg_slotno): Dispatch based on the mode class.
12722 Handle vector modes like floating-point modes.
12723 (function_arg_record_value_1): Handle vector types like
12724 floating-point types.
12725 (function_arg_record_value_2): Likewise.
12726 Calculate regno after mode transformation.
12727 (function_arg): Handle vector modes like floating-point modes.
12728 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12729 If ARCH64, do not recheck alignment.
12730 (function_arg_pass_by_reference): Reorder the conditions.
12731 (sparc_return_in_memory): Move after function_arg_padding.
12732 Implement calling conventions for vector modes.
12733 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12734 (function_value): Move scope of 'regbase'.
12735 Implement calling conventions for vector modes.
12736 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12737 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12738 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12739 the argument is passed by reference.
12740 (sparc_type_code): Handle vector types.
12741
12742 2004-02-19 Alan Modra <amodra@bigpond.net.au>
12743
12744 * function.c (assign_parms): When building decl_rtl for
12745 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12746
12747 2004-02-19 Olivier Hainque <hainque@act-europe.fr>
12748
12749 * expr.c (is_aligning_offset): Check if we are aligning the
12750 expressions's address over BIGGEST_ALIGNMENT in bytes, not
12751 in bits.
12752
12753 2004-02-18 Matt Austern <austern@apple.com>
12754
12755 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12756 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12757 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12758 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12759 spec string.
12760 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12761
12762 2004-02-18 Zack Weinberg <zack@codesourcery.com>
12763
12764 * dwarf2out.c (loclabel_num): Move outside #ifdef
12765 DWARF2_DEBUGGING_INFO and mark with GTY(()).
12766 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12767 Mark with GTY(()).
12768 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12769 Allocate memory with ggc_alloc. No need to copy anything.
12770 (ia64_hpux_file_end): Update to match.
12771
12772 2004-02-18 Jakub Jelinek <jakub@redhat.com>
12773
12774 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12775 by default.
12776
12777 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
12778
12779 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12780 ("divmodtisi3"): Likewise.
12781 ("udivmoddi4", "udivmodtidi3"): Likewise.
12782 ("divmodsi4", "divmoddisi3"): Likewise.
12783 ("udivmodsi4", "udivmoddisi3"): Likewise.
12784 ("udivsi3", "umodsi3"): Likewise.
12785
12786 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
12787
12788 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12789 placeholder insn when chunkifying the pool.
12790
12791 2004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12792
12793 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12794 generating PIC code.
12795
12796 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12797
12798 * config/h8300/h8300-protos.h: Add a prototype for
12799 h8300_expand_branch.
12800 * config/h8300/h8300.c (h8300_expand_branch): New.
12801 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12802 bgtu, beq, bne): Call h8300_expand_branch().
12803
12804 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12805
12806 * config/h8300/h8300-protos.h: Add prototypes for
12807 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12808 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12809 (h8300_hard_regno_mode_ok): Likewise.
12810 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12811 h8300_hard_regno_nregs().
12812 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12813
12814 2004-02-18 Per Bothner <per@bothner.com>
12815
12816 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
12817 partly reverts my 2003-10-01 change, because we're back to logically
12818 including <command line> inside the main line.
12819 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
12820 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
12821 Fixes PR preprocessor/14103.
12822
12823 * cppfiles.c (_cpp_stack_include): When appropriate decrement
12824 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12825 (cpp_push_include): Don't need to increment pfile's line field.
12826 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
12827
12828 * c-ppoutput.c (print struct): New first_time field.
12829 (init_pp_output): Set print.first_time.
12830 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
12831 which is set also for (say) <command line>. Clear print.first_time.
12832
12833 * cppfiles.c (struct _cpp_file): Comment and type for pch field
12834 does not match the code, so fix both.
12835 (should_stack_file): Inline include_pch_p function.
12836 (include_pch_p): Remove pointless function.
12837
12838 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
12839
12840 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12841
12842 * config/h8300/h8300.md (four define_peephole2's): Use
12843 h8300_regs_ok_for_stm().
12844
12845 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12846
12847 * config/h8300/h8300-protos.h: Update the prototype for
12848 expand_a_rotate().
12849 * config/h8300/h8300.c (expand_a_rotate): Remove the first
12850 argument.
12851 * config/h8300/h8300.md: Update all callers.
12852
12853 2004-02-18 Jan Hubicka <jh@suse.cz>
12854
12855 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12856 floats.
12857 (simplify_binary_operation): Deal with logicals on floats.
12858
12859 * i386.md (SSE fabs splitters): Emit new patterns.
12860 (SSE cmov splitters): Likewise.
12861 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12862 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12863 subregs.
12864 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12865 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12866
12867 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12868
12869 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12870 by hand.
12871 (output_a_rotate): Tweak a comment.
12872 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12873 (*rotlhi3_1): Change to rotlhi3_1.
12874 (*rotlsi3_1): Change to rotlsi3_1.
12875
12876 2004-02-18 Richard Earnshaw <rearnsha@arm.com>
12877
12878 PR target/13866
12879 * arm.c (load_multiple_operation): Don't insist that the source reg
12880 of a post-increment component is the same as the destination.
12881 (store_multiple_operation): Likewise.
12882
12883 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12884
12885 * config/h8300/h8300.md: Move movsf patterns into one section
12886 of the file.
12887
12888 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12889
12890 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12891 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12892 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12893 config/mips/linux64.h, config/pa/pa-64.h,
12894 config/rs6000/aix51.h, config/rs6000/aix52.h,
12895 config/rs6000/spe.md, config/sparc/linux.h,
12896 config/sparc/linux64.h: Update copyright.
12897
12898 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12899
12900 * config/h8300/h8300.md: Move push patterns into one
12901 section of the file.
12902
12903 2004-02-18 Mark Mitchell <mark@codesourcery.com>
12904
12905 PR c++/11326
12906 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12907 fntype.
12908
12909 2004-02-18 Paul Brook <paul@codesourcery.com>
12910
12911 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12912
12913 2004-02-18 Paul Brook <paul@codesourcery.com>
12914
12915 PR debug/12934
12916 * dwarf2out.c (loc_descriptor_from_tree): Handle
12917 EXPR_WITH_FILE_LOCATION.
12918
12919 2004-02-18 Jakub Jelinek <jakub@redhat.com>
12920
12921 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12922 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12923 trailing whitespace from instructions.
12924
12925 2004-02-17 Geoffrey Keating <geoffk@apple.com>
12926
12927 * configure.ac: When generating auto-build.h, pass
12928 --enable-languages to the sub-configure.
12929 Put quotes around ${program_transform_name} when generating
12930 name of as, ld, nm, objdump.
12931 * configure: Regenerate.
12932
12933 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
12934
12935 * Makefile.in (s-check, s-config, s-conditions, s-flags)
12936 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12937 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12938 (s-preds, s-iov): Do not depend on move-if-change.
12939
12940 2004-02-17 James E Wilson <wilson@specifixinc.com>
12941
12942 * caller-save.c (insert_restore): Pass mem through copy_rtx.
12943 (insert_save): Likewise.
12944
12945 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12946
12947 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12948 warning.
12949
12950 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12951
12952 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12953 *one_cmplsi2_h8300.
12954 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12955
12956 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12957
12958 * config/h8300/h8300-protos.h: Update the prototype of
12959 fix_bit_operand().
12960 * config/h8300/h8300.c (fix_bit_operand): Remove the second
12961 argument "what".
12962 * config/h8300/h8300.md: Update all callers.
12963
12964 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12965
12966 * config/h8300/h8300.c (fix_bit_operand): Change the name of
12967 the last argument to "code" from "type".
12968
12969 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12970
12971 * config/h8300/h8300.c: Remove an extern declaration of
12972 rtx_equal_function_value_matters.
12973
12974 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12975
12976 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12977 by hand.
12978 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12979 (*iorqi3_1): Change to iorqi3_1.
12980 (*xorqi3_1): Change to xorqi3_1.
12981
12982 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12983
12984 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12985 typos.
12986
12987 2004-02-17 Jan Hubicka <jh@suse.cz>
12988
12989 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12990
12991 2004-02-18 Alan Modra <amodra@bigpond.net.au>
12992
12993 PR optimization/14119
12994 * combine.c (try_combine): When attemting to fix unrecognized insns,
12995 don't delete SETs marked with REG_EH_REGION notes.
12996
12997 2004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
12998
12999 * combine.c (simplify_if_then_else): Do not replace
13000 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
13001 modes differ.
13002
13003 2004-02017 Steven Bosscher <stevenb@suse.de>
13004
13005 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
13006 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
13007 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
13008 * ada/utils.c: Likewise.
13009 * cp/decl.c: Likewise.
13010 * f/com.c: Likewise.
13011 * java/class.c: Likewise.
13012
13013 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13014
13015 * config/h8300/h8300.md: Fix comment typos.
13016
13017 2004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13018
13019 * config/mips/t-iris6gld: Renamed to ...
13020 * config/mips/t-irix-gld: ... this.
13021 * config.gcc (mips-sgi-irix6*): Reflect this
13022 (mips-sgi-irix5*): Use it with GNU ld.
13023
13024 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
13025 to ...
13026 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
13027 * config/mips/t-irix-gld: Reflect this.
13028 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
13029
13030 * config/mips/iris5gld.h: New file.
13031 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
13032 Only use collect2 without gas.
13033
13034 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
13035 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
13036 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
13037 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
13038
13039 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
13040 * config/mips/iris5.h: ... here.
13041
13042 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
13043 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
13044 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
13045
13046 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
13047 using irix_startfile_spec, irix_endfile_spec.
13048
13049 2004-02-16 Gunther Nikl <gni@gecko.de>
13050
13051 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
13052
13053 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13054
13055 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
13056 insns by hand.
13057
13058 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13059
13060 * cfghooks.c (split_edge): Speed up updating of dominators.
13061
13062 2004-02-17 Mark Mitchell <mark@codesourcery.com>
13063
13064 PR c++/11326
13065 * c-common.c (flag_abi_version): Remove.
13066 * c-common.h (flag_abi_version): Likewise.
13067 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
13068 * c.opt (fabi-version): Remove.
13069 * calls.c (expand_call): Always pass a function type to
13070 struct_value_rtx. Use convert_memory_address.
13071 * common.opt (fabi-version): Add it.
13072 * flags.h (flag_abi_version): Likewise.
13073 (abi_version_at_least): New macro.
13074 * opts.c (common_handle_option): Add OPT_fabi_version.
13075 * toplev.c (flag_abi_version): Define it.
13076 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
13077 New function.
13078 (ia64_output_mi_thunk): Use it.
13079 (ia64_struct_value_rtx): Likewise.
13080
13081 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13082
13083 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
13084 Don't generate insns by hand.
13085
13086 2004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
13087
13088 PR c++/14178
13089 * doc/invoke.texi (fabi-version): The default is 2 now.
13090
13091 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13092
13093 * loop-iv.c: New file.
13094 * Makefile.in (loop-iv.o): New.
13095 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
13096 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
13097 num_loop_branches): New functions.
13098 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
13099 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
13100 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
13101 get_simple_loop_desc, free_simple_loop_desc): Declare.
13102 (simple_loop_desc): New inline function.
13103 (struct rtx_iv, struct niter_desc): New.
13104 * cfgloopmanip.c (loopify): Specify semantics more precisely.
13105 * expr.c (force_operand): Handle subregs of expressions created by
13106 loop unroller.
13107 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
13108 parts of the initialization to toplev.c
13109 * loop-unroll.c (loop_exit_at_end_p): New.
13110 (unroll_and_peel_loops): Call iv_analysis_done.
13111 (decide_peel_once_rolling, decide_peel_completely,
13112 decide_unroll_stupid, decide_unroll_constant_iterations,
13113 decide_unroll_runtime_iterations, decide_peel_simple,
13114 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
13115 unroll_loop_runtime_iterations): Use new simple loop analysis.
13116 * loop-unswitch.c (compare_and_jump_seq): New.
13117 (may_unswitch_on_p): Renamed to ...
13118 (may_unswitch_on): Use new iv analysis.
13119 (reversed_condition): Export.
13120 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
13121 * predict.c (estimate_probability): Use new simple loop analysis.
13122 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
13123 canon_condition, simplify_using_condition): Declare.
13124 * stor-layout.c (get_mode_bounds): New.
13125 * toplev.c (rest_of_handle_loop2): Some parts of
13126 initialization/finalization moved here from loop-init.c.
13127
13128 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13129
13130 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
13131 pointer.
13132 (CALL_USED_REGISTERS): Likewise.
13133 (REG_ALLOC_ORDER): Likewise.
13134 (REG_CLASS) <GENERAL_REGS>: Likewise.
13135
13136 2004-02-16 Geoffrey Keating <geoffk@apple.com>
13137
13138 * doc/md.texi (Insn Canonicalizations): Document left-chaining
13139 in associative operators.
13140 * rtlanal.c (commutative_operand_precedence): Create some new
13141 variables. Prefer a commutative operand on the left, then
13142 binary expressions, then NEG and NOT.
13143
13144 2004-02-16 Matthias Klose <doko@debian.org>
13145
13146 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
13147 in terms of SHLIB_SOVERSION.
13148 * config/m68k/t-slibgcc-elf-ver: New file.
13149 * config/pa/t-slibgcc-elf-ver: New file.
13150 * config.gcc (m68k-linux, parisc-linux): Use them when not
13151 sjlj exceptions are not configured.
13152
13153 2004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
13154
13155 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
13156
13157 2004-02-16 Zack Weinberg <zack@codesourcery.com>
13158
13159 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
13160
13161 2004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
13162
13163 * doc/sourcebuild.texi: Mention backends.html.
13164
13165 2004-02-16 Kazu Hirata <kazu@cs.umass.edu>
13166
13167 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
13168 line-map.c, line-map.h, var-tracking.c: Fix comment
13169 formatting.
13170
13171 2004-02-16 Richard Henderson <rth@redhat.com>
13172
13173 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13174
13175 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
13176
13177 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13178
13179 * config/h8300/h8300.md: Remove unnecessary parallels from
13180 all define_insn and define_split patterns.
13181
13182 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13183
13184 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13185 "clobber").
13186
13187 2004-02-15 Bernardo Innocenti <bernie@develer.com>
13188
13189 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13190 '%#'.
13191
13192 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13193
13194 * config/ia64/ia64.c, config/mips/mips.c,
13195 config/mmix/mmix-modes.def: Fix comment typos.
13196
13197 2004-02-15 Roger Sayle <roger@eyesopen.com>
13198
13199 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13200 (get_directive_line): Remove unused function prototype.
13201
13202 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
13203
13204 * tree-inline.c (copy_body_r): Do not replace ret_label.
13205
13206 2004-02-14 Jan Hubicka <jh@suse.cz>
13207
13208 * i386.c (x86_four_jump_limit): New variable.
13209 (k8_avoid_jump_misspredicts): Rename to ...
13210 (ix86_avoid_jump_misspredicts): .. this one.
13211 (ix86_pad_returns): Break out from ...
13212 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13213 to.
13214 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13215
13216 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
13217
13218 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13219 PARALLEL is NULL.
13220
13221 2004-02-14 Per Bothner <per@bothner.com>
13222
13223 * fix-header.c (line_table): Move local variable in main to global.
13224 * scan.h (line_table): Use it.
13225 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
13226 line (recently renamed to src_loc) before calling recognized_function.
13227
13228 2004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
13229
13230 * Makefile.in: Fix comment typos.
13231
13232 2004-02-14 Olivier Hainque <hainque@act-europe.fr>
13233
13234 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13235 for start_value when it is directly moved into reg, and factorize
13236 the retrieval of GET_MODE (reg).
13237
13238 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
13239
13240 * config/mips/mips-protos.h (mips_load_got_page): Delete.
13241 (mips_load_got_global): Delete.
13242 (mips_gotoff_page): Declare.
13243 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13244 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13245 UNSPEC_LOAD_GOT pattern rather than a MEM.
13246 (*load_got[sd]i): New patterns.
13247 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13248 (mips_load_got_page, mips_load_got_global): Delete.
13249 (mips_gotoff_page): New function.
13250 (override_options): Don't initialize mips_got_alias_set.
13251
13252 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
13253
13254 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13255 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13256 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13257 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13258 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13259 * config/mips/mips.c: Fix some overly-long lines.
13260 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13261 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13262
13263 2004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13264
13265 * configure.ac: Search for as, ld below libexec/gcc.
13266 * configure: Regenerate.
13267
13268 2004-02-14 Ben Elliston <bje@wasabisystems.com>
13269
13270 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13271 __builtin_arm_setwcx ().
13272 * config/arm/arm.c (arm_expand_builtin): Generate operands
13273 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13274
13275 2004-02-14 Ben Elliston <bje@wasabisystems.com>
13276
13277 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13278 and "wmuluh" to "wmulsm" and "wmulum", respectively.
13279 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13280 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13281 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13282 (_mm_mulhi_pu16): Likewise.
13283
13284 2004-02-13 Zack Weinberg <zack@codesourcery.com>
13285
13286 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13287 DECL_NAME != 0 before dereferencing.
13288
13289 2004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
13290
13291 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13292 (s390_output_addr_const_extra): Declare.
13293 (s390_output_pool_entry): Remove FILE * argument.
13294 * config/s390/s390.c (s390_output_symbolic_const): Remove.
13295 (s390_output_addr_const_extra): New function.
13296 (print_operand_address): Call output_addr_const instead of
13297 s390_output_symbolic_const.
13298 (print_operand): Likewise.
13299 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13300 Remove FILE * argument.
13301 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13302 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13303 call.
13304
13305 2004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13306
13307 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13308 (struct edge, struct vertex, struct graph): New.
13309 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13310 free_graph): New functions.
13311
13312 2004-02-12 Chris Demetriou <cgd@broadcom.com>
13313
13314 * config/mips/mips.md (casesi_internal, casesi_internal_di):
13315 Use ".set macro" to avoid warnings about multi-instruction
13316 macros, since they're intentional.
13317
13318 2004-02-12 Geoffrey Keating <geoffk@apple.com>
13319
13320 * config/darwin.h: Add include guards. Remove old, now incorrect,
13321 comment about STANDARD_EXEC_PREFIX.
13322
13323 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13324 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
13325 for installing .1 manpages. Add rules for installing cpp
13326 and gcov manpages under their installed names.
13327
13328 2004-02-12 Alexandre Oliva <aoliva@redhat.com>
13329
13330 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13331 host, but try LD_FOR_TARGET first.
13332 * configure: Rebuilt.
13333
13334 2004-02-12 Zack Weinberg <zack@codesourcery.com>
13335
13336 * dbxout.c: Move declaration of dbxout_type_decl outside
13337 #ifdef DBX_DEBUGGING_INFO.
13338 * c-parse.in: Don't give the asmdef production a type.
13339
13340 2004-02-12 Zack Weinberg <zack@codesourcery.com>
13341
13342 * debug.h (struct gcc_debug_hooks): Add type_decl field.
13343 (debug_nothing_tree_int): Prototype.
13344 (dwarf_debug_hooks): Delete, unused.
13345 * debug.c (do_nothing_debug_hooks): Update.
13346 (debug_nothing_tree_int): New function.
13347 * langhooks.h (struct lang_hooks_for_decls):
13348 Remove builtin_type_decls field.
13349 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13350 (LANG_HOOKS_DECLS): Update.
13351 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13352 Use debug_hooks->type_decl.
13353 * dbxout.c (preinit_symbols): New static.
13354 (dbx_debug_hooks, xcoff_debug_hooks): Update.
13355 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13356 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
13357 for symbols to output.
13358 (dbxout_type_decl): New function.
13359 (dbxout_symbol): If called before dbxout_init has run, queue
13360 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13361 to TYPE_DECLs before emitting them.
13362 * xcoffout.c (assign_type_number): Delete.
13363 (xcoff_type_numbers): New static table.
13364 (xcoff_assign_fundamental_type_number): New function.
13365 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13366 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
13367 * sdbout.c: Include varray.h.
13368 (deferred_global_decls): New static.
13369 (sdb_debug_hooks): Update.
13370 (sdbout_global_decl): If we can't emit something right now,
13371 remember it in deferred_global_decls.
13372 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13373 (sdbout_init): Initialize deferred_global_decls.
13374 * Makefile.in: Update dependencies of sdbout.o.
13375 * dwarf2out.c (dwarf2out_type_decl): New function.
13376 (dwarf2_debug_hooks): Update.
13377 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13378 * c-decl.c (getdecls): Just return 0.
13379 (check_for_loop_decls): Don't use getdecls.
13380 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13381 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13382
13383 2004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
13384
13385 * config/s390/s390.c (s390_sched_reorder2): Remove.
13386 (TARGET_SCHED_REORDER2): Do not redefine.
13387
13388 2004-02-12 Zack Weinberg <zack@codesourcery.com>
13389
13390 * c-parse.in (maybe_type_qual): Delete.
13391 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13392 (asm_argument): New grammar rules.
13393 (extdef_1): Use asmdef.
13394 (maybeasm): Move down with other asm rules; use simple_asm_expr.
13395 (xexpr): Move up with other expression rules.
13396 (stmt): Use asm_stmt.
13397
13398 * c-typeck.c (build_asm_expr): New function - body mostly
13399 pulled from build_asm_stmt.
13400 (build_asm_stmt): Just handle tacking on the volatile qualifier.
13401 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13402
13403 2004-02-12 Richard Sandiford <rsandifo@redhat.com>
13404
13405 PR bootstrap/13617
13406 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13407 (mips_declare_object): Make variadic.
13408 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13409 mips_output_aligned_decl_common.
13410 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13411 (mips_declare_object): Make variadic.
13412
13413 2004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13414
13415 * function.c (update_epilogue_consts): Teach about binary operations.
13416
13417 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13418 previous MEM_VOLATILE in REF.
13419 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13420 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13421
13422 2004-02-12 Gunther Nikl <gni@gecko.de>
13423
13424 * config.gcc: Restore support for m68k-openbsd.
13425
13426 2004-02-12 Jan Hubicka <jh@suse.cz>
13427
13428 * tree-optimize.c (tree_rest_of_compilation): Do not release
13429 DECL_ARGUMENTS.
13430
13431 2004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
13432
13433 * doc/install.texi: Fix the spelling of "explicitly".
13434
13435 2004-02-11 Eric Christopher <echristo@redhat.com>
13436
13437 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13438 duplicate argument structure of cpp_interpret_string.
13439 * cpphash.h: Move prototype...
13440 * cpplib.h: Here.
13441 * cpplib.c: Fix calls to match new function signature.
13442
13443 2004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
13444
13445 PR c/456
13446 * cppexp.c (num_binary_op): Don't allow comma operators in #if
13447 constant expressions at all outside C99 mode if pedantic.
13448
13449 2004-02-11 Uros Bizjak <uros@kss-loka.si>
13450
13451 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13452 (log10_optab, log2_optab): Define corresponding macros.
13453 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13454 * genopinit.c (optabs): Implement log10_optab and log2_optab
13455 using log10?f2 and log2?f2 patterns.
13456 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13457 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13458 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13459 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13460
13461 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13462 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13463 log2, log2f and log2l built-ins as inline x87 intrinsics.
13464
13465 2004-02-11 Richard Henderson <rth@redhat.com>
13466
13467 PR target/1532
13468 * flow.c (insn_dead_p): A clobber of a dead hard register is a
13469 dead insn after reload.
13470
13471 2004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
13472
13473 * tree.h (frame_base_decl): Add GTY marker.
13474 * var-tracking.c (frame_base_decl): Likewise.
13475
13476 2004-02-11 Daniel Berlin <dberlin@dberlin.org>
13477
13478 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13479 incorrect, hunk.
13480 (add_location_or_const_value_attribute): Use text_section_label,
13481 not TEXT_SECTION_NAME.
13482
13483 2004-02-11 Per Bothner <per@bothner.com>
13484
13485 Represent column numbers using line-map's source_location.
13486 The "next available source_location" is now managed internally by
13487 line-maps.c rather than by clients.
13488 * line-map.h (struct line_map): New field column_bits.
13489 <from_line>: Rename field to start_location.
13490 (struct line_maps): New fields highest_location and max_column_hint.
13491 (linemap_check_files_exited): New declaration.
13492 (linemap_line_start): New declaration.
13493 (linemap_add): Remove from_line parameter; use highest_location field.
13494 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
13495 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
13496 (CURRENT_LINE_MAP): Remove macro.
13497 (linemap_position_for_column): New inline function.
13498 * line-map.c (linemap_init): Clear new fields.
13499 (linemap_check_files_exited): New function, extracted from ...
13500 (linemap_free): Use linemap_check_files_exited.
13501 (linemap_add): Remove from_line parameter. Various updates.
13502 (linemap_line_start): New function.
13503 (linemap_lookeup): Update for new field names.
13504 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
13505 linemap_position_for_column may unpredictably change the current map,
13506 it is cleaner and simpler for us to not cache it in cpp_reader.
13507 (struct cpp_buffer): New sysp field.
13508 Changed warned_cplusplus_comments and from_stage3 to bitfields.
13509 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
13510 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
13511 current map using linemap_lookup.
13512 (do_linemarker): Also set buffer's sysp field.
13513 (destringize_and_run): No longer need to decrement current line.
13514 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
13515 (search_path_head, open_file_failed): Use buffer's sysp.
13516 (cpp_make_system_header): Get current map using linemap_lookup.
13517 Also set buffer's sysp flag.
13518 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
13519 * cpphash.h (CPP_INCREMENT_LINE): New macro.
13520 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
13521 (struct cpp_reader): ... and adding saved_line_base field.
13522 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13523 Update accordingly. Don't adjust line.
13524 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
13525 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
13526 (cpp_in_system_header): ... new inline function, using buffer's sysp.
13527 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
13528 * cpplex.c (_cpp_lex_direct): Likewise.
13529 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
13530 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
13531 * cpplib.h (struct cpp_token): Rename line field to src_loc.
13532 Remove col field as it is now subsumed by src_loc.
13533 * cpperror.c: Update various field, parameter, and macro names.
13534 (print_location): If col==0, try SOURCE_COLUMN of line.
13535 (cpp_error): Use cur_token's src_loc field, rather than line+col.
13536 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
13537 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13538 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
13539 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
13540 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
13541 (_cpp_lex_direct): Use linemap_position_for_column.
13542 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
13543 parameter. Instead get it from the line_table global. Adjust callers.
13544 (print): Remove map field. Replace line field to src_line.
13545 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
13546 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
13547 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
13548 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13549 * cpptrad.c (copy_comment): Rename variable.
13550 * c-lex.c (map): Remove static variable, for same reason we removed
13551 cpp_reader's map field.
13552 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
13553 to call linemap_lookup.
13554 (cb_line_change): Token's line field replaced by src_loc.
13555 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
13556 Don't save new_map.
13557
13558 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
13559 source_location.
13560
13561 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
13562
13563 * config/rs6000/altivec.md (*movv4si_internal): At least one
13564 operand must be register_operand.
13565 (*movv8hi_internal1): Likewise.
13566 (*movv16qi_internal1): Likewise.
13567 (*movv4sf_internal1): Likewise.
13568
13569 2004-02-10 Aldy Hernandez <aldyh@redhat.com>
13570
13571 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13572 operand.
13573 (movv4hi_internal): Same.
13574 (movv2sf_internal): Same.
13575 (movv1di_internal): Same.
13576
13577 2004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
13578
13579 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
13580 TARGET_OLDABI consistently.
13581 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13582 mips_va_arg,override_options,compute_frame_size,
13583 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13584 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
13585 and TARGET_OLDABI consistently.
13586 * config/mips/mips.md (exception_receiver): Likewise.
13587 * config/mips/linux64.h: Likewise.
13588
13589 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
13590
13591 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13592 Set AltiVec ABI and vrsave as default for ppc64 linux.
13593 (init_cumulative_args): Post error, if try to return
13594 value in AltiVec register without enable AltiVec.
13595 (function_arg_advance): Ditto for passing arguments.
13596
13597 2004-02-11 Richard Sandiford <rsandifo@redhat.com>
13598
13599 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13600 a label before updating its usage count.
13601
13602 2004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
13603
13604 * doc/install.texi: Remove extra cd.
13605
13606 2004-02-10 Ziemowit Laski <zlaski@apple.com>
13607
13608 * c-common.c (vector_size_helper): Remove; call
13609 reconstruct_complex_type() instead.
13610 * tree.c (reconstruct_complex_type): New function
13611 (formerly vector_size_helper() in c-common.c).
13612 (make_vector): Make externally visible.
13613 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13614
13615 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
13616
13617 * config/h8300/h8300-protos.h: Add a prototype for
13618 h8300_regs_ok_for_stm.
13619 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13620 * config/h8300/h8300.md (stm_h8300s_2_advanced,
13621 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13622 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13623 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13624 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13625 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13626 ldm_h8300s_4_normal, ldm_h8300s_4): Use
13627 h8300_regs_ok_for_stm().
13628
13629 2004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
13630
13631 PR c/14088
13632 * real.c (real_from_string): Look for 'X' as well as 'x' in
13633 hexfloat strings.
13634
13635 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
13636
13637 * config/h8300/h8300.md: Remove an incorrect comment about
13638 peephole2. Add comments.
13639
13640 2004-02-10 Josef Zlomek <zlomekj@suse.cz>
13641
13642 PR/14058
13643 * emit-rtl.c (set_decl_incoming_rtl): New.
13644 * tree.h (set_decl_incoming_rtl): New.
13645 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13646 DECL_INCOMING_RTL.
13647 * ada/misc.c (adjust_decl_rtl): Likewise.
13648
13649 2004-02-10 Per Bothner <per@bothner.com>
13650
13651 * c-opts.c (c_common_post_options): Don't emit working directory
13652 in cpp output if -P was specified.
13653
13654 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
13655
13656 PR c/14092
13657 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13658 negate_expr back to the original type.
13659
13660 2004-02-10 Alan Modra <amodra@bigpond.net.au>
13661
13662 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13663 bump retaddr here.
13664
13665 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
13666
13667 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13668 gen_lowpart_SUBREG): Move under the file in which they
13669 are actually declared.
13670
13671 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>
13672
13673 * doc/sourcebuild.texi: Add libada documentation.
13674
13675 * doc/install.texi: Update documentation on Ada build, now
13676 that the GNAT lib and tools are built automatically.
13677
13678 2004-02-10 Richard Sandiford <rsandifo@redhat.com>
13679
13680 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13681 && TARGET_IRIX.
13682
13683 2004-02-09 Ziemowit Laski <zlaski@apple.com>
13684
13685 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13686 boundaries outside build_component_ref() call (a macro in ObjC++).
13687
13688 2004-02-09 Bob Wilson <bob.wilson@acm.org>
13689
13690 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13691 (init_cumulative_args): Likewise.
13692 (a7_overlap_mentioned_p): Delete prototype.
13693 * config/xtensa/xtensa.c (struct machine_function): Replace
13694 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13695 Add set_frame_ptr_insn field.
13696 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13697 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13698 if the operand is an argument in a7. If so, copy a7 to a new pseudo
13699 at the function entry and replace the operand with the pseudo.
13700 (init_cumulative_args): Remove unused arguments. Add new "incoming"
13701 argument and record this flag in CUMULATIVE_ARGS.
13702 (function_arg): Remove result_mode and special-case code to handle
13703 arguments in a7. Instead, set need_a7_copy flag when there is an
13704 incoming argument in a7.
13705 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13706 and use the value recorded in cfun->machine->set_frame_ptr_insn.
13707 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
13708 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
13709 special-case code.
13710 (a7_overlap_mentioned_p): Delete.
13711 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13712 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13713 arguments to init_cumulative_args and pass "incoming" flag instead.
13714 (BLOCK_REG_PADDING): Delete.
13715 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13716 checks for reload_in_progress and reload_completed. Update calls to
13717 xtensa_copy_incoming_a7.
13718 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
13719 to call xtensa_copy_incoming_a7.
13720
13721 2004-02-09 DJ Delorie <dj@redhat.com>
13722
13723 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13724 longer modify standard_exec_prefix, standard_bindir_prefix, or
13725 standard_startfile_prefix.
13726
13727 2004-02-09 James E Wilson <wilson@specifixinc.com>
13728
13729 PR c++/11295
13730 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13731 to expand_expr_real call, and pass in alt_rtl as last argument.
13732
13733 PR libstdc++/5625
13734 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13735 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13736 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13737 * except.c (expand_builtin_extend_pointer): New.
13738 * except.h (expand_builtin_extend_pointer): Declare.
13739
13740 2004-02-09 David Edelsohn <edelsohn@gnu.org>
13741
13742 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13743 unaligned loads and stores.
13744
13745 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13746
13747 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13748 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13749
13750 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13751 * config/mips/iris5.h: ... here.
13752 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13753
13754 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13755 * config/mips/iris5.h: ... here.
13756
13757 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13758
13759 * configure.ac: Remove default executable files before AC_PROG_CC.
13760 * configure: Regenerate.
13761
13762 2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
13763
13764 PR target/13721
13765 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13766 print a operand other than a register.
13767
13768 2004-02-09 Roger Sayle <roger@eyesopen.com>
13769
13770 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13771 tree code rather than call fold_convert, which doesn't specify a
13772 default floating point to integer conversion.
13773
13774 2004-02-08 Bernardo Innocenti <bernie@develer.com>
13775
13776 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13777 code to support SGS assembler. Reformat adjacent code where possible.
13778 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13779 definition.
13780 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13781 for '%#'.
13782 * config/m68k/linux.h, config/m68k/m68k.c,
13783 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13784 macros and asm_printf() format strings.
13785 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13786 * config/m68k/linux.h: Update copyright.
13787 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13788
13789 2004-02-08 Andreas Schwab <schwab@suse.de>
13790 Bernardo Innocenti <bernie@develer.com>
13791
13792 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13793 REGISTER_PREFIX.
13794 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13795 frame pointer register, overridable by OS targets.
13796 * (M68K_REGNAME): Macro to obtain register name for asm output,
13797 eventually replacing %a6 with M68K_FP_REG_NAME.
13798 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13799 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13800 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13801 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13802 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13803
13804 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
13805
13806 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13807 hook_rtx_tree_int_null.
13808 * targhooks.c (default_struct_value_rtx): Remove.
13809 * targhooks.h: Remove the prototype for
13810 default_struct_value_rtx.
13811 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13812 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13813 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13814 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13815 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13816 config/rs6000/rs6000.c, config/s390/s390.c,
13817 config/stormy16/stormy16.c, config/v850/v850.c,
13818 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13819 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13820
13821 2004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
13822
13823 * README.Portability: Change "ISO C89" to "ISO C90".
13824 * c-parse.in (primary, initelt): Likewise.
13825
13826 2004-02-08 Richard Sandiford <rsandifo@redhat.com>
13827
13828 * real.c (encode_ibm_extended): Normalize the input value before
13829 converting it to a double. Handle the case where a normal value
13830 rounds to infinity.
13831
13832 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
13833
13834 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13835 warning.
13836 * cse.c (preferrable): Change to preferable. Update all of its
13837 callers.
13838 * genautomata.c (ainsn): Change
13839 first_ainsn_with_given_equialence_num to
13840 first_ainsn_with_given_equivalence_num. Update all of its
13841 references.
13842
13843 2004-02-08 Jan Hubicka <jh@suse.cz>
13844
13845 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13846
13847 2004-02-07 David Edelsohn <edelsohn@gnu.org>
13848
13849 * function.c (assign_parms): Fix formatting.
13850
13851 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13852
13853 * default.h (PROMOTE_PROTOTYPES): Remove.
13854 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13855 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13856 EXPAND_BUILTIN_SAVEREGS): Poison.
13857 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13858 hook_bool_tree_false.
13859 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13860 * target.h: Replace SETUP_INCOMING_VARARGS with
13861 targetm.calls.setup_incoming_varargs().
13862 * targhooks.c (default_promote_function_return): Remove.
13863 (default_promote_prototypes): Likewise.
13864 (default_struct_value_rtx): Always abort().
13865 (default_expand_builtin_saveregs): Always print an error
13866 message.
13867 (default_setup_incoming_varargs): Do nothing.
13868 (default_pretend_outgoing_varargs_named): Don't depend on
13869 SETUP_INCOMING_VARARGS.
13870 * targhooks.h: Remove the prototype for
13871 default_promote_function_return and
13872 default_promote_prototypes.
13873
13874 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13875
13876 * system.h (SHARED_SECTION_ASM_OP): Poison.
13877 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13878 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13879
13880 2004-02-07 Zack Weinberg <zack@codesourcery.com>
13881
13882 Bug 13856
13883 * c-decl.c (diagnose_mismatched_decls): Only give special
13884 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13885 is also true.
13886 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13887 DECL_FUNCTION_CODE when defining a built-in function.
13888 Don't update DECL_ESTIMATED_INSNS.
13889 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13890 FUNCTION_DECLs.
13891 * tree.h: Delete DECL_ESTIMATED_INSNS.
13892 * tree-inline.c (struct inline_data): Delete inlined_insns field.
13893 (expand_call_inline, optimize_inline_calls): Don't update
13894 DECL_ESTIMATED_INSNS nor inlined_insns.
13895 * cgraphunit.c (cgraph_analyze_function): Don't update
13896 DECL_ESTIMATED_INSNS.
13897
13898 2004-02-07 Zack Weinberg <zack@codesourcery.com>
13899
13900 * c-common.c (shadow_warning): Delete.
13901 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13902 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13903 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13904 * c-parse.in (free_parser_stacks): Delete.
13905
13906 2004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
13907
13908 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13909 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13910 Use the top level mkinstalldirs, not the one in the gcc subdir.
13911 * mkinstalldirs: Remove (from the gcc subdir).
13912
13913 2004-02-07 Roger Sayle <roger@eyesopen.com>
13914
13915 PR middle-end/13696
13916 * fold-const.c (fold_convert): New function to provide type
13917 conversion to the middle-end without using convert.
13918 (negate_expr, associate_trees, size_diffop, omit_one_operand,
13919 operand_equal_for_comparison_p, pedantic_omit_one_operand,
13920 invert_truthvalue, optimize_bit_field_compare, range_binop,
13921 decode_field_reference, make_range, build_range_check, unextend,
13922 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13923 fold_binary_op_with_conditional_arg, fold_inf_compare,
13924 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13925 convert with calls to fold_convert.
13926
13927 2004-02-07 Jan Hubicka <jh@suse.cz>
13928
13929 * genrecog.c (find_operand): add extra argument stop.
13930 (validate_pattern): Verify that mach_dup is duplicating operand
13931 defined lexically earlier.
13932
13933 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13934
13935 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13936 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13937 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13938 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13939 config/ia64/ia64.h, config/ip2k/ip2k.h,
13940 config/iq2000/iq2000.h, config/mips/iris5.h,
13941 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13942 config/rs6000/aix51.h, config/rs6000/aix52.h,
13943 config/rs6000/darwin.h, config/rs6000/rs6000.h,
13944 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13945 config/sparc/linux.h, config/sparc/linux64.h,
13946 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13947 config/xtensa/xtensa.h: Remove the definitions of
13948 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13949 MAX_WCHAR_TYPE_SIZE.
13950 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13951 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13952
13953 2004-02-07 Stephane Carrez <stcarrez@nerim.fr>
13954
13955 PR bootstrap/13990
13956 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13957 gen_rtx_NE.
13958
13959 2004-02-07 Josef Zlomek <zlomekj@suse.cz>
13960
13961 * var-tracking.c (vt_add_function_parameters): Surround checkings by
13962 #ifdef ENABLE_CHECKING and #endif.
13963
13964 2004-02-07 Roger Sayle <roger@eyesopen.com>
13965
13966 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13967 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13968 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13969 integer types and floating point with unsafe_math_optimizations.
13970 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13971 Optimize A - B as A + (-B), if B is easily negated.
13972
13973 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13974
13975 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13976 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13977 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13978 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13979 Update copyright.
13980
13981 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13982
13983 * c-ppoutput.c, var-tracking.c: Fix comment typos.
13984
13985 2004-02-06 James E Wilson <wilson@specifixinc.com>
13986
13987 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13988 glibc 2.3 or better.
13989
13990 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13991
13992 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13993 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13994
13995 2004-02-07 Alan Modra <amodra@bigpond.net.au>
13996
13997 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13998 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13999 (SHLIB_MKMAP_OPTS): Delete.
14000 (TARGET_LIBGCC2_CFLAGS): Add -specs.
14001 (bispecs): Add rule.
14002 * config/rs6000/libgcc-ppc64.ver: New file.
14003 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
14004 (__floatdidf, __floatdisf): Optimize multiply.
14005 (__fixunstfdi): New function.
14006 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
14007 real and imag parts larger than one register.
14008 (function_arg): Correct type of reg used when fp arg split partially
14009 to stack.
14010 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
14011 and __MACH__ or __powerpc64__.
14012
14013 2004-02-06 Roger Sayle <roger@eyesopen.com>
14014 Ulrich Weigand <uweigand@de.ibm.com>
14015
14016 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
14017 of gen_highpart or gen_lowpart when the floating point format is
14018 wider than the result mode.
14019
14020 2004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
14021
14022 * dwarf2out.c (loclabel_num): Move into #ifdef
14023 DWARF2_DEBUGGING_INFO.
14024
14025 2004-02-06 Ziemowit Laski <zlaski@apple.com>
14026
14027 * objc/objc-act.c (build_super_template) the 'class' field of
14028 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
14029 (get_super_receiver): Likewise.
14030
14031 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14032
14033 * reload1.c (check_eliminable_occurrences): Optimize the reset
14034 of can_eliminate.
14035 (eliminate_regs_in_insn): Likewise.
14036
14037 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
14038 Josef Zlomek <zlomekj@suse.cz>
14039
14040 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
14041 at the beginning of function, call dwarf2out_var_location for
14042 NOTE_INSN_VAR_LOCATION note.
14043 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
14044 decl_loc_table): New.
14045 (lookup_decl_loc): New function.
14046 (add_var_loc_to_decl): New function.
14047 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
14048 only if can_use_fbreg.
14049 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
14050 functions.
14051 (loc_descriptor): Likewise. Process VAR_LOCATION.
14052 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
14053 (loc_descriptor_from_tree): Call mem_loc_descriptor with
14054 can_use_fbreg == true.
14055 (add_location_or_const_value_attribute): Added parameter enum
14056 dwarf_attribute attr, generate attribute ATTR. Create the location list.
14057 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
14058 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
14059 with attr == DW_AT_location.
14060 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
14061 if frame_base_decl is defined and has a location list.
14062 (gen_variable_die): Call add_location_or_const_value_attribute with
14063 attr == DW_AT_location.
14064 (dwarf2out_var_location): New function.
14065 (dwarf2out_begin_function): New function.
14066 (dwarf2out_init): Create decl_loc_table.
14067
14068 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14069
14070 * loop.c (force_movables): Transitively increase the priorities of
14071 all insns forces by an insn, not just the first one.
14072
14073 2004-02-06 Josef Zlomek <zlomekj@suse.cz>
14074 Daniel Berlin <dberlin@dberlin.org>
14075
14076 Josef Zlomek <zlomekj@suse.cz>
14077 * Makefile.in (var-tracking.o): New.
14078 * common.opt (fvar-tracking): New.
14079 * flags.h (flag_var_tracking): New.
14080 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
14081 * opts.c (common_handle_option): Add OPT_fvar_tracking.
14082 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
14083 * rtl.c (note_insn_name): Likewise.
14084 * rtl.def (VAR_LOCATION): New.
14085 * rtl.h (NOTE_VAR_LOCATION): New.
14086 (NOTE_VAR_LOCATION_DECL): New.
14087 (NOTE_VAR_LOCATION_LOC): New.
14088 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
14089 (variable_tracking_main): New exported function.
14090 * timevar.def (TV_VAR_TRACKING): New.
14091 * toplev.c (enum dump_file_index): Added DFI_vartrack.
14092 (dump_file): "vartrack" was added (-dV).
14093 (flag_var_tracking): New.
14094 (f_options): "var-tracking" was added.
14095 (rest_of_handle_variable_tracking): New function.
14096 (rest_of_compilation): Run variable tracking.
14097 (process_options): If user has not specified flag_var_tracking set it
14098 according to optimize, debug_info_level and debug_hooks.
14099 * tree.h (frame_base_decl): New.
14100 * var-tracking.c: New file.
14101 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
14102 (ia64_override_options): Set flags to run variable tracking in machine
14103 dependent reorg instead of toplev.c.
14104 (ia64_reorg): Run variable tracking if wanted.
14105 * doc/invoke.texi: Mention variable tracking in -dV,
14106 add and -fvar-tracking.
14107 * doc/passes.texi: Added variable tracking pass.
14108
14109 Daniel Berlin <dberlin@dberlin.org>
14110 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
14111 * dbxout.c (dbx_debug_hooks): Likewise.
14112 (xcoff_debug): Likewise.
14113 * debug.c (do_nothing_debug_hooks): Likewise.
14114 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14115 * dwarfout.c (dwarf_debug_hooks): Likewise.
14116 * sdbout.c (sdb_debug_hooks): Likewise.
14117 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14118 * final.c (final_scan_insn): Call var_location debug hook for each
14119 NOTE_INSN_VAR_LOCATION.
14120
14121 2004-02-06 Jan Hubicka <jh@suse.cz>
14122
14123 * flow.c (update_life_info): Allocate reg_deaths when called from
14124 scheudler.
14125 (attempt_auto_inc): Update life ranges accordingly.
14126
14127 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14128
14129 PR debug/11816
14130 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
14131
14132 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14133
14134 * cfganal.c (flow_call_edges_add): Never split a libcall block.
14135
14136 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
14137
14138 * dwarf2out.c (output_loc_list): Don't use deltas if we have
14139 a separate line info table in use.
14140 Use the correct size for terminators.
14141 (output_die): Use offset, not delta.
14142
14143 2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
14144
14145 * doc/invoke.texi: Remove the pni option from -mfpmath=.
14146
14147 2004-02-06 Jan Hubicka <jh@suse.cz>
14148
14149 * recog.c (split_all_insns): Do not update reg info.
14150 * regrename.c (regrename_optimize): Likewise.
14151 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
14152 * flow.c (struct propagate_block_info): Add insn_num field.
14153 (reg_deaths): New array.
14154 (life_analysis): Free reg_deaths info.
14155 (allocate_reg_life_data): Allocate reg_deaths array.
14156 (propagate_one_insn): Use new array.
14157 (init_propagate_block): Initialize it.
14158 (free_propagate_block_info): Finish compuation of
14159 REG_LIVE_LENGTH
14160 (attempt_auto_inc): Sanity check that REG_INFO is not
14161 computed at same time.
14162 (mark_used_regs): Update new array.
14163
14164 * reg-stack.c (subst_stack_regs): Unshare clobbers before
14165 substitution.
14166
14167 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14168
14169 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
14170 *extendqisi2_short_displ.
14171
14172 2004-02-06 Alan Modra <amodra@bigpond.net.au>
14173
14174 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14175 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14176 (emit_library_call_value_1): Likewise pass nargs.
14177 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14178 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14179 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14180 parameter instead of scanning TYPE_ARGS_TYPES to count args.
14181 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14182 prototype.
14183 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14184 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14185 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14186 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14187 INIT_CUMULATIVE_ARGS.
14188 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14189 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14190 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14191 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14192 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14193 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14194 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14195 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14196 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
14197 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
14198 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14199 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14200
14201 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14202
14203 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14204 possible.
14205
14206 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14207
14208 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14209 note containing (plus (reg) (const_int)), where reg is an
14210 eliminable reg, then perform the register elimination without
14211 depending on eliminate_regs().
14212
14213 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14214
14215 * config/arc/arc.c (arc_return_in_memory): Check the return
14216 value of int_size_in_bytes against -1. Don't check
14217 TREE_ADDRESSABLE.
14218 * config/avr/avr.c (avr_return_in_memory): Check the return
14219 value of int_size_in_bytes against -1.
14220 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14221 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14222 Likewise.
14223 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14224 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14225 Likewise.
14226
14227 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14228
14229 * config/frv/frv-protos.h: Remove the prototype for
14230 frv_setup_incoming_varargs.
14231 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14232 (frv_setup_incoming_varargs): Make it static.
14233 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14234
14235 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14236
14237 * config/fr30/fr30-protos.h: Remove the prototype for
14238 fr30_setup_incoming_varargs.
14239 Update the prototypes for fr30_num_arg_regs and
14240 fr30_function_arg_partial_nregs.
14241 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14242 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14243 (fr30_setup_incoming_varargs): Make it static.
14244 Add argument second_time. Don't do anything when second_time
14245 is nonzero.
14246 (fr30_num_arg_regs): Change the type of the first argument to
14247 enum machine_mode.
14248 (fr30_function_arg_partial_nregs): Change the type of the
14249 second argument to enum machine_mode.
14250 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14251 (SETUP_INCOMING_VARARGS): Remove.
14252
14253 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14254
14255 * config/arc/arc-protos.h: Remove the prototype for
14256 arc_setup_incoming_varargs.
14257 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14258 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14259 (arc_setup_incoming_varargs): Make it static.
14260 (arc_external_libcall): Likewise.
14261 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14262 Remove the commented-out definition of
14263 ASM_OUTPUT_EXTERNAL_LIBCALL.
14264
14265 2004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
14266
14267 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14268 to $$(slibdir) in the installation commands.
14269
14270 2004-02-05 David Edelsohn <edelsohn@gnu.org>
14271
14272 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14273 with inner_regno, not regno.
14274 * rtlanal.c (refers_to_regno_p): Same.
14275
14276 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14277
14278 * config.gcc: Remove i370 support.
14279
14280 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14281
14282 * doc/install.texi: Update automake and autoconf version
14283 requirements. Note where to find gcj automake version.
14284
14285 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14286
14287 * Makefile.in (generate-manpages): Move dependencies to ...
14288 (man): here.
14289 * doc/makefile.texi: Document new targets.
14290 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14291
14292 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14293
14294 PR/13485
14295 Makefile.in (srcextra): Add a level of indirection to ...
14296 (gcc.srcextra): ... here.
14297 (po-generated): Delete.
14298 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
14299 options.c.
14300 (start.encap): Remove superfluous lang.srcextra dependency.
14301 objc/Make-lang.in (po-generated): Delete.
14302
14303 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14304
14305 * config/ia64/ia64.c (REG_GP): Remove.
14306
14307 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14308
14309 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14310
14311 2004-02-05 Devang Patel <dpatel@apple.com>
14312
14313 * dwarf2out.c (force_type_die): Look up input type itself
14314 instead of root_type() of type.
14315
14316 2004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
14317
14318 * config/s390/s390.md ("*tmqidi_ext"): New insn.
14319 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14320 pre-reload splitters are transformed to post-reload
14321 define_insn_and_split patterns.
14322 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14323
14324 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14325
14326 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14327 TARGET_PROMOTE_PROTOTYPES.
14328
14329 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14330
14331 PR middle-end/13750
14332 Revert:
14333 2004-01-15 Geoffrey Keating <geoffk@apple.com>
14334 PR pch/13361
14335 * c-typeck.c (constructor_asmspec): Delete.
14336 (struct initializer_stack): Delete field 'asmspec'.
14337 (start_init): Delete saving of asmspec.
14338 (finish_init): Don't update constructor_asmspec.
14339 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14340 * stmt.c (expand_asm): Duplicate strings from tree.
14341 (expand_asm_operands): Likewise.
14342 * tree.c (tree_size): Update computation of size of STRING_CST.
14343 (make_node): Don't make STRING_CST nodes.
14344 (build_string): Allocate string with tree node.
14345 * tree.def (STRING_CST): Update comment.
14346 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14347 (tree_string): Place contents of string in tree node.
14348 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14349 from tree.
14350
14351 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
14352
14353 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14354 msgid.
14355
14356 2004-02-05 Dorit Naishlos <dorit@il.ibm.com>
14357
14358 * config/rs6000/altivec.md (*movv4si_internal): At least one
14359 operand must be altivec_register_operand.
14360 (*movv8hi_internal1): Likewise.
14361 (*movv16qi_internal1): Likewise.
14362 (*movv4sf_internal1): Likewise.
14363
14364 2004-02-05 David Edelsohn <edelsohn@gnu.org>
14365
14366 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14367 * configure: Regenerate.
14368
14369 2004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
14370
14371 * doc/install.texi: Update description of --gxx-include-dir to
14372 give correct default value.
14373
14374 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14375
14376 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14377 8 with MAC_REG.
14378
14379 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14380
14381 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14382 gen_rtx_PARALLEL.
14383
14384 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14385
14386 * emit-rtl.c: Update the comment about the file.
14387
14388 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
14389
14390 * sourcebuild.texi (Test Idioms): Update testcase naming
14391 conventions.
14392
14393 2004-02-04 Per Bothner <per@bothner.com>
14394
14395 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14396 * c-ppoutput.c (pp_dir_change): New function.
14397 * c-common.h (pp_dir_change): New declaration.
14398 * cpplib.h (struct cpp_options): Remove working_directory field.
14399 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
14400 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
14401 Don't handle -fworking_directory here, but in c_common_post_options.
14402 (read_original_directory): Don't back up when done.
14403 Don't clear no-longer used working_directory flag.
14404 * cpplib.h: Update declarations to match.
14405 * c-lex.c (cb_dir_change): Move to c-opts.c.
14406 (init_c_lex): Don't set dir_change callback here, since we want
14407 to set it even if flag_preprocess_only.
14408 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
14409 (c_common_post_options): Set dir_change callback.
14410 Call pp_dir_change if approporiate.
14411 (finish_options): Don't call cpp_find_main_file here. Hence remove
14412 unneeded parameter and result. Do LC_RENAME for <built-in>.
14413 (c_common_post_options): Call cpp_read_main_file here instead.
14414 (c_common_init): Update accordingly.
14415 (push_command_line_include): Don't cpp_push_main_file.
14416 Do LC_RENAME rather than LC_LEASE to get back to main file.
14417 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14418 (c_common_parse_file): Call cpp_read_main_file for subsequent main
14419 files, but call finish_options for all files.
14420 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
14421 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
14422 cpp_find_main_file + cpp_push_main_file.
14423 * c-lex.c (fe_file_change): Don't set main_input_filename here.
14424 * opts.c (handle_options): Only set main_input_filename first time.
14425
14426 2004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
14427
14428 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14429
14430 2004-02-04 Geoffrey Keating <geoffk@apple.com>
14431
14432 * reload.c (find_equiv_reg): When checking for register overlap,
14433 don't index hard_regno_nregs with a pseudo-reg.
14434
14435 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
14436
14437 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14438
14439 2004-02-04 David Edelsohn <edelsohn@gnu.org>
14440
14441 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14442 against FIRST_PSEUDO_REGISTER.
14443
14444 2004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14445
14446 * Makefile.in: Move target, host overrides after per-language
14447 fragments.
14448
14449 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14450 (GNATLIBCFLAGS): Remove -g.
14451
14452 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14453
14454 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14455 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14456 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14457 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14458 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14459 config/sparc/sparc.c, config/vax/vax.c: Revert the
14460 replacements of "FALLTHRU" with "Fall through" done in the
14461 previous patch.
14462
14463 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14464
14465 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14466 config/arm/arm.c, config/arm/arm.md,
14467 config/cris/cris-protos.h, config/fr30/fr30.c,
14468 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14469 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14470 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14471 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14472 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14473 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14474 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14475 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14476 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14477 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14478 config/s390/s390.md, config/sparc/netbsd-elf.h,
14479 config/sparc/openbsd.h, config/sparc/sparc.c,
14480 config/xtensa/lib2funcs.S: Fix comment formatting.
14481
14482 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14483
14484 * config/alpha/alpha.c, config/arc/arc.c,
14485 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14486 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14487 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14488 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14489 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14490 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14491 config/iq2000/iq2000.c, config/m32r/m32r.c,
14492 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14493 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14494 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14495 config/rs6000/rs6000.h, config/sparc/sparc.c,
14496 config/vax/vax.c: Fix comment typos. Follow spelling
14497 conventions.
14498
14499 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14500
14501 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14502 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14503 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14504 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14505 config/arm/fpa.md, config/arm/iwmmxt.md,
14506 config/arm/netbsd-elf.h, config/arm/netbsd.h,
14507 config/m68hc11/m68hc11.md, config/mips/iris5.h,
14508 config/mn10300/mn10300.md, config/rs6000/altivec.md,
14509 config/sparc/netbsd-elf.h: Update copyright.
14510
14511 2004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
14512
14513 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14514 for all modes whose size is greater than 8 bytes if ARCH32.
14515 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14516 by reference if ARCH32.
14517
14518 2004-02-04 Aldy Hernandez <aldyh@redhat.com>
14519
14520 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
14521
14522 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
14523
14524 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14525 to before adddi3 insn patterns.
14526 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14527 "reload_insi"): Move to before addsi3 insn patterns.
14528
14529 2004-02-04 Mark Mitchell <mark@codesourcery.com>
14530
14531 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14532 parameter. Use it instead of current_function_is_thunk.
14533 * function.h (struct function): Update documentation for is_thunk.
14534 * tree.h (CALL_FROM_THUNK_P): New macro.
14535 * config/alpha/alpha.c (alpha_sa_mask): Do not check
14536 no_new_pseudos when testing current_function_is_thunk.
14537 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14538
14539 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14540
14541 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14542 TARGET_SETUP_INCOMING_VARARGS.
14543
14544 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14545
14546 * emit-rtl.c (gen_rtx): Remove.
14547 * genattrtab.c: Don't mention gen_rtx in a comment.
14548 * rtl.h: Remove the prototype for gen_rtx.
14549 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14550
14551 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14552
14553 * config/arc/arc.h, config/fr30/fr30.h
14554 (SETUP_INCOMING_VARARGS): Remove the target-independent
14555 comments.
14556 * doc/tm.texi: Don't mention deprecated target macros.
14557
14558 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14559
14560 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14561 target-independent comment.
14562
14563 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14564
14565 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14566 mention deprecated target macros.
14567
14568 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14569
14570 * config.gcc: Remove obsolete ports and configurations.
14571 * config/linux-aout.h, config/netware.h,
14572 config/t-linux-gnulibc1, config/d30v/abi,
14573 config/d30v/d30v-protos.h, config/d30v/d30v.c,
14574 config/d30v/d30v.h, config/d30v/d30v.md,
14575 config/d30v/libgcc1.asm, config/d30v/t-d30v,
14576 config/dsp16xx/dsp16xx-modes.def,
14577 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14578 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14579 config/i370/README, config/i370/i370-c.c,
14580 config/i370/i370-protos.h, config/i370/i370.c,
14581 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14582 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14583 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14584 config/i386/moss.h, config/i386/netware.h,
14585 config/i386/svr3.ifile, config/i386/svr3dbx.h,
14586 config/i386/svr3gas.h, config/i386/svr3z.ifile,
14587 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14588 config/i960/i960-c.c, config/i960/i960-coff.h,
14589 config/i960/i960-modes.def, config/i960/i960-protos.h,
14590 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14591 config/i960/rtems.h, config/i960/t-960bare,
14592 config/m68k/hp310.h, config/m68k/hp320.h,
14593 config/m68k/hp320base.h, config/m68k/m68kv4.h,
14594 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14595 Remove.
14596 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14597 doc/md.texi: Remove mentions of obsolete ports.
14598
14599 2004-02-04 Jan Hubicka <jh@suse.cz>
14600
14601 * alias.c (find_base_term, get_addr): Do not dereference NULL
14602 pointer when all VALUE's locations has been invalidated.
14603 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14604
14605 2004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
14606
14607 * doc/invoke.texi (x86 options): Fix spelling/wording.
14608
14609 2004-02-03 Richard Sandiford <rsandifo@redhat.com>
14610
14611 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14612 put the original string in a comment.
14613 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14614 * config/mips/mips.c (mips_output_ascii): Likewise.
14615 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14616
14617 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14618
14619 * system.h (GIV_SORT_CRITERION): Poison.
14620 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14621 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14622
14623 2004-02-03 Roger Sayle <roger@eyesopen.com>
14624
14625 PR target/9348
14626 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
14627 multiplies with a multiplication of the wrong signedness, its the
14628 signedness of the multiplication that we've performed that needs to
14629 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
14630 if expand_mult_highpart_adjust places the result in target.
14631
14632 2004-02-03 Richard Henderson <rth@redhat.com>
14633
14634 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14635
14636 2004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
14637
14638 * config.gcc (sh[234]l): Use little endian fragments.
14639
14640 2004-02-03 Paul Koning <pkoning@equallogic.com>
14641
14642 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14643 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14644 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14645 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14646 floating point format.
14647 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14648 the above functions.
14649 (output_move_quad): Output float values in correct target format.
14650 (legitimate_const_double_p): New function.
14651 * config/pdp11/pdp11.h: Fix typos.
14652 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14653 (TARGET_FLOAT_FORMAT): Ditto.
14654 (pdp11_f_format, pdp11_d_format): Add external declarations.
14655 (MAX_REGS_PER_ADDRESS): Corrected.
14656 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14657 (PRINT_OPERAND): Output float literals in target format.
14658
14659 2004-02-03 Mark Mitchell <mark@codesourcery.com>
14660
14661 PR c++/13975
14662 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14663 TI_PRIVATE.
14664 (access_public_node): Redefine.
14665 (access_protected_node): Likewise.
14666 (access_private_node): Likewise.
14667 * tree.c (build_common_tree_nodes): Create access_public_node,
14668 access_protected_node, and access_private_node.
14669
14670 2004-02-03 Steve Ellcey <sje@cup.hp.com>
14671
14672 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14673 (MASK_INLINE_INT_DIV_THR): Ditto.
14674 (MASK_INLINE_SQRT_LAT): Ditto.
14675 (MASK_INLINE_SQRT_THR): Ditto.
14676 (MASK_DWARF2_ASM): Ditto.
14677 (MASK_EARLY_STOP_BITS): Ditto.
14678
14679 2004-02-02 Paul Brook <paul@codesourcery.com>
14680
14681 Merge from csl-arm-branch.
14682
14683 2004-01-30 Paul Brook <paul@codesourcery.com>
14684
14685 * aof.h (REGISTER_NAMES): Add vfp reg names
14686 (ADDITIONAL_REGISTER_NAMES): Ditto.
14687 * aout.h (REGISTER_NAMES): Ditto.
14688 (ADDITIONAL_REGISTER_NAMES): Ditto.
14689 * arm-protos.h: Update/Add Prototypes.
14690 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14691 Only allow 0.0 for VFP.
14692 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
14693 (values_fp): Rename from values_fpa. Update Users.
14694 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14695 Update users. Only check valid constants for this hardware.
14696 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
14697 Only allow consts for FPA.
14698 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
14699 Only allow consts for FPA.
14700 (use_return_insn): Check for saved VFP regs.
14701 (arm_legitimate_address_p): Handle VFP DFmode addressing.
14702 (arm_legitimize_address): Ditto.
14703 (arm_general_register_operand): New function.
14704 (vfp_mem_operand): New function.
14705 (vfp_compare_operand): New function.
14706 (vfp_secondary_reload_class): New function.
14707 (arm_float_compare_operand): New function.
14708 (vfp_print_multi): New function.
14709 (vfp_output_fstmx): New function.
14710 (vfp_emit_fstm): New function.
14711 (arm_output_epilogue): Output VPF reg restore code.
14712 (arm_expand_prologue): Output VFP reg save code.
14713 (arm_print_operand): Add 'P'.
14714 (arm_hard_regno_mode_ok): Return modes for VFP regs.
14715 (arm_regno_class): Return classes for VFP regs.
14716 (arm_compute_initial_elimination_offset): Include space for VFP regs.
14717 (arm_get_frame_size): Ditto.
14718 * arm.h (FIXED_REGISTERS): Add VFP regs.
14719 (CALL_USED_REGISTERS): Ditto.
14720 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14721 (FIRST_VFP_REGNUM): Define.
14722 (LAST_VFP_REGNUM): Define.
14723 (IS_VFP_REGNUM): Define.
14724 (FIRST_PSEUDO_REGISTER): Include VFP regs.
14725 (HARD_REGNO_NREGS): Handle VFP regs.
14726 (REG_ALLOC_ORDER): Add VFP regs.
14727 (enum reg_class): Add VFP_REGS.
14728 (REG_CLASS_NAMES): Ditto.
14729 (REG_CLASS_CONTENTS): Ditto.
14730 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14731 (REG_CLASS_FROM_LETTER): Add 'w'.
14732 (EXTRA_CONSTRAINT_ARM): Add 'U'.
14733 (EXTRA_MEMORY_CONSTRAINT): Define.
14734 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14735 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14736 (REGISTER_MOVE_COST): Ditto.
14737 (PREDICATE_CODES): Add arm_general_register_operand,
14738 arm_float_compare_operand and vfp_compare_operand.
14739 * arm.md (various): Rename as above.
14740 (divsf3): Enable when TARGET_VFP.
14741 (divdf3): Ditto.
14742 (movdfcc): Ditto.
14743 (sqrtsf2): Ditto.
14744 (sqrtdf2): Ditto.
14745 (arm_movdi): Disable when TARGET_VFP.
14746 (arm_movsi_insn): Ditto.
14747 (movsi): Only split with general regs.
14748 (cmpsf): Use arm_float_compare_operand.
14749 (push_fp_multi): Restrict to TARGET_FPA.
14750 (vfp.md): Include.
14751 * vfp.md: New file.
14752 * fpa.md (various): Rename as above.
14753 * doc/md.texi: Document ARM w and U constraints.
14754
14755 2004-01-15 Paul Brook <paul@codesourcery.com>
14756
14757 * config.gcc: Add with_fpu. Allow with-float=softfp.
14758 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14759 Break out of loop when we find a float-abi. Fix typo.
14760 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14761 Set -mfloat-abi=.
14762 * doc/install.texi: Document --with-fpu.
14763
14764 2003-01-14 Paul Brook <paul@codesourcery.com>
14765
14766 * config.gcc (with_arch): Add armv6.
14767 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14768 * config/arm/arm.c (arm_overrride_options): Ditto.
14769
14770 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
14771
14772 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14773 (FL_ARCH6): Renamed from FL_ARCH6J.
14774 (arm_arch3m): Renamed from arm_fast_multiply.
14775 (arm_arch6): Renamed from arm_arch6j.
14776 * arm.h: Update all uses of above.
14777 * arm-cores.def: Likewise.
14778 * arm.md: Likewise.
14779
14780 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14781 not arm6j. Add entry for arch armv6.
14782
14783 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
14784
14785 * arm.c (arm_emit_extendsi): Delete.
14786 * arm-protos.h (arm_emit_extendsi): Delete.
14787 * arm.md (zero_extendhisi2): Also handle zero-extension of
14788 non-subregs.
14789 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14790 (thumb_zero_extendhisi2): Only match if not v6.
14791 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14792 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14793 (thumb_extendqisi2): Likewise.
14794 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14795 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14796 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14797 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14798 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14799 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14800 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
14801 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14802 (arm_extendqisi2addsi): Likewise.
14803
14804 2003-12-31 Mark Mitchell <mark@codesourcery.com>
14805
14806 Revert this change:
14807 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14808 + REG addressing modes.
14809
14810 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14811 + REG addressing modes.
14812
14813 2003-12-30 Mark Mitchell <mark@codesourcery.com>
14814
14815 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14816 CONSTANT_P_RTX.
14817
14818 2003-30-12 Paul Brook <paul@codesourcery.com>
14819
14820 * longlong.h: protect arm inlines with !defined (__thumb__)
14821
14822 2003-30-12 Paul Brook <paul@codesourcery.com>
14823
14824 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14825
14826 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
14827
14828 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14829 change.
14830
14831 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
14832
14833 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14834 to the virtual incoming args pointer for downward stacks.
14835
14836 2003-12-29 Paul Brook <paul@codesourcery.com>
14837
14838 * config/arm/arm-cores.def: Add cost function.
14839 * config/arm/arm.c (arm_*_rtx_costs): New functions.
14840 (arm_rtx_costs): Remove
14841 (struct processors): Add rtx_costs field.
14842 (all_cores, all_architectures): Ditto.
14843 (arm_override_options): Set targetm.rtx_costs.
14844 (thumb_rtx_costs): New function.
14845 (arm_rtx_costs_1): Remove cases handled elsewhere.
14846 * config/arm/arm.h (processor_type): Add COSTS parameter.
14847
14848 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
14849
14850 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14851 (arm926ejs.md): Include it.
14852 * config/arm/arm926ejs.md: New pipeline description.
14853
14854 2003-12-24 Paul Brook <paul@codesourcery.com>
14855
14856 * config/arm/arm.c (arm_arch6j): New variable.
14857 (arm_override_options): Set it.
14858 (arm_emit_extendsi): New function.
14859 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14860 * config/arm/arm.h (arm_arch6j): Declare.
14861 * config/arm/arm.md: Add sign/zero extend insns.
14862
14863 2003-12-23 Paul Brook <paul@codesourcery.com>
14864
14865 * config/arm/arm.c (all_architectures): Add armv6.
14866 * doc/invoke.texi: Document it.
14867
14868 2003-12-19 Paul Brook <paul@codesourcery.com>
14869
14870 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
14871 insn patterns to match.
14872 * config/arm/arm-generic.md: Ditto.
14873 * config/arm/cirrus.md: Ditto.
14874 * config/arm/fpa.md: Ditto.
14875 * config/amm/iwmmxt.md: Ditto.
14876 * config/arm/arm1026ejs.md: Ditto.
14877 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
14878 for 11_loadb.
14879
14880 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
14881
14882 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14883 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14884 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14885 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14886 arm_no_early_mul_dep): Correctly deal with conditional execution,
14887 parallels and single shift operations.
14888 (arm_no_early_alu_shift_value_dep): Define.
14889 * arm.md (attr type): Replace 'normal' with 'alu',
14890 'alu_shift' and 'alu_shift_reg'.
14891 (attr core_cycles): Adjust.
14892 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14893 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14894 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14895 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14896 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14897 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14898 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14899 attribute appropriately.
14900 * config/arm/arm1026ejs.md (alu_op): Adjust.
14901 (alu_shift_op, alu_shift_reg_op): New.
14902 * config/arm/arm1136.md: Add better bypasses for early
14903 registers. Remove load[234] and store[234] bypasses.
14904 (11_alu_op): Adjust.
14905 (11_alu_shift_op, 11_alu_shift_reg_op): New.
14906
14907 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
14908
14909 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14910 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14911 * config/arm/arm.c (arm_no_early_store_addr_dep,
14912 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14913 * config/arm/arm1026ejs.md: Add load-store bypass.
14914 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14915 Add bypasses between instructions.
14916
14917 2003-12-10 Paul Brook <paul@codesourcery.com>
14918
14919 * config/arm/arm.c (arm_fpu_model): New variable.
14920 (arm_fload_abi): New variable.
14921 (target_fpe_name): Rename from target_fp_name.
14922 (target_fpu_name): New variable.
14923 (arm_is_cirrus): Remove.
14924 (fpu_desc): New struct.
14925 (all_fpus): Define.
14926 (pf_model_for_fpu): Define.
14927 (all_loat_abis): Define.
14928 (arm_override_options): Set fp arch flags based on -mfpu=
14929 and -float-abi=.
14930 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14931 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14932 (*): Use new TARGET_* flags.
14933 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14934 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14935 (TARGET_SOFT_FLOAT): Ditto.
14936 (TARGET_SOFT_FLOAT_ABI): New.
14937 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
14938 TARGET_HARD_FLOAT.
14939 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14940 (TARGET_OPTIONS): Add -mfpu=.
14941 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14942 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14943 (arm_pf_model): Define.
14944 (arm_float_abi_type): Define.
14945 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
14946 * config/arm/arm.md: Use new TARGET_* flags.
14947 * config/arm/cirrus.md: Ditto.
14948 * config/arm/fpa.md: Ditto.
14949 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14950 * config/arm/semi.h (ASM_SPEC): Ditto.
14951 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14952 (FPUTYPE_DEFAULT): Set to VFP.
14953 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14954
14955 2003-11-22 Phil Edwards <phil@codesourcery.com>
14956
14957 PR target/12476
14958 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
14959 'bx' instead of 'b' to avoid branch range restrictions. Output
14960 the thunk immediately before the thunked-to function.
14961 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
14962 .thumb_func if a thunk is being generated. Emit .code 16 along
14963 with .thumb_func if a thunk is not being generated.
14964
14965 2003-11-15 Nicolas Pitre <nico@cam.org>
14966
14967 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14968 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14969 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14970 (lshrdi3_iwmmxt): Renamed from lshrdi3.
14971 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14972
14973 2003-11-12 Steve Woodford <scw@wasabisystems.com>
14974 Ian Lance Taylor <ian@wasabisystems.com>
14975
14976 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14977 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14978
14979 2003-11-05 Phil Edwards <phil@codesourcery.com>
14980
14981 * config/arm/arm.md (insn): Add new V6 instruction names.
14982 (generic_sched): New attr.
14983 * config/arm/arm-generic.md: Use generic_sched here.
14984 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
14985 stages of pipeline. Adjust latency counts accordingly.
14986 * config/arm/arm1136jfs.md: New file.
14987
14988 2003-10-28 Mark Mitchell <mark@codesourcery.com>
14989
14990 * config/arm/arm.h (processor_type): New enumeration type.
14991 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14992 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14993 (CPP_CPU_ARCH_SPEC): Likewise.
14994 * config/arm/arm.c (arm_tune): New variable.
14995 (all_cores): Use cores.def.
14996 (all_architectures): Add representative processor.
14997 (arm_override_options): Restructure way in which tuning
14998 information is deduced.
14999 * arm.md: Update "insn" and "type" attributes throughout.
15000 (insn): New attribute.
15001 (type): Compute "mult" from "insn" attribute. Add load2,
15002 load3, load4 alternatives.
15003 (arm automaton): Move to arm-generic.md.
15004 * config/arm/arm-cores.def: New file.
15005 * config/arm/arm-generic.md: Likewise.
15006 * config/arm/arm1026ejs.md: Likewise.
15007
15008 2004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
15009
15010 * doc/invoke.texi (SPARC options): Remove -mflat and
15011 all -mxxx (xxx:chip) options.
15012 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
15013 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
15014 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
15015 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
15016 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
15017 * config/sparc/sparc.c: Likewise.
15018 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
15019 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
15020 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
15021 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
15022 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
15023 (sparc_flat_must_save_register_p): Likewise.
15024 (sparc_flat_compute_frame_size): Likewise.
15025 (sparc_flat_save_restore): Likewise.
15026 (sparc_flat_function_prologue): Likewise.
15027 (sparc_flat_function_epilogue): Likewise.
15028 (sparc_flat_epilogue_delay_slots): Likewise.
15029 (sparc_flat_eligible_for_epilogue_delay): Likewise.
15030 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
15031 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
15032 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
15033 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
15034 (CONDITIONAL_REGISTER_USAGE): Likewise.
15035 (FRAME_POINTER_REQUIRED): Likewise.
15036 (INITIAL_ELIMINATION_OFFSET): Likewise.
15037 (BASE_RETURN_VALUE_REG): Likewise.
15038 (BASE_OUTGOING_VALUE_REG): Likewise.
15039 (BASE_PASSING_ARG_REG): Likewise.
15040 (BASE_INCOMING_ARG_REG): Likewise.
15041 (INCOMING_REGNO): Likewise.
15042 (OUTGOING_REGNO): Likewise.
15043 (LOCAL_REGNO): Likewise.
15044 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
15045 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
15046 (EPILOGUE_USES): Likewise.
15047 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
15048 ("flat" attribute): Delete.
15049 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
15050 handling.
15051 (call followed by jump define_peephole's): Delete.
15052 (exception_receiver): Likewise.
15053 (builtin_setjmp_receiver): Likewise.
15054 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
15055
15056 2004-02-03 Paolo Bonzini <bonzini@gnu.org>
15057
15058 PR c/11658
15059 PR c/13994
15060 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
15061 on langhooks.h.
15062 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
15063 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
15064 Include langhooks.h. Replace c_common_truthvalue_conversion
15065 with the truthvalue_conversion language hook throughout.
15066 (expr_no_commas): Call default_conversion before save_expr
15067 for the first term of the production 'x ? : y'.
15068 * c-common.c (c_common_truthvalue_conversion): Remove
15069 obsolete block. Invoke recursively the hook instead
15070 of this function.
15071 * c-convert.c (convert): handle ERROR_MARK_NODE.
15072 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
15073 returned by the truthvalue_conversion language hook.
15074 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15075 c_objc_common_truthvalue_conversion.
15076 * c-objc-common.c (c_objc_common_truthvalue_conversion):
15077 New function.
15078 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
15079 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15080 c_objc_common_truthvalue_conversion.
15081
15082 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15083
15084 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
15085 of gen_rtx.
15086 (LIBCALL_VALUE): Likewise.
15087 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
15088 gen_rtx_CC0 instead of gen_rtx.
15089 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
15090 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
15091 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
15092 gen_rtx.
15093 (m68hc11_emit_logical): Likewise.
15094
15095 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15096
15097 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
15098 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
15099 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
15100 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
15101 config/mips/mips.md, config/mmix/mmix.c,
15102 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
15103 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
15104 config/rs6000/altivec.md, config/s390/s390.c,
15105 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
15106 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
15107 Use const0_rtx instead of GEN_INT (0). Do the same for other
15108 constants that are readily available.
15109
15110 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15111
15112 * doloop.c, optabs.c, regmove.c, sched-deps.c,
15113 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
15114 instead of GEN_INT (0). Do the same for other constants that
15115 are readily available.
15116
15117 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15118
15119 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
15120 gen_rtx.
15121 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
15122 instead of gen_rtx.
15123 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
15124 gen_rtx.
15125 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
15126 gen_rtx_ASHIFT instead of gen_rtx.
15127 (udivmodqi4): Likewise.
15128
15129 2004-02-02 Richard Henderson <rth@redhat.com>
15130
15131 PR target/13789
15132 * expr.c (store_expr): Use force_operand before emit_move_insn.
15133
15134 2004-02-02 Jeff Law <law@redhat.com>
15135 Roger Sayle <roger@eyesopen.com>
15136
15137 * tree.c (commutative_tree_code, associative_tree_code): New
15138 functions.
15139 (iterative_hash_expr): Use commutative_tree_code.
15140 * tree.h (commutative_tree_code, associative_tree_code): Declare.
15141 * fold-const.c (operand_equal_p): Use commutative_tree_code
15142 rather than inlining the commutativity check.
15143 (fold): Likewise.
15144
15145 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15146
15147 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
15148 * config/frv/frv-protos.h: Remove the prototype for
15149 frv_function_arg_keep_as_reference.
15150 * config/frv/frv.c (frv_function_arg_keep_as_reference):
15151 Remove.
15152 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
15153 * config/stormy16/stormy16.h: Remove the commented-out
15154 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
15155
15156 2004-02-03 Alan Modra <amodra@bigpond.net.au>
15157
15158 PR target/13914
15159 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
15160 for retaddr_column.
15161
15162 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15163
15164 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
15165 gen_rtx.
15166
15167 2004-02-02 Eric Christopher <echristo@redhat.com>
15168 Zack Weinberg <zack@codesourcery.com>
15169
15170 * c-opts.c (c_common_handle_option): Add -finput-charset.
15171 * c.opt: Ditto.
15172 * cppcharset.c (one_iso88591_to_utf8): Remove.
15173 (convert_iso88591_utf8): Ditto.
15174 (conversion_tab): Remove 8859-1 converter.
15175 (_cpp_input_to_utf8): Remove.
15176 (_cpp_init_iconv_buffer): Ditto.
15177 (_cpp_close_iconv_buffer): Ditto.
15178 (_cpp_convert_input): New function.
15179 (_cpp_default_encoding): Ditto.
15180 * cpphash.h: Add/remove prototypes for above.
15181 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15182 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15183 for narrow execution and input character sets.
15184 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15185 * doc/cppopts.texi: Document -finput-charset.
15186
15187 2004-02-02 David Edelsohn <edelsohn@gnu.org>
15188
15189 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15190 against FIRST_PSEUDO_REGISTER.
15191
15192 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15193
15194 * doc/invoke.texi (SPARC options): Further improve.
15195
15196 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15197
15198 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15199 config/h8300/h8300.c, config/ip2k/ip2k.md,
15200 config/iq2000/iq2000.c, config/mips/mips.c,
15201 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15202 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15203 config/v850/v850.md: Fix indentation.
15204
15205 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15206
15207 * config/sparc/sparc.c (function_arg_slotno): Align TImode
15208 arguments on a 16-byte boundary in the parameter array if ARCH64.
15209 Split handling of TFmode.
15210
15211 2004-02-02 Paolo Bonzini <bonzini@gnu.org>
15212
15213 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15214 Don't test CONSTANT_P (x).
15215 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15216 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15217 Fix misindentation.
15218
15219 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15220
15221 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15222
15223 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15224
15225 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15226 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15227 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15228 config/iq2000/iq2000.c, config/m32r/m32r.c,
15229 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15230 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15231 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15232 config/stormy16/stormy16.c, config/v850/v850.md,
15233 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15234
15235 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15236
15237 * config/mcore/mcore.c (block_move_sequence): Replace
15238 gen_rtx_CONST_INT with GEN_INT.
15239
15240 2004-02-02 Jan Hubicka <jh@suse.cz>
15241
15242 * alias.c (record_set): Use hard_regno_nregs.
15243 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15244 * builtins.c (apply_args_size): Likewise.
15245 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15246 mark_set_regs, add_stored_regs, mark_referenced_regs,
15247 insert_restore, insert_save, insert_one_insn): Likewise.
15248 * cfgcleanup.c: Include regs.h
15249 (mark_effect, mentions_nonequal_regs): Likewise.
15250 * cfgrtl.c (mark_killed_regs): Likewise
15251 * combine.c (update_table_tick, record_value_for_reg,
15252 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15253 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15254 reg_bitfield_target_p, distribute_notes): Likewise.
15255 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15256 exp_equiv_p, cse_insn): Likewise.
15257 * cselib.c (cselib_lookup): Likewise.
15258 (cselib_invalidate_regno, cselib_record_set): Likewise.
15259 * df.c (df_ref_record): Likewise.
15260 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15261 Likewise.
15262 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15263 count_or_remove_death_notes_bb): Likewise.
15264 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15265 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15266 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15267 * integrate.c (mark_stores): Likewise.
15268 * jump.c (delete_prior_computation): Likewise.
15269 * lcm.c (reg_dies, reg_becomes_live): Likewise.
15270 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15271 * loop.c (LOOP_REGNO_NREGS): Likewise.
15272 * postreload.c (reload_combine, reload_combine_note_store,
15273 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15274 * ra-colorize.c (combine, color_usable_p, get_free_reg,
15275 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
15276 try_recolor_web, insert_coalesced_conflicts, check_colors,
15277 break_precolored_alias): Likewise.
15278 * ra-debug.c: Include regs.h
15279 (ra_print_rtx_object): Likewise.
15280 * ra-rewrite (choose_spill_colors): Likewise.
15281 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15282 * ra.c (init_ra): Likewise.
15283 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15284 peep2_find_free_register): Likewise.
15285 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15286 * regclass.c (hard_regno_nregs): New array.
15287 (init_reg_modes_once): Initialize it.
15288 (choose_hard_reg_mode): Use it.
15289 (record_reg_classes): Likewise.
15290 * regmove.c (mark_flags_life_zones): Likewise.
15291 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15292 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15293 copy_value, maybe_mode_change, find_oldest_value_reg,
15294 copyprop_hardreg_forward_1):
15295 * regs.h (hard_regno_nregs): Declare.
15296 * realod.c (reload_inner_reg_of_subreg): Use it.
15297 (push_reload, combine_reloads, find_dummy_reload,
15298 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15299 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15300 reload_adjust_reg_for_mode): Likewise.
15301 * reload1.c (compute_use_by_pseudos, count_pseudo,
15302 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15303 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15304 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15305 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15306 delete_output_reload): Likewise.
15307 * resource.c (update_live_status, mark_referenced_resources,
15308 mark_set_resources, mark_target_live_regs): Likewise.
15309 * rtlanal.c: Include regs.h
15310 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15311 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15312 subreg_regno_offset, subreg_offset_representable_p,
15313 hoist_test_store): Likewise.
15314 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15315 * sched-rgn.c (check_live_1, update_live_1): Likewise.
15316 * stmt.c: Include regs.h
15317 (decl_conflicts_with_clobbers_p): Likewise.
15318 * varasm.c (make_decl_rtl): Likewise.
15319 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15320
15321 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15322
15323 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15324 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15325 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15326 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15327 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15328 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15329 config/iq2000/iq2000.h, config/m32r/m32r.c,
15330 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15331 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15332 config/mcore/mcore.c, config/mcore/mcore.h,
15333 config/mcore/mcore.md, config/mips/mips.c,
15334 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15335 config/rs6000/rs6000.c, config/s390/s390.c,
15336 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15337 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15338 "gen_rtx (FOO, " with "gen_rtx_FOO (".
15339
15340 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15341
15342 * config/h8300/h8300.md (two peephole2's): New.
15343
15344 2004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
15345
15346 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15347 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15348 (ASM_CPU_SPEC): Likewise
15349 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15350 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
15351
15352 2004-02-01 Roger Sayle <roger@eyesopen.com>
15353
15354 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15355 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15356 (expand_builtin): Always call expand_builtin_pow.
15357
15358 2004-02-01 Roger Sayle <roger@eyesopen.com>
15359
15360 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15361 BUILT_IN_SIGNBITL): New GCC builtins.
15362 * builtins.c (expand_builtin_signbit): New function to RTL expand
15363 calls to signbit, signbitf and signbitl as inline intrinsics.
15364 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15365 (fold_builtin_signbit): New function to perform constant folding
15366 of signbit, signbitf and signbitl.
15367 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15368
15369 * doc/extend.texi: Document new signbit{,f,l} builtins.
15370
15371 2004-02-01 Richard Sandiford <rsandifo@redhat.com>
15372
15373 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15374
15375 2004-02-01 Chris Demetriou <cgd@broadcom.com>
15376
15377 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15378 "mips_const_double_ok" and "simple_memory_operand", which were
15379 removed from the MIPS port with the mips-3_4-rewrite branch merge.
15380 * config/mips/mips.c (mips16_lay_out_constants): Update comment
15381 for removal of simple_memory_operand.
15382
15383 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15384
15385 * config/c4x/c4x.md: Use GEN_INT instead of
15386 gen_rtx (CONST_INT, ...).
15387
15388 2004-01-31 Richard Henderson <rth@redhat.com>
15389
15390 * varasm.c (output_constant_pool): Don't zap the pool.
15391
15392 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15393
15394 * genrecog.c (decision_type): Add DT_const_int.
15395 (write_cond) [DT_const_int]: Print a comparison against small
15396 constant.
15397 (write_node): Simplify comparisons against small constants
15398 before printing tests.
15399
15400 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15401
15402 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15403 instead of gen_rtx_CONST_INT.
15404
15405 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15406
15407 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15408 instead of gen_rtx_CONST_INT.
15409
15410 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15411
15412 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15413 hook_bool_CUMULATIVE_ARGS_false.
15414 * targhooks.c (default_strict_argument_naming): Rename to
15415 hook_bool_CUMULATIVE_ARGS_false.
15416 * targhooks.h: Update the prototype for
15417 default_strict_argument_naming.
15418
15419 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15420
15421 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15422 * config/sh/sh.h: Likewise.
15423 * config/sh/sh.md: Likewise.
15424
15425 2004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
15426
15427 * doc/invoke.texi (SPARC options): Restructure and update.
15428
15429 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15430
15431 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15432 STRICT_ARGUMENT_NAMING): Poison.
15433 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15434 hook_bool_tree_false.
15435 * targhooks.c (default_promote_function_args): Remove.
15436 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15437 Don't check incoming.
15438 (default_strict_argument_naming): Don't use
15439 STRICT_ARGUMENT_NAMING.
15440 * targhooks.h: Remove the prototype for
15441 default_promote_function_args.
15442
15443 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15444
15445 * config/i386/i386-protos.h: Remove the prototype for
15446 ix86_setup_incoming_varargs.
15447 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15448 (ix86_setup_incoming_varargs): Make it static.
15449 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15450
15451 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15452
15453 * alloc-pool.c: Fix comment typos.
15454 * builtin-types.def: Likewise.
15455 * builtins.def: Likewise.
15456 * c-pretty-print.c: Likewise.
15457 * df.h: Likewise.
15458 * reload1.c: Likewise.
15459
15460 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15461
15462 * doc/invoke.texi: Follow spelling conventions.
15463 * doc/tm.texi: Likewise.
15464
15465 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15466
15467 * doc/install.texi: Fix typos.
15468 * doc/invoke.texi: Likewise.
15469
15470 2004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
15471
15472 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15473 registers as pointers.
15474 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15475
15476 2004-01-31 Paolo Bonzini <bonzini@gnu.org>
15477
15478 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
15479 and restore it to gen_lowpart_general on exit.
15480 (gen_lowpart_for_combine): Adjust all callers to go through
15481 gen_lowpart.
15482 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15483 and restore it to gen_lowpart_general on exit.
15484 (gen_lowpart_if_possible): Adjust all callers to go through
15485 gen_lowpart.
15486 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15487 (gen_lowpart): Declare as pointer to function, initialized to
15488 gen_lowpart_general.
15489 * rtl.h (gen_lowpart): Declare as pointer to function.
15490
15491 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15492
15493 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15494 * calls.c: Likewise.
15495 * emit-rtl.c: Likewise.
15496 * function.c: Likewise.
15497 * reload1.c: Likewise.
15498 * config/i386/cygming.h: Likewise.
15499 * config/i386/i386.c: Likewise.
15500 * config/i386/winnt.c: Likewise.
15501
15502 2004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
15503
15504 PR bootstrap/9249
15505 * doc/install.texi: document --enable-__cxa_atexit option.
15506 * configure.ac: Disable __cxa_atexit if not supported.
15507 * configure: Regenerate.
15508
15509 2004-01-30 Daniel Berlin <dberlin@dberlin.org>
15510
15511 * ggc-zone.c (ggc_free): New function.
15512
15513 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15514
15515 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15516 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15517 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15518 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15519 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15520 config/alpha/alpha.c, config/alpha/alpha.h,
15521 config/alpha/alpha.md, config/alpha/unicosmk.h,
15522 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15523 config/c4x/c4x-protos.h, config/c4x/c4x.md,
15524 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15525 config/frv/frvend.c, config/i386/cygming.h,
15526 config/i386/djgpp.h, config/i386/emmintrin.h,
15527 config/i386/gthr-win32.c, config/i386/i386-interix.h,
15528 config/i386/i386-protos.h, config/i386/openbsd.h,
15529 config/i386/winnt.c, config/i386/xm-mingw32.h,
15530 config/i386/xmmintrin.h, config/ia64/ia64.md,
15531 config/iq2000/iq2000.md, config/m32r/m32r.md,
15532 config/m68k/m68k.md, config/mcore/mcore-elf.h,
15533 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15534 config/mips/iris5gas.h, config/mips/iris6.h,
15535 config/mips/iris6gas.h, config/mips/linux.h,
15536 config/mips/mips.md, config/mips/netbsd.h,
15537 config/mips/openbsd.h, config/mips/windiss.h,
15538 config/pa/fptr.c, config/rs6000/aix.h,
15539 config/rs6000/altivec.h, config/rs6000/darwin.h,
15540 config/rs6000/xcoff.h, config/s390/s390-protos.h,
15541 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15542 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15543 config/sparc/sol2.h: Update copyright.
15544
15545 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
15546
15547 * Makefile.in (abs_docdir, abs_srcdir): Define.
15548 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15549
15550 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15551
15552 * genconfig.c (main): Have CC0_P check its operand even on a
15553 target without cc0.
15554
15555 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15556
15557 * config/alpha/alpha.c: Remove mentions of deprecates macros
15558 in comments, remove some target-independent comments about target
15559 macros, and/or add minimal function comments for target hook
15560 implementations.
15561 * config/avr/avr.c: Likewise.
15562 * config/ia64/ia64.h: Likewise.
15563 * config/ip2k/ip2k.c: Likewise.
15564 * config/iq2000/iq2000.c: Likewise.
15565 * config/m32r/m32r.h: Likewise.
15566 * config/m68hc11/m68hc11.c: Likewise.
15567 * config/mcore/mcore.c: Likewise.
15568 * config/mmix/mmix.c: Likewise.
15569 * config/mn10300/mn10300.c: Likewise.
15570 * config/pa/pa.c: Likewise.
15571 * config/pdp11/pdp11.c: Likewise.
15572 * config/rs6000/rs6000.h: Likewise.
15573 * config/sh/sh.c: Likewise.
15574 * config/sh/sh.h: Likewise.
15575 * config/sparc/sparc.c: Likewise.
15576 * config/sparc/sparc.h: Likewise.
15577 * config/stormy16/stormy16.c: Likewise.
15578 * config/xtensa/xtensa.c: Likewise.
15579
15580 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
15581
15582 PR optimization/12147
15583 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15584 RELOAD_FOR_OPADDR_ADDR.
15585 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15586 might be reused as RELOAD_FOR_OPADDR_ADDR register.
15587
15588 2004-01-30 Jan Hubicka <jh@suse.cz>
15589
15590 * reload.c (get_secondary_mem): Fix updating of
15591 secondary_memlocs_elim_used.
15592
15593 2004-01-30 Richard Henderson <rth@redhat.com>
15594
15595 * varasm.c (struct rtx_const, struct pool_constant): Remove.
15596 (MAX_RTX_HASH_TABLE): Remove.
15597 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15598 (first_pool, last_pool, pool_offset): Remove.
15599 (struct rtx_constant_pool): Split out from ...
15600 (struct varasm_status): ... here. Reference one via pointer.
15601 (struct constant_descriptor_rtx): Merge struct pool_constant.
15602 (SYMHASH): Remove.
15603 (decode_rtx_const): Remove.
15604 (const_hash_rtx, compare_constant_rtx): Remove.
15605 (record_constant_rtx): Remove.
15606 (const_desc_rtx_hash, const_desc_rtx_eq): New.
15607 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15608 (const_rtx_hash_1, const_rtx_hash): New.
15609 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15610 (simplify_subtraction): Use simplify_rtx.
15611 (force_const_mem): Rewrite to use new data structures.
15612 (find_pool_constant): Likewise.
15613 (get_pool_constant, get_pool_constant_mark,
15614 get_pool_constant_for_function, get_pool_mode,
15615 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15616 (output_constant_pool_2): Split out from output_constant_pool.
15617 (output_constant_pool_1): Likewise. Use new pool datastructures.
15618 (output_constant_pool): Zap entire pool datastructure.
15619 (mark_constant): Use new pool datastructures.
15620 (mark_constants): Use for_each_rtx.
15621 (mark_constant_pool): Use new pool datastructures.
15622
15623 2004-01-30 Fariborz Jahanian <fjahanian@apple.com>
15624
15625 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
15626 Copy operands[1] to pseudo for simplify_gen_subreg.
15627
15628 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15629
15630 * gcse.c (bypass_block): Fix a typo in the previous check-in
15631 to the file.
15632
15633 2004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
15634
15635 * toplev.c: Include alloc-pool.h.
15636 * Makefile.in (toplev.c): Update dependencies.
15637
15638 2004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15639
15640 * combine.c (simplify_shift_const, case XOR): Be careful when
15641 commuting XOR with ASHIFTRT.
15642
15643 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15644 Eric Botcazou <ebotcazou@libertysurf.fr>
15645
15646 * config/sparc/sparc-protos.h: Remove the prototype for
15647 sparc_builtin_saveregs.
15648 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15649 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15650 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15651 (TARGET_STRUCT_VALUE_RTX): Likewise.
15652 (TARGET_RETURN_IN_MEMORY): Likewise.
15653 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15654 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15655 (sparc_builtin_saveregs): Make it static.
15656 (sparc_promote_prototypes): New.
15657 (sparc_struct_value_rtx): Likewise.
15658 (sparc_return_in_memory): Likewise.
15659 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15660 (PROMOTE_FUNCTION_RETURN): Likewise.
15661 (RETURN_IN_MEMORY): Likewise.
15662 (STRUCT_VALUE): Likewise.
15663 (STRUCT_VALUE_INCOMING): Likewise.
15664 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15665 (STRICT_ARGUMENT_NAMING): Likewise.
15666 (PROMOTE_PROTOTYPES): Likewise.
15667
15668 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15669
15670 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
15671
15672 PR c/12818
15673 * varasm.c (const_hash_1) <STRING_CST>: Use the
15674 address to compute the hash value if flag_writable_strings.
15675 (compare_constant) <STRING_CST>: Compare the addresses
15676 if flag_writable_strings.
15677 (build_constant_desc): Do not copy the expression for a
15678 STRING_CST if flag_writable_strings.
15679
15680 2004-01-30 Jan Hubicka <jh@suse.cz>
15681
15682 * alloc-pool.c: Include hashtab.h
15683 (alloc_pool_descriptor): New structure
15684 (alloc_pool_hash): New global variable.
15685 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15686 (create_alloc_pool): Update statistics.
15687 (free_alloc_pool): Likewise.
15688 (pool_alloc): Likewise.
15689 (output_info): New structure
15690 (print_statistics, dump_alloc_pool_statistics): New function.
15691 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15692 (dump_alloc_pool_statistics): Declare.
15693 * toplev.c (finalize): Dump statistics.
15694
15695 * reload.c (secondary_memlocs_elim_used): New static variable.
15696 (get_secondary_mem): Update it.
15697 (find_reloads): Use it.
15698
15699 2004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
15700
15701 * toplev.c: Fix broken checkin of 2003-12-30, again.
15702
15703 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
15704
15705 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15706 s390*-*-* targets by specifying a 'nop' insn.
15707 * configure: Regenerate.
15708
15709 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
15710
15711 PR target/11475
15712 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15713
15714 2004-01-29 Jakub Jelinek <jakub@redhat.com>
15715
15716 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15717 of addr when creating MEM copy.
15718
15719 2004-01-29 Devang Patel <dpatel@apple.com>
15720
15721 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15722
15723 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
15724
15725 PR inline-asm/6162
15726 * reload.c (find_reloads): Only support one pair of commutative
15727 operands.
15728
15729 2004-01-29 Roger Sayle <roger@eyesopen.com>
15730
15731 PR java/13824
15732 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15733 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15734 recursion.
15735
15736 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
15737
15738 * config/frv/frv.c: Don't mention deprecated macros in
15739 comments. Remove some target-independent comments about
15740 target macros.
15741 * config/frv/frv.h: Likewise.
15742
15743 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
15744
15745 * cfghooks.c (split_block): Set probability and count of the
15746 new edge.
15747
15748 2004-01-29 Josef Zlomek <zlomekj@suse.cz>
15749
15750 * dwarf2out.c (struct die_struct): Added field decl_id.
15751 (decl_die_table): Changed to hash table.
15752 (decl_die_table_allocated): Deleted.
15753 (decl_die_table_in_use): Deleted.
15754 (DECL_DIE_TABLE_INCREMENT): Deleted.
15755 (decl_die_table_hash): New function.
15756 (decl_die_table_eq): New function.
15757 (lookup_decl_die): Lookup in a hash table.
15758 (equate_decl_number_to_die): Insert into a hash table.
15759 (dwarf2out_init): Init hash table decl_die_table.
15760
15761 2004-01-29 Jakub Jelinek <jakub@redhat.com>
15762
15763 PR optimization/13424
15764 * expr.c (store_constructor): Revert 2003-12-03 change.
15765
15766 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15767 expected before returning early. Avoid sharing RTL if they
15768 need to be changed.
15769
15770 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15771 handling so that memory attributes are preserved. Don't call
15772 ix86_set_move_mem_attrs.
15773 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15774 (ix86_expand_clrstr): Rename src argument to
15775 dst. Rework rep_stos and strset handling so that memory attributes
15776 are preserved.
15777 (ix86_expand_strlen): Pass src argument to
15778 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
15779 memory attributes are preserved.
15780 (ix86_expand_strlensi_unroll_1): Add src argument. Use
15781 change_address instead of gen_rtx_MEM.
15782 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15783 expanders.
15784 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15785 strmovqi, strmovqi_rex64): Remove.
15786 (rep_mov*, strmov*): Prefix insn names with *.
15787 (strset, strset_singleop, rep_stos): New expanders.
15788 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15789 strsetqi, strsetqi_rex64): Remove.
15790 (rep_stos*, strset*): Prefix insn names with *.
15791 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
15792 to SImode.
15793 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15794 are preserved.
15795 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15796 Prefix insn names with *.
15797 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15798 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15799 (strlenqi_1): New expander.
15800 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15801
15802 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
15803
15804 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15805 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15806 verify_flow_info): Declaration removed.
15807 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15808 (debug_bb, debug_bb_n): Add argument to dump_bb call.
15809 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15810 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15811 instead of delete_block.
15812 * cfghooks.c: Include timevar.h and toplev.h.
15813 (cfg_hooks): Define here.
15814 (verify_flow_info, dump_bb): Moved from cfg.c.
15815 (redirect_edge_and_branch, redirect_edge_and_branch_force,
15816 split_block, split_block_after_labels, move_block_after,
15817 delete_basic_block, split_edge, create_basic_block,
15818 create_empty_bb, can_merge_blocks_p, merge_blocks,
15819 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15820 New functions.
15821 * cfghooks.h (struct cfg_hooks): Added fields name,
15822 make_forwarder_block, tidy_fallthru_edge and
15823 move_block_after. Changed type of verify_flow_info, dump_bb,
15824 split_block fields. Renamed cfgh_split_edge and delete_block
15825 fields.
15826 (redirect_edge_and_branch, redirect_edge_and_branch_force,
15827 split_block, delete_block, split_edge, create_basic_block,
15828 can_merge_blocks_p, merge_blocks): Macros removed.
15829 (cfg_hooks): Do not export.
15830 (verify_flow_info, dump_bb, redirect_edge_and_branch,
15831 redirect_edge_and_branch_force, split_block, split_block_after_labels,
15832 move_block_after, delete_basic_block, split_edge, create_basic_block,
15833 create_empty_bb, can_merge_blocks_p, merge_blocks,
15834 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15835 Declare.
15836 (cfg_layout_rtl_cfg_hooks): Declare.
15837 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15838 New functions.
15839 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15840 (redirect_edge_with_latch_update): Removed.
15841 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15842 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15843 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15844 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15845 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15846 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15847 cfghooks.c.
15848 (rtl_create_basic_block): Coding style fix.
15849 (rtl_tidy_fallthru_edge, rtl_move_block_after,
15850 rtl_make_forwarder_block): New functions.
15851 (update_cfg_after_block_merging): Removed.
15852 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15853 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15854 to dump_bb.
15855 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15856 find_if_case_2): Don't update dominators.
15857 * timevar.def (TV_CFG_VERIFY): New.
15858 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15859 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15860 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15861 (remove_bbs): Don't call remove_bbs.
15862 (create_preheader): Use make_forwarder_block.
15863 (mfb_keep_just, mfb_update_loops): New static functions.
15864
15865 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
15866
15867 * config/avr/avr.h: Remove target-independent comments about
15868 target macros.
15869
15870 2004-01-28 Daniel Berlin <dberlin@dberlin.org>
15871
15872 * timevar.c (timevar_print): Mention when checking is enabled.
15873
15874 2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
15875
15876 * c-lex.c (c_lex): Rename to...
15877 (c_lex_with_flags): Add new parameter to get CPP flags.
15878 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15879 * c-pragma.h (c_lex_with_flags): Declare.
15880
15881 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15882
15883 * config/mcore/mcore.c (mcore_external_libcall): Add a
15884 comment.
15885 (mcore_return_in_memory): Likewise.
15886
15887 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15888
15889 * config/mcore/mcore-protos.h: Remove the prototype for
15890 mcore_setup_incoming_varargs.
15891 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15892 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15893 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15894 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15895 (TARGET_STRUCT_VALUE_RTX): Likewise.
15896 (TARGET_RETURN_IN_MEMORY): Likewise.
15897 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15898 (mcore_setup_incoming_varargs): Make it static. Receive the
15899 first argument by reference. Add argument second_time.
15900 (mcore_external_libcall): New.
15901 (mcore_return_in_memory): Likewise.
15902 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15903 (PROMOTE_FUNCTION_RETURN): Likewise.
15904 (STRUCT_VALUE): Likewise.
15905 (RETURN_IN_MEMORY): Likewise.
15906 (SETUP_INCOMING_VARARGS): Likewise.
15907 (PROMOTE_PROTOTYPES): Likewise.
15908 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15909
15910 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15911
15912 * config/m32r/m32r-protos.h: Remove the prototype for
15913 m32r_setup_incoming_varargs.
15914 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15915 (TARGET_STRUCT_VALUE_RTX): Likewise.
15916 (TARGET_RETURN_IN_MEMORY): Likewise.
15917 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15918 (m32r_return_in_memory): New.
15919 (m32r_setup_incoming_varargs): Make it static.
15920 * config/m32r/m32r.h: Remove #undef of
15921 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
15922 definitions of PROMOTE_FUNCTION_ARGS and
15923 PROMOTE_FUNCTION_RETURN.
15924 (PROMOTE_PROTOTYPES): Remove.
15925 (RETURN_IN_MEMORY): Likewise.
15926 (STRUCT_VALUE): Likewise.
15927
15928 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15929
15930 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15931 (TARGET_STRUCT_VALUE_RTX): Likewise.
15932 (m68k_struct_value_rtx): Likewise.
15933 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15934 STRUCT_VALUE_REGNUM.
15935 (PROMOTE_PROTOTYPES): Remove.
15936 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15937 STRUCT_VALUE_REGNUM.
15938 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15939 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15940
15941 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15942
15943 * config/stormy16/stormy16.c
15944 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15945 TARGET_BUILD_BUILTIN_VA_LIST.
15946
15947 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15948
15949 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15950 (TARGET_STRUCT_VALUE_RTX): Likewise.
15951 (TARGET_RETURN_IN_MEMORY): Likewise.
15952 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15953 (v850_return_in_memory): Likewise.
15954 (v850_setup_incoming_varargs): Likewise.
15955 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15956 (SETUP_INCOMING_VARARGS): Likewise.
15957 (RETURN_IN_MEMORY): Likewise.
15958 (STRUCT_VALUE): Likewise.
15959
15960 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15961
15962 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15963 (fr30_setup_incoming_varargs): Don't use
15964 STRICT_ARGUMENT_NAMING.
15965 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15966 (STRICT_ARGUMENT_NAMING): Likewise.
15967
15968 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15969
15970 * config/frv/frv-protos.h: Remove the prototype for
15971 frv_expand_builtin_saveregs.
15972 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15973 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15974 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15975 STRUCT_VALUE_REGNUM.
15976 (frv_expand_builtin_saveregs): Make it static.
15977 (frv_struct_value_rtx): New.
15978 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15979
15980 2004-01-29 Jan Hubicka <jh@suse.cz>
15981
15982 PR c++/12850
15983 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15984 initial pointers.
15985 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15986 for functions that will be only inlined.
15987 (cgraph_mark_function_to_output): Likewise.
15988 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15989 do not clear function body.
15990 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15991 (tree_rest_of_compilation): Reorganize the logic releasing function
15992 body to use callgraph datastructure.
15993
15994 2004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15995
15996 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15997 to register_operand.
15998
15999 2004-01-28 Zack Weinberg <zack@codesourcery.com>
16000
16001 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
16002 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
16003 match_operand expressions so that all match_dups appear
16004 lexically after their corresponding match_operands.
16005
16006 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16007
16008 * config/h8300/h8300.c (WORD_REG_USED): Use
16009 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
16010 (compute_saved_regs): Likewise.
16011 (h8300_expand_prologue): Likewise. Allocate locals after
16012 saving registers.
16013 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
16014 of FRAME_POINTER_REGNUM. Deallocate locals before saving
16015 registers.
16016 (h8300_initial_elimination_offset): Adjust for the new frame
16017 layout, which swaps flips the order of locals and saved
16018 registers.
16019 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
16020 (HARD_FRAME_POINTER_REGNUM): New.
16021 (ELIMINABLE_REGS): Add an elimination rule from
16022 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
16023 (REGISTER_NAMES): Add fp.
16024 * config/h8300/h8300.md (FP_REG): Change to 11.
16025 (HFP_REG): New.
16026
16027 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16028
16029 * genrecog.c (write_node): Remove a useless local variable.
16030
16031 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
16032
16033 * Makefile.in (options.c options.h): Use stamp file s-options to
16034 avoid unnecessary rebuilds.
16035 (options.o): New target listing dependencies.
16036 (gtyp-gen.h): Use stamp file s-gtyp-gen.
16037 (STAGESTUFF): Add s-gtyp-gen.
16038
16039 2004-01-28 Richard Henderson <rth@redhat.com>
16040
16041 * ggc.h (ggc_free): Declare.
16042 * ggc-common.c (ggc_realloc): Use it.
16043 * ggc-page.c: Remove lots of inline markers.
16044 (globals): Add free_object_list.
16045 (ggc_alloc): Tidy.
16046 (ggc_free, validate_free_objects): New.
16047 (poison_pages): Provide default.
16048 (ggc_collect): Call validate_free_objects; emit markers to
16049 the debug file.
16050
16051 2004-01-28 Zack Weinberg <zack@codesourcery.com>
16052 Jim Wilson <wilson@specifixinc.com>
16053
16054 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
16055 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
16056 scratch pointer.
16057 (ia64_secondary_reload_class): Delete case GR_REGS.
16058 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
16059 Do not allocate a scratch register.
16060 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
16061
16062 2004-01-28 Jan Hubicka <jh@suse.cz>
16063
16064 * gcse.c (bypass_block): Prevent edges to be unified when we are
16065 about to emit compenstation code.
16066
16067 2004-01-28 Nick Clifton <nickc@redhat.com>
16068
16069 * config/arm/arm.c (arm_expand_builtin): Force second argument of
16070 the setcwx insn into a register.
16071
16072 2004-01-28 Richard Sandiford <rsandifo@redhat.com>
16073
16074 * config/fp-bit.c (pack_d): When using paired doubles to implement
16075 a long double, round the high part separately.
16076 (unpack_d): Fix the case in which the high part is a power of two
16077 and the low part is a nonzero value of the opposite sign.
16078
16079 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16080
16081 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16082 (TARGET_STRUCT_VALUE_RTX): Likewise.
16083 (c4x_external_libcall): Likewise.
16084 (c4x_struct_value_rtx): Likewise.
16085 * config/c4x/c4x.h: Remove.
16086 (STRUCT_VALUE_REGNUM): Likewise.
16087 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16088
16089 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16090
16091 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
16092 (TARGET_STRUCT_VALUE_RTX): Likewise.
16093 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
16094 (STRUCT_VALUE): Likewise.
16095 (PROMOTE_PROTOTYPES): Likewise.
16096
16097 2004-01-27 Roger Sayle <roger@eyesopen.com>
16098
16099 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
16100 CONST_INT before using INTVAL.
16101
16102 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
16103
16104 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
16105 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
16106 frame if !TARGET_BACKCHAIN.
16107 * config/s390/s390.md ("allocate_stack"): Use pattern only if
16108 TARGET_BACKCHAIN.
16109 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
16110
16111 2004-01-27 Zack Weinberg <zack@codesourcery.com>
16112
16113 * ia64.c (ia64_function_arg): When placing HFAs in integer
16114 registers, do not special case the mode used for complex
16115 types. Do not advance int_regs until the current register
16116 is full.
16117
16118 2004-01-27 Richard Sandiford <rsandifo@redhat.com>
16119
16120 PR target/7297
16121 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
16122
16123 2004-01-27 David Edelsohn <edelsohn@gnu.org>
16124
16125 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
16126 slow, unaligned loads and stores while debugging. Fix formatting.
16127
16128 2004-01-27 David Edelsohn <edelsohn@gnu.org>
16129
16130 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
16131 of computing wmode.
16132 (restore_stack_nonlocal): Same.
16133
16134 2004-01-27 Devang Patel <dpatel@apple.com>
16135
16136 * Makefile.in (dwarf2out.o): Depend on input.h
16137 * dbxout.c (dbx_debug_hooks): Add new empty hook for
16138 imported_module_or_decl.
16139 (xcoff_debug_hooks): Same.
16140 * sdbout.c (sdb_debug_hooks): Same.
16141 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
16142 * debug.c (do_nothing_debug_hooks): Same.
16143 (debug_nothing_tree_tree): New function.
16144 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
16145 * dwarf2out.c: Include input.h.
16146 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
16147 (remove_child_TAG): New function.
16148 (dwarf_tag_name): Handle DW_TAG_imported_module.
16149 (gen_subprogram_die): Equate decl number to declaration die. Do not
16150 remove all children dies while reusing declaration die for definition.
16151 Instead, selectively remove only formal parameters.
16152 (gen_variable_die): Equate variable decl to declaration die.
16153 (gen_field_die): Equate field decl to line number.
16154 (force_namespace_die): Replace it with ...
16155 (force_decl_die): ... this.
16156 (force_type_die): New function.
16157 (setup_namespace_context): Replace use of force_namespace_die() with
16158 force_decl_die().
16159 (gen_namespace_die): Same.
16160 (dwarf2out_imported_module_or_decl): New function.
16161
16162 2004-01-27 Bob Wilson <bob.wilson@acm.org>
16163
16164 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
16165 on CQImode and CHImode incoming arguments in register a7.
16166 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
16167 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
16168 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
16169 xtensa_copy_incoming_a7 before reload.
16170
16171 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
16172
16173 * coverage.c (get_coverage_counts): Give a different message
16174 if flag_guess_branch_prob is set.
16175 * predict.c (counts_to_freqs): Return an int.
16176 (estimate_bb_frequencies): If counts_to_freqs returns zero,
16177 calculate estimates.
16178
16179 2004-01-27 Kazu Hirata <kazu@cs.umass.edu>
16180
16181 * config/iq2000/iq2000-protos.h: Remove the prototype for
16182 iq2000_setup_incoming_varargs.
16183 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16184 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16185 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16186 (TARGET_STRUCT_VALUE_RTX): Likewise.
16187 (TARGET_RETURN_IN_MEMORY): Likewise.
16188 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16189 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16190 (iq2000_return_in_memory): Likewise.
16191 (iq2000_setup_incoming_varargs): Make it static. Receive the
16192 first argument by reference.
16193 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16194 (PROMOTE_FUNCTION_RETURN): Likewise.
16195 (PROMOTE_PROTOTYPES): Likewise.
16196 (RETURN_IN_MEMORY): Likewise.
16197 (STRUCT_VALUE): Likewise.
16198 (SETUP_INCOMING_VARARGS): Likewise.
16199 (STRICT_ARGUMENT_NAMING): Likewise.
16200
16201 2004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
16202
16203 * fixinc/fixinc.c (test_test): Initialize res.
16204 (start_flexer): Initialize pz_cmd_save.
16205
16206 2004-01-27 Zack Weinberg <zack@codesourcery.com>
16207
16208 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16209 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16210
16211 2004-01-27 Zack Weinberg <zack@codesourcery.com>
16212
16213 PR 7198
16214 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16215 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16216 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16217 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16218 Possibly rename pattern for consistency.
16219 Remove ??? comments suggesting that this be done.
16220 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16221 New patterns.
16222 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16223 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16224 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16225 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16226 Update to match.
16227
16228 2004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
16229
16230 * config/arm/arm.c (output_return_instruction): Only restore IP
16231 into SP if frame_pointer_needed.
16232
16233 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
16234
16235 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16236 for SCmode and DCmode if ARCH32.
16237 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16238 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16239 if ARCH32.
16240 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16241 if ARCH32.
16242 (BASE_OUTGOING_VALUE_REG): Likewise.
16243
16244 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
16245
16246 PR target/10904
16247 PR target/13058
16248 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16249 Forbid mode changes from SImode for lower FP regs if ARCH64.
16250
16251 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
16252
16253 * Makefile.in (bt-load.o): Depend on except.h.
16254 * bt-load.c (except.h): #include.
16255 (compute_defs_uses_and_gen): If insn at end of BB can throw
16256 within this function, consider registers used by it unavailable for
16257 btr migration.
16258 (move_btr_def): If insn at end of BB can throw, insert before rather
16259 than after.
16260
16261 * flags.h (flag_btr_bb_exclusive): Declare.
16262 * toplev.c (flag_btr_bb_exclusive): New variable.
16263 (f_options): Add btr-bb-exclusive.
16264 * bt-load.c (augment_live_range): Restore old behaviour if
16265 flag_btr_bb_exclusive is set.
16266 * common.opt: Add entry for -fbtr-bb-exclusive.
16267 * opts.c (common_handle_options): Same.
16268 * doc/invoke.texi: Document -fbtr-bb-exclusive.
16269
16270 * bt-load.c (btrs_live_at_end): New variable.
16271 (compute_defs_uses_and_gen): Compute its pointed-to array.
16272 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16273 (augment_live_range): When augmenting with a new dominator,
16274 use only its btrs_live_at_end set, but also add in the full set
16275 of the old dominator.
16276 (btr_def_live_range): Use btrs_live_at_end.
16277 (move_btr_def): Set other_btr_uses_before_def, and move new set
16278 to the end of the basic block, if appropriate.
16279 (migrate_btr_defs): Allocate and free btrs_live_at_end.
16280
16281 * bt-load.c (basic_block_freq): Remove outdated comment.
16282
16283 2004-01-27 Alan Modra <amodra@bigpond.net.au>
16284
16285 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16286 (PREDICATE_CODES): Remove duplicate.
16287 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16288 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16289 (MASK_PROFILE_KERNEL): Adjust define.
16290
16291 2004-01-27 Jakub Jelinek <jakub@redhat.com>
16292
16293 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16294 of long string literals from 32 bytes to sizeof (void *) when !-Os
16295 and to 1 with -Os.
16296
16297 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16298
16299 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16300 constant addresses in the normal mode.
16301
16302 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16303
16304 * system.h (CHAR_BITFIELD): Delete.
16305 (BOOL_BITFIELD): New.
16306 * c-decl.c (c_scope): Use BOOL_BITFIELD.
16307 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16308
16309 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16310
16311 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16312 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16313 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16314 (TARGET_STRUCT_VALUE_RTX): Likewise.
16315 (TARGET_RETURN_IN_MEMORY): Likewise.
16316 (arc_return_in_memory): Likewise.
16317 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16318 (PROMOTE_FUNCTION_RETURN): Likewise.
16319 (RETURN_IN_MEMORY): Likewise.
16320 (STRUCT_VALUE): Likewise.
16321
16322 2004-01-26 Richard Henderson <rth@redhat.com>
16323
16324 * c-parse.in (extension): Use itype.
16325 (SAVE_EXT_FLAGS): Don't allocate a tree.
16326 (RESTORE_EXT_FLAGS): Don't read a tree.
16327
16328 2004-01-26 Jan Hubicka <jh@suse.cz>
16329
16330 * cselib.c (discard_useless_values): Clear out value pointer pointing
16331 to datastructure to be recycled.
16332
16333 2004-01-25 Jan Hubicka <jh@suse.cz>
16334
16335 * genextract.c (main): Do not output the memset when not checking.
16336
16337 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16338
16339 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16340 switch statement instead of a chain of if statements.
16341
16342 2004-01-26 Jeff Law <law@redhat.com>
16343
16344 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
16345 acute accents for Petur Runolfsson's entry.
16346
16347 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16348
16349 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16350 (TARGET_RETURN_IN_MEMORY): Likewise.
16351 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16352 (RETURN_IN_MEMORY): Likewise.
16353
16354 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
16355
16356 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16357 unaligned load/store into smaller loads and stores.
16358
16359 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
16360
16361 * function.c (assign_parms): Do not assign
16362 long long argument to memory in prologue if
16363 is it loaded into register.
16364
16365 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
16366
16367 PR middle-end/13779
16368 * expr.c (emit_group_load): split constant
16369 correctly into register components of PARALLEL insn.
16370
16371 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
16372
16373 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16374 Use adjust_address_nv directly with appropriate mode.
16375 (restore_stack_nonlocal): Ditto.
16376
16377 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16378
16379 * config/xtensa/xtensa-protos.h: Remove the prototype for
16380 xtensa_builtin_saveregs.
16381 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16382 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16383 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16384 (TARGET_STRUCT_VALUE_RTX): Likewise.
16385 (TARGET_RETURN_IN_MEMORY): Likewise.
16386 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16387 (xtensa_builtin_saveregs): Make it static.
16388 (xtensa_return_in_memory): New.
16389 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16390 (PROMOTE_FUNCTION_RETURN): Likewise.
16391 (PROMOTE_PROTOTYPES): Likewise.
16392 (STRUCT_VALUE): Likewise.
16393 (RETURN_IN_MEMORY): Likewise.
16394 (EXPAND_BUILTIN_SAVEREGS): Likewise.
16395
16396 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16397
16398 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16399 (arm_setup_incoming_varargs): Likewise.
16400 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16401
16402 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16403
16404 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16405 (cris_setup_incoming_varargs): Likewise.
16406 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16407
16408 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16409
16410 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16411 (ns32k_struct_value_rtx): Likewise.
16412 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16413 NS32K_STRUCT_VALUE_REGNUM.
16414
16415 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16416
16417 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16418 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16419 (TARGET_STRUCT_VALUE_RTX): Likewise.
16420 (arm_struct_value_rtx): Likewise.
16421 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16422 (STRUCT_VALUE): Likewise.
16423 (STRUCT_VALUE_REGNUM): Likewise.
16424 (PROMOTE_PROTOTYPES): Likewise.
16425
16426 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16427
16428 * config/ia64/ia64-protos.h: Remove the prototype for
16429 ia64_setup_incoming_varargs and ia64_return_in_memory.
16430 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16431 (TARGET_RETURN_IN_MEMORY): Likewise.
16432 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16433 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16434 (ia64_setup_incoming_varargs): Adjust the arguments to meet
16435 the requirement of TARGET_SETUP_INCOMING_VARARGS.
16436 (ia64_return_in_memory): Make it static. Change the return
16437 type to bool from int. Add an argument.
16438 (ia64_struct_value_rtx): New.
16439 * config/ia64/ia64.h: Remove commented-out definitions of
16440 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16441 PROMOTE_PROTOTYPES.
16442 (RETURN_IN_MEMORY): Remove.
16443 (STRUCT_VALUE_REGNUM): Likewise.
16444 (STRICT_ARGUMENT_NAMING): Likewise.
16445
16446 2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
16447
16448 PR target/13666
16449 * config/sparc/sparc.c (function_arg_union_value): New function.
16450 (function_arg): Use it to deal with unions.
16451 (function_value): Likewise. Define 'regbase' only for ARCH64.
16452 Replace a conditional statement by a simpler one.
16453
16454 2004-01-26 Richard Sandiford <rsandifo@redhat.com>
16455
16456 * config/mips/mips.c (mips16_optimize_gp): Delete.
16457 (mips_reorg): Don't call it.
16458
16459 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16460
16461 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16462 (floatunsqihf2): Remove operand 6.
16463 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16464 fix patterns.
16465 (ldi_conditional, ldf_conditional): Validate operands.
16466
16467 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16468
16469 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16470 (HAVE_GAS_HIDDEN): Undefine as interim measure.
16471
16472 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16473
16474 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
16475 memory references if TARGET_EXPOSE_LDP nonzero.
16476
16477 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16478
16479 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
16480
16481 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16482
16483 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16484 invalid operand combinations.
16485
16486 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16487
16488 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16489 c4x_legitimate_address_p. Fix post_modify check.
16490
16491 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16492 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
16493
16494 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16495
16496 * config/pa/pa-protos.h: Remove the prototype for
16497 hppa_builtin_saveregs. Add a prototype for
16498 pa_return_in_memory.
16499 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16500 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16501 (TARGET_STRUCT_VALUE_RTX): Likewise.
16502 (TARGET_RETURN_IN_MEMORY): Likewise.
16503 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16504 (pa_struct_value_rtx): Likewise.
16505 (pa_return_in_memory): Likewise.
16506 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16507 PA_STRUCT_VALUE_REGNUM.
16508 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16509 (EXPAND_BUILTIN_SAVEREGS): Remove.
16510 (PROMOTE_PROTOTYPES): Likewise.
16511 (PROMOTE_FUNCTION_RETURN): Likewise.
16512
16513 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16514
16515 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16516 (TARGET_STRUCT_VALUE_RTX): Likewise.
16517 (vax_struct_value_rtx): Likewise.
16518 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16519 VAX_STRUCT_VALUE_REGNUM.
16520 (PROMOTE_PROTOTYPES): Remove.
16521
16522 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16523
16524 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
16525
16526 2004-01-25 Chris Demetriou <cgd@broadcom.com>
16527
16528 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16529 and MIPS64 have HI/LO interlocks. Update comment.
16530
16531 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16532
16533 * config/stormy16/stormy16-protos.h: Remove the prototype for
16534 xstormy16_setup_incoming_varargs.
16535 * config/stormy16/stormy16.c
16536 (xstormy16_setup_incoming_varargs): Remove.
16537 (xstormy16_return_in_memory): New.
16538 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16539 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16540 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16541 (TARGET_STRUCT_VALUE_RTX): Likewise.
16542 (TARGET_RETURN_IN_MEMORY): Likewise.
16543 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16544 (PROMOTE_FUNCTION_RETURN): Likewise
16545 (PROMOTE_PROTOTYPES): Likewise
16546 (RETURN_IN_MEMORY): Likewise
16547 (STRUCT_VALUE): Likewise
16548 (SETUP_INCOMING_VARARGS): Likewise
16549
16550 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
16551
16552 * config/mips/mips.c (mips_offset_within_object_p): New function.
16553 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16554 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
16555 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16556
16557 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16558
16559 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16560 (PROMOTE_FUNCTION_RETURN): Likewise.
16561
16562 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16563
16564 * config/mn10300/mn10300-protos.h: Remove the prototype for
16565 mn10300_builtin_saveregs.
16566 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16567 (TARGET_STRUCT_VALUE_RTX): Likewise.
16568 (TARGET_RETURN_IN_MEMORY): Likewise.
16569 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16570 (mn10300_return_in_memory): Likewise.
16571 (mn10300_builtin_saveregs): Make it static.
16572 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16573 (RETURN_IN_MEMORY): Likewise.
16574 (STRUCT_VALUE): Likewise.
16575 (EXPAND_BUILTIN_SAVEREGS): Likewise.
16576
16577 2004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
16578
16579 PR bootstrap/13853
16580 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16581
16582 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16583
16584 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16585 using ccr.
16586
16587 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16588
16589 * config/i860/i860-protos.h: Remove the prototype for
16590 i860_saveregs.
16591 * config/i860/i860.c (i860_saveregs): Make it static.
16592 (i860_struct_value_rtx): New.
16593 (TARGET_STRUCT_VALUE_RTX): Likewise.
16594 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16595 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16596 I860_STRUCT_VALUE_REGNUM.
16597 (EXPAND_BUILTIN_SAVEREGS): Remove.
16598
16599 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16600
16601 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16602 (TARGET_RETURN_IN_MEMORY): Likewise.
16603 (m68hc11_struct_value_rtx): Likewise.
16604 (m68hc11_return_in_memory): Likewise.
16605 * config/m68hc11/m68hc11.h: Remove a commented-out definition
16606 of PROMOTE_PROTOTYPES.
16607 (RETURN_IN_MEMORY): Remove.
16608 (STRUCT_VALUE_REGNUM): Likewise.
16609
16610 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16611
16612 * config/mmix/mmix-protos.h: Remove the prototype for
16613 mmix_setup_incoming_varargs.
16614 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16615 (TARGET_STRUCT_VALUE_RTX): Likewise.
16616 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16617 (mmix_setup_incoming_varargs): Make it static.
16618 (mmix_struct_value_rtx): New.
16619 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16620 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16621 (STRUCT_VALUE_REGNUM): Remove.
16622 (SETUP_INCOMING_VARARGS): Likewise.
16623
16624 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16625
16626 * config/mips/mips-protos.h: Remove the prototypes for
16627 mips_setup_incoming_varargs and mips_return_in_memory.
16628 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16629 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16630 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16631 (TARGET_STRUCT_VALUE_RTX): Likewise.
16632 (TARGET_RETURN_IN_MEMORY): Likewise.
16633 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16634 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16635 (mips_setup_incoming_varargs): Match the prototype for
16636 TARGET_SETUP_INCOMING_VARARGS.
16637 (mips_return_in_memory): Make it static. Add argument fntype.
16638 (mips_strict_argument_naming): New.
16639 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16640 (PROMOTE_FUNCTION_ARGS): Likewise.
16641 (PROMOTE_FUNCTION_RETURN): Likewise.
16642 (STRUCT_VALUE): Likewise.
16643 (RETURN_IN_MEMORY): Likewise.
16644 (SETUP_INCOMING_VARARGS): Likewise.
16645 (STRICT_ARGUMENT_NAMING): Likewise.
16646
16647 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16648
16649 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16650 (TARGET_RETURN_IN_MEMORY): Likewise.
16651 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16652 (ip2k_return_in_memory): Likewise.
16653 (ip2k_setup_incoming_varargs): Likewise.
16654 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16655 (STRUCT_VALUE): Likewise.
16656 (STRUCT_VALUE_INCOMING): Likewise.
16657 (SETUP_INCOMING_VARARGS): Likewise.
16658
16659 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16660
16661 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16662 (TARGET_RETURN_IN_MEMORY): Likewise.
16663 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16664 (avr_return_in_memory): Remove.
16665 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16666 (STRUCT_VALUE): Likewise.
16667 (STRUCT_VALUE_INCOMING): Likewise.
16668 (STRICT_ARGUMENT_NAMING): Likewise.
16669
16670 2004-01-25 Jan Hubicka <jh@suse.cz>
16671
16672 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16673
16674 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
16675
16676 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16677 (mips_regno_mode_ok_for_base_p): Declare.
16678 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16679 (FRAME_POINTER_REGNUM): Renumber to 78.
16680 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16681 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16682 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16683 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16684 (REG_MODE_OK_FOR_BASE_P): Likewise.
16685 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16686 entry for 77 to "$arg" and entry for 78 to "$frame".
16687 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16688 (mips_reg_mode_ok_for_base_p): Remove.
16689 (mips_regno_mode_ok_for_base_p): New function, derived from old
16690 BASE_REG_P macro. Don't enforce the mips16 stack pointer
16691 restrictions unless we're being strict.
16692 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16693
16694 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16695
16696 * c-common.h: Fix comment typos.
16697 * c-decl.c: Likewise.
16698 * cgraphunit.c: Likewise.
16699 * combine.c: Likewise.
16700 * et-forest.c: Likewise.
16701 * flow.c: Likewise.
16702 * function.c: Likewise.
16703 * ifcvt.c: Likewise.
16704 * integrate.c: Likewise.
16705 * jump.c: Likewise.
16706 * postreload.c: Likewise.
16707 * varray.c: Likewise.
16708
16709 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16710
16711 * doc/frontends.texi: Update copyright.
16712 * doc/gcov.texi: Likewise.
16713 * doc/gty.texi: Likewise.
16714 * doc/sourcebuild.texi: Likewise.
16715 * doc/standards.texi: Likewise.
16716
16717 2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
16718
16719 PR target/12978
16720 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16721 Remove movstrqi_small because it conflicts with movstrqi_large.
16722
16723 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16724
16725 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16726 (TARGET_STRUCT_VALUE_RTX): Likewise.
16727 (cris_struct_value_rtx): Likewise.
16728 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16729 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16730 STRUCT_VALUE_REGNUM.
16731 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16732
16733 2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
16734
16735 PR bootstrap/13848
16736 * cse.c (cse_cc_succs): Change the mode of the source expression
16737 as soon as decide we need a new mode. Don't permit changing modes
16738 if we found a match in a successor block.
16739 (cse_condition_code_reg): Save original mode of source expression
16740 so that we know whether we have to change the mode in other
16741 insns.
16742
16743 2004-01-24 Jan Hubicka <jh@suse.cz>
16744
16745 * emit-rtl.c (change_address, adjust_address_1, offset_address,
16746 widen_memory_access): Return early when there is nothing to change.
16747
16748 2004-01-24 Jakub Jelinek <jakub@redhat.com>
16749
16750 * simplify-rtx.c (simplify_relational_operation): Don't
16751 simplify address == constant into address + -constant == 0.
16752
16753 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16754
16755 * gcc.c (process_command): Don't internationalize the
16756 Copyright message.
16757 * mips-tfile.c (main): Likewise.
16758
16759 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
16760
16761 * cse.c: (cse_cc_succs) Fix comparison warning.
16762
16763 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16764
16765 * config/h8300/h8300.md: Remove extraneous USE in expanders.
16766
16767 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16768
16769 * config/h8300/h8300-protos.h: Provide prototypes for
16770 h8300_legitimate_constant_p and h8300_legitimate_address_p.
16771 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16772 (h8300_rtx_ok_for_base_p): Likewise.
16773 (h8300_legitimate_address_p): Likewise.
16774 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16775 h8300_legitimate_constant_p.
16776 (RTX_OK_FOR_BASE_P): Remove.
16777 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16778
16779 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16780
16781 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16782 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16783 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16784 (REG_OK_FOR_BASE_STRICT_P): Likewise.
16785 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16786 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16787 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16788 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16789
16790 2004-01-24 Jan Hubicka <jh@suse.cz>
16791
16792 * cselib.c (remove_useless_values): Do not access discarded values.
16793
16794 2004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
16795
16796 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16797 arrays.
16798
16799 2004-01-23 Kazu Hirata <kazu@cs.umass.edu>
16800
16801 * recog.c: Fix a typo in copyright.
16802
16803 2004-01-23 Andrew Pinski <apinski@apple.com>
16804
16805 * config/rs6000/rs6000.md (call): Fix misappiled patch.
16806 (call_value): Likewise.
16807
16808 2004-01-23 Richard Henderson <rth@redhat.com>
16809
16810 PR opt/12941
16811 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16812 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16813 if SHIFT_COUNT_TRUNCATED is set.
16814
16815 2004-01-23 Bob Wilson <bob.wilson@acm.org>
16816
16817 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16818 separate real and imaginary parts.
16819 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16820
16821 2004-01-23 Hartmut Penner <hpenner@de.ibm.com>
16822
16823 PR target/13674
16824 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16825 loading into GPR.
16826
16827 2004-01-23 Jan Hubicka <jh@suse.cz>
16828
16829 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
16830 change.
16831
16832 * alloc-pool.c (align_four): Kill.
16833 (create_alloc_pool): Align size to eight.
16834 (free_alloc_pool, free_pool): Invalidate deallocated data.
16835
16836 2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
16837
16838 PR gcc/1532
16839 * cse.c (cse_change_cc_mode): New static function.
16840 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16841 (cse_condition_code_reg): New function.
16842 * rtl.h (cse_condition_code_reg): Declare.
16843 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16844 * target.h (struct gcc_target): Add fixed_condition_code_regs and
16845 cc_modes_compatible.
16846 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16847 (TARGET_CC_MODES_COMPATIBLE): Define.
16848 (TARGET_INITIALIZER): Add new initializers.
16849 * targhooks.c (default_cc_modes_compatible): New function.
16850 * targhooks.c (default_cc_modes_compatible): Declare.
16851 * hooks.c (hook_bool_intp_intp_false): New function.
16852 * hooks.h (hook_bool_intp_intp_false): Declare.
16853 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16854 (TARGET_CC_MODES_COMPATIBLE): Define.
16855 (ix86_fixed_condition_code_regs): New static function.
16856 (ix86_cc_modes_compatible): Likewise.
16857 * doc/tm.texi (Condition Code): Document new hooks.
16858
16859 2004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16860
16861 * fixinc/inclhack.def (bad_lval): Renamed to ...
16862 (alpha_bad_lval): ... this.
16863 Removed file list.
16864 Restrict to alpha*-dec-osf*.
16865 * fixinc/fixincl.x: Regenerate.
16866 * fixinc/tests/base/dirent.h: Remove, moving test ...
16867 * fixinc/tests/base/testing.h: ... here, reflecting new name.
16868
16869 2004-01-23 Zack Weinberg <zack@codesourcery.com>
16870
16871 PR c/13814
16872 * c-decl.c (diagnose_mismatched_decls): Also discard a
16873 built-in if we encounter an old-style definition with the
16874 same name.
16875
16876 2004-01-23 Jakub Jelinek <jakub@redhat.com>
16877
16878 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16879 set to default{32,64}.
16880
16881 2004-01-21 Jakub Jelinek <jakub@redhat.com>
16882
16883 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16884 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16885
16886 2004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
16887 Olivier Hainque <hainque@act-europe.fr>
16888
16889 * fold-const.c (fold_binary_op_with_conditional_arg): Only
16890 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16891
16892 2004-01-23 Daniel Jacobowitz <drow@mvista.com>
16893
16894 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16895 size for minipool references.
16896
16897 2004-01-23 Roger Sayle <roger@eyesopen.com>
16898
16899 * real.c (real_floor, real_ceil): Tweak to allow input and output
16900 arguments to overlap.
16901 (real_round): New function to implement round(3m) semantics.
16902 * real.h (real_round): Prototype here.
16903 * builtins.c (fold_builtin_round): New function to constant fold
16904 round, roundf and roundl.
16905 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16906
16907 2004-01-23 Alexandre Oliva <aoliva@redhat.com>
16908
16909 PR optimization/13819
16910 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16911 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16912 (sh_handle_sp_switch_attribute): Remove warning.
16913
16914 2004-01-23 Jan Hubicka <jh@suse.cz>
16915
16916 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
16917
16918 2004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
16919
16920 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16921 may or may not return non-NIL.
16922 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16923 check CANNOT_CHANGE_MODE_CLASS
16924
16925 2004-01-23 Jan Hubicka <jh@suse.cz>
16926
16927 * basic-block.h (PROP_POSTRELOAD): New macro.
16928 (CLEANUP_LOG_LINKS): New.
16929 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16930 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
16931
16932 * cselib.c (value_pool): New.
16933 (new_cselib_val): Use pool.
16934 (cselib_init): Initialize value_pool
16935 (cselib_finish): Free pool.
16936
16937 2004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
16938
16939 * config/sparc/sparc.c (scan_record_type): New function.
16940 (function_arg_slotno): Use it to determine which kinds of
16941 registers the record can be passed in.
16942
16943 2004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
16944
16945 * config/pa/fptr.c: Fix old-style definition.
16946
16947 2004-01-22 Paolo Bonzini <bonzini@gnu.org>
16948
16949 PR optimization/13724
16950 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
16951 represents the zero bits produced by a ZERO_EXTEND operation.
16952
16953 2004-01-22 Roger Sayle <roger@eyesopen.com>
16954
16955 PR optimization/13821
16956 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16957 correctly calculate the lowpart offset of the contracted subreg.
16958
16959 2004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
16960
16961 * doc/invoke.texi (Optimize Options): Note that --param arguments
16962 are subject to change without notice.
16963
16964 2004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16965
16966 * config.gcc (mips-sgi-irix6*o32): Removed.
16967 * config/mips/iris6-o32-as.h: Likewise.
16968 * config/mips/iris6-o32-gas.h: Likewise.
16969 * config/mips/iris6-o32.h: Likewise.
16970
16971 2004-01-22 Jan Hubicka <jh@suse.cz>
16972
16973 * cfgcleanup.c (first_pass): New static variable.
16974 (try_forward_edges): Add work limiting check for threading.
16975 (try_crossjump_bb): Add work limiting check for crossjumping.
16976 (try_optimize_cfg): Maintain first pass variable.
16977
16978 2004-01-22 Bob Wilson <bob.wilson@acm.org>
16979
16980 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16981 handles complex and vector modes.
16982
16983 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
16984
16985 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16986 (REG_OK_FOR_BASE_P_STRICT): Likewise.
16987 (STRICT): Likewise.
16988
16989 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
16990
16991 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16992 (genrtl_for_stmt): Remove emit_nop calls.
16993
16994 2004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16995
16996 PR target/13713
16997 PR target/13324
16998 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16999 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
17000 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
17001
17002 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
17003
17004 * config/arm/arm.c: Include "debug.h".
17005 (thumb_pushpop): Take two new arguments. Add some commentary.
17006 Output frame information when pushing.
17007 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
17008 thumb_pushpop.
17009 (thumb_output_function_prologue): Likewise. Accumulate a CFA
17010 offset, and pass it to thumb_pushpop. Output CFI information.
17011 (thumb_expand_prologue): Add some frame-related markers and notes.
17012
17013 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
17014
17015 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
17016 for TARGET_64BIT.
17017 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
17018 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
17019
17020 2004-01-22 Roger Sayle <roger@eyesopen.com>
17021 Paolo Bonzini <bonzini@gnu.org>
17022
17023 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
17024 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
17025 * rtl.h (subreg_lsb_1): Prototype here.
17026 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
17027 sign extensions.
17028
17029 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
17030
17031 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
17032 macro need not be defined if jump-tables should contain
17033 relative addresses only when -fPIC or -fPIC is in effect.
17034
17035 2004-01-22 Jan Hubicka <jh@suse.cz>
17036
17037 * alias.c (reg_base_value): Turn into varray.
17038 (reg_base_value_size): Kill.
17039 (old_reg_base_value): New deletable varray.
17040 (alias_invariant_size): New variable.
17041 (REG_BASE_VALUE): Update to use varray.
17042 (find_base_value): Likewise.
17043 (record_set): Likewise.
17044 (record_base_value): Likewise.
17045 (memrefs_conflict_p): Likewise.
17046 (record_set): Likewise
17047 (record_base_value): Likewise.
17048 (memrefs_conflict_p): Use alias_invariant_size.
17049 (init_alias_analysis): Use varray; set alias_invariant_size;
17050 rescale other arrays to be sized by maxreg.
17051 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
17052
17053 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
17054
17055 * config/sparc/sparc.c (function_arg_slotno): Use
17056 FLOAT_TYPE_P to detect FP fields in structures.
17057 (function_arg_record_value_1): Likewise.
17058 (function_arg_record_value_2): Likewise.
17059
17060 2004-01-22 Jan Hubicka <jh@suse.cz>
17061
17062 * function.c (allocate_struct_function): Do not initialize expr, emit
17063 and varasm.
17064 (prepare_function_start): Do it here.
17065 * c-parse.in (maybe_type_qual): Do not produce line number notes.
17066
17067 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
17068
17069 PR target/13559
17070 * config/sparc/sparc.c (function_arg_record_value_3): Revert
17071 to 'word_mode' once the first slot has been filled.
17072
17073 2004-01-22 Olivier Hainque <hainque@act-europe.fr>
17074
17075 * config/sparc/sparc.c (function_arg_record_value_1): Fix
17076 computation of the number of integer registers required.
17077
17078 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17079
17080 * config/i386/i386.md: Simplify certain comparisons of
17081 const_int.
17082
17083 2004-01-21 Andrew Pinski <apinski@apple.com>
17084
17085 PR target/13785
17086 * config/rs6000/rs6000.md (call_value): Force operand
17087 1 not operand 0 into a register.
17088
17089 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17090
17091 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
17092 unwind-dw2-fde.h: Update copyright.
17093
17094 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17095
17096 * pa-protos.h: Update copyright.
17097 * pa.h: Likewise.
17098 * pa.md: Likewise.
17099
17100 2004-01-21 Caroline Tice <ctice@apple.com>
17101
17102 PR target/12308
17103 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
17104 flags register.
17105 (fix_truncdfdi2): Likewise.
17106 (fix_truncsfdi2): Likewise.
17107 (*fix_truncdi_1): Likewise.
17108 (fix_truncxfsi2): Likewise.
17109 (fix_truncdfsi2): Likewise.
17110 (fix_truncsfsi2): Likewise.
17111 (*fix_truncsi_1): Likewise.
17112 (fix_truncxfhi2): Likewise.
17113 (fix_truncdfhi2): Likewise.
17114 (fix_truncsfhi2): Likewise.
17115 (*fix_trunchi_1): Likewise.
17116
17117 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17118
17119 * alias.c, basic-block.h, c-common.c, c-common.h,
17120 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
17121 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
17122 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
17123 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
17124 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
17125 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
17126 genautomata.c, genconditions.c, genemit.c, genflags.c,
17127 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
17128 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
17129 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
17130 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
17131 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
17132 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
17133 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
17134 unwind.h, varray.c, varray.h: Update copyright.
17135
17136 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17137
17138 * config/h8300/coff.h: Update copyright.
17139 * config/h8300/elf.h: Likewise.
17140 * config/h8300/h8300-protos.h: Likewise.
17141 * config/h8300/h8300.c: Likewise.
17142 * config/h8300/h8300.h: Likewise.
17143 * config/h8300/h8300.md: Likewise.
17144
17145 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17146
17147 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
17148 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
17149 ultrix_unistd): New hacks.
17150 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
17151 ULTRIX_CONST2_CHECK): Add checks.
17152 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
17153 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
17154 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
17155 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
17156 * fixinc/tests/base/locale.h: New file.
17157 * fixinc/fixincl.x: Rebuilt.
17158
17159 2004-01-21 Andreas Jaeger <aj@suse.de>
17160 Michael Matz <matz@suse.de>
17161
17162 * doc/extend.texi (Extended Asm): Clarify memory clobber.
17163
17164 2004-01-21 Jakub Jelinek <jakub@redhat.com>
17165
17166 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
17167 _Jv_RegisterClasses through a function pointer.
17168
17169 2004-01-21 Falk Hueffner <falk@debian.org>
17170
17171 PR target/12898
17172 * config/alpha/alpha.c (alpha_emit_set_const_1): If
17173 no_new_pseudos, use gen_rtx_SET directly for SImode constants
17174 which need multiple instructions to emit.
17175
17176 2004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
17177
17178 * config/m32r/m32r.h (CPP_SPEC): Define.
17179
17180 2004-01-21 Zack Weinberg <zack@codesourcery.com>
17181
17182 * c-decl.c (merge_decls): Kill different_binding_level and
17183 different_tu arguments; simplify throughout.
17184 (duplicate_decls): Likewise.
17185 (pushdecl, merge_translation_unit_decls): Update calls to
17186 duplicate_decls.
17187
17188 2004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17189
17190 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17191 $(SYSTEM_H).
17192 (print-rtl1.o): Depend on $(SYSTEM_H).
17193
17194 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
17195
17196 PR bootstrap/12730
17197 * configure.ac: Delete definition and subsitution of docdir.
17198 Add info, man, srcman and srcinfo to target hooks. Create doc/
17199 directory.
17200 * configure: Regenerate.
17201 * Makefile.in: Don't substitute docdir and delete all references
17202 throughout.
17203 (MAKEINFOFLAGS): Define.
17204 (stmp-docobjdir): Delete.
17205 (INFOFILES, MANFILES): Define.
17206 (info): Call lang.info, srcinfo and lang.srcinfo.
17207 (generated-manpages): Call lang.man, srcman and lang.srcman.
17208 (srcinfo, srcman): New rules to copy back files to source directory.
17209 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17210 (install-man): Revamp rule.
17211 (clean): Update dvi directory.
17212 (distclean): Delete TAGS from front end directorys.
17213 (maintainer-clean): Delete all document files in source directory.
17214
17215 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17216 (objc.srcman, objc.srcinfo): Likewise.
17217
17218 2004-01-20 Bruce Korb <bkorb@gnu.org>
17219
17220 * fixinc/inclhack.def(math_exception): bypass only for glibc.
17221 (matherr_decl): rename & relocate as exception_structure.
17222 This fix must precede the math_exception fix.
17223
17224 2004-01-20 Roger Sayle <roger@eyesopen.com>
17225
17226 * fold-const.c (fold_convert): Rename to fold_convert_const.
17227 (fold_convert_const): Change arguments to take a tree_code,
17228 a type and the operand/expression to be converted. Return
17229 NULL_TREE if no simplification is possible. Add support for
17230 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17231 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17232 Adjust call to fold_convert to match new fold_convert_const.
17233 Avoid modifying the tree passed to fold in-place.
17234
17235 2004-01-21 Alan Modra <amodra@bigpond.net.au>
17236
17237 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17238 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17239 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17240
17241 2004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17242
17243 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17244 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17245 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
17246 (emit_move_sequence): Check scratch_reg first in various if statements.
17247 Extend source simplification to handle all 64-bit CONST_INTs.
17248 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17249 frame size.
17250 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17251 frame offset calculations.
17252 * pa.h (NEW_HP_ASSEMBLER): Add comment.
17253 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17254 LEGITIMATE_64BIT_CONST_INT_P): Define.
17255 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
17256 any CONST_INT as legitimate during and after reload.
17257 (VAL_32_BITS_P, INT_32_BITS): Define.
17258 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17259
17260 2004-01-20 Jan Hubicka <jh@suse.cz>
17261
17262 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17263 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17264 containing hard regs are shared.
17265 (gen_hard_reg_clobber): New function.
17266 (hard_reg_clobbers): New array.
17267 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17268 (copy_rtx): Do not copy clobbers containing hard regs.
17269 * rtl.h (gen_hard_reg_clobber): Declare.
17270
17271 2004-01-20 Jan Hubicka <jh@suse.cz>
17272
17273 * varray.c: Include hashtab.h
17274 (varray_descriptor): New structure.
17275 (hash_descriptor, eq_descriptor, varray_descriptor,
17276 print_statistics): New static functions
17277 (varray_init, varray_grow): Update statistics
17278 (dump_varray_statistics): New function.
17279 * varray.h (dump_varray_statistics): Declare.
17280 * toplev.c (finalize): Call it.
17281 * Makefile.in (varray.o): Add dependency.
17282
17283 2004-01-20 Jan Hubicka <jh@suse.cz>
17284
17285 * cselib.c: Include alloc-pool.h
17286 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17287 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17288 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17289 unchain_one_elt_loc_list_pool, unchain_one_value,
17290 new_cselib_val): Simplify using allocpool.
17291 (cselib_init): Initialize allocpools.
17292 (cselib_finish): Finish allocpools.
17293 * Makefile.in (cselib.o): Depend on alloc-pool.h
17294
17295 2004-01-20 Richard Sandiford <rsandifo@redhat.com>
17296
17297 * config/mips/mips.c (mips_load_call_address): Make the call insn
17298 use $gp if it could be calling a lazy binding stub.
17299
17300 2004-01-20 Kazu Hirata <kazu@cs.umass.edu>
17301
17302 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17303 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17304 (TARGET_STRUCT_VALUE_RTX): Likewise.
17305 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17306 (PROMOTE_FUNCTION_RETURN): Remove.
17307 (STRUCT_VALUE): Remove.
17308
17309 2004-01-20 Denis Chertykov <denisc@overta.ru>
17310
17311 PR bootstrap/13735
17312 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17313 register as pointer after reload.
17314
17315 2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
17316
17317 PR optimization/12440
17318 * loop.c: Include ggc.h.
17319 (loop_optimize): Run garbage collector between optimization of loops.
17320 * Makefile.in (loop.o): Add GGC_H dependency.
17321
17322 2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
17323
17324 * gcc/config/rs6000/rs6000.c (function_arg) Handle
17325 vector register special in function without prototype.
17326 (function_arg_advance): Vector parameters get always
17327 GPRs allocated for the linux64 target.
17328
17329 2004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17330
17331 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17332 not TARGET_M32RX_MASK.
17333
17334 2004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
17335
17336 PR target/13557
17337 * config/sparc/sparc.c (function_arg): Reorder the cases.
17338
17339 2004-01-19 Per Bothner <per@bothner.com>
17340
17341 Move cpp_reader's line_maps field to a shared global.
17342 * cpphash.h (cpp_reader): Rename line_maps field to line_table
17343 and change the type to a pointer rather than a struct.
17344 * cppinit.c (cpp_push_main_field): Adjust accordingly.
17345 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17346 Likewise.
17347 * cppfiles.c (validate_pch): Likewise.
17348 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17349 Likewise.
17350 * cpperror.c (print_location): Likewise.
17351 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
17352 * cppinit.c (cpp_create_reader): Handle new parameter.
17353 (cpp_destroy): Don't free line_maps - that's no longer our job.
17354 * input.h (line_table): New variable.
17355 * toplev.c (line_table): Declare variable.
17356 (general_init): Initialize line_table.
17357 * c-opts.c (c_common_init_options): Pass line_table to
17358 cpp_create_reader.
17359 * fix-header.c (read_scan_file): New local variable line_table.
17360 Initialize, and pass it to cpp_create_reader.
17361 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
17362 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
17363
17364 2004-01-19 Per Bothner <per@bothner.com>
17365
17366 Implement a cache for linemap_lookup.
17367 * line-map.h (struct_line_maps): Add cache field.
17368 * line-map.c (linemap_init): Zero cache field.
17369 (linemap_add): Set cache field to offset of newly allocated map.
17370 (linemap_lookup): Use and set cache field.
17371
17372 2004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
17373
17374 PR optimization/13567
17375 * cse.c (cse_basic_block): Call cse_insn with a non-null
17376 libcall_insn for the last SET insn of a no-confilict block.
17377
17378 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
17379
17380 * Makefile.in (target_noncanonical, program_transform_name): Use
17381 immediate define instead of deferred.
17382 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
17383 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17384 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17385 deferred backquote.
17386
17387 2004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
17388
17389 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17390 true unconditionally.
17391 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17392 Remove.
17393 (build_unary_op, build_modify_expr): Don't handle extended
17394 lvalues.
17395 (build_component_ref, build_conditional_expr): Call non_lvalue
17396 instead of pedantic_non_lvalue.
17397 (build_c_cast): Don't condition use of non_lvalue on pedantic.
17398 * fold-const.c (fold): Don't check pedantic directly for
17399 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
17400 passed to pedantic_non_lvalue.
17401 * doc/extend.texi: Remove documentation of extended lvalues.
17402
17403 2004-01-19 Roger Sayle <roger@eyesopen.com>
17404
17405 PR optimization/5263
17406 * simplify-rtx.c (associative_constant_p): Delete.
17407 (simplify_associative_operation): Rewrite to linearize terms, and
17408 attempt to simplify new term against both left and right subterms.
17409 (simplify_binary_operation): Call swap_commutative_operands_p on
17410 op0 and op1, not trueop0 and trueop1. Move the initialization of
17411 trueop0 and trueop1 down to where first needed.
17412 (simplify_relational_operation): Likewise.
17413 * rtlanal.c (commutative_operand_precedence): Also order constant
17414 operands using avoid_constant_pool_reference.
17415
17416 2004-01-19 Richard Henderson <rth@redhat.com>
17417
17418 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17419 don't check memory mode.
17420 (unaligned_memory_operand): Likewise.
17421 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17422 abort for op0 not MEM.
17423
17424 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17425 is not a reg, copy to a scratch first.
17426 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17427 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17428 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17429 (reload_inqi, reload_inhi): Fix mode of op0.
17430 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17431 reload_outhi_help): Likewise. Use define_insn_and_split.
17432
17433 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17434 as well as $29 dead.
17435
17436 2004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
17437
17438 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
17439 "tls_object" for thread-local objects.
17440 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17441 "#tls" for thread-local sections.
17442 * configure.ac (thread-local checks): Specify --fatal-warnings in
17443 every binutils-specific checks. For sparc*-*-*, test whether the
17444 OS is Solaris and the tools are native and act accordingly.
17445 * configure: Rebuild.
17446
17447 2004-01-19 Jeff Law <law@redhat.com>
17448
17449 * contrib.texi: Update Paolo Carlini's entry. New entries for
17450 Jerry Quinn and Petur Runolfsson.
17451
17452 2004-01-19 Roger Sayle <roger@eyesopen.com>
17453
17454 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17455 size, don't use the larger zero-extending loads.
17456
17457 2004-01-19 Richard Henderson <rth@redhat.com>
17458
17459 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17460 * alpha.md (UNSPEC_NT_LDA): Remove.
17461 (UNSPEC_CVTLQ, cvtlq): New.
17462 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17463 (extendsidi2_fix): Remove.
17464 (extendsidi2 splitter): Use cvtlq.
17465 (extendsidi2 fp peepholes): Remove.
17466 (cvtql): Use SFmode instead of SImode.
17467 (fix_trunc?fsi): Update to match.
17468 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17469 (movsi): Rename from movsi_nofix, remove f alternatives.
17470 (movsi_nt_vms): Similarly.
17471 (movsi_fix, movsi_nt_vms_fix): Remove.
17472 (nt_lda): Remove.
17473 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17474
17475 2004-01-19 Jan Hubicka <jh@suse.cz>
17476
17477 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17478 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17479 list.
17480 (cgraph_remove_unreachable_nodes): New function
17481 (cgraph_decide_inlining_of_small_function): Fix pasto.
17482 (cgraph_decide_inlining_incrementally): Fix pasto.
17483 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17484
17485 2004-01-19 Steven Bosscher <stevenb@suse.de>
17486
17487 * gengtype.c (header_file): Make it static.
17488 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17489 * gengtype.h (header_file): No longer extern.
17490
17491 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17492
17493 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17494 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17495 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17496
17497 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17498
17499 * stmt.c (HAVE_casesi): Define it not already defined.
17500 (HAVE_tablejump): Likewise.
17501 (expand_end_case_type): Resort to the binary tree method if
17502 neither casesi or tablejump is available.
17503
17504 2004-01-18 Daniel Jacobowitz <drow@mvista.com>
17505
17506 * final.c (final_scan_insn): Make non-static again.
17507 * output.h (final_scan_insn): Re-add prototype.
17508 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17509 to final_scan_insn call.
17510 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17511 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17512 * config/pa/pa.c (output_lbranch, output_call): Likewise.
17513 * config/sh/sh.c (print_slot): Likewise.
17514 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17515 (output_sibcall, sparc_flat_function_epilogue): Likewise.
17516
17517 2004-01-18 Jan Hubicka <jh@suse.cz>
17518
17519 * basic-block.h (try_redirect_by_replacing_jump): Declare.
17520 * cfgcleanup.c (try_optimize_cfg): Use it.
17521 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17522 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17523 Kill hack.
17524 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17525
17526 Revert:
17527 2004-01-16 Geoffrey Keating <geoffk@apple.com>
17528
17529 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17530 even after reload, just don't remove the actual jump tables.
17531
17532 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17533
17534 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17535
17536 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17537
17538 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17539 the size of a pointer in bytes.
17540
17541 2004-01-18 Roger Sayle <roger@eyesopen.com>
17542
17543 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17544 live "next" variable, which could lead to an infinite loop.
17545
17546 2004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
17547
17548 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17549 block.
17550
17551 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17552 Check for NULL in the chain and remove repeated code.
17553
17554 2004-01-18 Jan Hubicka <jh@suse.cz>
17555
17556 * coverage.c (checksum_string): Rename to ...
17557 (coverage_checksum_string): ... this one, Use crc32_string; recognize
17558 names containing random number and zero the number out in order to get
17559 match.
17560
17561 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
17562
17563 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17564
17565 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17566
17567 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17568 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17569 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17570 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17571 doc/trouble.texi: Remove trailing whitespace.
17572
17573 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
17574
17575 PR target/7618
17576 * config/mips/mips.c: Include cfglayout.h.
17577 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17578 (mips_unspec_offset_high): Add temporary register argument.
17579 (mips_load_call_address): New function, split out from...
17580 (mips_expand_call): ...here.
17581 (mips_output_cplocal): New function.
17582 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17583 (mips_emit_loadgp): New function, split out from...
17584 (mips_expand_prologue): ...here.
17585 (mips_output_mi_thunk): New function.
17586
17587 2004-01-17 Bernardo Innocenti <bernie@develer.com>
17588
17589 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17590 mcpu32): Remove redundant checks for implied target predefines.
17591
17592 2004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
17593
17594 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17595 Return type is unsigned int not int.
17596 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17597 Likewise.
17598
17599 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17600
17601 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17602 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17603 "GNU/Linux" and "Microsoft Windows" terminology.
17604
17605 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17606
17607 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17608 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17609 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17610 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17611 @smallexample instead of @example.
17612
17613 2004-01-17 Ziemowit Laski <zlaski@apple.com>
17614
17615 * objc/objc-act.c (build_objc_method_call): Use target
17616 hooks instead of macros to determine if ..._stret
17617 dispatchers should be used (NeXT runtime only).
17618
17619 2004-01-17 Roger Sayle <roger@eyesopen.com>
17620
17621 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17622 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17623
17624 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
17625
17626 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17627 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17628 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17629 macros.
17630 * reload1.c (emit_reload_insns): Use them.
17631 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17632 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17633 for NULL PATTERN.
17634
17635 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
17636
17637 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17638 (final_scan_insn): Update to take an additional SEEN argument. Emit
17639 a line note after the prologue. Make static.
17640 (line_note_exists): Remove.
17641 (final): Don't initialize line_note_exists. Update call to
17642 final_scan_insn.
17643 * output.h (final_scan_insn): Remove prologue.
17644 * function.c (set_insn_locators): Update comment.
17645 (thread_prologue_and_epilogue_insns): Add a comment.
17646
17647 2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
17648
17649 PR target/10781
17650 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17651 Prototype.
17652 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17653 New function.
17654 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17655 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17656 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17657
17658 2004-01-17 Jan Hubicka <jh@suse.cz>
17659
17660 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17661 commit.
17662
17663 * toplev.c (HAVE_conditional_execution): Provide default.
17664 (rest_of_handle_reorder_blocks): For conditional_execution target
17665 update liveness once after all transformations
17666 (rest_of_compilation): Do crossjumping before ce3.
17667
17668 2004-01-17 Geoffrey Keating <geoffk@apple.com>
17669
17670 * alias.c (new_alias_set): Mark last_alias_set for PCH.
17671 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17672 for PCH.
17673 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17674 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17675 (get_TOC_alias_set): Mark 'set' for PCH.
17676
17677 2004-01-16 Geoffrey Keating <geoffk@apple.com>
17678
17679 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17680 even after reload, just don't remove the actual jump tables.
17681
17682 2004-01-17 J. Brobecker <brobecker@gnat.com>
17683
17684 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17685 Remove checks for is_ada() and TREE_UNSIGNED.
17686 (subrange_type_die): Emit a byte_size attribute if the subrange
17687 type size is different from the base type size.
17688 (modified_type_die): Replace call to is_ada_subrange_type() by
17689 call to is_subrange_type().
17690
17691 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
17692
17693 * config/sh/sh.c: Include ggc.h.
17694
17695 2004-01-16 Geoffrey Keating <geoffk@apple.com>
17696
17697 * Makefile.in (MD5_H): New.
17698 (fold-const.o): Depend on md5.h.
17699 (dwarf2out.o): Likewise.
17700 (cppfiles.o): Likewise.
17701 * cppfiles.c: Include md5.h.
17702 (should_stack_file): Check against list read from PCH file.
17703 (struct pchf_data): New.
17704 (pchf): New variable.
17705 (struct pchf_adder_info): New.
17706 (pchf_adder): New.
17707 (pchf_save_compare): New.
17708 (_cpp_save_file_entries): New.
17709 (_cpp_read_file_entries): New.
17710 (struct pchf_compare_data): New.
17711 (pchf_compare): New.
17712 (check_file_against_entries): New.
17713 * cpphash.h (_cpp_save_file_entries): Prototype.
17714 (_cpp_read_file_entries): Prototype.
17715 * cpppch.c (cpp_write_pch_state): Write the list of headers.
17716 (cpp_read_state): Read the list of headers.
17717
17718 2004-01-17 Jan Hubicka <jh@suse.cz>
17719
17720 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17721 builtin_expect specially.
17722 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17723 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17724 * invoke.texi (max-inline-insns-single): Set to 100.
17725 (large-function-insns): Set to 3000.
17726
17727 2004-01-16 Eric Christopher <echristo@redhat.com>
17728 Chandrakala Chavva <cchavva@redhat.com>
17729
17730 * cppcharset.c (one_iso88591_to_utf8): New function.
17731 (convert_iso88591_utf8): Ditto. Use.
17732 (conversion_tab): Use.
17733 (_cpp_input_to_utf8): New function.
17734 (_cpp_init_iconv_buffer): Ditto.
17735 (_cpp_close_iconv_buffer): Ditto.
17736 * cpphash.h: Prototype new functions.
17737 (cpp_buffer): Add input_cset_desc.
17738 * cppinit.c: Add input_charset default.
17739 * cpplib.c (cpp_push_buffer): Support init and
17740 close of iconv.
17741 * cpplib.h (cpp_options): Add input_charset.
17742
17743 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17744
17745 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17746 * config/alpha/unicosmk.h: Remove a commented-out definition
17747 of ASM_OUTPUT_SECTION_NAME.
17748 * config/stormy16/stormy16.h: Likewise.
17749
17750 2004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
17751
17752 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17753 (alpha___extern_prefix_sys_stat): ... this.
17754 Apply to <sys/mount.h>, too.
17755 Tweak to match more variations.
17756 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17757
17758 * fixinc/inclhack.def (alpha___extern_prefix,
17759 alpha___extern_prefix_standards): New hacks to obey
17760 __PRAGMA_EXTERN_PREFIX.
17761 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17762 test.
17763 * fixinc/tests/base/standards.h: Likewise.
17764
17765 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17766 variations.
17767 New testcase.
17768 * fixinc/tests/base/pthread.h: Handle it.
17769
17770 * fixincl/inclhack.def (bad_lval): Sort file list.
17771 Add many missing files up to Tru64 UNIX V5.1B.
17772 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17773 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17774 order.
17775
17776 * fixinc/fixincl.x: Regenerate.
17777
17778 2004-01-16 Mark Mitchell <mark@codesourcery.com>
17779
17780 * version.c (version_string): Change to 3.5.0.
17781 * doc/include/gcc-common.texi (version-GCC): Likewise.
17782
17783 2004-01-16 Jan Hubicka <jh@suse.cz>
17784
17785 * i386.md (load_tp_di): Fix pasto.
17786
17787 PR opt/13608
17788 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17789
17790 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17791 pp_c_character_constant, pp_c_floating_constant,
17792 pp_c_additive_expression, pp_c_shift_expression,
17793 pp_c_equality_expression, pp_c_and_expression,
17794 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17795 pp_c_logical_and_expression): Remove inline modifier.
17796 * dwarf2out.c (get_AT): Likewise.
17797 * et-forest.c (et_splay): Likewise.
17798 * ra.h (ra_alloc, ra_calloc): Likewise
17799
17800 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17801
17802 * config/frv/frv-protos.h: Fix comment formatting.
17803 * config/frv/frv.c: Likewise.
17804 * config/frv/frv.h: Likewise.
17805 * config/frv/frv.md: Likewise.
17806 * config/frv/frvbegin.c: Likewise.
17807 * config/frv/frvend.c: Likewise.
17808
17809 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17810
17811 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17812 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17813 LINKER_DOES_NOT_WORK_WITH_DWARF2.
17814 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17815
17816 2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
17817
17818 PR 11864
17819 * postreload.c (reload_cse_simplify_operands): Don't remove
17820 implicit extension from LOAD_EXTEND_OP.
17821
17822 2004-01-16 Jan Hubicka <jh@suse.cz>
17823
17824 PR opt/11350
17825 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17826 after reload.
17827 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17828 rtl_try_redirect_by_replacing_branch): Likewise.
17829
17830 2004-01-15 Geoffrey Keating <geoffk@apple.com>
17831
17832 PR pch/13689
17833 * alias.c (struct alias_set_entry): Mark for GC.
17834 (alias_sets): Make static, mark for GC.
17835 (record_alias_subset): Use GC to allocate alias structures.
17836 * varray.c (element): Make generic varrays GCed.
17837
17838 PR pch/13361
17839 * c-typeck.c (constructor_asmspec): Delete.
17840 (struct initializer_stack): Delete field 'asmspec'.
17841 (start_init): Delete saving of asmspec.
17842 (finish_init): Don't update constructor_asmspec.
17843 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17844 * stmt.c (expand_asm): Duplicate strings from tree.
17845 (expand_asm_operands): Likewise.
17846 * tree.c (tree_size): Update computation of size of STRING_CST.
17847 (make_node): Don't make STRING_CST nodes.
17848 (build_string): Allocate string with tree node.
17849 * tree.def (STRING_CST): Update comment.
17850 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17851 (tree_string): Place contents of string in tree node.
17852 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17853 from tree.
17854
17855 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17856 altivec operands.
17857
17858 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17859
17860 * c-common.h: Fix comment formatting.
17861 * c-cppbuiltin.c: Likewise.
17862 * c-pragma.c: Likewise.
17863 * calls.c: Likewise.
17864 * collect2.c: Likewise.
17865 * cppcharset.c: Likewise.
17866 * cpptrad.c: Likewise.
17867 * dbxout.c: Likewise.
17868 * defaults.h: Likewise.
17869 * dwarf2out.c: Likewise.
17870 * fold-const.c: Likewise.
17871 * genautomata.c: Likewise.
17872 * genconditions.c: Likewise.
17873 * genflags.c: Likewise.
17874 * gengtype.c: Likewise.
17875 * integrate.c: Likewise.
17876 * loop.c: Likewise.
17877 * predict.c: Likewise.
17878 * sdbout.c: Likewise.
17879
17880 2004-01-15 Zack Weinberg <zack@codesourcery.com>
17881
17882 * config/ia64/ia64.md (*movti_internal): C output template
17883 extracted to ia64.c.
17884 (*movti_internal_reg): Delete.
17885 (reload_inti, reload_outti): Use the correct mode on operand 2
17886 in the first place, don't fix it up in the output template.
17887 (movtf, reload_ointf, reload_outtf): New expanders.
17888 (*movtf_internal): New define_insn_and_split.
17889 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17890 make static; do not hand TFmode CONST_DOUBLEs to split_double.
17891 (ia64_split_tmode_move): New function, body mostly pulled
17892 from ia64.md:*movti_internal.
17893 (ia64_function_arg_words): New function, extracted common
17894 logic from ia64_function_arg et seq.
17895 (ia64_function_arg_offset): Likewise. Handle correctly the
17896 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17897 (ia64_function_arg, ia64_function_arg_partial_nregs)
17898 (ia64_function_arg_advance): Use ia64_function_arg_words and
17899 ia64_function_arg_offset.
17900 (ia64_function_value): TCmode does not go in float regs.
17901 (ia64_secondary_reload_class): Also handle TFmode.
17902 * config/ia64/ia64-protos.h: Remove prototype for
17903 ia64_split_timode; add prototype for ia64_split_tmode_move.
17904
17905 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
17906
17907 * Makefile.in (MAINT): Make it an immediate assignment.
17908
17909 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17910
17911 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17912
17913 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17914
17915 * config/h8300/coff.h: Replace Hitachi with Renesas.
17916 * config/h8300/elf.h: Likewise.
17917 * config/h8300/h8300-protos.h: Likewise.
17918 * config/h8300/h8300.c: Likewise.
17919 * config/h8300/h8300.h: Likewise.
17920 * config/h8300/h8300.md: Likewise.
17921 * config/h8300/lib1funcs.asm: Likewise.
17922
17923 2004-01-15 Andrew Pinski <apinski@apple.com>
17924
17925 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17926 around it.
17927
17928 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17929
17930 * config/h8300/h8300.c (h8300_return_in_memory): New.
17931 (TARGET_STRUCT_VALUE_RTX): Likewise.
17932 (TARGET_RETURN_IN_MEMORY): Likewise.
17933 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17934 (RETURN_IN_MEMORY): Likewise.
17935
17936 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
17937
17938 PR optimization/13375
17939 * gcse.c (handle_avail_expr): Just return if the source is not a
17940 single set.
17941
17942 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
17943 Daniel Jacobowitz <drow@mvista.com>
17944
17945 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17946 (EQUIV): Define.
17947 (ARM_FUNC_ALIAS): New macro.
17948 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17949 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17950
17951 2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17952
17953 PR optimization/12372
17954 * calls.c (expand_call): Add call_fusage data for stack arguments in
17955 constant calls.
17956
17957 2004-01-15 Alan Modra <amodra@bigpond.net.au>
17958
17959 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
17960 (rs6000_elf_declare_function_name): Formatting.
17961 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17962
17963 2004-01-15 Jan Hubicka <jh@suse.cz>
17964
17965 PR bootstrap/13692
17966 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17967 previous patch.
17968
17969 2004-01-15 Richard Henderson <rth@redhat.com>
17970
17971 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17972 integer regs of the same call-savedness.
17973
17974 2004-01-15 Andreas Schwab <schwab@suse.de>
17975
17976 PR bootstrap/13562
17977 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17978 status for NOTB/NOTW/NEGW methods.
17979
17980 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17981
17982 * doc/invoke.texi: Update dump file names. Fix a typo.
17983
17984 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17985
17986 * builtins.c (expand_builtin_va_end): Don't use
17987 EXPAND_BUILTIN_VA_END.
17988 * system.h (EXPAND_BUILTIN_VA_END): Poison.
17989 * config/d30v/d30v.h: Remove a commented-out definition of
17990 EXPAND_BUILTIN_VA_END.
17991 * config/stormy16/stormy16.h: Likewise.
17992
17993 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17994
17995 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17996 * targhooks.c (default_struct_value_rtx): Don't use
17997 STRUCT_VALUE_INCOMING_REGNUM.
17998
17999 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
18000
18001 PR bootstrap/12744
18002 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
18003 GENINSRC and not parsedir. Define srcextra as a langhook.
18004 * configure: Regenerate.
18005 * Makefile.in: Suppress default .l.c rule. Don't substitute
18006 parsedir and delete all references throughout. Conditionally define
18007 rule for srcextra dependent on GENINSRC.
18008 (stmp-docobjdir): Delete.
18009 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
18010 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
18011 and gengtype-yacc.h back to source directory.
18012 (maintainer-clean): Delete all parse files in source directory.
18013 (distclean): Delete generated files.
18014
18015 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
18016 (objc-parse.c, objc-parse.y): Don't use parsedir.
18017 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
18018 directory if requested.
18019 (po-generated): Don't use parsedir.
18020 (objc.maintainer-clean): Delete above files from source directory.
18021
18022 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18023
18024 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
18025
18026 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18027
18028 * doc/tm.texi: Replace RETURN_IN_MEMORY with
18029 TARGET_RETURN_IN_MEMORY.
18030
18031 2004-01-15 Jan Hubicka <jh@suse.cz>
18032
18033 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
18034 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
18035 functions accepting SSE arguments
18036 (function_arg): Warn only when asked to warn.
18037 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
18038
18039 2004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
18040
18041 * c-parse.in (stmts_and_decls): Make label at end of compound
18042 statement a hard error.
18043
18044 2004-01-14 Jan Hubicka <jh@suse.cz>
18045
18046 * cgraph.c (create_edge): Use local.redefined_extern_inline.
18047 * cgraph.h (cgraph_local_info): Sort fields by size; add
18048 redefined_extern_inline
18049 (cgraph_global_info): Sort fields by size.
18050 (cgraph_node): Likewise.
18051 * cgraphunit.c (cgraph_finalize_function): Se
18052 local.redefined_extern_inline on redefinition.
18053 (cgraph_analyze_function): Use it; fix formating.
18054
18055 2004-01-14 Jan Hubicka <jh@suse.cz>
18056
18057 PR c++/10776
18058 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
18059 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
18060 bitmaps
18061 (cache_size): New variable
18062 (add_dependence): Update use; canonize early memory locations
18063 (sched_analyze_1): Likewise.
18064 (sched_analyze_2): Likewise.
18065 (init_dependency_caches): Initialize bitmaps.
18066 (free_dependency_caches): Free bitmaps
18067
18068 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18069
18070 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
18071 targetm.calls.strict_argument_naming().
18072 * target.h: Likewise.
18073
18074 2004-01-14 Richard Henderson <rth@redhat.com>
18075
18076 PR debug/13231
18077 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
18078 instructions.
18079
18080 2004-01-14 Richard Henderson <rth@redhat.com>
18081
18082 PR c++/12491
18083 * except.c (struct eh_region): Add u.fixup.resolved.
18084 (resolve_one_fixup_region): Split out from ...
18085 (resolve_fixup_regions): ... here.
18086
18087 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18088
18089 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
18090
18091 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18092
18093 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
18094 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
18095 (STRUCT_VALUE): Remove.
18096
18097 2004-01-14 Steven Bosscher <stevenb@suse.de>
18098
18099 * system.h: Poison PROMOTED_MODE
18100 * integrate.c (expand_inline_function): Don't mention the
18101 PROMOTED_MODE.
18102 * loop.c (update_giv_derive): Same.
18103 * tree.h (DECL_RTL): Same.
18104
18105 2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
18106
18107 PR target/9365
18108 * sh.c (gen_block_redirect): Add special handling of RETURN.
18109 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
18110 far branch target (i.e. it's a return).
18111
18112 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18113
18114 * regrename.c (find_oldest_value_reg): Fix a warning.
18115
18116 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
18117
18118 PR bootstrap/12527
18119 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
18120 Move linux-gas.h and linux-elf.h before aout.h.
18121 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
18122 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
18123
18124 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18125
18126 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
18127 (CONST_INT, VOIDmode, ...).
18128
18129 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
18130
18131 * regrename.c (find_oldest_value_reg): If the replacement uses
18132 multiple hard registers, check that all of them are in CLASS.
18133
18134 2004-01-14 Jan Hubicka <jh@suse.cz>
18135
18136 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
18137 impossible.
18138
18139 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
18140
18141 * Makefile.in: Define MAINT from --enable-maintainer-mode.
18142
18143 2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
18144
18145 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
18146 Calculate always vrsave_mask if TARGET_ALTIVEC.
18147 (rs6000_emit_prologue): Emit code for vrsave
18148 only if TARGET_ALTIVEC_VRSAVE.
18149 (rs6000_emit_epilogue): Likewise.
18150
18151 2004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
18152
18153 * config/sparc/sparc.md (tie_add32): Fix pasto.
18154 (tie_add64): Likewise.
18155
18156 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
18157
18158 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
18159
18160 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18161
18162 * config/iq2000/iq2000-protos.h: Fix comment formatting.
18163 * config/iq2000/iq2000.c: Likewise.
18164 * config/iq2000/iq2000.md: Likewise.
18165
18166 2004-01-14 J. Brobecker <brobecker@gnat.com>
18167
18168 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
18169 (subrange_type_die): Add handle for nameless subrange types.
18170
18171 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18172
18173 * config/h8300/h8300-protos.h: Replace do_movsi with
18174 h8300_expand_movsi.
18175 * config/h8300/h8300.c (do_movsi): Change to
18176 h8300_expand_movsi.
18177 * config/h8300/h8300.md (movsi): Replace do_movsi with
18178 h8300_expand_movsi.
18179 (movsf): Likewise.
18180
18181 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18182
18183 * config/h8300/h8300.c (dosize): Change to
18184 h8300_emit_stack_adjustment. Update callers.
18185
18186 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18187
18188 * config/h8300/h8300.md (movstrictqi): Add an alternative with
18189 the source being post_inc. Tighten the predicate for the
18190 destination to register_operand.
18191 (movstricthi): Likewise.
18192
18193 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18194
18195 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18196 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18197 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18198
18199 2004-01-14 Jan Hubicka <jh@suse.cz>
18200
18201 Partial fix PR c++/12850
18202 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18203 at zero nest level.
18204
18205 2004-01-13 Bernardo Innocenti <bernie@develer.com>
18206
18207 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
18208 pseudo-register.
18209
18210 2004-01-13 Devang Patel <dpatel@apple.com
18211
18212 PR debug/7078
18213 * dbxout.c (dbxout_symbol_name): Emit mangled names for
18214 NAMESPACE_DECL memebers.
18215
18216 2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
18217
18218 PR c++/12709
18219 * c-common.c (finish_fname_decls): Use the chain only if the
18220 tree is an expr_stmt.
18221
18222 2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
18223
18224 * rtl.def: Add comment about new option in automata_option.
18225
18226 * genautomata.c (PROGRESS_OPTION): New macro.
18227 (progress_flag): New global variable.
18228 (gen_automata_option): Process `progress'.
18229 (transform_insn_regexps, check_unit_distributions_to_automata,
18230 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18231 expand_automata, write_automata): Print about the progress only if
18232 progress_flag. Remove fflush.
18233 (initiate_automaton_gen): Process command line flag `-progress'.
18234
18235 * doc/md.texi: Describe the new option.
18236
18237 2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
18238
18239 * cfg.c (dump_bb): Dump entry edges.
18240
18241 2004-01-13 Richard Earnshaw <rearnsha@arm.com>
18242
18243 * arm.c (thumb_legitimate_address_p): Only allow constant pool
18244 references from SImode.
18245 * arm.md (thumb_movhi_insn): Don't allow minipool references.
18246
18247 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18248
18249 * system.h (TEXT_SECTION): Poison.
18250 * varasm.c (text_section): Don't use TEXT_SECTION.
18251 * config/sh/sh.c (sh_file_start): Fix a comment typo.
18252 * doc/tm.texi (TEXT_SECTION): Remove.
18253
18254 2004-01-13 Ben Elliston <bje@wasabisystems.com>
18255
18256 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18257
18258 2004-01-12 James E Wilson <wilson@specifixinc.com>
18259
18260 * unwind-libunwind.c: Delete.
18261
18262 2004-01-12 Zack Weinberg <zack@codesourcery.com>
18263
18264 PR 13656
18265 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18266 oldtype is set, set *newtypep or *oldtypep too. Do not set
18267 them at the very end.
18268 (validate_proto_after_old_defn): Restructure for comprehensibility;
18269 make error messages clearer.
18270
18271 2004-01-12 Zack Weinberg <zack@codesourcery.com>
18272
18273 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18274 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18275 * varray.c: No need to prototype error.
18276 (varray_check_failed): Wrap long string onto two lines.
18277 (varray_underflow): New function.
18278
18279 2004-01-13 Steven Bosscher <stevenb@suse.de>
18280
18281 PR c++/13376
18282 * function.h (struct function): Kill `name' field.
18283 (current_function_name): Make it an extern function.
18284 * function.c (current_function_name): New function.
18285 * graph.c: Update all uses of current_function_name.
18286 * gcse.c: Likewise.
18287 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18288 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18289 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18290 instead of a strcmp with "main".
18291
18292 2004-01-13 Jan Hubicka <jh@suse.cz>
18293
18294 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
18295
18296 * cgraphunit.c (cgraph_optimize_function): Always do
18297 optimize_inline_calls when there is always_inline callee.
18298 (cgraph_decide_inlining): Fix formating.
18299 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18300 functions.
18301 (expand_call_inline): Likewise.
18302 * toplev.h (sorry): Fix prototype.
18303
18304 2004-01-12 Roger Sayle <roger@eyesopen.com>
18305
18306 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18307 conditional jumps that drop through to unconditional jumps or the
18308 end of the sequence.
18309
18310 2004-01-13 Jan Hubicka <jh@suse.cz>
18311
18312 * alias.c (new_alias_set): Construct the alias_set varray.
18313 (init_alias_once): Don't do it here.
18314
18315 2004-01-12 Marc Espie <espie@openbsd.org>
18316
18317 * system.h: handle YYBYACC like YYBISON.
18318
18319 2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
18320
18321 PR target/10847
18322 * config.gcc: No longer includes conflicting header sparc/sol2.h when
18323 building on sparc64-*-openbsd*.
18324
18325 2004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
18326
18327 PR debug/13539
18328 * dbxout.c (dbxout_type): Protected inheritance is not
18329 private but protected.
18330
18331 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
18332
18333 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18334
18335 2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
18336
18337 PR optimization/12508.
18338 * combine.c (try_combine): Remove a dead set in a parallel
18339 even if its destination is a subreg.
18340
18341 Revert:
18342 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
18343 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18344 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18345
18346 2004-01-12 Geoffrey Keating <geoffk@apple.com>
18347
18348 * real.c: Update copyright date.
18349 * emit-rtl.c: Likewise.
18350 * rtl.h: Likewise.
18351 * dwarf2out.c: Likewise.
18352 * config/rs6000/darwin-ldouble.c: Likewise.
18353 * config/rs6000/rs6000.md: Likewise.
18354
18355 2004-01-12 David Edelsohn <edelsohn@gnu.org>
18356
18357 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18358 TFmode to SImode libfuncs.
18359
18360 2004-01-12 Roger Sayle <roger@eyesopen.com>
18361
18362 PR middle-end/11397
18363 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18364
18365 2004-01-12 Jan Hubicka <jh@suse.cz>
18366
18367 PR opt/12826
18368 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18369 stored.
18370
18371 PR opt/12863
18372 * cfgcleanup.c (label_is_jump_target_p): Move to...
18373 * rtlanal.c (label_is_jump_target_p): ... here.
18374 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
18375 edges unified with branch edges.
18376
18377 2004-01-12 Richard Earnshaw <rearnsha@arm.com>
18378
18379 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18380 high word of an integral CONST_DOUBLE.
18381
18382 2004-01-12 Paul Brook <paul@codesourcery.com>
18383
18384 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18385
18386 2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
18387
18388 PR target/13585
18389 * sh-protos.h (check_use_sfunc_addr): Declare.
18390 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18391 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18392
18393 2004-01-12 Jan Hubicka <jh@suse.cz>
18394
18395 * alias.c: Invlude varray.h
18396 (alias_sets): Turn into varray.
18397 (get_alias_set_entry): Use VARRAY; mark inline.
18398 (mems_in_disjoint_alias_sets_p): Mark inline.
18399 (record_alias_subset): Use varray.
18400 (init_alias_once): Initialize varray.
18401 (new_alias_set): Grow array.
18402 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18403
18404 2004-01-12 Jan Hubicka <jh@suse.cz>
18405
18406 Partial fix for PR opt/10776 II
18407 * cselib.c: Include params.h
18408 (cselib_invalidate_mem): Limit amount of nonconflicting memory
18409 locations.
18410 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18411 * Makefile.in (cselib.o): Depend on params.h
18412
18413 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
18414
18415 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18416 simplify_unary_operation if the operand has a known mode.
18417
18418 2004-01-12 Hartmut Penner <hpenner@de.ibm.com>
18419
18420 PR target/13534
18421 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18422 predicate to handle 'ld' conform addresses.
18423 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18424 contraint.
18425 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18426 are memory contraints.
18427 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
18428 New prototype.
18429 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
18430 Change 'o' to 'Y' constraint.
18431 (*movdf_softfloat64): Ditto.
18432
18433 2004-01-12 Bernardo Innocenti <bernie@develer.com>
18434
18435 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18436 brace-enclosed syntax in all C output statements.
18437
18438 2004-01-12 David Edelsohn <edelsohn@gnu.org>
18439
18440 PR target/13401
18441 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18442 Objective-C language type value is 14.
18443
18444 2004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
18445
18446 PR c/12148
18447 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18448 `int' in a number of places to make sure we always have a SImode
18449 and not a HImode. Add a 'L' suffix to a number of constants.
18450
18451 2004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18452
18453 * pa.c: Don't include obstack.h.
18454
18455 * pa.md: Correct constraint in pattern for loading PIC label address.
18456
18457 2004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
18458
18459 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18460 before defining.
18461
18462 2004-01-11 Steven Bosscher <stevenb@suse.de>
18463
18464 PR fortran/9972
18465 * toplev.c (rest_of_handle_inline): Also consider functions
18466 for deferral if the language is GNU F77.
18467
18468 2004-01-11 Zack Weinberg <zack@codesourcery.com>
18469
18470 * c-decl.c (diagnose_arglist_conflict): Add missing space to
18471 diagnostic messages.
18472
18473 2004-01-11 Jakub Jelinek <jakub@redhat.com>
18474
18475 PR middle-end/13392
18476 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18477 to drop through label. Don't fall back to SCC even when conditional
18478 jump has not been found.
18479
18480 2004-01-11 Jan Hubicka <jh@suse.cz>
18481
18482 * invoke.texi: Fix syntax error in previous patch.
18483
18484 Partial fix for PR opt/10776
18485 * Makefile.in (reload.o): Include param.h
18486 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18487 * reload.c: Include params.h.
18488 (find_equiv_reg): Work limiting check.
18489 * invoke.texi: Document.
18490
18491 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
18492
18493 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18494 out-of-bounds accesses to string constants. Simplify mips16
18495 case accordingly.
18496
18497 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
18498
18499 PR optimization/13469
18500 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18501 reload_cse_regs (-fnon-call-exceptions only).
18502
18503 2004-01-11 Kazu Hirata <kazu@cs.umass.edu>
18504
18505 * config/mcore/lib1.asm: Fix comment formatting.
18506 * config/mcore/mcore-elf.h: Likewise.
18507 * config/mcore/mcore.c: Likewise.
18508 * config/mcore/mcore.h: Likewise.
18509 * config/mcore/mcore.md: Likewise.
18510
18511 2004-01-10 Zack Weinberg <zack@codesourcery.com>
18512
18513 * c-decl.c (duplicate_decls): Break apart into...
18514 (diagnose_arglist_conflict, validate_proto_after_old_defn)
18515 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18516 ... these new functions. Restructure for comprehensibility.
18517 Remove various archaic special cases. Always report the
18518 location of the previous declaration when a diagnostic is issued.
18519 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18520 (match_builtin_function_types): Delete unnecessary forward declaration.
18521
18522 2004-01-10 Zack Weinberg <zack@codesourcery.com>
18523
18524 * genautomata.c (make_automaton, NDFA_to_DFA):
18525 Print progress bars with '.' characters instead of '*'.
18526 (build_automaton): Change notes to match.
18527
18528 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
18529
18530 * config/m32r/m32r.md: Use define_constants for unspec and
18531 unspec_volatile.
18532
18533 2004-01-10 Jan Hubicka <jh@suse.cz>
18534
18535 PR opt/11635
18536 * expr.c (expand_expr_real): More curefully expand union casts.
18537
18538 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
18539
18540 * config/m32r/m32r.md (flush_icache): Use 1 for
18541 unspec_volatile.
18542
18543 2004-01-10 David Edelsohn <edelsohn@gnu.org>
18544 James E Wilson <wilson@specifixinc.com>
18545
18546 PR debug/12860
18547 * dbxout.c (dbxout_symbol): Remove initialization of
18548 current_sym_code, current_sym_value, and current_sym_addr.
18549 (dbxout_symbol_location): Same.
18550 (dbxout_prepare_symbol): Zero current_sym_code,
18551 current_sym_value, and current_sym_addr.
18552
18553 2004-01-10 Richard Sandiford <rsandifo@redhat.com>
18554
18555 * tree.c (get_unwidened): Reorder conditions so that the null pointer
18556 check is done first.
18557
18558 2004-01-09 Eric Christopher <echristo@redhat.com>
18559
18560 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18561 if we're running mark_constant_function.
18562
18563 2004-01-09 Jeff Bailey <jbailey@nisa.net>
18564
18565 PR target/12561
18566 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18567
18568 2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
18569
18570 PR debug/11231
18571 * dbxout.c (dbxout_type_fields): Return if any item is
18572 error_mark_node or the type is error_mark_node.
18573
18574 2004-01-09 Geoffrey Keating <geoffk@apple.com>
18575
18576 * config/rs6000/darwin-ldouble.c: Add big comment explaining
18577 exactly what is expected as a 'long double'.
18578 (_xlqadd): When a value to be returned is representable as a
18579 'double', just return it directly, do not construct it using a union.
18580 Also, correct final fixup.
18581 (_xlqmul): Likewise.
18582 (_xlqdiv): Likewise.
18583 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18584
18585 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18586
18587 2004-01-09 Richard Henderson <rth@redhat.com>
18588
18589 * recog.c (constrain_operands): Validate mem operands.
18590
18591 2004-01-09 James E Wilson <wilson@specifixinc.com>
18592
18593 * gcc.c (init_spec): Remove -lunwind from shared case.
18594 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18595
18596 2004-01-09 Steve Ellcey <sje@cup.hp.com>
18597
18598 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18599 * configure: Regenerate
18600
18601 2004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
18602
18603 PR c/11234
18604 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18605 between function and object pointers.
18606 (digest_init): When comparing a pointer to function type to the
18607 target type, only apply TREE_TYPE once to the pointer to function
18608 type.
18609 * except.c (for_each_eh_label_1): Treat data as a pointer to a
18610 function pointer rather than casting it to a function pointer.
18611 (for_each_eh_label): Update caller.
18612 * recog.h (struct insn_data): Use a struct or union for output.
18613 * genoutput.c (output_insn_data): Update.
18614 * final.c (get_insn_template): Update.
18615
18616 2004-01-09 Mark Mitchell <mark@codesourcery.com>
18617
18618 * expr.h (expand_expr): Make it a macro, not a function.
18619 (expand_expr_real): New function.
18620 * expr.c (store_expr): Adjust logic for deciding whether or not to
18621 copy the value returned by expand_expr.
18622 (expand_expr): Rename to ...
18623 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
18624 calls to language hooks.
18625 * c-common.h (c_expand_expr): Adjust prototype.
18626 * c-common.c (c_expand_expr): Add alt_rtl parameter.
18627 * langhooks-def.h (lhd_expand_expr): Change prototype.
18628 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18629 * langhooks.h (lang_hooks): Change type of expand_expr.
18630 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18631 (last_expr_alt_rtl): Likewise.
18632 (expand_expr_stmt_value): Set last_expr_alt_rtl.
18633 (clear_last_expr): Clear it.
18634 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18635 (expand_end_bindings): Save and restor last_expr_alt_rtl.
18636 * tree.def (RTL_EXPR): Give it an additional operand.
18637 * tree.h (RTL_EXPR_ALT_RTL): New macro.
18638
18639 2004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18640
18641 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
18642 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
18643
18644 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18645
18646 PR target/13380.
18647 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18648 or (ne:SI (reg:CC 17) (const_int 0)).
18649 Be specific about modes wherever possible.
18650
18651 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18652
18653 * config/m32r/m32r.c (m32r_expand_block_move): Call
18654 gen_movestrsi_internal with two more arguments.
18655 (m32r_output_block_move): Adjust operand numbers.
18656 Properly update the source and destination pointers.
18657 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18658 'r+'. Change the set detinations to match_operand.
18659
18660 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18661
18662 * final.c (FIRST_INSN_ADDRESS): Remove.
18663 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18664 * system.h (FIRST_INSN_ADDRESS): Poison.
18665 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18666 * config/m32r/m32r-protos.h: Remove the prototype for
18667 m32r_first_insn_address.
18668 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18669 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18670 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18671
18672 2004-01-09 J. Brobecker <brobecker@gnat.com>
18673
18674 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18675 we just created.
18676 (is_ada_subrange_type): DIEs for enumeration subtypes should be
18677 emitted as subrange types too.
18678 (subrange_type_die): Add handling of enumeration subtypes.
18679
18680 2004-01-08 Richard Henderson <rth@redhat.com>
18681
18682 PR opt/12441
18683 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
18684 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18685 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18686 (ix86_address_cost): Be prepared for SUBREGed registers.
18687 (legitimate_address_p): Accept SUBREGed registers.
18688
18689 2004-01-08 Kelley Cook <kcook@gcc.gnu.org>
18690
18691 * Makefile.in: Rename configure.in to configure.ac
18692 * doc/sourcebuild.texi: Likewise.
18693 * configure: Regenerate.
18694 * config.in: Regenerate.
18695
18696 2004-01-08 Stuart Hastings <stuart@apple.com>
18697
18698 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18699
18700 2004-01-08 Jan Hubicka <jh@suse.cz>
18701
18702 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
18703
18704 2004-01-08 Geoffrey Keating <geoffk@apple.com>
18705
18706 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18707 (UNSPEC_FIX_TRUNC_TF): New constant.
18708 (movtf_internal): Make splitter active only when insn is active.
18709 (extenddftf2): Rewrite to properly load zero into low part.
18710 (extenddftf2_internal): New.
18711 (extendsftf2): Rewrite.
18712 (truncdftf2): Correct length.
18713 (floatditf2): Delete.
18714 (fix_trunc_helper): New.
18715 (fix_trunctfdi2): Use fix_trunc_helper.
18716 (fix_trunctfsi2): Likewise.fix_trunc
18717 (fix_trunctfsi2_internal): New.
18718
18719 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18720 addresses are legitimate on Darwin even when flag_pic.
18721 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18722 non-offsettable addresses for loads of TFmode constants.
18723
18724 2004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18725
18726 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18727 variables in the appropriate bss section.
18728
18729 2004-01-09 Alan Modra <amodra@bigpond.net.au>
18730
18731 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18732 target_flags has MASK_POWERPC64 when -m64.
18733 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18734 to 620, 630, power3, power4 and rs64a entries.
18735 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18736
18737 2004-01-08 Richard Sandiford <rsandifo@redhat.com>
18738
18739 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18740 floating-point constants.
18741
18742 2004-01-08 J. Brobecker <brobecker@gnat.com>
18743
18744 * dwarf2out.c (subrange_type_die): Add context_die parameter.
18745 Create the subrange_type DIE using the given context DIE.
18746 (modified_type_die): Update call to subrange_type_die.
18747
18748 2004-01-08 Zack Weinberg <zack@codesourcery.com>
18749
18750 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18751 Add multiple-include guard.
18752
18753 2004-01-08 Hartmut Penner <hpenner@de.ibm.com>
18754
18755 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18756 all vector constant loadable by vsplt*.
18757 (output_vec_const_move): Likewise.
18758
18759 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
18760
18761 PR c/6024
18762 * c-typeck.c (comptypes): Only treat enumerated types in the same
18763 translation unit as compatible with each other when they are the
18764 same type.
18765 * doc/extend.texi: Update.
18766
18767 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
18768
18769 PR c/12165
18770 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18771 array type from the array element type.
18772
18773 2004-01-07 Alan Modra <amodra@bigpond.net.au>
18774
18775 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18776 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18777 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18778 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18779 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18780
18781 2004-01-06 Eric Christopher <echristo@redhat.com>
18782
18783 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18784 (DWARF2_DEBUGGING_INFO): Define.
18785 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18786 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18787 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18788 for irix as.
18789 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18790 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18791 * config/mips/iris5gas.h: Ditto.
18792 (DBX_DEBUGGING_INFO): Remove.
18793 (DWARF2_DEBUGGING_INFO): Ditto.
18794 (MIPS_DEBUGGING_INFO): Ditto.
18795 (PREFERRED_DEBUGGING_TYPE): Ditto.
18796 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18797 (PREFERRED_DEBUGGING_TYPE): Ditto.
18798 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18799 * config/mips/elf64.h: Ditto.
18800
18801 2004-01-06 Jan Hubicka <jh@suse.cz>
18802
18803 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18804 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18805
18806 2004-01-06 Geoffrey Keating <geoffk@apple.com>
18807
18808 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18809 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18810 * config/rs6000/darwin-ldouble.c: New.
18811
18812 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18813 for constants.
18814 (constant_subword): Delete.
18815 * rtl.h (constant_subword): Delete prototype.
18816 (immed_double_const): Is not in varasm.c.
18817 * simplify-rtx.c (simplify_immed_subreg): New.
18818 (simplify_subreg): Use simplify_immed_subreg.
18819
18820 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18821 than trying to generate RTL directly.
18822 (fix_trunctfsi2): Use expand_fix rather than trying to generate
18823 RTL directly.
18824
18825 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18826
18827 2004-01-06 David Edelsohn <edelsohn@gnu.org>
18828
18829 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18830 function into a separate macro.
18831 (read_only_data_section): Add void argument.
18832 (private_data_section): Same.
18833 (read_only_private_data_section): Same.
18834 (toc_section): Same.
18835
18836 2004-01-06 Jan Hubicka <jh@suse.cz>
18837
18838 * invoke.texi: Remove typo in last change.
18839
18840 PR target/10301
18841 * config.gcc: Accept opteron and athlon-64 as variants
18842 of k8.
18843 * i386.c (override_options): Likewise.
18844 * invoke.texi (i386 -mtune): Expand documentation.
18845
18846 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
18847
18848 * alias.c: Fix comment typos.
18849 * builtins.c: Likewise.
18850 * cfg.c: Likewise.
18851 * df.c: Likewise.
18852 * dominance.c: Likewise.
18853 * dwarf2out.c: Likewise.
18854 * emit-rtl.c: Likewise.
18855 * expr.c: Likewise.
18856 * final.c: Likewise.
18857 * fold-const.c: Likewise.
18858 * gcse.c: Likewise.
18859 * genattrtab.c: Likewise.
18860 * genrecog.c: Likewise.
18861 * gensupport.c: Likewise.
18862 * ggc-zone.c: Likewise.
18863 * integrate.c: Likewise.
18864 * local-alloc.c: Likewise.
18865 * loop.c: Likewise.
18866 * recog.c: Likewise.
18867 * regmove.c: Likewise.
18868 * reg-stack.c: Likewise.
18869 * reorg.c: Likewise.
18870 * rtlanal.c: Likewise.
18871 * rtl.h: Likewise.
18872 * sched-ebb.c: Likewise.
18873 * simplify-rtx.c: Likewise.
18874 * toplev.c: Likewise.
18875 * varasm.c: Likewise.
18876
18877 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
18878
18879 * doc/install.texi: Fix typos.
18880 * doc/invoke.texi: Likewise.
18881 * doc/md.texi: Likewise.
18882
18883 2004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18884
18885 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18886
18887 2004-01-06 Jan Hubicka <jh@suse.cz>
18888
18889 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
18890 (function_arg_advance): Do not pass aggregates in SSE; deal handling
18891 of MMX_REGPARM.
18892 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
18893 add MMX_REGPARM.
18894 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18895 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18896 (MMX_REGPARM_MAX): Similarly for -mmmx.
18897
18898 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18899
18900 * config/sh/linux.h: Fix comment formatting.
18901 * config/sh/netbsd-elf.h: Likewise.
18902 * config/sh/sh.c: Likewise.
18903 * config/sh/sh.h: Likewise.
18904 * config/sh/vxworks.h: Likewise.
18905
18906 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18907
18908 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18909 * toplev.c (output_file_directive): Don't use
18910 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18911
18912 2004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
18913
18914 * toplev.c: Fix broken checkin of 2003-12-30.
18915
18916 2004-01-05 Daniel Berlin <dberlin@dberlin.org>
18917
18918 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18919 (USING_MMAP): We don't support non-mmap.
18920 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18921 large objects.
18922 (struct page_entry): Remove bytes_free.
18923 (struct page_table_chain): Remove.
18924 (struct globals): Remove page_table member.
18925 (loookup_page_table_entry): Function deleted.
18926 (set_page_table_entry): Ditto.
18927 (ggc_allocated_p): No longer need page table lookups.
18928 (ggc_marked_p): Ditto.
18929 (alloc_small_page): Don't care about bytes_free anymore.
18930 (alloc_large_page): Round up size.
18931 (ggc_alloc_zone_1): Mark large objects as such, and calculate
18932 their size the new way.
18933 Remove page table lookups and setting.
18934 (ggc_get_size): Calculate large object size the new way.
18935 (sweep_pages): Redo to account for fact that we no longer have
18936 bytes_free.
18937 (ggc_collect): No longer need to reincrement bytes_free.
18938 (ggc_pch_alloc_object): Handle new large objects properly.
18939 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18940
18941 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18942
18943 * doc/invoke.texi: Remove a page break.
18944
18945 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18946
18947 * config/avr/avr.c (avr_output_function_prologue): Remove an
18948 extra pair of curly braces.
18949
18950 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18951
18952 * config/mn10300/mn10300.c: Fix comment formatting.
18953 * config/mn10300/mn10300.h: Likewise.
18954
18955 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18956
18957 * tree.h: Update documentation on nothrow_flag.
18958 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18959 types.
18960
18961 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18962
18963 * doc/invoke.texi: Remove traces of dead ports.
18964
18965 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
18966
18967 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18968 option.
18969
18970 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
18971
18972 PR target/12945
18973 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18974 counter labels.
18975 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18976 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18977 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
18978 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18979 (mips_symbol_insns): Don't trust the local/global classification.
18980 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18981 (override_options): Make -mabicalls -fno-unit-at-a-time imply
18982 -mno-explicit-relocs.
18983 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18984 between local and global symbols.
18985
18986 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
18987
18988 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18989 (mips_preferred_reload_class): Declare.
18990 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18991 (EXTRA_CONSTRAINT): Update accordingly.
18992 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18993 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18994 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
18995 mips_dangerous_for_la25_p.
18996 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18997 if mips_dangerous_for_la25_p.
18998
18999 2004-01-05 Bernardo Innocenti <bernie@develer.com>
19000
19001 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
19002 warning.
19003
19004 2004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
19005
19006 * configure.ac: Use AC_PROG_CPP_WERROR.
19007 * configure: Regenerate.
19008
19009 2004-01-04 Zack Weinberg <zack@codesourcery.com>
19010
19011 * .cvsignore: Add autom4te.cache.
19012
19013 2004-01-04 Richard Sandiford <rsandifo@redhat.com>
19014
19015 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
19016 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
19017 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
19018 then architecture options, then ABI options. General rewording.
19019
19020 2004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
19021
19022 PR c/3414
19023 * doc/extend.texi: Clarify definition of malloc attribute.
19024
19025 2004-01-04 Jan Hubicka <jh@suse.cz>
19026
19027 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
19028 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
19029 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
19030 (cgraph_inline_p): Add extra argument reason.
19031 * cgraphunit.c: Minor formating fixes.
19032 cgraph_first_inlined_callee): New functions.
19033 (record_call_1): Record builtins too.
19034 (cgraph_analyze_function): Update inline_failed messages.
19035 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
19036 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
19037 (cgraph_check_inline_limits): Likewise; Add argument reason.
19038 (cgraph_set_inline_failed): New static function.
19039 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
19040 reasons.
19041 (cgraph_inline_p): Add new argument reason.
19042 * tree-inline.c (expand_call_inline): Update warning.
19043
19044 2004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
19045
19046 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
19047 with modern equivalents.
19048 * configure: Regenerate.
19049
19050 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
19051 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
19052 * configure: Regenerate.
19053
19054 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
19055
19056 * configure.in: Rename to configure.ac.
19057 * configure.ac: Renamed from configure.in; make minimum necessary
19058 changes for autoconf 2.5x.
19059 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
19060 * configure: Regenerate with autoconf 2.57.
19061
19062 2004-01-03 Kazu Hirata <kazu@cs.umass.edu>
19063
19064 * config/mips/linux.h: Fix comment formatting.
19065 * config/mips/mips.c: Likewise.
19066 * config/mips/mips.h: Likewise.
19067 * config/mips/mips.md: Likewise.
19068 * config/mips/netbsd.h: Likewise.
19069 * config/mips/windiss.h: Likewise.
19070
19071 2004-01-02 Richard Henderson <rth@redhat.com>
19072
19073 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
19074 for sse and 387; add suppression for mmx.
19075
19076 2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
19077
19078 * loop.c (loop_optimize): Free all loops_info's mems.
19079
19080 * c-typeck.c (finish_init): Free spelling_base before
19081 setting it again.
19082
19083 * cfgloop.c (flow_loops_find): Always free the sbitmap
19084 headers.
19085
19086 * predict.c (estimate_probability): Free bbs after being
19087 done with it.
19088
19089 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
19090
19091 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
19092 const_8bit_operand and call_address_operand.
19093
19094 2004-01-02 Jan Hubicka <jh@suse.cz>
19095
19096 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
19097 when there is nothing to inline but warnings are requested.
19098 (cgraph_decide_inlining): Fix memory leak.
19099
19100 2004-01-02 Jan Hubicka <jh@suse.cz>
19101
19102 * expr.c (store_constructor): Fix pasto in previous patch.
19103
19104 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
19105
19106 * config/i386/cygming.h: Fix comment formatting.
19107 * config/i386/djgpp.h: Likewise.
19108 * config/i386/gthr-win32.c: Likewise.
19109 * config/i386/i386-interix.h: Likewise.
19110 * config/i386/i386.c: Likewise.
19111 * config/i386/i386.h: Likewise.
19112 * config/i386/openbsd.h: Likewise.
19113 * config/i386/winnt.c: Likewise.
19114 * config/i386/xm-mingw32.h: Likewise.
19115
19116 2004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
19117
19118 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
19119 copyright and last modification dates.
19120
19121 2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
19122
19123 * doc/install.texi (Specific): Mention x86_64.
19124
19125 2004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
19126
19127 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
19128 Call force_operand on plus_constant result.
19129
19130 2004-01-01 Jan Hubicka <jh@suse.cz>
19131
19132 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
19133 * expr.c (store_constructor): Use vec_init pattern.
19134 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
19135 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
19136 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
19137 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
19138 New patterns.
19139 (sse2_unpc?pd): Fix pattern.
19140 (sse2_movlpd): Kill.
19141 (sse2_movsd): Deal with movlpd too.
19142 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
19143 (ix86_expand_vector_init): New.
19144 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
19145 * md.texi (vec_set, vec_extract): Document
19146
19147 2003-12-31 Jan Hubicka <jh@suse.cz>
19148
19149 PR opt/13473
19150 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
19151 ASM input operands
19152
19153 PR opt/12617
19154 * toplev.c (dump_file_index): Reorder ce3 and bbro.
19155 (dump_file): Likewise.
19156 (rest_of_compilation): Likewise.
19157
19158 PR debug/13367
19159 * cgraph.c (cgraph_function_possibly_inlined): Even with
19160 flag_really_no_inline we inline always_inline functions.
19161 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
19162 for non-always_inline functions when there is flag_really_no_inline.
19163 (cgraph_decide_inlining): Limit work done when not inlining.
19164 (cgraph_decide_inlining_incrementally): Likewise.
19165 (cgraph_optimize_function): Check whether something got inlined.
19166 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
19167 extern inline functions when not inlining.
19168
19169 * opts.c (decode_options): Disable crossjumping at -O1
19170 * invoke.texi (-O1): Document change.
19171
19172 See ChangeLog.10 for earlier changes.
This page took 0.748078 seconds and 4 git commands to generate.