]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
stmt.c (warn_if_unused_value): Add locus argument.
[gcc.git] / gcc / ChangeLog
CommitLineData
b9861bff
RH
12004-06-20 Richard Henderson <rth@redhat.com>
2
3 * stmt.c (warn_if_unused_value): Add locus argument.
4 * tree.h (warn_if_unused_value): Update decl.
5 * c-typeck.c (internal_build_compound_expr): Update call.
6 * c-gimplify.c (gimplify_expr_stmt): Likewise.
7
91278841
AP
82004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
9
10 PR middle-end/16089
11 * builtins.c (entry_of_function): Move to ...
12 * cfgrtl.c (entry_of_function): Here and make non-static.
13 * integrate.c (emit_initial_value_sets): Use entry_of_function.
14 * rtl.h (entry_of_function): Prototype.
15
e0c00392
RS
162004-06-20 Roger Sayle <roger@eyesopen.com>
17
18 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
19 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
20 TARGET_DECOMPOSE_LEA.
21
543a0daa
RH
222004-06-20 Richard Henderson <rth@redhat.com>
23
24 * c-common.h (add_decl_stmt): Move to cp-tree.h.
25 * c-decl.c (finish_decl): Don't use add_decl_stmt.
26 * c-parse.in: Likewise.
27 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
28 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
29 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
30
5a508662
RH
312004-06-20 Richard Henderson <rth@redhat.com>
32
33 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
34 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
35 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
36 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
37 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
38 * c-pretty-print.c (pp_c_statement): Similarly.
39 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
40 gimplify_if_stmt): Move to cp-gimplify.c.
41 (c_genericize, c_gimplify_expr): Don't call them.
42 * c-semantics.c (push_cleanup): Move to cp/semantics.c.
43 * c-typeck.c (push_cleanup): New.
44 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
45 c_finish_if_stmt): Use COND_EXPR.
46 * tree.h (CLEANUP_EH_ONLY): Update documentation.
47
84b8b0e0
ZW
482004-06-20 Zack Weinberg <zack@codesourcery.com>
49
50 * c-common.h (has_c_linkage): New interface.
51 * c-cppbuiltin.c: Include target.h.
52 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
53 __PRAGMA_EXTERN_PREFIX when appropriate.
54 * c-pragma.c: Include target.h.
55 Document clarified semantics of symbol-renaming #pragmas.
56 (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
57 (maybe_apply_renaming_pragma): Rewrite according to clarified
58 semantics. Always recognize, but do not necessarily execute.
59 (init_pragma): Unconditionally register symbol-renaming pragmas.
60 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
61 and HANDLE_PRAGMA_EXTERN_PREFIX.
62 * target.h (struct gcc_target): Add handle_pragma_redefine_extname
63 and handle_pragma_extern_prefix flags.
64 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
65 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
66 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
67 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
68 not HANDLE_PRAGMA_REDEFINE_EXTNAME.
69 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
70 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
71 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
72 not HANDLE_PRAGMA_EXTERN_PREFIX.
73 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
74 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
75 into one section "Symbol-Renaming Pragmas"; clarify; document
76 adjusted semantics.
77
78 * builtins.c (expand_builtin): Do not issue error for a builtin
79 with no special case code and no DECL_ASSEMBLER_NAME; just do the
80 library call.
81 * c-decl.c (builtin_function): Don't call make_decl_rtl.
82 * c-objc-common.c (has_c_linkage): Stub implementation.
83 * cgraphunit.c (cgraph_expand_function)
84 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
85
14f661f1
RS
862004-06-19 Roger Sayle <roger@eyesopen.com>
87
88 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
89 instead of both an ARGLIST and a result TYPE. Handle these C99
90 comparison functions as "polymorphic" builtins. Also handle
91 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
92 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
93 Move handling of BUILT_IN_ISUNORDERED from here to there.
94
952004-06-19 Richard Henderson <rth@redhat.com>
7c34ced1
RH
96
97 * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
98 * c-gimplify.c: Remove unnecessary prototypes.
99 (c_gimplify_stmt): Merge into ...
100 (c_gimplify_expr): ... here. Don't play with prep_stmt.
101 * c-semantics.c (prep_stmt): Remove.
102 * gimplify.c (annotate_one_with_locus): Break out from ...
103 (annotate_all_with_locus): ... here.
104 (gimplify_expr): Add locus to expressions even if pre/post queues
105 are not present.
106
ebca59c3
RH
1072004-06-19 Richard Henderson <rth@redhat.com>
108
109 PR target/15941
110 * function.c (assign_parms): If not padding upward or intentionally
111 forcing upward padding, take offset_rtx into account when determining
112 the alignment for stack_parm.
113
8426c25e
RH
1142004-06-19 Richard Henderson <rth@redhat.com>
115
116 PR target/15550
117 * ifcvt.c (noce_try_move): Recognize all generated instructions.
118
eb4e1c01
JH
1192004-06-19 Jan Hubicka <jh@suse.cz>
120
121 * function.c (free_after_compilation): Do not free computed_goto_common*.
122 * function.h (struct function): Kill computed_goto_common*.
123 * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
124 * tree-cfg.c (disband_implicit_edges): Do not forward across the
125 commonized computed goto.
126
bc443e6d
JDA
1272004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
128
129 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
130 in binutils.
131
f44703b5
AP
1322004-06-19 Andrew Pinski <apinski@apple.com>
133
134 PR c++/15721
135 * toplev.c (wrapup_global_declarations): Do not check
136 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
137 cgraph_varpool_node's needed field.
138
242229bb
JH
1392004-06-19 Jan Hubicka <jh@suse.cz>
140 Steven Bosscher <stevenb@suse.de>
141
142 CFG transparent RTL expansion:
143 * Makefile.in (cfgexpand.o): New object file.
144 (builtins.o): Add dependency on basic-block.h
145 * builtins.c: Include basic-block.h
146 (entry_of_function): New function.
147 (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
148 * cfgexpand.c: New file.
149 * expr.c (execute_expand, pass_expand): Kill.
150 * pass.c (rest_of_compilation): Do not build CFG unless called from
151 coverage code.
152 * tree-cfg.c (delete_tree_cfg): Rename to..
153 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
154 * tree-flow.h (delete_tree_cfg_annotations): Declare.
155 (dleete_tree_cfg): Kill.
156 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
157 (execute_del_cfg): Rename to...
158 (execute_free_datastructures): This one...
159 (pass_del_cfg): Rename to...
160 (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
161 (init_tree_optimization_passes): Make cfg build and profiling to happen
162 unconditionally.
163
1642004-06-19 Steven Bosscher <stevenb@suse.de>
165
166 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
167 inserting the cache variables.
168
169 * tree-mudflap.c: Include headers to make basic_block available.
170 Move functions around such that related functions are near each
171 other. Add prototypes for all static functions. Add comments
172 briefly explaining what IR the mudflap1 and mudflap2 work on and
173 what they do.
174 (mudflap_function_decls): Rename to execute_mudflap_function_decls.
175 (mudflap_function_ops): Rename to execute_mudflap_function_ops.
176 (pass_mudflap_1, pass_mudflap_2): Update.
177 (mf_decl_cache_locals): Make it work on the CFG instead of the saved
178 function tree.
179 (mf_build_check_statement_for): Make it work on the CFG.
180 (mf_xform_derefs_1): Likewise. Cleanup code style.
181 (mf_xform_derefs): Likewise.
182
1832004-06-19 Jan Hubicka <jh@suse.cz>
184
185 * tree-cfg.c (label_to_block): Invent the label destination for
186 undefined labels.
187 (cleanup_dead_labels): Update table in the case label_to_block added
188 new label.
189
ff98621c
RH
1902004-06-18 Richard Henderson <rth@redhat.com>
191
84b8b0e0 192 PR c++/16036
ff98621c
RH
193 * gimple-low.c (lower_function_body): Generate return statement for
194 fall off the end of the function here ...
195 * tree-cfg.c (make_edges): ... instead of here.
196 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
197
048d9936
ZD
1982004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
199
200 * tree-ssa.c (raise_value): Removed.
201 (get_eq_name, check_phi_redundancy): New functions.
202 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
203
ee8db92b
RS
2042004-06-18 Roger Sayle <roger@eyesopen.com>
205
206 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
207 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
208 constant folding for unordered comparison tree nodes. If both
209 operands are real constants, call fold_relational_const. If either
210 operand is a NaN, evaluate the other for side-effects and return a
211 constant. Optimize (double)float1 CMP (double)float2 into the
212 equivalent float1 CMP float2.
213 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
214 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
215 LTGT_EXPR>: Call fold_relational_const for constant operands.
216 (fold_relational_const): Add support for unordered comparison tree
217 nodes. Don't constant fold "ordered" floating point comparisons
218 against NaN if when flag_trapping_math is set.
219
e1af8299
JJ
2202004-06-19 Jakub Jelinek <jakub@redhat.com>
221
222 * fold-const.c (build_range_check): If !in_p and recursive call
223 fails, exit immediately. If high - low overflows and etype is
224 a signed type, retry with unsigned etype.
225 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
226 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
227
caf2523d
RH
2282004-06-18 Richard Henderson <rth@redhat.com>
229
230 * c-gimplify.c (gimplify_condition): Remove.
231 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
232 call it.
233
7465ed07
RH
2342004-06-18 Richard Henderson <rth@redhat.com>
235
236 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
237 switch estimates.
238
a9042bb4
AP
2392004-06-18 Andrew Pinski <pinskia@physics.uc.edu>
240
241 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
242 (NORMAL_TEXT_SECTION_NAME): Define.
243 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
244 (SECTION_FORMAT_STRING): Define.
245
3b1cce6a
SB
2462004-06-18 Steven Bosscher <stevenb@suse.de>
247
248 * config/xtensa/xtensa.c
249 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
250 * xtensa.md: Replace the old pipeline description with a DFA model.
251
64e1e4c4
SB
2522004-06-18 Steven Bosscher <stevenb@suse.de>
253 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
254
255 * config/s390/s390.md: Remove the generic pipeline description.
256 * config/s390/2064.md: Make all insn reservations apply to
257 the z900, g5 and g6.
258 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
259 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
260 Define to hook_int_void_1.
261 (s390_adjust_cost): Cleanup. Don't check address dependency here.
262 (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
263
06d72ee6
DB
2642004-06-18 Daniel Berlin <dberlin@dberlin.org>
265 Diego Novillo <dnovillo@redhat.com>
266
267 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
268 (create_stmt_ann): Ditto.
269 (create_tree_ann): New function.
270 (create_cst_ann): Remove.
271 (create_expr_ann): Ditto.
272
273 * tree-flow-inline.h (cst_ann): Remove.
274 (get_cst_ann): Ditto.
275 (get_expr_ann): Ditto.
276 (expr_ann): Ditto.
277 (get_tree_ann): New function.
278 (tree_ann): Ditto.
279 (ann_type): tree_ann -> tree_ann_t.
280 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
281 (struct cst_ann_d): Removed.
282 (struct expr_ann_d): Ditto.
283 (union tree_ann_d): Removed cst and expr.
284 (tree_ann): Renamed to tree_ann_t.
285 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
286 * tree-ssa-pre.c (get_value_handle): Rewrite for single common
287 annotation.
288 (set_value_handle): Ditto.
289 (phi_translate): Ditto.
290 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
291
d627e19f
KK
2922004-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
293
294 * config/sh/t-linux64: New file.
295 * config.gcc: Add it to tmake_file for sh64*-*-linux*.
296
fd743bc1
PB
2972004-06-18 Paolo Bonzini <bonzini@gnu.org>
298
299 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
300 (unshare_all_rtl_again): Call unshare_all_rtl_1.
301 (unshare_all_rtl): New.
302 * function.c (instantiate_virtual_regs): Remove parameters.
303 * function.h (instantiate_virtual_regs): Add prototype.
304 * rtl.h (unshare_all_rtl): Add prototype.
305 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
306 prototype.
307 * passes.c: Remove assertions on the parameters to
308 rest_of_handle_* functions. Remove the parameters to
309 the functions, replacing decl with current_function_decl
310 and insns with get_insns ().
311
9bb80bb2
RS
3122004-06-17 Roger Sayle <roger@eyesopen.com>
313
314 * fold-const.c (constant_boolean_node): Handle boolean_type_node
315 directly, return either boolean_true_node or boolean_false_node.
316
776dc15d
KC
3172004-06-18 Kelley Cook <kcook@gcc.gnu.org>
318
319 * opts.sh: Delete. Break out generated code to next four files.
320 * opt-gather.awk: New file.
321 * optc-gen.awk: New file.
322 * opth-gen.awk: New file.
323 * opt-functions.awk: New common file.
324 * Makefile.in: Update for above.
325 * configure.ac: Update comment.
326 * configure: Regenerate.
327
093c7153
RH
3282004-06-17 Richard Henderson <rth@redhat.com>
329
330 * c-common.c (flag_objc_sjlj_exceptions): New.
331 * c-common.h (flag_objc_sjlj_exceptions): Declare.
332 * c-opts.c (c_common_handle_option): Set it.
333 (c_common_post_options): Handle interation of different
334 objective-c exception and runtime switches.
335 * c-decl.c (c_eh_initialized_p): New.
336 (finish_decl): Use it instead of local eh_initialized_p.
337 * c-parse.in (nested_function, notype_nested_function): Record
338 the result of compstmt.
339 (compstmt_or_error): Likewise.
340 (compstmt): Don't add_stmt the result.
341 (stmt): Don't return anything. Rewrite objc try and sync rules.
342 (objc_try_stmt, objc_catch_list): Remove.
343 (objc_catch_block, objc_finally_block): Remove.
344 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
345 (objc_try_catch_clause, objc_finally_clause): New.
346 (objc_try_catch_stmt): Rewrite.
347 * c-tree.h (c_eh_initialized_p): Declare.
348 * c-opt (fobjc-sjlj-exceptions): New.
349 * except.c (output_function_exception_table): Don't call cgraph
350 on non-decls.
351 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
352 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
353 catch_count_stack, exc_binding_stack, if_nesting_count,
354 blk_nesting_count, objc_enter_block, objc_exit_block,
84b8b0e0 355 objc_declare_variable, val_stack_push, val_stack_pop,
093c7153
RH
356 objc_build_try_enter_fragment, objc_build_extract_expr,
357 objc_build_try_exit_fragment, objc_build_extract_fragment,
84b8b0e0 358 objc_build_try_prologue, objc_build_try_epilogue,
093c7153
RH
359 objc_build_catch_stmt, objc_build_catch_epilogue,
360 objc_build_finally_prologue, objc_build_finally_epilogue,
361 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
362 objc_build_synchronized_epilogue): Remove.
363 (objc_create_temporary_var, struct objc_try_context, cur_try_context,
364 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
365 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
366 next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
367 next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
368 objc_begin_catch_clause, objc_finish_catch_clause,
369 objc_build_finally_clause, objc_finish_try_stmt,
370 objc_build_synchronized): New.
371 (objc_is_object_id, objc_is_class_id): New.
372 (objc_comptypes): Use them.
373 (build_next_objc_exception_stuff): Break NeXT sjlj out from
374 build_objc_exception_stuff.
375 (synth_module_prologue): Update to match.
376 (objc_build_throw_stmt): Use cur_try_context to decide if
377 we're in a @catch.
378 * objc/objc-act.h: Update prototypes.
379 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
380
398ce3dd
AP
3812004-06-17 Andrew Pinski <apinski@apple.com>
382
383 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
384 Use TYPE_FIELDS instead of TYPE_VALUES.
385
2692eb7d
JM
3862004-06-17 Jason Merrill <jason@redhat.com>
387
388 PR c++/16015
389 * gimplify.c (gimplify_target_expr): Handle void initializer.
390 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
391 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
392 and AGGR_INIT_EXPR.
393
1382f0f0
RS
3942004-06-17 Roger Sayle <roger@eyesopen.com>
395
396 * fold-const.c (fold_relational_const): Use constant_boolean_node.
397
0620be18
JH
3982004-06-17 Jan Hubicka <jh@suse.cz>
399
400 PR target/15433
401 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
402 operand numbering in the output template.
403 (SSE DF cmov 0 splitter): The conditional is VOIDmode.
404
4052004-06-17 Jan Hubicka <jh@suse.cz>
406
407 * except.c (can_throw_internal): Recognize RESX expresisons.
408
2df6cea5
JH
4092004-06-17 Jan Hubicka <jh@suse.cz>
410
411 * cfgbuild.c (make_edges): Do not use label_value_list.
412 (find_basic_blocks_1): Do not collect label_value_list.
413 (find_sub_basic_blocks): Update call of make_edges.
414
d00ad49b
AM
4152004-06-17 Andrew MacLeod <amacleod@redhat.com>
416
417 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
418 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
419 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
420 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
421 (get_v_may_def_result_ptr): Return a def_operand_p.
422 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
423 (get_v_must_def_op_ptr): Return a def_operand_p.
424 (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
425 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
426 (phi_element_for_edge): Remove.
427 * tree-flow.h (propagate_value, replace_exp): Change prototype.
428 (propagate_tree_value): Add new prototype.
429 (phi_element_for_edge): Remove prototype.
430 * tree-into-ssa.c (mark_def_sites): Use new operand types.
431 (prepare_operand_for_rename): Split into two functions.
432 (prepare_use_operand_for_rename): Prepare use operands.
433 (prepare_def_operand_for_rename): Prepare def operands.
434 (rewrite_stmt): Use new operand types.
435 (rewrite_operand): Use new operand types, change parameter type.
436 * tree-outof-ssa.c (replace_variable): Split into two functions.
437 (replace_use_variable): Rewrite uses.
438 (replace_def_variable): Rewrite defs.
439 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
440 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
441 (add_phi_arg, remove_phi_arg_num): Use new operand types.
442 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
443 (ccp_fold, replace_uses_in): Use new operand types.
444 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
445 and no longer set the value, change parameter type.
446 (replace_exp_1): Use new operand types.
447 (propagate_value): Change parameter type, use new operand types.
448 (propagate_tree_value): Propagate_value without SSA operands.
449 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
450 (cprop_into_successor_phis): Use new operand types.
451 * tree-ssa-dom.c (thread_across_edge): Use new operand types.
452 (eliminate_redundant_computations): Use new operand types.
453 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
454 (fix_stmt_v_may_defs): Use new operand_types.
455 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
456 (build_tree_conflict_graph): Use new operand_types.
457 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
458 * tree-ssa-operands.c (struct freelist_d): Remove.
459 (check_optype_freelist, add_optype_freelist): Remove.
460 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
461 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
462 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
463 Call ggc_free instead of add_optype_freelist.
464 (init_ssa_operands, fini_ssa_operands): Remove free list code.
465 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
466 * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
467 (struct use_optype_d): Change underlying type.
468 (def_operand_p, use_operand_p): New types for pointers to operands.
84b8b0e0 469 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
d00ad49b 470 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
84b8b0e0 471 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
d00ad49b
AM
472 pointer types.
473 (SET_USE, SET_DEF): New macros to set operands from their pointer.
474 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
475 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
476 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
477 PHI result as an operand.
478 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
479 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
480 * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
481 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
482 PHI_ARG_DEF_FROM_EDGE.
483 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
484 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
485
d7621d3c
ZD
4862004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
487
488 PR tree-optimization/15991
489 * tree-cfg.c (tree_block_label): Export.
490 * tree-flow-inline.h (bsi_after_labels): New function.
491 * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
492 * tree-ssa.c (propagate_into_addr): New function.
493 (replace_immediate_uses): Handle propagation of pointer constants.
494 (raise_value): Do not restrict propagation of pointer constants.
495 * tree-ssanames.c (duplicate_ssa_name): New function.
496 * tree.h (duplicate_ssa_name): Declare.
497
f2b5cf97 4982004-06-17 David Ayers <d.ayers@inode.at>
84b8b0e0 499
f2b5cf97
DA
500 * c-parse.in: Unify Objective-C token names.
501
c50a0116
ZW
5022004-06-17 Zack Weinberg <zack@codesourcery.com>
503
504 Bug 14610
505 * Makefile.in (min-insn-modes.o): Correct dependencies.
506 * real.c (encode_ieee_extended, decode_ieee_extended): Always
507 produce/consume 12-byte little-endian Intel format.
508 (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
509 (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
510 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
511 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
512 New functions which convert between 12-byte little-endian Intel
513 format and the desired format.
514 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
515 (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
516 Update.
517
42eb30b5
ZW
5182004-06-17 Zack Weinberg <zack@codesourcery.com>
519
520 * expmed.c (expand_mult_const): In sanity check, compare only
521 the bits of val and val_so_far that are significant in the
522 result mode.
523
ca072a31
DB
5242004-06-17 Daniel Berlin <dberlin@dberlin.org>
525
526 * tree-ssa-pre.c: Update comments.
527 (val_expr_pair_eq): Factor code from here.
528 (expr_pred_trans_eq): and here.
529 (expressions_equal_p): To here.
530 (print_value_set): Print value for expression.
531 (phi_trans_lookup): Rename some variables.
532 (lookup): Ditto.
533 (value_exists_in_set_bitmap): Ditto.
534 (value_remove_from_set_bitmap): Ditto.
535 (value_insert_into_set_bitmap): Ditto.
536
5d880bd2
UW
5372004-06-17 Ulrich Weigand <uweigand@de.ibm.com>
538
539 * config/s390/s390-modes.def (CCL3mode): New machine mode.
540 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
541 (s390_alc_comparison, s390_slb_comparison): Likewise.
542 (s390_branch_condition_mask): Likewise.
543 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
544 ("*subsi3_cc2", "*subsi3_cconly2"): New.
545
546 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
547 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
548 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
549 Handle SIGN_EXTEND and ZERO_EXTEND.
550
551 * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
552 * config/s390/s390.c (s390_expand_addcc): New function.
553 * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
554 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
555 ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
556
d96f6b59
BE
5572004-06-17 Ben Elliston <bje@au.ibm.com>
558
ac534736
BE
559 * tree-alias-common.c: Add whitespace.
560 * tree-inline.c: Correct comment about this file's purpose.
561 * tree-optimize.c: Likewise.
562 * tree-tailcall.c: Likewise.
c50a0116 563
d96f6b59
BE
564 * tree-alias-ander.h: Add standard top-of-file comment.
565 * tree-alias-common.h: Likewise.
566 * tree-alias-type.h: Likewise.
567
f44272ee
DB
5682004-06-16 Daniel Berlin <dberlin@dberlin.org>
569
570 * tree-ssa-pre.c (compute_avail): Value number uses as well.
571 Strip useless type conversions.
572 Casts have to be treated slightly different than normal unaries.
573
5882f0f3
RH
5742004-06-16 Richard Henderson <rth@redhat.com>
575
576 * c-common.def (COMPOUND_STMT): Remove.
577 * c-common.c (finish_fname_decls): Don't look through it.
578 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
579 * c-common.h (COMPOUND_BODY): Remove.
580 (c_common_stmt_codes): Remove COMPOUND_STMT.
581 * c-dump.c (c_dump_tree): Likewise.
582 * c-gimplify.c (c_gimplify_stmt): Likewise.
583 * c-pretty-print.c (pp_c_statement): Likewise.
584 * tree.h (DECL_SAVED_TREE): Update commentary.
585 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
586 (CASE_LABEL_EXPR): Rename from CASE_LABEL.
587 (GOTO_EXPR): Rename from GOTO_STMT.
588 (GOTO_FAKE_P): Remove.
589 (COMPOUND_STMT): Remove.
590 (HANDLER): Update wrt COMPOUND_STMT.
591 (STMT_EXPR): Likewise.
592 (LABEL_EXPR): Rename from LABEL_STMT.
593 (SCOPE_STMT): Remove.
594 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
595 through COMPOUND_STMT.
596
9e51cf9d
RH
5972004-06-16 Richard Henderson <rth@redhat.com>
598
599 * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
600 c_finish_while_stmt_cond): Remove decls.
601 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
602 * c-typeck.c (c_begin_if_stmt): Return void.
603 (c_begin_else): Tidy. Save stmt_count.
604 * c-tree.h (c_begin_if_stmt): Update decl.
605
606 * objc/objc-act.c (objc_build_try_enter_fragment,
607 objc_build_extract_fragment, objc_build_try_epilogue,
608 objc_build_catch_stmt, objc_build_catch_epilogue,
609 objc_build_finally_prologue, objc_build_finally_epilogue): Update
610 for if builder function changes.
611
b767fc11
UW
6122004-06-16 Ulrich Weigand <uweigand@de.ibm.com>
613
614 * config/s390/s390.c (struct machine_function): New member
615 last_restore_gpr.
616 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
617 Do not modify machine->save_return_addr_p or regs_ever_live.
618 Fill in machine->last_restore_gpr.
619 (s390_optimize_prolog): Use s390_frame_info to compute registers
620 to save/restore, remove duplicated code.
621 (s390_arg_frame_offset): Use s390_frame_info to compute frame
622 size, remove duplicated code.
623 (s390_emit_prologue): Adapt s390_frame_info call. Update
624 machine->save_return_addr_p and regs_ever_live.
625 (s390_emit_epilogue): Use machine->last_restore_gpr instead of
626 machine->last_save_gpr.
627
16865eaa
RH
6282004-06-16 Richard Henderson <rth@redhat.com>
629
630 * c-parse.in (if_stmt_locus): Remove.
631 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
632 (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
633 * c-typeck.c (if_elt): Sort by expected size. Rename locus to
634 empty_locus. Add stmt_count, saw_else.
635 (c_begin_if_stmt): Push if_stack here.
636 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count.
637 (c_finish_then, c_finish_else): Record empty_locus.
638 (c_begin_else): Rename from c_expand_start_else. Record stmt_count.
639 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty
640 if or else body.
641 * c-tree.h: Update prototypes.
642
17192884
SB
6432004-06-16 Steven Bosscher <stevenb@suse.de>
644
645 * tree.h (PHI_CHAIN): New.
646 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
647 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
648 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
649 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
650 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
651 when traversing a list of PHI_NODEs.
652
a7d840c7
BI
6532004-06-16 Bernardo Innocenti <bernie@develer.com>
654
655 PR target/13292
656 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
657 on -msoft-float.
658 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
659 68040 and soft-float.
660 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
661 in the TARGET_68040_ONLY case.
662
6632004-06-16 Peter Barada <peter@the-baradas.com>
5e04daf3
PB
664
665 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
666 (movsi_cf): Make named, don't match TARGET_CFV4.
667 (pushexthisi_const): Use mov3q if possible.
668 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
669 to special case mvz.w for ColdFire V4.
670 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
671 to special case mvz.b for ColdFire V4.
672 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
673 divide.
674 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
675 * config/m68k/m68k.c(valid_mov3q_const): New function.
676 (const_method): SWAP is valid for ColdFire.
677 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
678 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
679
8c161995
RH
6802004-06-16 Richard Henderson <rth@redhat.com>
681
682 * c-common.def (CASE_LABEL): Remove.
683 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
684 (match_case_to_enum_1): Likewise.
685 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
686 * c-dump.c (c_dump_tree): Likewise.
687 * c-gimplify.c (c_gimplify_stmt): Likewise.
688 * c-pretty-print.c (pp_c_statement): Likewise.
689 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
690 * tree.h (CASE_LOW): Update commentary.
691
e130a54b
RH
6922004-06-16 Richard Henderson <rth@redhat.com>
693
694 * c-common.def (ASM_STMT): Remove.
695 * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
696 * c-dump.c (c_dump_tree): Likewise.
697 * c-gimplify.c (c_gimplify_stmt): Likewise.
698 * c-pretty-print.c (pp_c_statement): Likewise.
699 * c-typeck.c (build_asm_expr): Use ASM_EXPR.
700 * tree.h: Fix commentary.
701
9e14e18f
RH
7022004-06-16 Richard Henderson <rth@redhat.com>
703
704 * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
705 * c-common.c (c_add_case_label): Use LABEL_EXPR.
706 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
707 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
708 * c-dump.c (c_dump_tree): Likewise.
709 * c-gimplify.c (c_gimplify_stmt): Likewise.
710 * c-pretty-print.c (pp_c_statement): Likewise.
711 * c-parse.in (stmt): Use GOTO_EXPR.
712 (label): Use LABEL_EXPR.
713 * c-semantics.c (build_stmt): Set TREE_TYPE to void.
714 * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
715
2f52c531
R
7162004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
717
718 * cfgcleanup.c (try_simplify_condjump): Update test to make
719 sure we have a conditional branch around am unconditional branch.
720
5d44aeed
DB
7212004-06-16 Daniel Berlin <dberlin@dberlin.org>
722
723 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
42eb30b5 724
d85428e2
DJ
7252004-06-16 Dale Johannesen <dalej@apple.com>
726
17192884
SB
727 * loop.c (loop_givs_reduce): Avoid miscompilation of
728 loops entered at bottom.
d85428e2 729
d9c75fe0
JR
7302004-06-16 J"orn Rennecke <joern.rennecke@superh.com>
731
732 * cfglayout.c (fixup_reorder_chain): Handle case where the
733 destination of E_FALL is EXIT_BLOCK_PTR.
734
f75ce96a
VM
7352004-06-16 Vladimir Makarov <vmakarov@redhat.com>
736
737 PR target/15653
738 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
739 after shifts before asm.
740
f11e087e
ZD
7412004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
742
743 PR tree-optimization/15993
744 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
745 destination is unchanged.
746
b9034bbd
AJ
7472004-06-16 Andreas Jaeger <aj@suse.de>
748
749 * doc/install.texi (Configuration): Update description for
750 --enable-version-specific-runtime-libs.
751
bf9a420e
PB
7522004-06-16 Paolo Bonzini <bonzini@gnu.org>
753
754 * doc/install.texi: boehm-gc now uses automake 1.8.5.
755
6bbba4c7
PB
7562004-06-16 Paolo Bonzini <bonzini@gnu.org>
757
758 * toplev.h (rest_of_compilation): Adjust prototype.
759
7602004-06-16 Paolo Bonzini <bonzini@gnu.org>
761
762 * coverage.c: Remove argument to rest_of_compilation.
763 * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
764 * passes.c (rest_of_compilation): Remove argument.
765 (pass_rest_of_compilation): New.
766 (rest_of_handle_final, rest_of_handle_delay_slots,
767 rest_of_handle_stack_regs, rest_of_handle_variable_tracking
768 rest_of_handle_machine_reorg, rest_of_handle_regrename
769 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
770 rest_of_handle_regmove, rest_of_handle_tracer
771 rest_of_handle_if_conversion, rest_of_handle_if_after_combine
772 rest_of_handle_web, rest_of_handle_branch_prob
773 rest_of_handle_value_profile_transformations, rest_of_handle_cfg
774 rest_of_handle_addressof, rest_of_handle_jump_bypass
775 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
776 Check that the two arguments are actually superfluous.
777 * tree-optimize.c (register_dump_files): Add properties argument.
778 Track validity of passes. Only initialize dump files for
779 tree-based passes. Store the full set of provided passes in
780 the pass.
781 (init_tree_optimization_passes): Register pass_expand and
782 pass_rest_of_compilation.
783 (execute_one_pass): Do not track the presence of required properties
784 here. Set in_gimple_form. Do not update current_properties.
785 (current_properties): Remove.
786 (set_save_expr_context): Remove.
787 (tree_rest_of_compilation): Do not set in_gimple_form. Do not
788 expand to RTL here, and do not call rest_of_compilation. Push
789 GGC context even before gimplification.
790 * tree-pass.h (PROP_rtl, PROP_trees): New flags.
791 (pass_expand, pass_rest_of_compilation): Declare.
792
fd660b1b
JL
7932004-06-15 Jeff Law <law@redhat.com>
794
795 * fold-const.c (swap_tree_comparison): No longer static.
796 (tree_swap_operands_p): Similarly. Return true if both operands
797 are SSA_NAMEs and the first operand has a higher version number than
798 the second operand.
799 * tree.h (swap_tree_comparison): Prototype.
800 (tree_swap_operands_p): Prototype.
801 * tree-ssa-operands.c (get_expr_operands): For commutative
802 operators and relational comparisons, canonicalize the
803 order of the operands.
804
325c3691
RH
8052004-06-15 Richard Henderson <rth@redhat.com>
806
807 * c-common.c (lang_gimplify_stmt): Remove next_p argument.
808 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
809 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
810 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
811 (finish_fname_decls, fname_decl): Use statement_lists.
812 (c_expand_expr_stmt): Don't set last_expr_type.
813 (c_type_hash): Fix indentation.
814 (c_safe_from_p): Don't follow TREE_CHAIN.
815 (c_tree_chain_matters_p): Remove.
816 * c-common.def (SCOPE_STMT): Remove.
817 (CLEANUP_STMT): Redefine to contain its own body.
818 * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
819 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
820 Add x_cur_stmt_list.
821 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
822 (cur_stmt_list): New.
823 (STATEMENT_LIST_STMT_EXPR): New.
824 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
825 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
826 (CLEANUP_BODY): New.
827 (CLEANUP_DECL): Move to operand 2.
828 (c_common_stmt_codes): Remove SCOPE_STMT.
829 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
830 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
831 (c_push_function_context, c_pop_function_context): Don't save it.
832 (finish_decl): Set TREE_USED on the decl for a cleanup.
833 Use push_cleanup.
834 (store_parm_decls): Use statement lists.
835 (finish_function): Remove compstmt rule workaround. Use statement
836 lists. Call finish_fname_decls after finalizing the body.
837 (c_begin_compound_stmt): Move to c-typeck.c.
838 * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
839 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
840 (c_genericize): Invoke them.
841 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT.
842 (c_build_bind_expr): Export.
843 (gimplify_block, gimplify_cleanup): Remove.
844 (gimplify_condition): Use gimplify_stmt.
845 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
846 (gimplify_if_stmt): Remove recursion hack.
847 (c_gimplify_expr): Remove STMT_EXPR handling.
848 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
849 (is_last_stmt_of_scope): Remove.
850 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
851 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
852 c_end_compound_stmt.
853 * c-objc-common.c (build_cdtor): Likewise.
854 * c-parse.in (primary): Use c_finish_stmt_expr.
855 (push_scope, pop_scope): Remove.
856 (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
857 (c99_block_end, compstmt): Use c_end_compound_stmt.
858 (c99_block_lineno_labeled_stmt): Likewise.
859 (compstmt_primary_start): Use c_begin_stmt_expr.
860 (simple_if, select_or_iter_stmt): Update calls to stmt builders.
861 (do_stmt_start): Fill in body directly.
862 (lineno_stmt): Avoid setting lineno on constants.
863 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
864 Remove SCOPE_STMT.
865 * c-semantics.c (begin_stmt_tree): Remove.
866 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
867 (add_stmt): Use statement lists.
868 (add_scope_stmt, finish_stmt_tree): Remove.
869 (push_cleanup): New.
870 * c-tree.h: Move some decls from c-common.h.
871 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
872 (do_case, c_finish_case): Likewise.
873 (c_finish_then): Take body for then as argument.
874 (c_finish_else): Similarly.
875 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
876 c_finish_for_stmt_incr, c_finish_for_stmt): New.
877 (c_begin_stmt_expr, c_finish_stmt_expr): New.
878 (c_begin_compound_stmt): Do scope management.
879 (c_end_compound_stmt): New.
880 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
881 * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
882 Look through exception handling constructs.
883 (gimplify_bind_expr): Accept temporary argument.
884 (gimplify_target_expr): Special case BIND_EXPR bodies.
885 (gimplify_expr): Handle fallback == fb_none like a statement.
886 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
887 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
888 * langhooks.h (tree_chain_matters_p): Remove.
889 * stub-objc.c (objc_clear_super_receiver): New.
890 * tree-gimple.h (voidify_wrapper_expr): Update decl.
891 (append_to_statement_list, append_to_statement_list_force): Move
892 to tree-iterator.h.
893 * tree-inline.c (expand_call_inline): Update call.
894 (clone_body): Use statement lists.
895 (walk_tree): Don't check tree_chain_matters_p.
896 (copy_tree_r): Likewise.
897 * tree-iterator.c (alloc_stmt_list): Clear lang bits.
898 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
899 * tree-iterator.h (append_to_statement_list,
900 append_to_statement_list_force): Moved from tree-gimple.h.
901 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
902 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
903 (objc_enter_block): Likewise.
904 (objc_exit_block): Use c_end_compound_stmt.
905 (objc_build_try_enter_fragment): Add #error and comment for
906 rewriting for OBJCPLUS.
907 (objc_build_extract_fragment, objc_build_try_epilogue,
908 objc_build_catch_stmt, objc_build_finally_prologue,
909 objc_build_finally_epilogue): Update for C statement builders.
910 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
911 Remove.
912
161b0a84
ZD
9132004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
914
915 * df.c (df_reg_clobber_gen): Removed.
916 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
917 Make more effective for hard regs.
918 * ra-build.c (livethrough_conflicts_bb): Check contains_call.
919
0173bb6f
AO
9202004-06-15 Alexandre Oliva <aoliva@redhat.com>
921
922 * c-pragma.h (c_lex_string_translate): Change type to int.
923 * c-parse.in: Change all assignments of c_lex_string_translate
924 to true and false to 1 and 0.
925 * c-lex.c (c_lex_string_translate): Likewise.
926 (lex_string): Convert string without translation in the -1
927 case.
928
d0b25f9a
MA
9292004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca>
930
931 * convert.h: Add include guards
932
0566b51e
DB
9332004-06-15 Daniel Berlin <dberlin@dberlin.org>
934
935 * tree-flow-inline.h: Document all functions.
b9034bbd 936
c8a6f154
DB
9372004-06-15 Daniel Berlin <dberlin@dberlin.org>
938
939 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
940 * tree-dfa.c (create_stmt_ann): Ditto.
941 * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
942 * tree-inline.c (estimate_num_insns_1): Ditto.
943 * tree.c (tree_size): Ditto.
944 (make_node_stat): Ditto.
945 (tree_node_structure): Ditto.
946 (ephi_node_elt_check_failed): Remove.
947 (is_essa_node): Ditto.
948 * tree.def (EPHI_NODE): Ditto.
949 (EEXIT_NODE): Ditto.
950 (EUSE_NODE): Ditto.
951 (EKILL_NODE): Ditto.
952 * tree.h (EREF_NODE_CHECK): Remove.
953 (EPHI_NODE_ELT_CHECK): Ditto.
954 (struct tree_eref_common): Ditto.
955 (struct tree_euse_node): Ditto.
956 (struct ephi_arg_d): Ditto.
957 (struct tree_ephi_node): Ditto.
958 (ephi_node_elt_check_failed): Remove prototype.
959 (is_essa_node): Ditto.
960 (enum tree_node_structure_enum): Remove TS_E*_NODE.
961 (union tree_node): Remove E*_NODE uses.
962
f8cfc6aa
JQ
9632004-06-15 Jerry Quinn <jlquinn@optonline.net>
964
965 * alias.c (record_set, record_base_value, canon_rtx, get_addr,
966 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
967 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
968 Likewise.
969 * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
970 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
971 expand_builtin_strcmp, expand_builtin_strncmp,
972 expand_builtin_frame_address): Likewise.
973 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
974 insert_one_insn): Likewise.
975 * calls.c (prepare_call_address, precompute_register_parameters,
976 precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
977 * cfganal.c (flow_active_insn_p): Likewise.
978 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
979 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
980 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
981 make_extraction, recog_for_combine, gen_lowpart_for_combine,
982 simplify_comparison, record_dead_and_set_regs_1,
983 record_dead_and_set_regs, record_promoted_value,
984 check_promoted_subreg, get_last_value_validate, get_last_value,
985 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
986 unmentioned_reg_p_1): Likewise.
987 * conflict.c (mark_reg): Likewise.
988 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
989 mention_regs, insert_regs, lookup, lookup_for_remove, insert,
990 merge_equiv_classes, flush_hash_table, invalidate,
991 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
992 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
993 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
994 record_jump_cond, cse_insn, addr_affects_sp_p,
995 invalidate_from_clobbers, cse_process_notes, cse_around_loop,
996 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
997 cse_cc_succs, cse_condition_code_reg): Likewise.
998 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
999 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
1000 cselib_record_set, cselib_record_sets): Likewise.
1001 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
1002 dbxout_block): Likewise.
1003 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
1004 * dojump.c (do_jump): Likewise.
1005 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
1006 is_based_loc, rtl_for_decl_location): Likewise.
1007 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
1008 set_decl_incoming_rtl, mark_user_reg): Likewise.
1009 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
1010 copy_to_suggested_reg, allocate_dynamic_stack_space,
1011 probe_stack_range, hard_function_value): Likewise.
1012 * expmed.c (store_bit_field, store_fixed_bit_field,
1013 store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
1014 extract_split_bit_field, expand_divmod, emit_store_flag_force):
1015 Likewise.
1016 * expr.c (convert_move, convert_modes,
1017 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
1018 use_group_regs, emit_move_insn, emit_move_insn_1,
1019 compress_float_constant, push_block, emit_single_push_insn,
1020 emit_push_insn, get_subtarget, expand_assignment, store_expr,
1021 store_constructor, store_field, force_operand, safe_from_p,
1022 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
1023 Likewise.
1024 * final.c (profile_function, final_scan_insn, alter_subreg,
1025 get_mem_expr_from_op, output_asm_operand_names, output_operand,
1026 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
1027 * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
1028 find_regno_partial, propagate_one_insn, init_propagate_block_info,
1029 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
1030 attempt_auto_inc, find_auto_inc, mark_used_regs,
1031 count_or_remove_death_notes_bb): Likewise.
1032 * function.c (find_temp_slot_from_address, update_temp_slot_address,
1033 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
1034 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
1035 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
1036 purge_single_hard_subreg_set, instantiate_decl,
1037 instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
1038 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
1039 setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1040 expand_function_start, diddle_return_value, clobber_return_register,
1041 expand_function_end, keep_stack_depressed, handle_epilogue_set,
1042 update_epilogue_consts): Likewise.
1043 * genemit.c (gen_exp, gen_insn): Likewise.
1044 * genrecog.c (make_insn_sequence): Likewise.
1045 * global.c (global_conflicts, expand_preferences, mark_reg_store,
1046 mark_reg_conflicts, set_preference, reg_becomes_live,
1047 build_insn_chain, mark_reg_change): Likewise.
1048 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
1049 Likewise.
1050 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
1051 Likewise.
1052 * integrate.c (copy_rtx_and_substitute, try_constants,
1053 subst_constants, mark_stores, allocate_initial_values): Likewise.
1054 * jump.c (reversed_comparison_code_parts, delete_prior_computation,
1055 delete_computation, rtx_renumbered_equal_p, true_regnum,
1056 reg_or_subregno): Likewise.
1057 * lcm.c (reg_dies, reg_becomes_live): Likewise.
1058 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
1059 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
1060 wipe_dead_reg, no_conflict_p): Likewise.
1061 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
1062 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
1063 simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
1064 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
1065 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
1066 find_single_use_in_loop, count_one_set, loop_bivs_init_find,
1067 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
1068 valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
1069 loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
1070 maybe_eliminate_biv_1, record_initial, update_reg_last_use,
1071 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
1072 try_swap_copy_prop): Likewise.
1073 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
1074 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
1075 Likewise.
1076 * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
1077 reload_cse_simplify_operands, reload_combine,
1078 reload_combine_note_store, reload_combine_note_use,
1079 reload_cse_move2add, move2add_note_store): Likewise.
1080 * print-rtl.c (print_rtx): Likewise.
1081 * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
1082 contains_pseudo, handle_asm_insn): Likewise.
1083 * ra-debug.c (ra_print_rtx_object, dump_constraints,
1084 dump_static_insn_cost): Likewise.
1085 * ra-rewrite.c (slots_overlap_p, emit_colors,
1086 remove_suspicious_death_notes): Likewise.
1087 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
1088 register_operand, scratch_operand, nonmemory_operand,
1089 constrain_operands): Likewise.
1090 * reg-stack (check_asm_stack_operands, remove_regno_note,
1091 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
1092 subst_asm_stack_regs): Likewise.
1093 * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
1094 record_address_regs, reg_scan_mark_refs): Likewise.
1095 * regmove.c (discover_flags_reg, replacement_quality,
1096 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
1097 fixup_match_1): Likewise.
1098 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
1099 kill_set_value, copyprop_hardreg_forward_1): Likewise.
1100 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
1101 reload_inner_reg_of_subreg, can_reload_into, push_reload,
1102 combine_reloads, find_dummy_reload, hard_reg_set_here_p,
1103 operands_match_p, decompose, find_reloads, find_reloads_toplev,
1104 find_reloads_address, subst_indexed_address, find_reloads_address_1,
1105 find_reloads_subreg_address, find_replacement,
1106 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
1107 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
1108 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
1109 find_reg, delete_dead_insn, alter_reg, eliminate_regs,
1110 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
1111 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
1112 emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
1113 do_output_reload, emit_reload_insns, gen_reload,
1114 delete_address_reloads_1, inc_for_reload): Likewise.
1115 * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
1116 update_reg_unused_notes, fill_slots_from_thread): Likewise.
1117 * resource.c (update_live_status, mark_referenced_resources,
1118 mark_set_resources, mark_target_live_regs): Likewise.
1119 * rtlanal.c (nonzero_address_p, get_jump_table_offset,
1120 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
1121 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
1122 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
1123 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
1124 parms_set, find_first_parameter_load, keep_with_call_p,
1125 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
1126 num_sign_bit_copies1): Likewise.
1127 * rtlhooks.c (gen_lowpart_general): Likewise.
1128 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
1129 sched_analyze): Likewise.
1130 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
1131 Likewise.
1132 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
1133 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
1134 simplify_binary_operation, simplify_const_relational_operation,
1135 simplify_subreg): Likewise.
1136 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
1137 expand_end_stmt_expr, expand_return, expand_decl,
1138 expand_anon_union_decl): Likewise.
1139 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
1140 find_splittable_regs, find_splittable_givs, find_common_reg_term,
1141 loop_iterations): Likewise.
1142 * var-tracking.c (variable_union, variable_part_different_p,
1143 variable_different_p, count_uses, add_uses, add_stores,
1144 compute_bb_dataflow, set_variable_part, delete_variable_part,
1145 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
1146 Likewise.
1147 * varasm.c (assemble_variable): Likewise.
1148
347b63a2
CD
11492004-06-15 Chris Demetriou <cgd@broadcom.com>
1150
1151 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1152 definition.
1153 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
1154 #undef and #if 0'd definition.
1155
e8679703
R
11562004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1157
1158 * combine.c (distribute_notes): Comment typo fix.
1159
0792ab19
RS
11602004-06-15 Roger Sayle <roger@eyesopen.com>
1161
1162 * expmed.c (synth_mult): Mask bits of the multiplier to the
1163 machine mode of the multiplication. Don't consider shifts
1164 by more than (or equal to) the width of the operation's mode.
1165
0dce8934
PB
11662004-06-15 Paolo Bonzini <bonzini@gnu.org>
1167
1168 * doc/install.texi: Yet another update for autoconf
1169 and automake versions.
1170
096f22f4
PB
11712004-06-15 Paolo Bonzini <bonzini@gnu.org>
1172
1173 * function.h (struct function): Remove cannot_inline field.
1174 (current_function_cannot_inline): Remove.
1175 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
1176 Simplify conditionals to ignore warn_return_type.
1177 * tree-optimize.c (tree_rest_of_compilation): Do not reset
1178 DECL_DEFER_OUTPUT.
1179 * objc/objc-act.c (build_module_descriptor, finish_method_def):
1180 Do not set current_function_cannot_inline.
1181
8cff2a95
R
11822004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
1183
1184 * cfglayout.c (fixup_reorder_chain): Handle case where the
1185 destination of E_TAKEN is EXIT_BLOCK_PTR.
1186
9264db16
DN
11872004-06-15 Diego Novillo <dnovillo@redhat.com>
1188
1189 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
1190
3dd8069d
PB
11912004-06-15 Paolo Bonzini <bonzini@gnu.org>
1192
1193 * fold-const.c (operand_equal_p): Update comment.
1194
7b14411a
KI
11952004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1196
1197 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
1198 (INCOMING_RETURN_ADDR_RTX): Define.
1199 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
1200 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
1201 __builtin_return_address(0).
1202 (m32r_return_addr): Added for __builtin_return_address(0).
1203 (m32r_reload_lr): Ditto.
1204
b9034bbd
AJ
1205 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
1206
cf11c05c
PB
12072004-06-15 Paolo Bonzini <bonzini@gnu.org>
1208
1209 * doc/install.texi (Prerequisites): Update libbanshee,
1210 fastjar, libcpp, libjava/libltdl entries to
1211 automake 1.8.5.
1212
4d7694fc 12132004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
17192884 1214 Olivier Hainque <hainque@act-europe.fr>
4d7694fc
EB
1215
1216 * function.c (fixup_var_refs): Also adjust the start of sequence
1217 after fixing up the insns.
1218
1f28d175
GB
12192004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1220
1221 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
1222
3a8c5d8c
BK
12232004-06-14 Benjamin Kosnik <bkoz@redhat.com>
1224
1225 * doc/install.texi (Prerequisites): Update libstdc++ entry to
1226 automake 1.8.5.
1227
f26c1794
EC
12282004-06-14 Eric Christopher <echristo@redhat.com>
1229
1230 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
1231 to -mtpf-trace (-mno-tpf-trace).
1232 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
1233 documentation.
1234
36598e94
EB
12352004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1236
1237 * real.c: Fix bit count in head comment.
1238
daa2b95a
JL
12392004-06-14 Jeff Law <law@redhat.com>
1240
1241 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
1242 PHIs where the destination or an argument is marked with
1243 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1244
6355b2d5
JJ
12452004-06-14 Jakub Jelinek <jakub@redhat.com>
1246
1247 PR middle-end/15945
1248 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
1249 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
1250
44930935
ZD
12512004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1252
1253 * opts.sh (var_args): Fix regexp.
1254
25178498
JJ
12552004-06-14 Jakub Jelinek <jakub@redhat.com>
1256
1257 PR target/15178
1258 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1259
fc9c8ce1
PB
12602004-06-14 Paul Brook <paul@codesourcery.com>
1261
1262 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
1263
50431bc4
ZD
12642004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1265
1266 * Makefile.in (FLAGS_H): New.
1267 (flags.h): Replace by FLAGS_H.
1268 * c.opt: Document Var, VarExists, Init and Report attributes.
1269 * common.opt: Fill the values of the attributes.
1270 * diagnostic.c (flag_fatal_errors): Do not define.
1271 * except.c (flag_non_call_exceptions): Do not define.
1272 * flags.h: Include options.h. Remove declarations conflicting with
1273 the automatically defined ones.
1274 * opts.c: Remove automatically defined variables.
1275 (handle_option): Perform default initialization.
1276 (common_handle_option): Do not handle options covered by the
1277 default initialization.
1278 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
1279 fields.
1280 (CL_REPORT): New.
1281 * opts.sh: Generate variable declarations, handle CL_REPORT.
1282 * toplev.c: Remove automatically defined variables.
1283 (f_options): Removed.
1284 (print_switch_values): Use cl_options instead of f_options.
1285 * toplev.h (version_flag): Declaration removed.
1286
1c2cdd56
ILT
12872004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
1288
715f8bb8
ILT
1289 * config/sparc/sparc.h: Correct comment about availability of
1290 little endian option.
1291
1c2cdd56
ILT
1292 * config.gcc: Remove sparc64-*-aout*.
1293 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
1294 * config/sparc/sp64-aout.h: Remove.
1295 * config/sparc/aout.h: Remove.
1296
63694b5e
UW
12972004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
1298
1299 * config/s390/s390.c: Include "tree-gimple.h".
1300 (s390_gimplify_va_arg): New function.
1301 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1302 (s390_va_arg): Remove.
1303 * config/s390/s390-protos.h (s390_va_arg): Remove.
1304 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
1305
623a66fa
R
13062004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
1307
1308 * basic-block.h (could_fall_through): Declare.
1309 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
1310 Fail if the source already has a fallthrough edge to the exit
1311 block pointer.
1312 (could_fall_through): New function.
1313 * cfgbuild.c (make_edges): Check if we already have a fallthrough
1314 edge to the exit block pointer.
1315 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
1316 not called before reload has completed.
1317 Handle special case of first block having a fall-through exit edge.
1318 (cfg_layout_finalize): Don't call it before reload or if we have
1319 rtl epilogues.
1320 (fixup_reorder_chain): A fall through to the exit block does not
1321 require the block to come last. Add sanity checks.
1322 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
1323 edges to the exit block.
1324 * function.c (cfglayout.h): #include.
1325 (thread_prologue_and_epilogue_insns): If we have neither return nor
1326 epilogue, but a fall through to the exit block from mid-function,
1327 force a non-fall-through exit.
1328 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
1329
93ae5495
AM
13302004-06-14 Alan Modra <amodra@bigpond.net.au>
1331
1332 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
1333 for power5 and rs64a. Correct condition for default. Correct power3,
1334 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
1335
6e72d1e9
SB
13362004-06-13 Steven Bosscher <stevenb@suse.de>
1337
1338 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
1339 Revert previous change, don't use CALL_P.
1340
e5da415c
JM
13412004-06-13 Jason Merrill <jason@redhat.com>
1342
1343 * tree.h: Move std_gimplify_va_arg_expr protoype here.
1344 * tree-gimple.h: From here.
1345
ce25943a
DB
13462004-06-13 Daniel Berlin <dberlin@dberlin.org>
1347
1348 Fix PR tree-optimization/15979
1349 Fix PR tree-optimization/15981
1350 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
1351 try to insert values undefined along some path.
1352
3bce843e
DB
13532004-06-13 Daniel Berlin <dberlin@dberlin.org>
1354
1355 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
1356 are available everywhere too.
1357
a40de696
AP
13582004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
1359
1360 * fold-const.c (fold_checksum_tree <case 't'>): Only
1361 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
1362 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
1363 EXPR is an INTEGERAL_TYPE or a scalar float type.
1364
a18f61f8
DN
13652004-06-13 Diego Novillo <dnovillo@redhat.com>
1366
1367 * tree-sra.c (tree_sra): Update documentation.
1368
132da1a5
JM
13692004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
1370
1371 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
1372 function_types_compatible_p, type_lists_compatible_p): Remove
1373 flags parameter.
1374 * c-tree.h (comptypes): Likewise.
1375 (COMPARE_STRICT): Remove.
1376 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
1377 callers changed.
1378
118a3a8b
EC
13792004-06-13 Eric Christopher <echristo@redhat.com>
1380
1381 * c-decl.c (diagnose_mismatched_decls): Improve error message.
1382 Remove unused code.
1383 * c-typeck.c (comptypes): Add location in standard we're checking.
1384
9f680e79
KK
13852004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
1386
1387 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
1388 version 3.3.4.
1389
965703ed
RS
13902004-06-12 Roger Sayle <roger@eyesopen.com>
1391
1392 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
1393 index by machine mode.
1394 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
1395 tables inside the loop over machine modes.
1396 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
1397 expand_divmod): Index shift*_cost by the appropriate machine mode.
1398
3839e36a
EC
13992004-06-12 Eric Christopher <echristo@redhat.com>
1400
1401 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
1402 * config/s390/s390.md: Ditto.
1403 * config/s390/s390.c: Ditto.
1404 (s390_frame_info): Conditionalize frame and setup info on
1405 TARGET_TPF_PROFILING.
1406 (s390_arg_frame_offset): Ditto.
1407
08039bd8
RS
14082004-06-12 Roger Sayle <roger@eyesopen.com>
1409
1410 * fold-const.c (omit_two_operands): New function.
1411 * tree.h (omit_two_operands): Prototype here.
1412 * builtins.c (fold_builtin_unordered_cmp): New function to lower
1413 C99 unordered comparison builtins to the appropriate tree nodes.
1414 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
1415 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1416 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
1417 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
1418 (simplify_builtin_memcmp, simplify_builtin_strncmp,
1419 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
1420 omit_two_operands function to build the required COMPOUND_EXPRs.
1421
7b1b4aed
SB
14222004-06-12 Steven Bosscher <stevenb@suse.de>,
1423 Andreas Jaeger <aj@suse.de>
1424
1425 * gcse.c (record_set_info): Use predicates like REG_P.
1426 (mems_conflict_for_gcse_p): Likewise.
1427 (load_killed_in_block_p): Likewise.
1428 (hash_expr_1): Likewise.
1429 (insert_set_in_table): Likewise.
1430 (gcse_constant_p): Likewise.
1431 (hash_scan_set): Likewise.
1432 (hash_scan_insn): Likewise.
1433 (canon_list_insert): Likewise.
1434 (record_last_mem_set_info): Likewise.
1435 (record_last_set_info): Likewise.
1436 (compute_hash_table_work): Likewise.
1437 (mark_set): Likewise.
1438 (mark_clobber): Likewise.
1439 (mark_oprs_set): Likewise.
1440 (compute_transp): Likewise.
1441 (find_avail_set): Likewise.
1442 (cprop_insn): Likewise.
1443 (do_local_cprop): Likewise.
1444 (cprop): Likewise.
1445 (find_implicit_sets): Likewise.
1446 (find_bypass_set): Likewise.
1447 (bypass_conditional_jumps): Likewise.
1448 (insert_insn_end_bb): Likewise.
1449 (pre_insert_copy_insn): Likewise.
1450 (compute_transpout): Likewise.
1451 (next_ls_expr): Likewise.
1452 (invalidate_any_buried_refs): Likewise.
1453 (compute_ld_motion_mems): Likewise.
1454 (reg_set_info): Likewise.
1455 (reg_clear_last_set): Likewise.
1456 (find_moveable_store): Likewise.
1457 (compute_store_table): Likewise.
1458 (find_loads): Likewise.
1459 (store_killed_in_insn): Likewise.
1460 (insert_insn_start_bb): Likewise.
1461 (reg_set_between_after_reload_p): Likewise.
1462 (reg_used_between_after_reload_p): Likewise.
1463 (is_jump_table_basic_block): Likewise.
1464 (gcse_after_reload): Likewise.
1465 (hash_scan_set_after_reload): Likewise.
1466 (compute_hash_table_after_reload): Likewise.
1467
3d27dbd0
SB
14682004-06-12 Steven Bosscher <stevenb@suse.de>
1469
1470 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
1471 (INSN_P): Don't look at the rtx code class, just explicitly
1472 check for one of the tree RTX_INSN codes.
1473
019c8e80
ZW
14742004-06-11 Zack Weinberg <zack@codesourcery.com>
1475
1476 * c-typeck.c (default_function_array_conversion): Use
1477 build_pointer_type not TYPE_POINTER_TO.
1478
2fac9c01
ZW
14792004-06-11 Zack Weinberg <zack@codesourcery.com>
1480
1481 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
1482 * configure, config.in: Regenerate.
1483 * system.h: Unconditionally define bool as unsigned char,
1484 BOOL_BITFIELD as unsigned int.
1485 * domwalk.h: Use BOOL_BITFIELD.
1486
9ade2479
AJ
14872004-06-12 Andreas Jaeger <aj@suse.de>
1488
1489 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
1490 * libgcc-darwin.ver: Likewise.
1491
b605eb59
PJ
14922004-06-12 Peter Jakubek <peter@laseranimation.com>
1493
1494 * reload.c (find_reloads): Force reload for pseudo registers on big
1495 endian machines.
1496
7e6eb623
DB
14972004-06-11 Steven Bosscher <stevenb@suse.de>
1498
1499 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
1500 Don't try to mark anything control dependent on the entry or
1501 exit blocks.
1502
15032004-06-11 Daniel Berlin <dberlin@dberlin.org>
9ade2479 1504
7e6eb623
DB
1505 Fix Bug 15899
1506 Fix Bug 15460
1507 * tree.h (SSA_NAME_VALUE): New macro.
1508 (struct tree_ssa_name): Add value_handle member.
1509 * tree-ssa-pre.c: Replaced.
1510 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
1511 (struct cst_ann_d): New.
1512 (struct expr_ann_d): New.
1513 (union tree_ann_d): Add cst_ann, expr_ann.
1514 * tree-dfa.c (create_cst_ann): New function.
1515 (create_expr_ann): Ditto.
1516 * tree-flow-inline.h (cst_ann): New function.
1517 (expr_ann): Ditto.
1518 (get_cst_ann): Ditto.
1519 (get_expr_ann): Ditto..
1520
9839edf1
JDA
15212004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1522
e2ddd6ca
JDA
1523 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
1524 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
1525 _U_Qfcmp library function.
1526 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
1527 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
1528
9839edf1
JDA
1529 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
1530 unspec used for loading address from DLT.
1531 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
1532 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
1533 Don't use short code sequence when loading the address of a nonlocal
1534 label.
1535 (nonlocal_goto): New expander.
1536 (indirect_goto): New jump pattern for nonlocal gotos.
1537 (short_jump): Remove extra whitespace.
1538 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
1539 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
1540 pattern.
1541
41c64ac0
RS
15422004-06-11 Roger Sayle <roger@eyesopen.com>
1543
1544 * expmed.c (synth_mult): Add an additional MODE argument for the
1545 machine mode of the multiplication. Update recursive calls. Use
1546 mode instead of word_mode for determining operation costs.
1547 (choose_mult_variant): Update calls to synth_mult with "mode".
1548
9098a3ec
RH
15492004-06-11 Richard Henderson <rth@redhat.com>
1550
1551 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
1552 and makes_aliased_stores.
1553
55c45226
AP
15542004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1555
1556 * doc/install.text (--enable-shared): Fix typo.
1557
65da5a20
RH
15582004-06-11 Richard Henderson <rth@redhat.com>
1559
1560 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
1561 argument. Use internal post for call to gimplify_expr. Tidy
1562 rounded type size computation.
1563 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
1564 get_initialized_tmp_var.
1565
07659e97
AP
15662004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
1567
65da5a20
RH
1568 * doc/install.texi (--enable-shared): Update libobjc's shared library
1569 status. Remove reference to libf2c.
07659e97 1570
67c605a5
JM
15712004-06-11 Jason Merrill <jason@redhat.com>
1572
1573 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1574 * config/i386/i386.c (ix86_va_arg): Remove.
1575 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1576 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
1577 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1578 * config/alpha/alpha.c (alpha_va_arg): Remove.
1579 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
1580 * config/sparc/sparc.c (sparc_va_arg): Remove.
1581
1582 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
1583 assignment might throw.
1584 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
1585 expressions.
1586
e6ff425c
R
15872004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
1588
67fc0c0f 1589 PR 15886:
e6ff425c
R
1590 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
1591
ccfca4ae
JM
15922004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
1593
1594 * doc/install.texi (Prerequisites): Update documentation of
1595 required versions of autoconf and automake. Remove mention of
1596 libf2c.
1597
5f393b25
JM
15982004-06-11 Jason Merrill <jason@redhat.com>
1599
1600 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
1601 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1602
5801c467
JQ
16032004-06-11 Jerry Quinn <jlquinn@optonline.net>
1604
1605 * typeclass.h: Add GPL plus exception license. Add include
1606 guard.
1607
3bcb4e37
JM
16082004-06-10 Jason Merrill <jason@redhat.com>
1609
1610 * gimplify.c (gimplify_modify_expr): Don't force a temporary
1611 of an aggregate_value_p type.
1612
3100d647
JL
16132004-06-10 Jeff Law <law@redhat.com>
1614
1615 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
1616 code when we are in gimple form.
1617
95a3742c
DN
16182004-06-10 Diego Novillo <dnovillo@redhat.com>
1619
1620 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
1621 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
1622 (highest_ssa_version): Remove.
1623 * tree-outof-ssa.c (new_temp_expr_table): Replace
1624 highest_ssa_version with num_ssa_names.
1625 (dump_replaceable_exprs): Likewise.
1626 (rewrite_vars_out_of_ssa): Likewise.
1627 * tree-ssa-ccp.c (initialize): Likewise
1628 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1629 * tree-ssa-dce.c (tree_dce_init): Likewise.
1630 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1631 * tree-ssa-live.c (create_ssa_var_map): Likewise.
1632 (dump_var_map): Likewise.
1633 * tree-ssa.c (verify_ssa): Likewise.
1634 (kill_redundant_phi_nodes): Likewise.
1635 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
1636 * tree-ssanames.c: Include tree-flow.h
1637 (ssa_names): New varray.
1638 (init_ssa_names): Initialize ssa_names.
1639 Reserve the first slot of the ssa_names table.
1640 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
1641 Assign version numbers using num_ssa_names.
1642
a72967cd
JM
16432004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
1644
1645 * doc/sourcebuild.texi (Front End): Add details of more
1646 installation documentation required.
1647
a32b97a2
BB
16482004-06-10 Brian Booth <bbooth@redhat.com>
1649
1650 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1651 of V_MAY_DEF and V_MUST_DEF.
1652 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1653 num_vdefs to num_v_may_defs.
1654 (compute_immediate_uses_for_stmt): Rename occurences of vdef
1655 to v_may_def.
1656 (redirect_immediate_uses): Ditto.
1657 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1658 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1659 Also add code to sum up the number of v_must_defs.
1660 (vdefs_disappeared_p): Replace with...
1661 (v_may_defs_disappeared_p): This.
1662 (v_must_defs_disappeared_p): New function.
1663 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1664 Also add code to mark new variables found in V_MUST_DEFs for
1665 renameing.
1666 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1667 vdef_ops to v_may_def_ops.
1668 (get_vdef_ops): Replace with...
1669 (get_v_may_def_ops): This.
1670 * tree-flow-inline.h (get_vdef_ops): Replace with...
1671 (get_v_may_def_ops): This.
1672 (get_v_must_def_ops): New function.
1673 (get_vdef_result_ptr): Replace with...
1674 (get_v_may_def_result_ptr): This.
1675 (get_vdef_op_ptr): Ditto with...
1676 (get_v_may_def_op_ptr); This.
1677 (get_v_must_def_op_ptr): New function.
1678 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1679 to v_may_def. Also add code to mark statements with
1680 V_MUST_DEFs as definition sites.
9ade2479 1681 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
a32b97a2
BB
1682 add code to register new V_MUST_DEFs made by the statement.
1683 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
9ade2479 1684 (check_replaceable): Rename occurences of vdef to v_may_def. Also
a32b97a2
BB
1685 add check for V_MUST_DEFs.
1686 (find_replaceable_in_bb): Ditto.
1687 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1688 to v_may_def. Also add code to dump V_MUST_DEFs.
1689 * tree-sra.c (mark_all_vdefs): Replace with...
1690 (mark_all_v_may_defs): This.
1691 (mark_all_v_must_defs): New function.
1692 (create_scalar_copies): Replace call to mark_all_vdefs with
1693 calls to mark_all_v_may_defs and mark_all_v_must_defs.
9ade2479 1694 (scalarize_structures): Rename occurences of vdef to v_may_def.
a32b97a2
BB
1695 Also add a check for V_MUST_DEFs.
1696 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1697 * tree-ssa-alias.c (global_var): Update comment.
1698 (compute_may_aliases): Ditto.
1699 (compute_points_to_and_addr_escape): Rename occurences of vdef
9ade2479 1700 to v_may_def. Also add code to mark variables in V_MUST_DEF
a32b97a2
BB
1701 operands as being written to.
1702 (group_aliases): Update comment.
1703 (maybe_create_global_var): Ditto.
1704 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1705 Also add a check for V_MUST_DEFs on GIMPLE registers.
1706 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1707 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
9ade2479 1708 to v_may_def. Also add code to mark all V_MUST_DEF operands
a32b97a2
BB
1709 VARYING.
1710 (initialize): Ditto.
1711 (set_rhs): Rename occurences of vdef to v_may_def. Also add
1712 code to update SSA_NAMEs in V_MUST_DEFs.
1713 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1714 to v_may_def.
9ade2479 1715 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
a32b97a2
BB
1716 occurences of vdef to v_may_def. Also add code to mark statements
1717 with V_MUST_DEFs as necessary.
1718 (propagate_necessity): Rename occurences of vdef to v_may_def.
9ade2479 1719 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
a32b97a2
BB
1720 occurences of vdef to v_may_def. Also add code to mark operands
1721 in V_MUST_DEFs for renaming.
1722 (eliminate_redundant_computations): Rename occurences of vdef
1723 to v_may_def.
1724 (record_equivalences_from_stmt): Rename occurences of vdef
1725 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1726 (optimize_stmt): Remove unnesessary variable vdefs. Update
1727 comment.
1728 (register_definitions_for_stmt): Rename occurences of vdef
1729 to v_may_def. Also add code to register definitions made with
1730 V_MUST_DEFs.
1731 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1732 (fix_stmt_v_may_defs): This.
1733 (fix_phi_uses): Rename occurences of vdef to v_may_def.
1734 (dse_optimize_stmt): Ditto.
1735 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1736 to v_may_def. Also add code to mark V_MUST_DEF operands as being
1737 used in virtual operators.
9ade2479 1738 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
a32b97a2
BB
1739 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1740 renaming.
9ade2479 1741 * tree-ssa-operands.c (opf_kill_def): New flag for killing
a32b97a2
BB
1742 definitions.
1743 (build_vdefs): Renamed to...
1744 (build_v_may_defs): This.
1745 (build_v_must_defs): New variable.
1746 (voperands_d): Add v_must_def_ops and replace vdef_ops with
1747 v_may_def_ops.
1748 (append_vdef): Replace with...
1749 (append_v_may_def): This.
1750 (append_v_must_def): New function.
1751 (NUM_FREE): Increment for V_MUST_DEF
1752 (optype_freelist): Increment its size for V_MUST_DEF
1753 (allocate_vdef_optype): Replace with...
1754 (allocate_v_may_def_optype): This.
1755 (allocate_v_must_def_optype): New function.
1756 (free_vdefs): Replace with...
1757 (free_v_may_defs): This.
1758 (free_v_must_defs): New function.
1759 (remove_vdefs): Replace with...
1760 (remove_v_may_defs): This.
1761 (remove_v_must_defs): New function.
1762 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1763 add code to initialize build_v_must_defs.
1764 (finalize_ssa_vdefs): Replace with...
1765 (finalize_ssa_v_may_defs): This.
1766 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1767 (finalize_ssa_v_must_defs): New function.
1768 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1769 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1770 (verify_start_operands): Rename occurences of vdef to v_may_def.
1771 Also add check for build_v_must_defs.
1772 (get_stmt_operands): Rename occurences of vdef to v_may_def.
1773 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1774 killing definitions.
1775 (get_expr_operands): Update comment and use opf_kill_def for
1776 killing definitions.
1777 (add_stmt_operand): Replace code that appends VDEFs with code
1778 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1779 otherwise.
1780 (add_call_clobber_ops): Update comments.
1781 * tree-ssa-operands.h (vdef_optype_d): Replace with...
1782 (v_may_def_optype_d): This.
1783 (v_must_def_optype_d): New structure.
1784 (VDEF_OPS): Replace with...
1785 (V_MAY_DEF_OPS): This.
1786 (STMT_VDEF_OPS): Same with...
1787 (STMT_V_MAY_DEF_OPS): This.
1788 (NUM_VDEFS): And...
1789 (NUM_V_MAY_DEFS): This.
1790 (VDEF_RESULT_PTR): As well as...
1791 (V_MAY_DEF_RESULT_PTR): This.
1792 (VDEF_RESULT): Same goes for...
1793 (V_MAY_DEF_RESULT): This.
1794 (VDEF_OP_PTR): And...
1795 (V_MAY_DEF_OP_PTR): This.
1796 (VDEF_OP): And...
1797 (V_MAY_DEF_OP): This.
1798 (V_MUST_DEF_OPS): New macro.
1799 (STMT_V_MUST_DEF_OPS): Ditto.
1800 (NUM_V_MUST_DEFS): Ditto.
1801 (V_MUST_DEF_OP_PTR): Ditto.
1802 (V_MUST_DEF_OP): Ditto.
1803 (remove_vdefs): Replace signature with...
1804 (remove_v_may_defs): This.
1805 (remove_v_must_defs): New function signature.
1806 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1807 with calls to remove_v_may_defs and remove_v_must_defs.
1808 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1809 Also add code that marks left occurences of operands in V_MUST_DEFs.
9ade2479 1810 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
a32b97a2
BB
1811 to v_may_def. Also add check for V_MUST_DEFs.
1812 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1813
d57f1617
VM
18142004-06-10 Vladimir Makarov <vmakarov@redhat.com>
1815
1816 PR target/15653
1817 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1818 insn.
1819
322afd16
VR
18202004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1821
1822 PR web/15263
1823 * doc/install.texi: Remove superfluous linebreak.
1824
aa6c7c3a
RS
18252004-06-10 Roger Sayle <roger@eyesopen.com>
1826
1827 * builtins.c (expand_builtin): Fall back to library function call for
1828 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1829 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1830 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1831 IMAGPART_EXPR respectively.
1832
078c8b08
R
18332004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
1834
1835 * sh.c (dump_table): New argument start. Changed caller.
1836 (fixup_mova): New function.
1837 (find_barrier): Use it.
1838 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
1839 If the label a mova refers to is above the mova itself, change
1840 the mova into a load.
1841 * sh.md (*casesi_worker): Rename to:
1842 (casesi_worker_1).
1843 (casesi_worker_2): New insn.
1844
23a60a04
JM
18452004-06-10 Jason Merrill <jason@redhat.com>
1846
9ade2479 1847 * target.h (struct gcc_target): Change gimplify_va_arg_expr
23a60a04
JM
1848 hook signature.
1849 * tree-gimple.h: Adjust.
1850 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1851 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1852 Use fold_convert.
1853 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1854 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1855 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
1856 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
1857 (gimplify_va_arg_expr): Return GS_ERROR in error case.
1858 Gimplify valist rather than calling stabilize_va_list.
1859
9bf7acfc
ZD
18602004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1861
1862 * Makefile.in (df.o): Remove fibheap dependency.
1863 * df.h: Do not include sbitmap.h.
1864 (struct ref): New field "data".
1865 (DF_REF_DATA): New accessor macro.
1866 (struct df): Field "dom" removed.
1867 (df_analyze_subcfg): New function.
1868 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1869 (transfer_function): ... new type.
1870 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1871 (iterative_dataflow): ... new function.
1872 (enum set_representation, struct dataflow): New.
1873 * df.c: Do not include fibheap.h.
1874
1875 (df_reg_def_chain_clean, df_reg_use_chain_clean,
1876 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1877 prune_to_subcfg, df_bb_modify): New functions.
1878 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1879 df_refs_update, df_reg_table_realloc, df_ref_create,
1880 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1881 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1882 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
9ade2479 1883
9bf7acfc
ZD
1884 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1885 (df_rd_transfer_function, df_ru_transfer_function,
1886 df_lr_transfer_function): Type of bitmaps changed to void *.
1887 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1888 (hybrid_search): ... new function.
1889 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1890 (iterative_dataflow): ... new function. Avoid use of fibheaps for
1891 a worklist. Do not process basic blocks unnecessarily.
1892
9655d83b
RS
18932004-06-10 Roger Sayle <roger@eyesopen.com>
1894
1895 * fold-const.c (fold_abs_const): Make extern.
1896 * tree.h (fold_abs_const): Prototype here.
1897 * builtins.c (fold_builtin_fabs): New function to transform
1898 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1899 (fold_builtin_abs): New function to transform abs, labs, llabs
1900 and imaxabs builtins into ABS_EXPR tree nodes.
1901 (expand_builtin): Fall back to a function call for abs, labs,
1902 llabs and imaxabs builtins that survive constant folding.
1903 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1904 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1905
897105a1
JJ
19062004-06-10 Jakub Jelinek <jakub@redhat.com>
1907
1908 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1909 leaf function without unwind info at RP 0.
1910
498c0f27
JJ
19112004-06-10 Jakub Jelinek <jakub@redhat.com>
1912
1913 PR c++/14791
1914 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1915 (fileptr_type_node): Define.
1916 * tree.c (build_common_tree_nodes_2): Initialize
1917 fileptr_type_node to ptr_type_node.
1918 * c-common.c (c_common_nodes_and_builtins): For C++, make
1919 fileptr_type_node a distinct type copy.
1920 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1921 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1922 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1923 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1924 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1925 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1926 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1927 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1928 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1929 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1930 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1931 the above *FILEPTR* types instead of *PTR*.
1932
fce66145
DB
19332004-06-09 Daniel Berlin <dberlin@dberlin.org>
1934
9ade2479 1935 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
fce66145
DB
1936 match.
1937
a653e758
RS
19382004-06-09 Roger Sayle <roger@eyesopen.com>
1939
1940 * fold-const.c (fold_not_const): New function.
1941 (fold) <ABS_EXPR>: Don't bother testing wins.
1942 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1943 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1944
e66e7856 19452004-06-09 Richard Henderson <rth@redhat.com>
9ade2479 1946
498c0f27
JJ
1947 PR middle-end/15228
1948 * function.c (assign_parms): Always set_mem_align with the computed
1949 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
e66e7856 1950
4b5b9613
RH
19512004-06-09 Richard Henderson <rth@redhat.com>
1952
1953 PR opt/15108
1954 * tree-tailcall.c (find_tail_calls): Don't check early for
1955 tail_recursion failure.
1956
313679b0
DN
19572004-06-09 Diego Novillo <dnovillo@redhat.com>
1958
1959 Move SSA_NAME annotations into tree_ssa_name.
1960
1961 * tree-dfa.c (create_ssa_name_ann): Remove.
1962 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1963 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1964 (struct ssa_name_ann_d): Remove.
1965 (union tree_ann_d): Update.
1966 (ssa_name_ann_t): Remove.
1967 * tree-ssa-alias.c: (get_ptr_info): New local function.
1968 Replace references to ssa_name_ann_t with struct ptr_info_def.
1969 * tree-ssa-operands.c (get_expr_operands): Likewise.
1970 * tree.h (SSA_NAME_PTR_INFO): Define.
1971 (struct ptr_info_def): Declare.
1972 (struct tree_ssa_name): Add field 'ptr_info'.
1973
33300a2e
DS
19742004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
1975
8041d6ab 1976 * config/i386/winnt.c (i386_pe_output_labelref): Correct
33300a2e
DS
1977 misplaced ')'.
1978
8695f61e
SB
19792004-06-09 Steven Bosscher <stevenb@suse.de>
1980
1981 * config/i386/k6.md: Rewrite using the DFA model.
1982 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1983 cost of load-operation insns for the K6.
1984 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1985 (ia32_multipass_dfa_lookahead): Likewise.
1986
28245018
RH
19872004-06-09 Richard Henderson <rth@redhat.com>
1988
1989 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1990 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1991
bb394606
RH
19922004-06-09 Richard Henderson <rth@redhat.com>
1993
1994 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1995
d8044160
GK
19962004-06-09 Geoffrey Keating <geoffk@apple.com>
1997
1998 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1999 (CPP_ID_DATA_H): New.
2000 (gtype-desc.o): Update dependencies.
2001 (GTFILES): Use CPP_ID_DATA_H.
2002
0e5b7cfa
MM
20032004-06-09 Mark Mitchell <mark@codesourcery.com>
2004
2005 Revert:
2006 PR c++/15815
2007 2004-06-07 Mark Mitchell <mark@codesourcery.com>
2008 * doc/extend.texi: Deprecate #pragma interface and #pragma
2009 implementation.
2010
5162e02a
DM
20112004-06-09 David S. Miller <davem@nuts.davemloft.net>
2012
2013 * config/sparc/sparc.h (MOVE_RATIO): New definition.
2014
62b857ea
RH
20152004-06-09 Richard Henderson <rth@redhat.com>
2016
2017 * basic-block.h (struct edge_def): Add goto_locus.
2018 * tree-cfg.c (make_goto_expr_edges): Set it.
2019 (disband_implicit_edges): Use it.
2020 * tree-pretty-print.c (dump_implicit_edges): Print it.
2021
93a9f7d6
AP
20222004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2023
2024 * h8300.md (ldm_h8300s_4): Fix condition for expander.
2025
cd3ce9b4
JM
20262004-06-08 Jason Merrill <jason@redhat.com>
2027
2028 Gimplify VA_ARG_EXPR into simpler forms.
2029 * target.h: Add gimplify_va_arg_expr hook.
2030 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
2031 * fold-const.c (build_fold_addr_expr)
2032 (build_fold_addr_expr_with_type): Move from gimplify.c.
2033 * tree.h: Declare them.
2034 * gimplify.c (gimplify_and_add): New fn.
2035 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
2036 (gimplify_array_ref_to_plus, gimplify_modify_expr)
2037 (gimplify_expr): Use build_fold_*.
2038 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
2039 don't know how to gimplify it.
2040 * builtins.c (std_gimplify_va_arg_expr): New fn.
2041 (dummy_object): New static fn.
2042 (gimplify_va_arg_expr): New fn.
2043 (stabilize_va_list): Use build_fold_*.
2044 * tree-gimple.h: Declare new fns.
2045 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2046 (ix86_gimplify_va_arg): New fn.
373614fc 2047 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
cd3ce9b4 2048 (ia64_gimplify_va_arg): New fn.
373614fc 2049 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
cd3ce9b4 2050 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
cd3ce9b4 2051 * alias.c (get_varargs_alias_set): Just return 0 for now.
9ade2479 2052
cd3ce9b4
JM
2053 * c-objc-common.c (c_tree_printer): Improve handling of %T.
2054
e072ae27
AP
20552004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
2056
2057 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
2058 of convert.
2059 * tree-inline.c (setup_one_parameter): Likewise.
2060 * tree-sra.c (csc_build_component_ref): Likewise.
2061 * tree-ssa-ccp.c (ccp_fold): Likewise.
2062 * tree-ssa-copy.c (cprop_operand): Likewise.
2063 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
2064 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
2065
b40742a5
R
20662004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
2067
2068 PR rtl-optimization/15521:
2069 * sched-int.h (in_post_call_group_p): Change type to enum.
2070 * sched-deps.c (sched_analyze_insn):
2071 (sched_analyze): When in_post_call_group_p is post_call_initial,
2072 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
2073 and also reset in_post_call_group_p to post_call.
2074 (sched_analyze): When the previous basic block ended in a CALL_INSN,
2075 initialize in_post_call_group_p as post_call_initial.
2076 (init_deps): initialize in_post_call_group_p to not_post_call.
9ade2479 2077
e22df315
AC
20782004-06-09 Arnaud Charlet <charlet@act-europe.fr>
2079
2080 PR ada/6637
2081 * doc/install.texi: List ada, libada as options to --enable-shared
2082
ad6717df
PB
20832004-06-09 Paolo Bonzini <bonzini@gnu.org>
2084
2085 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
2086 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
2087 config.in entries.
2088 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
2089 if hard links are not available.
2090 * configure: Regenerate.
2091 * config.in: Regenerate.
2092
74ee1642
PB
20932004-06-08 Per Bothner <per@bothner.com>
2094
2095 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
2096
144cbad0
RK
20972004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2098
2099 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
2100 Correct formatting.
2101
02760d2f
JW
21022004-06-08 James E Wilson <wilson@specifixinc.com>
2103
2104 PR target/15790
2105 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
2106
908d0773
AP
21072004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2108
2109 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
2110 POINTER_TYPE and INTEGER_TYPE.
2111
d7777192
BI
21122004-06-08 Bernardo Innocenti <bernie@develer.com>
2113
2114 * modulo-sched.c: Compile only when INSN_SCHEDULING is
2115 defined.
2116
2d488668
JL
21172004-06-08 Jeff Law <law@redhat.com>
2118
8695f61e
SB
2119 * doc/contrib.texi: Add entries for Stefan Olsson and
2120 Ola Ronnerup.
2d488668 2121
73d10efa
DD
21222004-06-08 DJ Delorie <dj@redhat.com>
2123
2124 * toplev.c (floor_log2_wide): Replace loop with faster bit
2125 operations.
2126 (exact_log2_wide): Define in terms of the above.
2127 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
2128 available.
2129
3b48085e
AP
21302004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2131
2132 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
2133 Make sure that we are in INDIRECT mode when getting the
2134 stub name.
2135
3d5c8546
AP
21362004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
2137
2138 * h8300.md (extendqisi2_h8300): Add constraints.
2139 (ldm_h8300s_4_normal): Fix typo.
2140
71877985
RH
21412004-06-08 Richard Henderson <rth@redhat.com>
2142
8695f61e
SB
2143 * gimple-low.c (struct lower_data): Replace the_return_label and
2144 one_return_stmt with return_statements.
2145 (lower_function_body): Process the entire list of return_statements.
9ade2479 2146 (lower_return_expr): Check source value before unifying return_exprs.
8695f61e
SB
2147 * gimplify.c (gimplify_return_expr): Force the use of a temporary
2148 for !aggregate_value_p.
2149 * tree-gimple.c: Update RETURN_EXPR grammer.
71877985 2150
de101ad2
VM
21512004-06-08 Vladimir Makarov <vmakarov@redhat.com>
2152
2153 PR target/15598
2154 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
2155
d599f329
ZD
21562004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2157
2158 PR rtl-optimization/15717
2159 * config/i386/i386.c (legitimate_constant_p): Do not allow
2160 x - symbol_ref.
2161
0b1d52f7
AO
21622004-06-08 Alexandre Oliva <aoliva@redhat.com>
2163
2164 * gimplify.c (copy_if_shared_r): Revert:
2165 2004-05-21 Richard Henderson <rth@redhat.com>
2166 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
2167
58777718
RS
21682004-06-07 Roger Sayle <roger@eyesopen.com>
2169
2170 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
2171 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
2172 (init_expmed): Initialize these cost arrays as appropriate.
2173 (store_bit_field, extract_bit_field): Correct whitespace.
2174 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
2175 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
2176 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
2177 word_mode or compute_mode as appropriate.
2178
85bbb21f
EB
21792004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2180
2181 PR target/15783
2182 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
2183 parameter. Enumerate the registers inside the PARALLEL.
2184 (function_arg): Adjust call to function_arg_union_value.
2185 (function_value): Likewise.
2186
2187 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
2188
67057c53
RS
21892004-06-07 Roger Sayle <roger@eyesopen.com>
2190
2191 * real.c (real_copysign): New function to implement libm's copysign.
2192 * real.h (real_copysign): Prototype here.
2193 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
2194 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
2195 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
2196 fold_builtin_isdigit): Add function prototypes.
2197 (fold_builtin_copysign): New function to fold copysign, copysignf
2198 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
2199 constant arguments at compile-time using real_copysign. Fold
2200 copysign(X,Y) as fabs(X) if Y is always non-negative.
2201 (fold_builtin_1): Correct minor whitespace/style issues. Call
2202 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
2203
f29b9db9
R
22042004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
2205
2206 * tree.c (iterative_hash_expr): Use real_hash.
2207
45b0c94c
JM
22082004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
2209
2210 PR c/14765
2211 * c-parse.in (compstmt_primary_start): Set last_expr_type to
2212 NULL_TREE.
2213
3743236e
MM
22142004-06-07 Mark Mitchell <mark@codesourcery.com>
2215
2216 PR c++/15815
2217 * doc/extend.texi: Deprecate #pragma interface and #pragma
2218 implementation.
2219
0b395e19
AO
22202004-06-07 Alexandre Oliva <aoliva@redhat.com>
2221
2222 PR middle-end/15666
2223 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
2224 builtin decl as well.
2225
bf730f15
RS
22262004-06-07 Roger Sayle <roger@eyesopen.com>
2227
2228 PR c/14649
2229 * c-typeck.c (require_constant_value, require_constant_elements):
2230 Move declarations to the top of the file.
2231 (build_function_call): If we require a constant value, fold with
2232 fold_initializer. If the result is a constant, and the function
2233 wasn't called using __builtin_foo, issue a pedantic warning.
2234 (build_unary_op): If we require a constant value, fold tree with
2235 fold_initializer.
2236 (build_binary_op): Use require_constant_value to determine whether
2237 to call fold or fold_initializer.
2238
f5a76aea
RH
22392004-06-07 Richard Henderson <rth@redhat.com>
2240
2241 * gimple-low.c (struct lower_data): Add the_return_label and
2242 one_return_stmt.
2243 (lower_function_body): Initialize and use them.
2244 (lower_return_expr): New.
2245 (lower_stmt): Call it.
2246 * gimplify.c (gimplify_return_expr): Force the argument to be either
2247 null or a result_decl.
2248 * tree-gimple.c: Update gimple grammer to match.
2249 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
2250 coalescing of result_decls.
2251
5c64c900
RH
22522004-06-07 Richard Henderson <rth@redhat.com>
2253
2254 PR rtl-opt/15193
2255 * expmed.c (extract_bit_field): Fix vector_extract return.
2256
2257 * config/i386/i386.md (negv4sf2): New pattern.
2258
d5a10cf0
MM
22592004-06-07 Mark Mitchell <mark@codesourcery.com>
2260
2261 PR c++/15337
07d5edd2 2262 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
d5a10cf0
MM
2263 message.
2264
2af5538b
PB
22652004-06-06 Paolo Bonzini <bonzini@gnu.org>
2266
2267 * config.in: Regenerate.
2268
7853504d
SB
22692004-06-06 Steven Bosscher <stevenb@suse.de>
2270
2271 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
2272 SWITCH_LABELS are always sorted.
2273
e4638a72
SB
22742004-06-06 Steven Bosscher <stevenb@suse.de>
2275
2276 * hooks.c (hook_int_void_1): New generic hook.
2277 * hooks.h (hook_int_void_1): Add prototype.
2278 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
2279 Define to hook_int_void_1.
2280 * config/c4x/c4x.md: Replace dummies for the old pipeline model
2281 with dummies for the new one.
2282
25a1a39e
RS
22832004-06-06 Roger Sayle <roger@eyesopen.com>
2284
2285 * tree.h (lvalue_or_else): Delete function prototype.
2286 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
2287
37f40c9c
SC
22882004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2289
2290 PR target/14542
2291 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
2292 a live change of a register after peephole replacement.
2293
10bc1b1b
JM
22942004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
2295
2296 PR c/13519
2297 * c-typeck.c (composite_type, common_pointer_type): New functions.
2298 (common_type): Split parts into composite_type and
2299 common_pointer_type. Ensure that arithmetic operations return
2300 unqualified types without attributes. Don't make composite type
2301 of signed enum and compatible integer be unsigned.
2302 (build_conditional_expr, build_binary_op): Use
2303 common_pointer_type.
2304 * c-decl.c (merge_decls): Use composite_type.
2305 * c-tree.h (composite_type): Declare.
2306
ff24b820
SC
23072004-06-06 Stephane Carrez <stcarrez@nerim.fr>
2308
2309 PR target/14457
2310 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
2311 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
2312 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
2313 (inhibit_libc): Must define.
2314 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
2315 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
2316 ("xorhi3"): Likewise.
2317
2ddbba80
EB
23182004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2319
2320 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
2321 always_inline pass.
2322
0eef99c1
DM
23232004-06-05 David S. Miller <davem@nuts.davemloft.net>
2324
2325 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
2326 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2327
1ee19633
BI
23282004-06-05 Bernardo Innocenti <bernie@develer.com>
2329
2330 * regclass.c (init_reg_sets): Check for missing registers in target
2331 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
2332
c6e83800
ZW
23332004-06-05 Zack Weinberg <zack@codesourcery.com>
2334
2335 * Makefile.in (MKDEPS_H): New shorthand.
2336 (c-opts.o): Update dependencies.
2337 * c-opts.c: Include mkdeps.h.
2338 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
2339 not cpp_add_dependency_target.
2340
dbeff3e5
SB
23412004-06-05 Steven Bosscher <stevenb@suse.de>
2342
2343 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
2344 * config/v850/v850.md: Convert to DFA scheduler description.
2345
3e31938b 23462004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
bda4d063
TS
2347
2348 PR fortran/15478
2349 * doc/install.texi: Document GMP as prerequisite. Document
2350 --with-gmp and --with-gmp-dir configure options.
2351 * fortran/gfortran.texi: Remove section "Compiling and testing",
c6e83800 2352 remove TOC reference to it.
bda4d063 2353
446f52f4
GS
23542004-06-05 Graham Stott <graham.stott@btinternet.com>
2355
2356 * combine.c(simplify_shift_const): Check shift amount is a
2357 CONST_INT.
2358
90aa6719
DS
23592004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
2360
446f52f4 2361 * toplev.c (init_asm_output): Add explicit 'b' to mode when
c6e83800 2362 opening asm_out_file.
446f52f4
GS
2363 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
2364 reading asm_out_file. Replace fflush after reading asm_out_file
2365 with fseek.
2366 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
c6e83800 2367 default and add to HOST_HOOKS_INITIALIZER.
446f52f4
GS
2368 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
2369 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
c6e83800 2370 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
446f52f4
GS
2371 to set mmi.offset padding.
2372 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
2373 $(srcdir)/config/i386/winnt.c.
2374 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
2375 (i[34567]86-*-uwin*): Likewise.
2376 *i[34567]86-*-interix3*): Likewise.
2377 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
2378 * config/i386/host-mingw32.c: New file.
2379 * config/i386/x-mingw32: Add rule for host-mingw32.o.
2380 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
2381 (extern_head): Likewise.
2382 (struct export_list) Likewise.
2383 (export_head): Likewise.
2384 (i386_pe_record_external_function): Use ggc_alloc.
2385 (i386_pe_record_exported_symbol): Likewise.
2386 Include "gt-winnt.h" at end.
2387 * doc/hostconfig.texi: Document
90aa6719
DS
2388 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
2389
859711c5
BI
23902004-06-04 Bernardo Innocenti <bernie@develer.com>
2391
2392 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
2393 Rename 68000 and 68k to m68k for consistency in comments. Remove
2394 trailing whitespace before EOLs and before TABs.
2395 (MAX_CODE_ALIGN): Remove unused macro.
2396 (CALL_USED_REGISTERS): Reformat and add comments.
2397
f4d8a9ae
FCE
23982004-06-04 Frank Ch. Eigler <fche@redhat.com>
2399
2400 * gcc.c (MFLIB_SPEC): Remove library references, to require users
2401 to enumerate -lmudflap* and dependencies when linking.
2402
14bbffa1
PB
24032004-06-04 Paolo Bonzini <bonzini@gnu.org>
2404
2405 PR target/15822
2406 * dojump.c (do_jump): Fix uninitialized variable tcode1.
2407
3a786c62
JQ
24082004-06-04 Jerry Quinn <jlquinn@optonline.net>
2409
2410 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
2411 * genconditions.c (write_header): Back out removal of reload.h.
2412
2e2052b1
JH
24132004-06-04 Jan Hubicka <jh@suse.cz>
2414
2415 Re-apply hopefully fixed patch:
2416 * i386.md (UNSPECV_EH_RETURN): Kill.
2417 (eh_return): Use jump_insn.
2418 (eh_return_si, eh_return_di): Change pattern to jump instruction.
2419
9cf84a3c
JL
24202004-06-04 Jeff Law <law@redhat.com>
2421
2422 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
2423
f698d217
SB
24242004-06-04 Steven Bosscher <stevenb@suse.de>
2425
2426 * except.c (for_each_eh_region): New function.
2427 * except.h (for_each_eh_region): Add a prototype for it.
2428 * tree-cfg.c (update_eh_labels): New function, callback for
2429 for_each_eh_region.
2430 (label_for_bb): Make global static, unfortunately.
2431 (cleanup_dead_labels): Also update label references for
2432 exception regions.
2433
c759d454
CD
24342004-06-03 Chris Demetriou <cgd@broadcom.com>
2435
2436 * config/mips/mips.c (struct irix_section_align_entry): Fix
2437 GTY marker.
2438
3d98fa14
GK
24392004-06-03 Geoffrey Keating <geoffk@apple.com>
2440
2441 * toplev.c (check_global_declarations): Don't ask for
2442 DECL_ASSEMBLER_NAME unless the function really is declared
2443 static and not defined.
2444
0524c91d
MA
24452004-06-03 Matt Austern <austern@apple.com>
2446
2447 PR c++/15428
2448 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
2449 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
2450 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
2451 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
c6e83800 2452 documentation to reflect the new macro name and to clarify its
0524c91d 2453 meaning.
c6e83800 2454
f698d217 24552004-06-03 Steven Bosscher <stevenb@suse.de>
ed5947c9
SB
2456
2457 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
2458
c0d594f1
AP
24592004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
2460
2461 * config/darwin.c (machopic_indirect_data_reference): Copy
2462 the SYMBOL_REF_DECL from the original RTX for the new
2463 non-lazy pointer RTX.
2464
ed5947c9 24652004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
a757585a
MA
2466
2467 * tree.h: Remove include of version.h
2468 * c-cppbuiltin.c: Include version.h
2469 * diagnostic.c: Include version.h
2470 * dwarf2out.c: Include version.h
2471 * toplev.c: Include version.h
2472 * vmsdbgout.c: Include version.h
2473 * Makefile.in: Remove dependency on version.h from TREE_H, and
2474 add dependencies to required .o targets
2475
59587b18
JQ
24762004-06-03 Jerry Quinn <jlquinn@optonline.net>
2477
2478 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
2479 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
2480 (TARGET_H): Add insn-modes.h.
2481 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
2482 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
2483 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
2484 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
2485 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
2486 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
2487 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
2488 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
2489 CFGLAYOUT_H.
2490 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
2491 Replace ra.h with RA_H.
2492 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
2493 insn-recog.o): Replace resource.h with RESOURCE_H.
2494 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
2495 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
2496 with SCHED_INT_H.
2497 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
2498 ra-rewrite.o): Replace df.h with DF_H.
2499 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
2500 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
2501 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
2502 (insn-conditions.o): Remove unused reload.h.
2503 * cfglayout.h: Add include guard. Include basic-block.h.
2504 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
2505 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
2506 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
2507 basic-block.h.
2508 * genconditions.c: Remove reload.h.
2509 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
2510 hard-reg-set.h, insn-modes.h.
2511 * resource.h: Add include guard. Include hard-reg-set.h.
2512 * sched-int.h: Add include guard. Include insn-attr.h,
2513 basic-block.h, rtl.h.
2514 * target.h: Add include guard. Include insn-modes.h.
2515 * tree-ssa-live.h: Include partition.h.
2516
95eec0d6
DB
25172004-06-03 Daniel Berlin <dberlin@dberlin.org>
2518 Kenneth Zadeck <zadeck@naturalbridge.com>
2519
2520 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
2521 (add_var_to_ssa_edges_worklist): Add value argument.
2522 Update callers.
2523 Use new worklist.
2524 (process_ssa_edge_worklist): New function.
c6e83800 2525 (tree_ssa_ccp): Move worklist processing core to
95eec0d6
DB
2526 process_ssa_edge_worklist, and just call that for the two worklists.
2527
25282004-06-03 Steven Bosscher <stevenb@suse.de>
6ce2bcb7
SB
2529
2530 * basic-block.c (tail_recursion_label_list): Don't declare.
2531 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
2532 accordingly.
2533 * cfgbuild.c (find_label_refs): Remove.
2534 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
2535 * cfgcleanup.c (tail_recursion_label_p): Remove.
2536 (merge_blocks_move): Do not check for tail recursion.
2537 (try_optimize_cfg): Likewise.
2538 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
2539 * cfgrtl.c (tail_recursion_label_list): Remove.
2540 * except.c (remove_unreachable_regions): Don't handle
2541 CALL_PLACEHOLDER insns.
2542 (convert_from_eh_region_ranges_1, can_throw_internal,
2543 can_throw_external): Likewise.
2544 * function.c (free_after_compilation): Don't clear
2545 x_tail_recursion_label.
2546 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
2547 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
2548 (reorder_blocks_1): Likewise.
2549 * function.h (struct function): Remove x_tail_recursion_label
2550 member. Don't define tail_recursion_label.
2551 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
2552 * print-rtl.c (print_rtx): Likewise.
2553 * rtl.def (CALL_PLACEHOLDER): Remove.
2554 * rtl.h (sibcall_use_t): Remove enum.
2555 (optimize_sibling_and_tail_recursive_calls,
2556 replace_call_placeholder): Remove function prototypes.
2557 * stmt.c (tail_recursion_args): Remove.
2558 (optimize_tail_recursion): Remove.
2559 (expand_return): Don't check for possible tail recursion.
2560 * tree.h (optimize_tail_recursion): Remove prototype.
2561
ce068299
JH
25622004-06-02 Jan Hubicka <jh@suse.cz>
2563
2564 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
2565 return_stmt.
2566
b25a8933
JM
25672004-06-02 Jason Merrill <jason@redhat.com>
2568
2569 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
2570 Do include c-parse.in.
2571
3aeb3655
EC
25722004-06-02 Eric Christopher <echristo@redhat.com>
2573
2574 * c-typeck.c (common_type): Don't lose type qualifiers
2575 when creating new variants.
2576
3facc4b6
AP
25772004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
2578
2579 PR tree-optimization/14042
2580 PR tree-optimization/14729
2581 PR tree-optimization/14736
03a4c969
AP
2582 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2583 Check the type which the pointer points to
3facc4b6
AP
2584 instead of the pointer types.
2585
91fa0e3d
KH
25862004-06-02 Kazu Hirata <kazu@cs.umass.edu>
2587
2588 PR tree-optimization/15738.
2589 * builtins.c (fold_builtin_strchr): Transform
2590 strrchr (s, '\0') to strchr (s, '\0').
2591
dff008b4
SB
25922004-06-02 Steven Bosscher <stevenb@suse.de>
2593
2594 * i386.c (ix86_adjust_cost): Don't increase the cost for
2595 load+operation for PROCESSOR_PENTIUMPRO, it is already
2596 modelled in the DFA description
2597
78528714
JQ
25982004-06-01 Jerry Quinn <jlquinn@optonline.net>
2599
2600 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
2601 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
2602 (ALIAS_H, EMIT_RTL_H): New.
2603 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
2604 (cfgcleanup.o): Add EMIT_RTL_H.
2605 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
2606 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
2607 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
2608 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
2609 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
2610 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
2611 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
2612 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
2613 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
2614 set_mem_size): Move to emit-rtl.h.
2615 * emit-rtl.h: New.
2616 * alias.h: New.
2617
95c73b23
EB
26182004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
2619
2620 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
2621 Call fixup_memory_subreg only if the MEM is equal to 'var'.
2622 Adjust recursive calls to self.
2623 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
2624
7a3ea201
RH
26252004-06-01 Richard Henderson <rth@redhat.com>
2626 Andrew Pinski <pinskia@physics.uc.edu>
2627
2628 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
2629 (primary): Handle offsetof. Add error productions for faux functions.
2630 Move component_ref objc checking to build_component_ref.
2631 (reswords): Add offsetof.
2632 (rid_to_yy): Add offsetof.
2633 * c-tree.h (build_offsetof): Declare.
2634 * c-common.h (objc_is_public): Declare.
2635 * c-typeck.c (build_component_ref): Check objc_is_public.
2636 (build_offsetof): New.
2637 * stub-objc.c (objc_is_public): New.
2638 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
2639 from is_public.
2640 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
2641 * doc/extend.texi (Offsetof): Move from C++ section to C section
2642 and rewrite for __builtin_offsetof.
2643
5050d266 26442004-06-01 Peter Barada <peter@the-baradas.com>
dff008b4 2645 Peter Jakubek <peter@laseranimation.com>
5050d266
PB
2646
2647 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
2648 a scratch to perform an add to memory.
2649
225d221a
BI
26502004-06-01 Bernardo Innocenti <bernie@develer.com>
2651
2652 PR target/14018
2653 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2654 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2655 m68k_align_funcs): Remove.
2656 (override_options): Remove code to handle -malign-* options.
2657 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2658 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2659 (m68k_align_loops_string, m68k_align_jumps_string,
2660 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2661 m68k_align_funcs): Remove definitions.
2662
1460af95
PE
26632004-06-01 Paul Eggert <eggert@cs.ucla.edu>
2664
2665 PR target/15626
2666 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2667 by the Sun linker in conjunction with the Sun assembler.
2668 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2669
225d221a 26702004-06-01 Jeff Law <law@redhat.com>
0b068ee9 2671
dff008b4
SB
2672 * stmt.c (expand_decl): Be more selective about calling
2673 mark_reg_pointer.
0b068ee9 2674
61c627ed
NP
26752004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
2676
9ade2479 2677 PR objc/7993
61c627ed
NP
2678 * objc-act.c (is_private): Do not emit the 'instance variable %s
2679 is declared private' error.
2680 (is_public): Emit the error after calling is_private.
2681 (lookup_objc_ivar): If the instance variable is private, return 0
2682 - the instance variable is invisible here.
2683
d3144423
EB
26842004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2685
2686 * doc/invoke.texi (-static-libgcc): Explicitly mention
2687 non-GNU linkers.
2688
5847e53e
BI
26892004-06-01 Bernardo Innocenti <bernie@develer.com>
2690
2691 PR target/12968
2692 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2693
ec3e6835
JM
26942004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
2695
2696 PR c/15749
2697 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2698 misuses of structures with flexible array members if
2699 in_system_header.
2700
a4a90b84
EB
27012004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2702
2703 PR target/15693
2704 * config/sparc/sparc.c (compare_operand): New predicate.
2705 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2706 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
2707 operand is a ZERO_EXTRACT and the second operand is not zero,
2708 force the former to a register.
2709 (cmpdi expander): Likewise.
2710
133f7a77
GK
27112004-05-31 Geoffrey Keating <geoffk@apple.com>
2712
2713 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2714 looks at.
2715 * alias.c (alias_invariant_size): Make alias_invariant_size
2716 static, fix GTY marker.
2717
09d98c72
KH
27182004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2719
2720 PR tree-optimization/15743.
2721 * builtins.c (fold_builtin_1): Fold index() and rindex().
2722
1f7a8dcc
RS
27232004-05-31 Roger Sayle <roger@eyesopen.com>
2724
2725 PR middle-end/15069
2726 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2727 into "X < 0" (where C is the signbit) if X's type is a full mode.
2728
1027314a
JDA
27292004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2730
2731 * pa.md: Disable the peephole2 patterns that generate indexed
2732 floating-point stores when indexing is disabled.
2733
41fd3bac
GDR
27342004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2735
2736 * c-pretty-print.c (pp_c_left_bracket): Make a function.
2737 (pp_c_right_bracket): Likewise.
2738 (pp_c_star): Likewise.
2739 (pp_c_ampersand): Define.
2740 * c-pretty-print.h (pp_c_left_bracket): Declare.
2741 (pp_c_right_bracket): Likewise.
2742 (pp_c_star): Likewise.
2743 (pp_c_ampersand): Likewise.
2744
d3157fb6
EB
27452004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2746
2747 * config/sol2.h (__enable_execute_stack): ANSIfy function
2748 definition.
2749
421563d5
DS
27502004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
2751
2752 * c-incpath.c (add_path): Canonicalize paths to use '/' if
2753 HAVE_DOS_BASED_FILESYSTEM.
2754
1c052514
SB
27552004-05-31 Steven Bosscher <stevenb@suse.de>
2756
2757 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2758 Only look at case labels if the immediate dominator is also
2759 the only predecessor. Don't look for more case labels if the
2760 first seen is a case range.
2761
e784e649
KH
27622004-05-31 Kazu Hirata <kazu@cs.umass.edu>
2763
2764 * builtins.c: Add a prototype for fold_builtin_strchr().
2765
1999435c
PB
27662004-05-31 Paolo Bonzini <bonzini@gnu.org>
2767
2768 Revert this patch:
2769 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
2770
2771 * combine.c (gen_binary): Remove.
2772 (known_cond, simplify_shift_const
2773 find_split_point, combine_simplify_rtx,
2774 simplify_if_then_else, simplify_set,
2775 simplify_logical, expand_field_assignment,
2776 extract_left_shift, force_to_mode,
2777 if_then_else_cond, apply_distributive_law,
2778 simplify_and_const_int, simplify_shift_const,
2779 gen_lowpart_for_combine, simplify_comparison,
2780 reversed_comparison): Replace with
2781 simplify_gen_binary, simplify_gen_relational or
2782 distribute_and_simplify_rtx.
2783 (distribute_and_simplify_rtx): New function.
2784
97509a89
JDA
27852004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2786
2787 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2788 when generating PIC code.
2789
3c79fa86
AP
27902004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2791
2792 * c-decl.c (c_expand_body_1): Remove and fold back into ...
2793 (c_expand_body): here.
2794 (c_expand_decl): Move to ...
2795 * c-common.c (c_expand_decl): Here and remove check for nested
2796 functions.
2797 * c-common.h (c_expand_decl): Add prototype.
2798 * c-tree.h (c_expand_decl): Remove.
2799
1b0f3e79
RS
28002004-05-30 Roger Sayle <roger@eyesopen.com>
2801
2802 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2803 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2804 fold_mathfn_compare, fold_inf_compare, fold,
2805 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2806 Use constant_boolean_node where appropriate. Don't bother using
2807 fold_convert on the second argument to omit_one_operand.
2808
29d64660
RS
28092004-05-30 Roger Sayle <roger@eyesopen.com>
2810
2811 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2812 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2813 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
2814 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2815 Add missing (but documented) tree nodes to the index.
2816
b3dd9f35
SB
28172004-05-30 Steven Bosscher <stevenb@suse.de>
2818
2819 PR tree-optimization/14819
2820 * builtins.c (fold_builtin_strchr): New.
2821 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2822 with fold_builtin_strchr().
2823
9cf737f8
KH
28242004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2825
2826 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2827 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2828 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2829 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2830 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2831 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2832 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2833 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2834 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2835 formatting.
2836
0f1f6967
SB
28372004-05-30 Steven Bosscher <stevenb@suse.de>
2838
2839 * gimplify.c (sort_case_labels): New. Split out from...
2840 (gimplify_switch_expr): ...here. Use it.
2841 * tree-eh.c (lower_try_finally_switch): Sort the labels of
2842 the SWITCH_EXPR created here before leaving the function.
2843 * tree.c (sort_case_labels): Add prototype.
2844
d22b7e14
AP
28452004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
2846
2847 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2848 of BOOLEAN_TYPE.
2849
1ea7e6ad
KH
28502004-05-30 Kazu Hirata <kazu@cs.umass.edu>
2851
2852 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2853 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2854 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2855 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2856 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2857 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2858 comment typos. Follow spelling conventions.
2859
b453c95f
GK
28602004-05-29 Geoffrey Keating <geoffk@apple.com>
2861
2862 * gengtype-yacc.y: Add NESTED_PTR token.
2863 (option): Record `nested_ptr' option.
2864 * gengtype-lex.l: Handle `nested_ptr' keyword.
2865 * gengtype.c (walk_type): Process `nested_ptr' option.
2866 * gengtype.h (struct nested_ptr_data): New.
2867 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2868 * stringpool.c (struct string_pool_data): Make 'entries' point to
2869 ht_identifier instead of tree.
2870 (gt_pch_save_stringpool): Don't adjust pointers.
2871 (gt_pch_restore_stringpool): Call ht_load.
2872
be00f578
JM
28732004-05-29 Jason Merrill <jason@redhat.com>
2874
2875 * gimplify.c (gimplify_expr): Don't build a statement list
2876 if no gimplification was necessary.
2877
ca09cd34
JM
28782004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2879
2880 * pretty-print.c (pp_base_format_text): Support %< instead of %`
2881 and %> as well as %'.
2882 * c-format.c: Use %< and %>.
2883 (gcc_diag_char_table, gcc_cdiag_char_table,
2884 gcc_cxxdiag_char_table): Update.
2885
5305f6d7
JM
28862004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
2887
2888 * c-typeck.c (common_type): Correct comment.
2889
d1fe6168
PB
28902004-05-29 Peter Barada <peter@the-baradas.com>
2891
28bad6d1
PB
2892 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2893 * config/m68k/m68k.c (const_method): Likewise.
2894 * config/m68k/m68k.c (const_int_cost): Likewise.
2895 * config/m68k/m68k.c (const_int_cost): Likewise.
2896 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2897
28982004-05-29 Peter Barada <peter@the-baradas.com>
2899
2900 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
d1fe6168
PB
2901 addressing.
2902 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2903 movsi,movhi,movqi insn patterns.
2904
94632047 29052004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
f935f97b 2906
27e1a8d2
AP
2907 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2908
f935f97b
AP
2909 PR target/15720
2910 * config/darwin.c (machopic_indirect_call_target): Copy
2911 the SYMBOL_REF_DECL from the original RTX for the new
2912 stub RTX.
2913
5182fafe
DD
29142004-05-28 DJ Delorie <dj@redhat.com>
2915
2916 * stor-layout.c (place_field): Revert erroneous commit.
2917
bfefd4d5
ZL
29182004-05-28 Ziemowit Laski <zlaski@apple.com>
2919
2920 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2921 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2922 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2923 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2924 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2925 vec_ste): Remove type checks for integral parameters and literals
2926 from '..._args_eq' macros.
2927
e851b373
AH
29282004-05-28 Aldy Hernandez <aldyh@redhat.com>
2929
2930 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2931
0d0bc036
AH
29322004-05-28 Aldy Hernandez <aldyh@redhat.com>
2933
2934 * testsuite/g++.dg/charset/function.cc: New.
2935
2936 * testsuite/gcc.dg/charset/function.c: New.
2937
2938 * c-decl.c (c_make_fname_decl): Free return value from
2939 fname_as_string.
2940
2941 * cp/decl.c (cp_make_fname_decl): Free return value from
2942 fname_as_string.
2943
2944 * c-common.c (fname_as_string): Translate if necessary.
2945
4bb4ae96
GK
29462004-05-28 Geoffrey Keating <geoffk@apple.com>
2947
2948 * stringpool.c: Add comments to PCH saving/restoring routines.
2949
09b01df8
AP
29502004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
2951
2fec96c1
AP
2952 * c-common.c (c_estimate_num_insns_1): Kill.
2953 (c_estimate_num_insns): Kill.
2954 * c-common.h (c_estimate_num_insns): Kill.
2955
2956 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2957 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2958 Remove comment about not checking for
2959 _POSIX_PRIORITY_SCHEDULING.
2960 * gthr-posix.c: Likewise.
09b01df8 2961
d1a7edaf
PB
29622004-05-28 Paolo Bonzini <bonzini@gnu.org>
2963 Roger Sayle <roger@eyesopen.com>
2964
2965 PR rtl-optimization/15649
2966 Add LTGT_EXPR and improve pretty-printing of unordered
2967 comparisons.
2968 * c-common.c (c_common_truthvalue_conversion):
2969 Handle LTGT_EXPR.
2970 * c-typeck.c (build_binary_op): Likewise.
2971 * dojump.c (do_jump): Likewise.
2972 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2973 * predict.c (tree_predict_by_opcode): Likewise.
2974 * real.c (real_compare): Likewise.
2975 * tree-cfg.c (verify_expr): Likewise.
2976 * tree-inline.c (estimate_num_insns_1): Likewise.
2977 * tree-pretty-print.c (dump_generic_node): Likewise.
2978 Handle ORDERED_EXPR, UNORDERED_EXPR.
2979 (op_symbol): Print unordered comparisons differently
2980 than ordered ones.
2981 * tree.def (LTGT_EXPR): New '<' tree code.
2982 * doc/c-tree.texi (Expressions): Document floating-point
2983 comparison nodes.
2984
2985 Fold comparisons between floating point values.
2986 * fold-const.c (enum comparison_code): New, from
2987 #define'd constants. Define compcodes for unordered
2988 comparisons and for invalid transformations.
2989 (invert_tree_comparison): Add "honor_nans" parameter.
2990 (fold_truthop): Revamp to work on floating-point types too.
2991 (comparison_to_compcode): Support unordered comparisons.
2992 Use new enum comparison_code.
2993 (compcode_to_comparison): Likewise.
2994 (combine_compcodes): New function.
2995 (invert_truthvalue): Let invert_tree_comparison decide
2996 whether it is valid to fold the comparison. Fold ORDERED
2997 and UNORDERED even if flag_unsafe_math_optimizations is off,
2998 and the remaining even if flag_unsafe_math_optimizations
2999 is off but we are under -fno-trapping-math.
3000 (fold_relational_const): Integer modes do not honor NaNs.
61c627ed 3001
2966b00e
PB
30022004-05-28 Paul Brook <paul@codesourcery.com>
3003
3004 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
3005
3c7ad43e
PB
30062004-05-28 Paul Brook <paul@codesourcery.com>
3007
3008 * config/arm/arm.c (thumb_force_lr_save): New function.
3009 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
3010 thumb_output_function_prologue): Use it.
3011 (thumb_expand_prologue): Set lr_save_eliminated.
3012
a97a3e73
RS
30132004-05-28 Richard Sandiford <rsandifo@redhat.com>
3014
3015 * config/mips/mips.md (extendsidi2): Tie the source and destination
3016 of the register alternative. Split it into nothing.
3017
6c2511d3
RS
30182004-05-28 Richard Sandiford <rsandifo@redhat.com>
3019
3020 * rtl.h (skip_consecutive_labels): Declare.
3021 * emit-rtl.c (skip_consecutive_labels): New function.
3022 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
3023 * jump.c (follow_jumps): Say what null return values mean.
3024
4fbf3498
KK
30252004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
3026
3027 PR target/13250
3028 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
3029
cc212178
KK
30302004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
3031
3032 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
3033 libgcc-std.ver.
3034 * config/sh/libgcc-std.ver: New file.
3035
aed30657
BM
30362004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3037
3038 * except.c: Revert change of 2004-05-26.
3039 * config/i386/i386.md: Revert change of 2004-05-27.
3040
13f05fd0
BM
30412004-05-27 Bryce McKinlay <mckinlay@redhat.com>
3042
3043 * configure.ac: Remove --enable-tree-browser option.
3044 Define TREEBROWSER when ac_tree_checking is defined.
3045 * configure: Rebuilt.
3046
7c50e202
OH
30472004-05-27 Olivier Hainque <hainque@act-europe.fr>
3048
3049 * expr.c (store_constructor): Restore sanity check on
3050 the size of the type before clearing.
3051
baf8706c
JH
30522004-05-27 Jan Hubicka <jh@suse.cz>
3053
3054 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
3055
1999435c 30562004-05-27 Paolo Bonzini <bonzini@gnu.org>
dce1438a
PB
3057
3058 * combine.c (gen_binary): Remove.
3059 (known_cond, simplify_shift_const
3060 find_split_point, combine_simplify_rtx,
3061 simplify_if_then_else, simplify_set,
3062 simplify_logical, expand_field_assignment,
3063 extract_left_shift, force_to_mode,
3064 if_then_else_cond, apply_distributive_law,
3065 simplify_and_const_int, simplify_shift_const,
3066 gen_lowpart_for_combine, simplify_comparison,
3067 reversed_comparison): Replace with
3068 simplify_gen_binary, simplify_gen_relational or
3069 distribute_and_simplify_rtx.
3070 (distribute_and_simplify_rtx): New function.
3071 * simplify-rtx.c (simplify_binary_operation):
3072 Use nonzero_bits to simplify ANDs where we are
3073 turning off bits already known to be off in OP0.
3074
42f806e5
AM
30752004-05-27 Alan Modra <amodra@bigpond.net.au>
3076
3077 PR target/14478
3078 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
3079
e314a036
JZ
30802004-05-27 Josef Zlomek <zlomekj@suse.cz>
3081
3082 PR middle-end/14084
3083 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
3084 to size of decl.
3085
61bea3b0
AH
30862004-05-26 Aldy Hernandez <aldyh@redhat.com>
3087
3088 PR/14924
3089 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
3090
cdc9d803
RS
30912004-05-26 Roger Sayle <roger@eyesopen.com>
3092
3093 * tree.h: Fix comment typo.
3094
f667741c
SB
30952004-05-27 Steven Bosscher <stevenb@suse.de>
3096
3097 * gimplify.c (compare_case_labels): New function.
3098 (gimplify_switch_expr): Sort case labels, and make sure the
3099 last label in the label vector is the default case.
3100 * tree-cfg.c (group_case_labels): New function.
3101 (build_tree_cfg): Cleanup redundant labels and group case labels
3102 before creating edges.
3103 (cleanup_dead_labels): Handle GOTO_EXPRs.
3104 (find_case_label_for_value): Use a binary search to find the
3105 case label for the given value.
3106 * tree-gimple.c: Mention that labels are sorted, and that the
3107 last label must be the default.
3108
e4efa971
JH
31092004-05-27 Jan Hubicka <jh@suse.cz>
3110
3111 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
3112
dabbc722
JH
31132004-05-27 Jan Hubicka <jh@suse.cz>
3114
3115 * i386.md (UNSPECV_EH_RETURN): Kill.
3116 (eh_return): Use jump_insn.
3117 (eh_return_si, eh_return_di): Change pattern to jump instruction.
3118
43acb4c4
JH
31192004-05-26 Jan Hubicka <jh@suse.cz>
3120
3121 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
3122 not loop optimizing.
43acb4c4 3123
f00d196d
JH
31242004-05-26 Jan Hubicka <jh@suse.cz>
3125
3126 * except.c (can_throw_internal): Notice RESX instructions.
3127
42048866
EB
31282004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
3129
3130 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
3131 of the two sizes to assemble_integer.
3132
b31ad637
PB
31332004-05-25 Paul Brook <paul@codesourcery.com>
3134
3135 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
3136 pointless #ifdef.
3137
5da9128a
PB
31382004-04-25 Paolo Bonzini <bonzini@gnu.org>
3139
3140 * Makefile.in (top_builddir): Define to .
3141
08d105fa
AO
31422004-05-25 Alexandre Oliva <aoliva@redhat.com>
3143
3144 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
3145 top-level detects, except when in-tree ld is being cross-built.
3146 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
3147 then AS only if target is host.
3148 * configure: Rebuilt.
3149
9abe5d07
VM
31502004-05-25 Vladimir Makarov <vmakarov@redhat.com>
3151
3152 * global.c (global_alloc): Call make_accurate_live_analysis.
3153 (record_one_conflict): Remove dead code.
3154 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
3155 (bb_info): New structure.
3156 (BB_INFO, BB_INFO_BY_INDEX): New macros.
3157 (allocate_bb_info, free_bb_info, mark_reg_change,
3158 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
3159 modify_bb_reg_pav, calculate_reg_pav,
3160 make_accurate_live_analysis): New functions.
61c627ed 3161
f411a73a
DP
31622004-05-25 Devang Patel <dpatel@apple.com>
3163
3164 * alias.c (init_alias_analysis): Use ggc_calloc instead of
3165 xrealloc.
3166 (end_alias_analysis): Use ggc_free instead fo free.
61c627ed 3167
104a4010
AP
31682004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
3169
3170 PR target/15546
3171 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
3172 as needed to be outputted.
3173
d601c996
JH
31742004-05-25 Jan Hubicka <jh@suse.cz>
3175
3176 * builtins.def (__builtin_expect): Mark the function as const&nothrow.
3177
e5626198
AZ
31782004-05-25 Ayal Zaks <zaks@il.ibm.com>
3179 Mostafa Hagog <mustafa@il.ibm.com>
3180
3181 * Makefile.in (modulo-sched.o, ddg.o): New.
3182 * ddg.h, ddg.c, modulo-sched.c: New files.
3183 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
3184 internals to "dupicate_insn".
3185 (duplicate_insn): New function.
3186 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
3187 declarations.
3188 * common.opt (fmodulo-sched): New flag.
3189 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
3190 Remove static and forward declaration.
3191 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
3192 functions.
3193 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
3194 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
3195 declarations.
3196 * flags.h (flag_modulo_sched): New flag.
3197 * opts.c (common_handle_option): Handle modulo-sched flag.
3198 * params.def (max-sms-loop-number, sms-max-ii-factor,
3199 sms-dfa-history, sms-loop-average-count-threshold): New
3200 parameters.
3201 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
3202 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
3203 parameters.
3204 * passes.c ("sms", "sms-vcg"): New dumps.
3205 (rest_of_handle_sched): Call sms_schedule.
3206 * rtl.h (sms_schedule): New declaration.
3207 * timevar.def (TV_SMS): New.
3208 * toplev.c (flag_modulo_sched): Initialize.
3209 (f_options): Handle -fmodulo-sched option.
3210 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
3211 * docs/passes.texi: Document new SMS pass.
3212
2f93eea8
PB
32132004-05-25 Paolo Bonzini <bonzini@gnu.org>
3214
3215 * Makefile.in (OBJS): Add rtlhooks.o.
3216 (rtlanal.o): Depend on function.h.
3217 (cse.o): Depend on rtlhooks-def.h.
3218 (combine.o): Depend on rtlhooks-def.h.
3219 (rtlhooks.o): New rule.
3220 * combine.c: Include rtlhooks-def.h.
3221 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3222 num_sign_bit_copies, cached_num_sign_bit_copies,
3223 num_sign_bit_copies1): Move most of the code to rtlanal.c.
3224 (reg_nonzero_bits_for_combine,
3225 reg_num_sign_bit_copies_for_combine): New functions holding
3226 the remnants of the above.
3227 (combine_rtl_hooks): New.
3228 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
3229 * cse.c: Include rtlhooks-def.h.
3230 (cse_rtl_hooks): New.
3231 (cse_main): Set rtl_hooks instead of gen_lowpart.
3232 * emit-rtl.c (gen_lowpart): Remove.
3233 (gen_lowpart_general): Move to rtlhooks.c.
3234 * rtl.h (nonzero_bits, num_sign_bit_copies,
3235 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
3236 (gen_lowpart_general): Remove.
3237 (gen_lowpart): Temporarily redefine as a macro.
3238 * rtlanal.c: Include function.h.
3239 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
3240 num_sign_bit_copies, cached_num_sign_bit_copies,
3241 num_sign_bit_copies1): New, from combine.c.
61c627ed 3242 * rtlhooks.c: New file.
789550d1 3243 * rtlhooks-def.h: New file.
2f93eea8 3244
11338cda
SS
32452004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
3246
3247 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
3248 to support 32-bit -mint8 mode.
3249
3250 * doc/invoke.texi (-mint8): Added documentation for the -mint8
61c627ed 3251 option in the AVR architecture.
11338cda 3252
cfc984b5
MS
32532004-05-24 Mike Stump <mrs@apple.com>
3254
3255 * doc/install.texi: Document that dejagnu 1.4.4 is required.
3256
a668adb2
JM
32572004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
3258
3259 * intl.h (open_quote, close_quote): New.
3260 * intl.c (open_quote, close_quote): New.
3261 (gcc_init_libintl): Set them.
3262 * pretty-print.c: Include "intl.h".
3263 (pp_base_format_text): Support 'q' format flag and %` and %'
3264 formats. Use ' instead of ` in comments.
3265 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
3266 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
3267 foramt_types_orig): Describe these new formats.
3268 (decode_format_attr, check_function_format,
3269 check_format_info_main): Use these new formats.
3270 (status_warning): Use ATTRIBUTE_GCC_DIAG.
3271 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
3272 check these formats to 3.5.
3273
6046b0ed
RO
32742004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3275
3276 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
3277 (BACKEND): Reflect this.
3278 (LIBDEPS): Move CPPLIB before LIBIBERTY.
3279 (LIBS): Likewise.
3280
aef0afc4
UW
32812004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
3282
3283 PR tree-optimization/14197
3284 * builtins.c: Include "tree-gimple.h"
61c627ed 3285 (readonly_data_expr): Use get_base_address. Make sure to call
aef0afc4
UW
3286 decl_readonly_section only on trees it can handle.
3287 * tree-gimple.c (get_base_address): Accept STRING_CST and
3288 CONSTRUCTOR expressions.
3289 * Makefile.in: Update dependencies.
3290
4f4e53dd
PB
32912004-05-23 Paolo Bonzini <bonzini@gnu.org>
3292
3293 Move libcpp to the toplevel.
3294 * Makefile.in: Remove references to libcpp files,
3295 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
3296 and change hashtable.h to that.
3297 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
3298 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
3299 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
3300 * configure: Regenerate.
3301 * config.in: Regenerate.
3302 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
3303 * cppcharset.c: Removed.
3304 * cpperror.c: Removed.
3305 * cppexp.c: Removed.
3306 * cppfiles.c: Removed.
3307 * cpphash.c: Removed.
3308 * cpphash.h: Removed.
3309 * cppinit.c: Removed.
3310 * cpplex.c: Removed.
3311 * cpplib.c: Removed.
3312 * cpplib.h: Removed.
3313 * cppmacro.c: Removed.
3314 * cpppch.c: Removed.
3315 * cpptrad.c: Removed.
3316 * cppucnid.h: Removed.
3317 * cppucnid.pl: Removed.
3318 * cppucnid.tab: Removed.
3319 * hashtable.c: Removed.
3320 * hashtable.h: Removed.
3321 * line-map.c: Removed.
3322 * line-map.h: Removed.
3323 * mkdeps.c: Removed.
3324 * mkdeps.h: Removed.
3325 * stringpool.h: Include symtab.h instead of hashtable.h.
3326 * tree.h: Include symtab.h instead of hashtable.h.
3327 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
3328
76391e5a
PB
33292004-05-23 Paolo Bonzini <bonzini@gnu.org>
3330
3331 * gcc.c (struct prefix_list): Add forward declaration.
3332 (do_spec_path): New function, extracted from...
3333 (do_spec_1) <'D'>: ... here. Drop support for
3334 SPACE_AFTER_L_OPTION.
3335 (do_spec_1) <'I'>: Use do_spec_path.
3336 (process_command): Do not store the 'include' suffix
3337 in include_prefixes.
3338 * system.h: Poison SPACE_AFTER_L_OPTION.
3339
8d4a2ff6
RS
33402002-05-23 Roger Sayle <roger@eyesopen.com>
3341
3342 * fold-const.c (non_lvalue): Explicitly list the tree codes that
3343 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
3344
6972898c
JM
33452004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
3346
3347 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
3348 Update based on printed manual. Enable setting of offsets for
3349 FSFPRINT and move it to gcc-common.texi.
3350 * doc/gcc.texi: Update FSF printing details.
3351 * doc/gccint.texi: Remove FSF printing details.
3352
68ca1923
AP
33532004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
3354
3355 * config/rs6000/t-rs6000: Remove the disabling -Werror.
3356
d6dc556b
RS
33572004-05-22 Roger Sayle <roger@eyesopen.com>
3358
3359 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3360 expand_builtin_strrchr, expand_builtin_strpbrk,
3361 expand_builtin_mempcpy, expand_builtin_memcmp,
3362 expand_builtin_strcmp, expand_builtin_strncmp,
3363 expand_builtin_strcat, std_expand_builtin_va_start,
3364 std_expand_builtin_va_arg, expand_builtin_va_copy,
3365 expand_builtin_signbit, fold_builtin_cabs,
3366 fold_builtin_logarithm, fold_builtin_mempcpy,
3367 fold_builtin_signbit, fold_builtin_isascii,
3368 fold_builtin_toascii, fold_builtin_isdigit,
3369 fold_builtin_1, build_function_call_expr,
3370 simplify_builtin_strchr, simplify_builtin_strrchr,
3371 simplify_builtin_strpbrk, simplify_builtin_strncpy,
3372 simplify_builtin_memcmp, simplify_builtin_strcmp,
3373 simplify_builtin_strncmp, simplify_builtin_strncat,
3374 simplify_builtin_strspn, simplify_builtin_strcspn,
3375 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
3376 to build with calls to build2, build3 or omit_one_operand.
3377
0a0de3bf
RS
33782004-05-22 Richard Sandiford <rsandifo@redhat.com>
3379
8e657c46 3380 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
0a0de3bf
RS
3381 section when generating EABI code.
3382
79bba51c
AP
33832004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3384
3385 PR 15546
3386 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
3387 Call mark_decl_referenced on the SYMBOL_REF_DECL.
3388
6f312d18
ZW
33892004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
3390
3391 * c-common.c (c_common_truthvalue_conversion): Handle
3392 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
3393 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
3394 i.e. set the type to truthvalue_type_node and return.
3395
33962004-05-22 Zack Weinberg <zack@codesourcery.com>
3397
3398 * tree.h (struct tree_decl): Add possibly_inlined bit.
3399 (DECL_POSSIBLY_INLINED): New accessor macro.
3400 * cgraph.h: Remove declaration of cgraph_inline_hash.
3401 * cgraph.c: Remove definition of cgraph_inline_hash.
3402 (hash_node): Revert to hashing DECL_UID.
3403 (eq_node): Take two pointers to cgraph_node structures.
3404 Compare DECL_UIDs.
3405 (cgraph_remove_node): Pass the node directly to htab_find_slot.
3406 (cgraph_varpool_hash_node): Rename hash_varpool_node;
3407 hash on DECL_UID.
3408 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
3409 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
3410 (cgraph_node): Allocate a temporary node on the stack, fill in
3411 its DECL field, and pass that to htab_find_slot.
3412 (cgraph_varpool_node): Likewise.
3413 (cgraph_function_possibly_inlined_p): If global info is ready,
3414 return the DECL_POSSIBLY_INLINED bit.
3415 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
3416 instead of mucking with cgraph_inline_hash.
3417
2dec00bf
JM
34182004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
3419
3420 * doc/contrib.texi: Add g77 contributors.
3421
9fd47435
RS
34222004-05-22 Richard Sandiford <rsandifo@redhat.com>
3423
3424 * calls.c (initialize_argument_information): Forbid sibcalls if a
3425 callee-copied argument is stored in the current function's frame.
3426
0bc0f41d
EC
34272004-05-22 Eric Christopher <echristo@redhat.com>
3428
3429 * fix-header.c (read_scan_file): Update for add_path change.
3430
b02398bd
BE
34312004-05-22 Ben Elliston <bje@au.ibm.com>
3432
3433 * c.opt (Wmissing-include-dirs): New.
3434 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
3435 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
3436 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
3437 * c-incpath.h (add_path): Add fourth (bool) argument.
3438 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
3439 (add_standard_paths): Likewise.
3440 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
3441 is used and the directory was user-supplied via -I.
3442 (add_path): Set p->user_supplied_p. Remove duplicated code by
3443 using add_cpp_dir_path ().
3444 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
3445 (struct cpp_dir): Add user_supplied_p.
3446 * doc/invoke.texi (Warning Options): Document new option.
3447
12fea1f9
UW
34482004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
3449
3450 * fold-const.c (fold_read_from_constant_string): Convert result to
3451 requested type.
3452
f0638e1d
RH
34532004-05-21 Richard Henderson <rth@redhat.com>
3454
3455 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
3456 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
3457 Don't mark VA_ARG_EXPRs volatile here.
3458 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
3459
11ed191c
RH
34602004-05-21 Richard Henderson <rth@redhat.com>
3461
3462 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
3463 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
3464
b953ebd6
RS
34652004-05-21 Roger Sayle <roger@eyesopen.com>
3466
3467 * fold-const.c (fold, fold_relational_hi_lo,
3468 nondestructive_fold_binary_to_constant,
3469 fold_read_from_constant_string): Use fold_convert instead of convert.
3470 * builtins.c (simplify_builtin, simplify_builtin_strstr,
3471 simplify_builtin_strchr, simplify_builtin_strrchr,
3472 simplify_builtin_strpbrk): Use fold_convert instead of convert.
3473
e54d0214
DN
34742004-05-21 Diego Novillo <dnovillo@redhat.com>
3475
3476 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
3477 is NULL.
3478
942e0f44
JJ
34792004-05-21 Jakub Jelinek <jakub@redhat.com>
3480
3481 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
3482 override sparc.h definition.
3483
59ce6d6b
RS
34842004-05-20 Roger Sayle <roger@eyesopen.com>
3485
3486 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
3487 get_unwidened, get_narrower): Replace build with build2.
3488 * fold-const.c (negate_expr, associate_trees, size_binop,
3489 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
3490 pedantic_omit_one_operand, distribute_bit_expr,
3491 make_bit_field_ref, optimize_bit_field_compare,
3492 decode_field_reference, range_binop, make_range,
3493 build_range_check, fold_range_test, fold_truthop,
0bc0f41d 3494 optimize_minmax_comparison, extract_muldiv_1,
59ce6d6b
RS
3495 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
3496 fold_inf_compare, fold_single_bit_test, fold,
3497 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3498 Likewise replace build with either build2 or build3.
3499
3972995b
ILT
35002004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
3501
3502 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
3503 * calls.c (prepare_call_address): Don't test
3504 NO_RECURSIVE_FUNCTION_CSE.
3505 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
3506 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3507 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3508 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3509 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3510 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3511 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3512 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3513 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3514 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3515 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3516 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
3517 Likewise.
3518 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
3519 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
3520 * doc/tm.texi (Costs): Remove documentation for
3521 NO_RECURSIVE_FUNCTION_CSE.
3522
0ef54a47
PB
35232004-05-20 Paul Brook <paul@codesourcery.com>
3524
3525 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
3526 * unwind-dw2.c (extract_cie_info): Ditto.
3527 (_Unwind_FrameState): Change retaddr_column to word type.
3528
f4085d4c
RS
35292004-05-20 Roger Sayle <roger@eyesopen.com>
3530
3531 PR middle-end/3074
3532 * fold-const.c (strip_compound_expr): Delete function.
3533 (count_cond): Delete function.
3534 (fold_binary_op_with_conditional_arg): Only perform transformations
3535 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
3536 when a is constant. This greatly simplifies this routine.
3537
3538 * tree.c (saved_expr_p): Delete function.
3539 * tree.h (saved_expr_p): Delete function prototype.
3540
b8850dd2
AP
35412004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3542
3543 * common.opt (ftree-loop-optimize): Remove.
3544
4ac29b33
DJ
35452004-05-20 Daniel Jacobowitz <dan@debian.org>
3546
3547 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
3548 (NM_FOR_TARGET): Use := and $(shell).
3549 (mainversion): Remove unused variable.
3550
52fe4de8
JDA
35512004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3552
3553 * reorg.c (delete_from_delay_slot): If we have a barrier after the
3554 sequence containing the insn to be deleted, always reemit it.
3555
7e140280
RH
35562004-05-20 Richard Henderson <rth@redhat.com>
3557
3558 PR 15454
3559 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
3560 * function.c (expand_function_start): Expand static_chain_decl by hand.
3561 * gimplify.c (create_tmp_var_name): Export.
3562 * tree-gimple.h (create_tmp_var_name): Declare.
3563
9bf6462a
AP
35642004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
3565
3566 * rs6000.c (print_operand) <case 'z'>: Call
3567 mark_decl_referenced before assemble_name.
3568
30719c65
ZW
35692004-05-20 Zack Weinberg <zack@codesourcery.com>
3570
3571 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3572 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3573 (cgraph_varpool_node): Hash on the pointer to the decl, not
3574 the DECL_UID. Fixes 64-bit bootstrap failure.
3575
69260355
RE
35762004-05-20 Richard Earnshaw <rearnsha@arm.com>
3577
3578 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
3579 we don't earlyclobber operands used in the second insn.
3580
1ffae628
SB
35812004-05-20 Steven Bosscher <stevenb@suse.de>
3582
3583 * tree-mudflap.c: Formatting fixes.
3584
965ccc5a
R
35852004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
3586
3587 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
3588 * gengtype.c (open_base_files): Include reload.h in ifiles.
3589 * reload.h (reg_equiv_memory_loc_varray): Declare.
3590 * reload1.c (reg_equiv_memory_loc_varray): New variable.
3591 (init_reload): Initialize it.
3592 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
3593 reg_equiv_memory_loc_varray to size 0.
3594 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
3595 growing reg_equiv_memory_loc_varray to the desired size.
3596 * passes.c (rest_of_handle_old_regalloc): Likewise.
3597 * reload.c: Amend comment on calling init_reload.
3598
4ccfc10a
NC
35992004-05-20 Nick Clifton <nickc@redhat.com>
3600
3601 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
3602 with 'TRAMP' in the body of the macro definition.
3603
6bc709c1
L
36042004-05-19 H.J. Lu <hongjiu.lu@intel.com>
3605
3606 PR target/15383
3607 * config/ia64/ia64.c (ia64_expand_compare): Don't check
3608 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
3609 cmptf_libfunc isn't set.
3610 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
3611 conventions.
3612 (ia64_sysv4_init_libfuncs): New.
3613
3614 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
3615 ia64_sysv4_init_libfuncs.
3616
d3a7ef9a
FH
36172004-05-20 Falk Hueffner <falk@debian.org>
3618
3619 PR other/15526
3620 * libgcc2.c (__mulvsi3): Fix overflow test.
3621
e916e1d0
AP
36222004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
3623
dc44e18a 3624 PR c/14171
d2032ad8
AP
3625 * reg-stack.c (nan): Rename to ...
3626 (not_a_num): Here.
3627 (reg_to_stack): Rename nan to not_a_num.
3628 (subst_stack_regs_pat): Likewise.
3629 (convert_regs_entry): Likewise.
3630 (convert_regs_1): Likewise.
3631
e916e1d0
AP
3632 * tree-cfg.c (find_case_label_for_value): Replace call to
3633 simple_cst_equal with tree_int_cst_equal.
3634
84c672b9
JL
36352004-05-19 Jeff Law <law@redhat.com>
3636
34eb8991
JL
3637 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
3638 If the operand is for a use, then strip away the SSA_NAME, do not
3639 strip away the SSA_NAME for a set. Never call release_ssa_name.
3640 (mark_def_sites): Appropriately pass additional argument to
3641 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
3642 then set the VDEF_RESULT to the VDEF_OP.
3643 (set_def_block): Strip away any SSA_NAME to get to the real
3644 underlying variable.
3645
84c672b9
JL
3646 * tree-ssa-phiopt.c (value_replacement): Handle the case where
3647 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3648 BB directly.
3649
0aea6467
ZD
36502004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3651
3652 PR c++/15463
3653 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
3654 result of inverse.
3655
3656 PR rtl-optimization/15274
3657 * loop-iv.c (determine_max_iter, shorten_into_mode,
3658 iv_number_of_iterations): Handle constants correctly.
3659 * rtl.h (get_mode_bounds): Declaration changed.
3660 * stor-layout.c (get_mode_bounds): Return a constant suitable for
3661 the target mode.
3662
3663 PR rtl-optimization/14692
3664 * loop-unswitch.c (may_unswitch_on): Try folding the result.
3665 (unswitch_single_loop): Work correctly when may_unswitch_on
3666 returns a folded constant.
3667
3668 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3669 * simplify-rtx.c (simplify_const_relational_operation): Optimize
3670 comparisons with mode bounds.
3671
3672 * function.c (struct temp_slot): Add new field prev.
3673 (free_after_compilation, init_temp_slots): Free new fields.
3674 (cut_slot_from_list, insert_slot_to_list,
3675 temp_slots_at_level, max_slot_level, move_slot_to_level,
3676 make_slot_available): New functions.
3677 (assign_stack_temp_for_type, combine_temp_slots,
3678 find_temp_slot_from_address, preserve_temp_slots,
3679 preserve_rtl_expr_result, free_temp_slots,
3680 free_temps_for_rtl_expr, pop_temp_slots): Work with
3681 the new structure of lists.
3682 (mark_all_temps_used): Removed.
3683 * function.h (struct function): Field x_temp_slots
3684 replaced by x_used_temp_slots and x_avail_temp_slots.
3685 (temp_slots): Replaced by ...
3686 (used_temp_slots, avail_temp_slots): New.
3687 * tree.h (mark_all_temps_used): Declaration removed.
3688
3689 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3690 simplify_using_assignment): Take the expression out of
3691 the expr_list wrapper.
3692
3693 * loop-iv.c (iv_number_of_iterations): Improve clasification of
3694 infinite loops.
3695
31a52b86
RS
36962004-05-19 Roger Sayle <roger@eyesopen.com>
3697
3698 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3699 costs should be based on code size when optimizing for size.
3700
d28f752b
PB
37012004-05-19 Paolo Bonzini <bonzini@gnu.org>
3702
3703 * fold-const.c: Remove non-printable character 160.
3704
d55b55aa
NC
37052004-05-19 Nick Clifton <nickc@redhat.com>
3706
34a86306
NC
3707 * doc/invoke.texi (ARM Options): Fix typo.
3708 Remove descrption of -mshort-load-bytes and
3709 -mno-short-load-bytes.
3710
d55b55aa
NC
3711 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3712 missing parenthesis.
3713 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3714 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3715
6af8eb57
SB
37162004-05-19 Steven Bosscher <stevenb@suse.de>
3717
3718 * expr.c (store_constructor): Build loop start and end by hand
3719 instead of via loop functions from stmt.c.
3720 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3721 Remove the code to expand them.
3722
3723 * stmt.c (loop_stack): Remove this and everything related.
3724 (struct nesting, enum nesting_desc): Update.
3725 (expand_fixup): Likewise.
3726 (expand_loop_start, expand_start_loop_continue_elsewhere,
3727 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3728 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3729 expand_exit_loop_if_false, expand_exit_loop_top_cond,
3730 expand_exit_something): Remove.
3731 * tree.h: Remove prototypes.
3732
eeab4d81
MS
37332004-05-18 Mike Stump <mrs@apple.com>
3734 Devang Patel <dpatel@apple.com>
3735
3736 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3737 if this label is for eh.
3738 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3739 * config/darwin.c (darwin_emit_unwind_label): Likewise.
3740 * dwarf2out.c (output_call_frame_info): Likewise.
3741 * output.h (default_emit_unwind_label): Likewise.
3742 * target.h (unwind_label): Likewise.
3743 * varasm.c (default_emit_unwind_label): Likewise.
3744
3745 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3746 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3747 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3748 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3749 DEBUG_RANGES_SECTION): Define.
3750
bb9a388d
ZW
37512004-05-18 Zack Weinberg <zack@codesourcery.com>
3752
3753 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3754 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3755 (cgraph_varpool_node):
3756 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3757 (cgraph_function_possibly_inlined_p): Use the decl itself for
3758 the key, not DECL_ASSEMBLER_NAME.
3759 (change_decl_assembler_name): No need to muck with the hash tables.
3760 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3761 Delete.
3762 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3763 for the key, not DECL_ASSEMBLER_NAME.
3764 * cgraph.h: Remove prototypes of deleted functions.
3765 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3766 (mark_decl_referenced): New function.
3767 * tree.h: Prototype mark_decl_referenced.
3768 * final.c (output_addr_const) <case SYMBOL_REF>: Call
3769 mark_decl_referenced before assemble_name.
3770 * c-decl.c (finish_decl): Use mark_decl_referenced.
3771
3a3f4da9
AP
37722004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
3773 Jeff Law <law@redhat.com>
3774
cc52902d
AP
3775 * tree-ssa-phiopt.c (abs_replacement): New function.
3776 (empty_block_p): New function extracted from...
3777 (candidate_bb_for_phi_optimization): Break out empty block test.
3778 (conditional_replacement): Use empty_block_p.
3779 (value_replacement): Similarly.
3780
3a3f4da9
AP
3781 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3782 * tree-ssa-phiopt.c: Include flags.h.
3783 (conditional_replacement): Remove argument names from prototype.
3784 Minor formatting and comment fixes.
3785 (tree_ssa_phiopt): If conditional_replacement returns false, then
3786 call value_replacement.
3787 (value_replacement): New function.
3788
14886ab7
JL
37892004-05-18 Jeff Law <law@redhat.com>
3790
1833df5c
JL
3791 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3792 from conditional_replacement.
3793 (candidate_bb_for_phi_optimization): Similarly.
3794 (conditional_replacement): Use replace_phi_with_stmt and
3795 candidate_bb_for_phi_optimization.
3796
14886ab7
JL
3797 * tree-ssa-phiopt.c: Fix various formatting issues.
3798
70315fcd
SB
37992004-05-18 Steven Bosscher <stevenb@suse.de>
3800
3801 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3802 s390_expand_cmpmem): Do not use expand_start_loop and
3803 expand_end_loop, instead build the loop manually.
3804
f82ddcae
AM
38052004-05-18 Alan Modra <amodra@bigpond.net.au>
3806
3807 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3808 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3809
dd747311
JL
38102004-05-17 Jeff Law <law@redhat.com>
3811
3812 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3813 * flags.h (flag_delete_null_pointer_checks): Here.
3814 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3815 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3816 (add_phi_arg, remove_phi_arg_num): Similarly.
3817 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3818 property into PHI nodes.
3819 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3820 (record_equivalences_from_phis): If all PHI arguments are known to be
3821 nonzero, then the result must be nonzero as well.
8eb14e2e
SB
3822 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3823 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
dd747311
JL
3824 appropriately. Walk the USE-DEF chains and propagate nonzero property
3825 as appropriate.
3826 * tree.h (PHI_ARG_NONZERO): Define.
3827 (phi_arg_d): Add nonzero flag.
3828
b4117c30
ZW
38292004-05-17 Zack Weinberg <zack@codesourcery.com>
3830
3831 * f: Entire directory removed
3832
3833 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3834 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3835 (g77_integer_type_node, g77_uinteger_type_node)
3836 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3837 * c-common.c (c_common_nodes_and_builtins): Do not initialize
3838 the above set of variables.
3839
3840 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3841 * doc/invoke.texi, doc/standards.texi: Remove cross-references
3842 to g77 manual.
3843
6944d9dd
SB
38442004-05-17 Steven Bosscher <stevenb@suse.de>
3845
5e806501 3846 PR tree-optimization/15438
6944d9dd
SB
3847 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3848 attributed functions as pure or const.
3849
e1564e1d
FCE
38502004-05-17 Frank Ch. Eigler <fche@redhat.com>
3851
3852 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3853 from source code with errors.
3854
a2824db3
RM
38552004-05-17 Ranjit Mathew <rmathew@hotmail.com>
3856
3857 Enable tree browser for all front ends.
3858 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3859 (BACKEND): ...to here.
3860
2c6b27c3
JH
38612004-05-17 Jan Hubicka <jh@suse.cz>
3862
3863 * i386.c (construct_container): Do not produce BLKmode registers.
3864 (classify_argument): Properly compute alignment of complex types.
3865
044b3892
L
38662004-05-17 H.J. Lu <hongjiu.lu@intel.com>
3867
3868 PR target/15084
3869 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3870 and renamed to movdi_insv_1_rex64.
3871 (insv): Support SImode for 32bit and DImode for 64bit.
3872
646ca712
RS
38732004-05-17 Richard Sandiford <rsandifo@redhat.com>
3874
3875 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3876 (TARGET_SWITCHES): Remove debugg.
3877 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3878 TARGET_64BIT.
3879 (subdi3): Replace the define_expand with a define_insn, the latter
3880 renamed from subdi3_internal_3.
3881 (negdi2): Likewise negdi2_internal_2.
3882 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3883 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3884 and associated define_splits.
3885 (adddi3_internal): Renamed from adddi3_internal_3.
3886 (ashldi3_internal): Likewise ashldi3_internal4.
3887 (ashrdi3_internal): Likewise ashrdi3_internal4.
3888 (lshrdi3_internal): Likewise lshrdi3_internal4.
3889
d83aba0f
RS
38902004-05-17 Richard Sandiford <rsandifo@redhat.com>
3891
3892 * optabs.c (expand_unop): Try implementing negation using subtraction
3893 from zero.
3894
15581992
JDA
38952004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3896
3897 * pa.md: Fix typo from last change. Remove DFmode move to and from
3898 SAR register.
3899
2a2789d8
RE
39002004-05-16 Richard Earnshaw <rearnsha@arm.com>
3901
3902 PR target/10982
3903 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3904 (ne_zeroextractsi_shifted): New pattern.
3905 (ite_ne_zeroextractsi): New pattern.
3906 (ite_ne_zeroextractsi_shifted): New pattern.
3907
673fda6b
SB
39082004-05-15 Steven Bosscher <stevenb@suse.de>
3909
3910 * c-gimplify.c (c_genericize):
3911 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3912 * c-parse.in <expr_no_commas>: Likewise.
3913 <if_prefix>: Likewise.
3914 <select_or_iter_stmt>: Likewise.
3915 * expr.c (expand_var, expand_expr_real_1): Likewise.
3916 * expr.h (expand_expr): Make it a static inline function.
3917 Move prototype for expand_expr_real up before this.
3918 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3919 Likewise.
3920 * gimplify.c (gimple_boolify, gimplify_addr_expr,
3921 gimplify_asm_expr, gimplify_expr): Likewise.
3922 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3923 dump_function_to_file): Likewise.
3924 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3925 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3926 * tree-into-ssa.c (dump_tree_ssa): Likewise.
3927 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3928 Likewise.
3929 * tree-optimize.c (execute_one_pass): Likewise.
3930 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3931 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3932
3933 * objc/objc-act.c (objc_build_try_enter_fragment,
3934 objc_build_try_epilogue, objc_build_catch_stmt,
3935 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3936 with lang_hooks.foo ().
3937
e2bb53e5
RS
39382004-05-15 Roger Sayle <roger@eyesopen.com>
3939
3940 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3941 that simplify_builtin doesn't destructively modify its argument.
3942
dc491742
RE
39432004-05-15 Richard Earnshaw <reanrsha@arm.com>
3944
b4117c30 3945 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
dc491742
RE
3946 implementations for ARM and Thumb.
3947 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3948
428d4d76
TQ
39492004-05-15 Thomas Quinot <quinot@act-europe.fr>
3950
3951 * prefix.c (update_path): Replace PREFIX with KEY only
3952 when it matches a full directory name in PATH.
3953
61f0ccff
RE
39542004-05-15 Richard Earnshaw <reanrsha@arm.com>
3955
3956 * arm.h (TARGET_APCS_32): Delete.
3957 (TARGET_MMU_TRAPS): Delete.
3958 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
3959 define __APCS_26__.
3960 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3961 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3962 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3963 (prog_mode_type): Delete.
3964 (PROMOTE_MODE): Always promote unsigned for HImode.
3965 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3966 (MASK_RETURN_ADDR): Simplify.
3967 * arm.c (arm_prgmode): Delete.
3968 (arm_override_options, arm_gen_rotated_half_load): Simplify.
3969 (print_multi_reg, output_return_instruction): Simplify.
3970 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3971 (arm_return_addr): Simplify.
3972 * arm.md (prog_mode): Delete.
3973 (conds): Simplify.
3974 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3975 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3976 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3977 (loadhi_shiftpredec): Delete.
3978 (peephole for post-increment on HImode load): Delete.
3979 * arm/crtn.asm: (FUNC_END): Simplify.
3980 * arm/lib1funcs.asm: Remove APCS-26 return macros.
3981 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
b4117c30 3982 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
61f0ccff
RE
3983 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3984 MULTILIB_DEFAULTS as required.
3985 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3986 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3987 variables as required.
3988 * doc/invoke.texi (ARM Options): Remove obsolete flags.
3989
11c01dcc
AM
39902004-05-15 Alan Modra <amodra@bigpond.net.au>
3991
3992 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3993 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
3994 count to 8 to handle n_reg > 2.
3995
aaa67502
JM
39962004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
3997
3998 * doc/extend.texi: Update WG14 URL.
3999
827c06b6
SB
40002004-05-15 Steven Bosscher <stevenb@suse.de>
4001
4002 * basic-block.h (life_analysis, delete_noop_moves):
4003 Update prototypes.
4004 * bt-load.c (branch_target_load_optimize): Don't take the
4005 insns stream as an argument. Update the life_analysis calls.
4006 * combine.c (combine_instructions): Update delete_noop_moves
4007 calls.
4008 * flow.c (notice_stack_pointer_modification): Don't take the
4009 insns stream as an argument. Work on the flow graph.
4010 (life_analysis): Likewise.
4011 (delete_noop_moves): Likewise.
4012 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
4013 (rest_of_handle_life): Update life_analysis call.
4014 (rest_of_compilation): Likewise, and also update
4015 branch_target_load_optimize call.
4016 * ra.c (reg_alloc): Update life_analysis call.
4017 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
4018 the insns stream as an argument.
4019 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
4020 call.
4021 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
4022 prototypes.
4023 * value-profile.c (branch_prob): Update life_analysis call.
4024 * web.c (web_main): Work on the CFG, not on the insns stream.
4025
4026 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
4027 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
4028 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4029
e9a75776
JM
40302004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
4031
4032 PR c/15444
4033 * c-format.c (avoid_dollar_number): New function.
4034 (check_format_info_main): Call avoid_dollar_number when operand
4035 numbers might occur but has_operand_number == 0.
4036
3053b100
RE
40372004-05-14 Richard Earnshaw <rearnsha@arm.com>
4038
4039 * arm.md (all peephole2 patterns): Use predicates that validate
4040 register classes as appropriate.
4041
b89e96ac
SB
40422004-05-14 Steven Bosscher <stevenb@suse.de>
4043
4044 PR opt/14472
4045 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
4046 ignore type conversions that do not inhibit tail calling.
4047 (find_tail_calls): Likewise.
4048
14bc8dc2
JL
40492004-05-14 Jeff Law <law@redhat.com>
4050
91cde0c3
JL
4051 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
4052 bother marking bypassed virtuals for out-of-ssa. Instead merge
827c06b6 4053 bypassed virtuals into vars_to_rename just before into-ssa pass.
91cde0c3 4054
14bc8dc2
JL
4055 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
4056 so that it picks up more opportunities to eliminate ABS expressions
4057 or turn them into negations.
4058
e83f4801
SB
40592004-05-14 Steven Bosscher <stevenb@suse.de>
4060
4061 * passes.c (rest_of_handle_null_pointer): Remove.
4062 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
4063 (rest_of_compilation): Likewise.
4064 * rtl.h (delete_null_pointer_checks): Remove prototype.
4065 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
4066 Remove declarations.
4067 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
4068 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
4069 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
4070 expr_reaches_here_p, computing_insn, def_reaches_here_p,
4071 can_disregard_other_sets, handle_avail_expr, classic_gcse,
4072 one_classic_gcse_pass, invalidate_nonnull_info,
4073 delete_null_pointer_checks_1, delete_null_pointer_checks,
4074 expr_reached_here_p_work): Remove.
4075 (gcse_main): Do not perform classic GCSE when optimizing for size.
4076 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
4077 are never used.
4078
571325db
AP
40792004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
4080
4081 PR optimization/14466
4082 * tree-complex.c (make_temp): Remove.
4083 (gimplify_val): Replace make_temp with make_rename_temp
4084 and add NULL as the second argument.
4085 (expand_complex_div_wide): Likewise.
4086 * tree-dfa.c (make_rename_temp): New function.
4087 * tree-flow.h (make_rename_temp): Declare.
4088 * tree-sra.c (make_temp): Remove.
4089 (lookup_scalar): Replace make_temp with make_rename_temp.
4090 (create_scalar_copies): Likewise.
4091 * tree-ssa-phiopt.c (conditional_replacement): When we
4092 get non gimple create a temporary variable to hold the
4093 casted expression.
4094
13c1cd82
PB
40952004-05-14 Paul Brook <paul@codesourcery.com>
4096
4097 * stor-layout.c (update_alignment_for_field): Use
4098 targetm.align_anon_bitfield.
4099 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
4100 (TARGET_INITIALIZER): Use it.
4101 * target.h (struct gcc_target): Add align_anon_bitfield.
4102 * config/arm/arm.c (arm_align_anon_bitfield): New function.
4103 (TARGET_ALIGN_ANON_BITFIELD): Define.
4104 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
4105
90afe2c9
ZW
41062004-05-13 Zack Weinberg <zack@codesourcery.com>
4107
4108 * tree.def (documentation): Remove mention of class 'b'.
4109 (BLOCK): Now in class 'x'.
4110 * c-common.c (verify_tree): Remove case 'b'.
4111 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
4112 * calls.c (calls_function_1): Control cannot get past the switch
4113 when exp is a BLOCK.
4114 * print-tree.c (print_node): Move code for class 'b' to the class
4115 'c'/'x' switch, as case BLOCK.
4116 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
4117 (unsafe_for_reeval, substitute_placeholder_in_expr)
4118 (stabilize_reference_1): Remove case 'b'.
4119 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
4120 of something being 'b' to tests for TREE_CODE of something being
4121 BLOCK.
4122 * tree-ssa-operands.c (get_expr_operands): Likewise.
4123
eadf906f
DN
41242004-05-13 Diego Novillo <dnovillo@redhat.com>
4125
4126 * tree-gimple.c: Rename from tree-simple.c.
4127 * tree-gimple.h: Rename from tree-simple.h.
4128 * c-gimplify.c: Rename from c-simplify.c
4129 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
4130 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
4131 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
4132 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
4133 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
4134 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
4135 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
4136 Update.
4137
fc55c95e
RM
41382004-05-14 Ranjit Mathew <rmathew@hotmail.com>
4139
4140 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
4141
2b648957
AP
41422004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
4143
6b9bee8e
AP
4144 * tree-ssa.c (delete_tree_ssa): XFREE
4145 bitmaps allocated with BITMAP_XMALLOC.
4146
15342341
AP
4147 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
4148 idfs_cache at the end of the function.
4149
4150 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
623f4556
AP
4151 at the end of the function.
4152
960076d9
AP
4153 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
4154 el at the end of the function.
4155
8b752086
AP
4156 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
4157 bitmaps allocated with BITMAP_XMALLOC.
4158
77e23325
AP
4159 * loop-unswitch.c (unswitch_single_loop): Free bbs at
4160 the end.
4161
07a1f795
AP
4162 * final.c (shorten_branches): Free uid_shuid before
4163 reallocating it.
4164
2b648957
AP
4165 * bb-reoder.c (connect_traces): Free cold_traces at the end.
4166
91581bcc
JL
41672004-05-13 Jeff Law <law@redhat.com>
4168
02ea8d06
JL
4169 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
4170 variables. Simplify slightly by using USE_OP/DEF_OP instead
4171 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
4172
6c875a31
JL
4173 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
4174 rather than iterating through the blocks testing each bit in
4175 livein to initialize the worklist.
4176 (mark_def_sites): Remove useless checks of KILLS for virtual
4177 operands.
4178
91581bcc
JL
4179 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
4180 new parameters for the statement and variable worklist as well
4181 as a bitmap of interesting SSA_NAMEs. Walk over the statement
4182 worklist recording interesting variables in the variable worklist
4183 and bitmap. Handle casts between integral and boolean types.
4184 (substitute_single_use_vars): Accept new parameters for the statement
4185 and variable worklist. When a substitution is made add a new
4186 entry to the statement worklist. Handle casts between integral
4187 and boolean types.
4188 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
4189 worklists to children. Iterate until the statement worklist
4190 is empty.
4191
0b87eff5
AP
41922004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
4193
520f0c48
AP
4194 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
4195 the end of the block.
4196
f472590a
AP
4197 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
4198 with BITMAP_XMALLOC.
4199
d1f9044b
AP
4200 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
4201 with BITMAP_XMALLOC.
4202
cfa4cb00
AP
4203 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4204 Free nonzero_vars at the end of the function.
4205
0b87eff5
AP
4206 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
4207 need to generate code instead of a NOP_EXPR.
4208
eb18fd8d
ILT
42092004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
4210
4211 * gcc.c (default_compilers): Fill out initializers for new Fortran
4212 entries.
4213
d81d0bdd
PB
42142004-05-13 Paul Brook <paul@codesourcery.com>
4215
4216 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
4217
6b045785
PB
42182004-05-13 Paul Brook <paul@codesourcery.com>
4219
4220 * config/arm/arm.c (arm_default_short_enums): New function.
4221 (TARGET_DEFAULT_SHORT_ENUMS): Define.
4222
6de9cd9a
DN
42232004-05-13 Diego Novillo <dnovillo@redhat.com>
4224
4225 Merge from tree-ssa-20020619-branch.
4226
4227 * Makefile.in (reload1.o-warn): Add.
4228 (tree-alias-ander.o-warn): Add.
4229 (GMPLIBS): Define.
4230 (GMPINC): Define.
4231 (BANSHEELIB): Define.
4232 (BANSHEEINC): Define.
4233 (TREE_DUMP_H): Define.
4234 (TREE_SIMPLE_H): Define.
4235 (TREE_FLOW_H): Define.
4236 (LIBDEPS): Add BANSHEELIB.
4237 (INCLUDES): Add BANSHEEINC and GMPINC.
4238 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
4239 c-mudflap.o and c-pretty-print.o.
4240 (C_OBJS): Remove c-pretty-print.o.
4241 (OBJS-common): Remove sibcall.o.
4242 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
4243 tree-ssa.o, tree-optimize.o, tree-simple.o,
4244 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
4245 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
4246 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
4247 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4248 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
4249 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
4250 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
4251 tree-tailcall.o, gimple-low.o, tree-iterator.o,
4252 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
4253 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
4254 tree-profile.o.
4255 (OBJC-archive): Add tree-nomudflap.o.
4256 (cc1): Add dependency on @TREEBROWSER@.
4257 (c-decl.o): Add dependency on TREE_DUMP_H.
4258 (c-dump.o): Likewise.
4259 (c-common.o): Add dependency on tree-iterator.h
4260 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
4261 (gtype-desc.o): Add dependency on TREE_FLOW_H.
4262 (tree.o): Add dependency on tree-iterator.h,
4263 BASIC_BLOCK_H and TREE_FLOW_H.
4264 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
4265 (langhooks.o): Add dependency on TREE_SIMPLE_H.
4266 (tree-alias-type.o, tree-alias-ander.o,
4267 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
4268 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
4269 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
4270 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
4271 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
4272 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
4273 tree-nested.o, tree-iterator.o, tree-dfa.o,
4274 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
4275 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
4276 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
4277 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
4278 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
4279 tree-sra.o, tree-complex.o, tree-profile.o,
4280 rtl-profile.o): New rules.
4281 (function.o): Add dependency on basic-block.h
4282 (expr.o): Add dependency on tree-iterator.h.
4283 (sibcall.o): Remove.
4284 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
4285 (cfg.o): Add dependency on TIMEVAR_H.
4286 (cfghooks.o): Add dependency on TREE_FLOW_H.
4287 (reg-stack.o): Add dependency on basic-block.h.
4288 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
4289 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
4290 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
4291 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
4292 tree-alias-type.h, tree-alias-common.h,
4293 tree-alias-type.c, tree-alias-common.c,
4294 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
4295 rtl-profile.c and tree-nested.c.
4296 (gt-tree-alias-common.h, gt-tree-mudflap.h,
4297 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
4298 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
4299 gt-tree-cfg.h, gt-tree-nested.h): New rules.
4300 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
4301 * basic-block.h: Include predict.h
4302 (struct edge_def): Add GTY marker.
4303 Change field 'insns' to be a union of tree and rtx.
4304 (EDGE_TRUE_VALUE): Define.
4305 (EDGE_FALSE_VALUE): Define.
4306 (EDGE_EXECUTABLE): Define.
4307 (struct bb_ann_d): Forward declare.
4308 (struct basic_block_def): Add GTY marker.
4309 Remove fields head_tree and end_tree.
4310 Add fields stmt_list, rbi and tree_annotations.
4311 (struct reorder_block_def): Define.
4312 (basic_block_info): Add GTY marker.
4313 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
4314 variables instead of macros.
4315 (flow_call_edges_add): Remove declaration.
4316 (make_eh_edge): Remove declaration.
4317 (brief_dump_cfg, find_edge, tree_predicted_by_p,
4318 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
4319 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
4320 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
4321 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
4322 (try_redirect_by_replacing_jump): Modfiy return type to
4323 edge instead of bool.
4324 * bb-reorder.c (copy_bb): Call duplicate_block
4325 instead of cfg_layout_duplicate_bb.
4326 (copy_bb_p): Call can_duplicate_block_p instead of
4327 cfg_layout_can_duplicate_bb_p.
4328 * bitmap.c (bitmap_first_set_bit): Abort if word
4329 wasn't found.
4330 (bitmap_last_set_bit): Likewise.
4331 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
4332 (DEF_FUNCTION_TYPE_3): Add.
4333 * builtins.c (c_strlen): Make extern.
4334 (builtin_save_expr): New.
4335 (expand_builtin_nonlocal_goto): New.
4336 (expand_builtin_constant_p): Remove.
4337 (expand_builtin_mathfn): Call builtin_save_expr instead
4338 of save_expr.
4339 (expand_builtin_mathfn_2): Likewise.
4340 (expand_builtin_strcmp): Likewise.
4341 (expand_builtin_strncmp): Likewise.
4342 (expand_builtin_strcat): Likewise.
4343 (fold_builtin_cabs): Likewise.
4344 (expand_builtin_alloca): Don't trigger if -fmudflap is
4345 given.
4346 (build_string_literal): Set TREE_INVARIANT on new node.
4347 (expand_builtin_profile_fun): New.
4348 (round_trampoline_addr): New.
4349 (expand_builtin_init_trampoline): New.
4350 (expand_builtin_adjust_trampoline): New.
4351 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
4352 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
4353 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
4354 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
4355 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
4356 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
4357 Handle.
4358 (fold_builtin_expect): New.
4359 (fold_builtin_isascii): Don't return non-constant results
4360 in GIMPLE form.
4361 (fold_builtin_isdigit): Likewise.
4362 (fold_builtin_1): New.
4363 (fold_builtin): Call it.
4364 (build_function_call_expr): Update call to build a new
4365 CALL_EXPR.
4366 (purge_builtin_constant_p): Remove.
4367 (simplify_builtin, simplify_builtin_memcmp,
4368 simplify_builtin_strcmp, simplify_builtin_strncmp,
4369 simplify_builtin_strpbrk, simplify_builtin_strstr,
4370 simplify_builtin_strchr, simplify_builtin_strrchr,
4371 simplify_builtin_strcat, simplify_builtin_strncat,
4372 simplify_builtin_strspn, simplify_builtin_strcspn,
4373 simplify_builtin_next_arg, simplify_builtin_va_start,
4374 simplify_builtin_sprintf): New.
4375 * builtins.def (BUILT_IN_STACK_ALLOC,
4376 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
4377 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
4378 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
4379 BUILT_IN_PROFILE_FUNC_EXIT): Define.
4380 * c-common.c: Include tree-iterator.h and hashtab.h.
4381 (lang_statement_code_p): Declare.
4382 (lang_gimplify_stmt): Declare.
4383 (fix_string_type): Set TREE_INVARIANT for value.
4384 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
4385 (c_type_hash): New.
4386 (c_common_get_alias_set): Handle multiple type nodes
4387 referring to "the same" type, currently for C90 only.
4388 (c_add_case_label): Use create_artificial_label.
4389 (finish_label_address_expr): Don't set TREE_CONSTANT on
4390 result.
4391 (c_expand_expr): Don't handle STMT_EXPR.
4392 (handle_alias_attribute): Marke aliased variables to be
4393 TREE_STATIC.
4394 (handle_nonnull_attribute): Initialize arg_num.
4395 (check_function_nonnull): Likewise.
4396 (c_walk_subtrees): New.
4397 (c_estimate_num_insns_1): Don't handle
4398 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
4399 (c_decl_uninit_1): Remove.
4400 (c_decl_uninit): Remove.
4401 (c_warn_unused_result): New.
4402 * c-common.def (ASM_STMT): Change number of operands
4403 to 4.
4404 (FILE_STMT): Remove.
4405 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
4406 Remove.
4407 (lang_gimplify_stmt): Add.
4408 (expand_stmt): Remove.
4409 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4410 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
4411 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
4412 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
4413 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
4414 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4415 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4416 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
4417 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
4418 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
4419 genrtl_compound_stmt, genrtl_asm_stmt,
4420 genrtl_cleanup_stmt, c_decl_uninit): Remove.
4421 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
4422 c_tree_chain_matters_p, c_warn_unused_result,
4423 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
4424 Declare.
4425 * c-convert.c (convert): Make convert work when
4426 converting to compatible types across translation unit.
4427 * c-decl.c: Include langhooks.h, tree-mudflap.h,
4428 tree-simple.h, diagnostic.h and tree-dump.h
4429 (merge_decls): Initialize oldtype to NULL.
4430 (finish_decl): Use DECL_HARD_REGISTER instead of
4431 DECL_C_HARD_REGISTER.
4432 (check_bitfield_type_and_width): Check for null
4433 lang_type_specific when check the precision of an enum.
4434 (grokdeclarator): Immediately layout an ARRAY_TYPE used
4435 in a pointer-to-array declarator.
4436 (finish_struct): Clear allocated struct lang_type.
4437 (finish_enum): Set enum_min and enum_max. Set
4438 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
4439 not to the enumerators.
4440 (set_decl_nonlocal): New.
4441 (store_parm_decls): Use it via walk_tree.
4442 (c_finalize): New.
4443 (finish_function): When !targetm.have_ctors_dtors,
4444 record static constructors and destructors here...
4445 (c_expand_body_1): ... not here.
4446 (c_expand_decl): Rename from c_expand_decl_stmt.
4447 Handle all C-specific expansion semantics.
4448 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
4449 STMT_LINENO.
4450 * c-format.c (handle_format_arg_attribute): Initialize
4451 format_num.
4452 * c-lang.c: Include tree-inline.h
4453 (LANG_HOOKS_EXPAND_DECL,
4454 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4455 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
4456 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
4457 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4458 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
4459 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
4460 (c_types_compatible_p): New.
4461 * c-mudflap.c: New file.
4462 * c-objc-common.c: Include tree-mudflap.h
4463 (start_cdtor, finish_cdtor): Collapse
4464 together into
4465 (build_cdtor): ...here. Update to construct a complete tree
4466 for the function. No need to call push_scope, pop_scope, or
4467 clear_last_expr, or set current_function_cannot_inline.
4468 (c_missing_noreturn_ok_p): Change prototype to return
4469 bool.
4470 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
4471 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
4472 opts.c.
4473 (c_common_post_options): Don't ever use rtl inlining.
4474 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
4475 * c-pragma.c (handle_pragma_redefine_extname): Define
4476 always.
4477 (init_pragma): Activate #pragma redefine_extname for mudflap.
4478 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
4479 (pp_c_initializer): Accept any type CONSTRUCTOR.
4480 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
4481 COMPLEX_TYPE.
4482 (decl_name_str): New local function.
4483 (pp_c_direct_declarator): Call it.
4484 (pp_c_primary_expression): Call it.
4485 (pp_c_id_expression): Call it.
4486 (pp_c_statement): Call it.
4487 (print_c_tree): Create new pp object.
4488 * c-pretty-print.h (pp_c_tree_decl_identifier,
4489 print_c_tree): Declare.
4490 * c-semantics.c: Include langhooks.h
4491 (lang_expand_stmt, lang_expand_decl_stmt,
4492 find_reachable_label_1, find_reachable_label,
4493 expand_unreachable_if_stmt, expand_unreachable_stmt,
4494 genrtl_do_stmt_1): Remove.
4495 (begin_stmt_tree): Don't check for changed filename.
4496 Call annotate_with_locus.
4497 (finish_stmt_tree): Don't set line for end of function.
4498 (build_stmt): Don't check type nodes for
4499 side effects.
4500 (build_stmt): Set TREE_SIDE_EFFECTS.
4501 Set EXPR_LOCUS instead of STMT_LINENO.
4502 (lang_expand_stmt, lang_expand_decl_stmt,
4503 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
4504 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
4505 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
4506 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
4507 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
4508 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
4509 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
4510 find_reachable_label_1, expand_unreachable_if_stmt,
4511 expand_unreachable_stmt): Remove.
4512 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
4513 * c-simplify.c: New file.
4514 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
4515 (struct lang_type): Add fields enum_min and enum_max.
4516 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
4517 (c_expand_decl, c_missing_noreturn_ok_p,
4518 c_types_compatible_p): Declare.
4519 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
4520 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
4521 (default_function_array_conversion): Rely on build to
4522 set TREE_CONSTANT.
4523 (parser_build_binary_op, pointer_diff): Likewise.
4524 (build_unary_op, build_binary_op): Likewise.
4525 (build_array_ref):
4526 (build_external_ref): Set TREE_INVARIANT.
4527 (build_c_cast, pop_init_level): Likewise.
4528 (process_init_element): Use ASM_VOLATILE_P.
4529 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
4530 (c_finish_case): Call c_do_switch_warnings.
4531 * c.opt (fdump-): Remove.
4532 * calls.c (try_to_integrate): Remove.
4533 (prepare_call_address): Replace fndecl arg with a
4534 precomputed static chain value.
4535 (emit_call_1): New argument for full call expr.
4536 (flags_from_decl_or_type): Call special_function_p.
4537 (initialize_argument_information): Add argument
4538 may_tailcall.
4539 (purge_reg_equiv_notes): New.
4540 (expand_call): Do not try to expand calls inline.
4541 (fixup_tail_calls): New.
4542 * cfg.c: Include timevar.h and ggc.h.
4543 (bb_pool, edge_pool): Remove.
4544 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
4545 (entry_exit_blocks): Remove.
4546 (rbi_pool): Declare.
4547 (init_flow): Do not create pools.
4548 Allocate entry/exit block.
4549 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
4550 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
4551 (unlink_block): Clear b->prev_bb and b->next_bb.
4552 (compact_blocks): Clear all slots of BASIC_BLOCK array.
4553 (dump_flow_info): Work on trees too.
4554 (dump_cfg_bb_info): New.
4555 (brief_dump_cfg): New.
4556 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
4557 (find_edge): New.
4558 * cfgbuild.c (rtl_make_eh_edge): Rename from
4559 make_eh_edge. Update all users.
4560 (find_basic_blocks): Don't call VARRAY_FREE on
4561 basic_block_info.
4562 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
4563 and newpos2.
4564 (delete_unreachable_blocks): Return changed status.
4565 (merge_seq_blocks): New.
4566 * cfghooks.c: Include tree-flow.h
4567 (tree_register_cfg_hooks, ir_type): New.
4568 (redirect_edge_and_branch): Change return type to edge.
4569 (predict_edge, predicted_by_p, can_duplicate_block_p,
4570 duplicate_block, block_ends_with_call_p,
4571 block_ends_with_condjump_p, flow_call_edges_add): New.
4572 * cfghooks.h (redirect_edge_and_branch): Change return
4573 type to edge.
4574 (predict_edge, predicted_by_p, can_duplicate_block_p,
4575 duplicate_block, block_ends_with_call_p,
4576 block_ends_with_condjump_p, flow_call_edges_add): Declare.
4577 (redirect_edge_and_branch): Change return type to edge.
4578 (struct cfg_hooks): Add fields block_ends_with_call_p,
4579 block_ends_with_condjump_p, flow_call_edges_add,
4580 predict_edge, predicted_by_p, can_duplicate_block_p and
4581 duplicate_block.
4582 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
4583 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
4584 (fixup_reorder_chain): Use initialize_bb_rbi.
4585 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
4586 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
4587 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
4588 (insn_locators_initialize): Use new info about blocks.
4589 * cfglayout.h (typedef struct reorder_block_def): Moved to
4590 basic_block.h.
4591 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
4592 removed.
4593 * cfgloop.c: Include tree.h and tree-flow.h.
4594 * cfgloop.h (create_loop_notes): Declare.
4595 * cfgloopmanip.c (create_loop_notes): New.
4596 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
4597 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
4598 and duplicate_block fields.
4599 (create_basic_block_structure): Don't look at
4600 RTX_INTEGRATED_P.
4601 (rtl_block_ends_with_call_p): New.
4602 (rtl_block_ends_with_condjump_p): New.
4603 (need_fake_edge_p): Moved from cfganal.c.
4604 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
4605 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
4606 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
4607 (cfg_layout_rtl_cfg_hooks): Ditto.
4608 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
4609 functions to be reachable.
4610 * cgraphunit.c (decide_is_function_needed):
4611 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
4612 inline functions don't need to be output.
4613 (cgraph_assemble_pending_functions): Don't do anything
4614 special for nested functions.
4615 (cgraph_mark_functions_to_output): Likewise.
4616 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
4617 (cgraph_analyze_function): Use estimate_num_insns.
4618 (cgraph_mark_functions_to_output): Likewise.
4619 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
4620 (cgraph_expand_function): Allow functions to not be
4621 emitted.
4622 (cgraph_remove_unreachable_nodes):
4623 (cgraph_recursive_inlining_p): Simplify.
4624 (lookup_recursive_calls,
4625 cgraph_decide_recursive_inlining): New.
4626 (cgraph_decide_inlining_*): Update calls of
4627 cgraph_mark_inline.
4628 * combine.c (get_pos_from_mask): Always set *plen.
4629 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
4630 ftree-based-profiling, ftree-ccp, ftree-ch,
4631 ftree-combine-temps, ftree-copyrename, ftree-dce,
4632 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
4633 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
4634 ftree-lrs): Add.
4635 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
4636 Undefine.
4637 * configure.ac: Add --enable-tree-browser option.
4638 Add --with-libbanshee option.
4639 Add GMPLIBS and GMPINC.
4640 * configure: Regenerate.
4641 * coverage.c (tree_ctr_tables): New.
4642 (coverage_counter_alloc): Use it.
4643 (build_ctr_info_value): Ditto.
4644 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
4645 (tree_coverage_counter_ref): New.
4646 * coverage.h (coverage_counter_ref): Remove declaration.
4647 (rtl_coverage_counter_ref): Declare.
4648 (tree_coverage_counter_ref): Declare.
4649 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4650 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4651 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4652 (struct cse_basic_block_data): Rename enum values to not
4653 conflict with profile.h; update all uses.
4654 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4655 in comments.
4656 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4657 * diagnostic.h (debug_output_buffer, dump_generic_node,
4658 print_generic_stmt, print_generic_stmt_indented,
4659 print_generic_expr, print_generic_decl,
4660 debug_generic_expr, debug_generic_stmt, debug_c_tree):
4661 Declare.
4662 * dominance.c: Cache immediate dominators.
4663 * domwalk.c: New file.
4664 * domwalk.h: New file.
4665 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4666 (gen_subprogram_die): Generate a DIE for a named
4667 return value.
4668 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4669 (add_location_or_const_value_attribute): Likewise.
4670 (add_bound_info): Likewise.
4671 (gen_decl_die): Likewise.
4672 * emit-rtl.c (maybe_set_first_label_num): New.
4673 (copy_most_rtx): Don't copy the integrated flag.
4674 Copy the new return_val flag.
4675 * et-forest.c (MAX_NODES): Define.
4676 (record_path_before_1): Abort if len is greater than
4677 MAX_NODES.
4678 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4679 gen_eh_region_catch, gen_eh_region_allowed,
4680 gen_eh_region_must_not_throw, get_eh_region_number,
4681 get_eh_region_may_contain_throw, get_eh_region_tree_label,
4682 set_eh_region_tree_label, expand_resx_expr): New.
4683 (expand_eh_region_start, expand_start_catch): Use them.
4684 (expand_end_catch): Tidy.
4685 (note_eh_region_may_contain_throw): Take region argument.
4686 (note_current_region_may_contain_throw): New.
4687 (get_exception_filter): Export.
4688 (collect_eh_region_array): Export.
4689 (remove_unreachable_regions): Check ERT_TRY based on reachability
4690 of catches, not reachability of continue_label. Never remove
4691 ERT_MUST_NOT_THROW regions.
4692 (collect_rtl_labels_from_trees): New.
4693 (convert_from_eh_region_ranges): Use it.
4694 (connect_post_landing_pads): Handle dying cleanups.
4695 (struct reachable_info): Add callback data.
4696 (add_reachable_handler): Invoke the callback.
4697 (foreach_reachable_handler): New.
4698 (reachable_handlers): Use it.
4699 (arh_to_landing_pad, arh_to_label): New.
4700 (can_throw_internal_1): Split out from can_throw_internal.
4701 (can_throw_external_1): Similarly.
4702 * except.h: Update.
4703 * explow.c (emit_stack_save): Remove savearea mode check.
4704 (update_nonlocal_goto_save_area): New.
4705 (allocate_dynamic_stack_space): Use it.
4706 (probe_stack_range): Never emit loop notes.
4707 * expmed.c (extract_fixed_bit_field): Always propagate the
4708 target for the shift if it is a REG.
4709 * expr.c: Include tree-iterator.h
4710 (is_zeros_p): Remove.
4711 (categorize_ctor_elements_1, categorize_ctor_elements): New.
4712 (count_type_elements): New.
4713 (mostly_zeros_p): Use them.
4714 (expr_wfl_stack): Remove.
4715 (convert_move): Do nothing if to and from are the same.
4716 (emit_block_move_via_loop): Don't emit LOOP notes.
4717 (emit_move_insn): Don't handle CONSTANT_P_RTX.
4718 (emit_move_insn_1): Don't generate inline warnings.
4719 (expand_vars, expand_var): Split from ...
4720 (expand_expr_1): ... here.
4721 (expand_expr_real, expand_expr_real_1): Use new macros
4722 EXPR_LOCATION and EXPR_HAS_LOCATION.
4723 * expr.h (simplify_builtin_fputs,
4724 simplify_builtin_strcpy, simplify_builtin_strncpy,
4725 expand_var, fixup_tail_calls,
4726 update_nonlocal_goto_save_area): Declare.
4727 (lookup_static_chain, expand_inline_function,
4728 mark_seen_cases): Remove.
4729 (prepare_call_address): Change type of 2nd argument to
4730 rtx.
4731 * final.c (profile_function): Update static chain test.
4732 (final): Don't look at RTX_INTEGRATED_P.
4733 * flags.h (flag_mudflap, flag_mudflap_threads,
4734 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4735 flag_tree_dce, flag_tree_combine_temps,
4736 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4737 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4738 flag_tree_points_to): Declare.
4739 (enum pta_type): Declare.
4740 * flow.c (lang_missing_noreturn_ok_p): Remove.
4741 (check_function_return_warnings): Remove.
4742 (update_life_info): Update comments.
4743 (free_basic_block_vars): Don't call VARRAY_FREE for
4744 basic_block_info.
4745 (regno_uninitialized): Remove.
4746 * fold-const.c (int_const_binop): Make extern.
4747 (non_lvalue): Rely on build to set TREE_CONSTANT.
4748 (operand_equal_p): Replace only_const argument with
4749 flags. Allow pure functions if OEP_PURE_SAME.
4750 (fold): Use OEP_ONLY_CONST.
4751 (invert_truthvalue) <NOP_EXPR> Break if argument is of
4752 boolean type.
4753 (fold_relational_hi_lo,
4754 nondestructive_fold_binary_to_constant,
4755 nondestructive_fold_unary_to_constant,
4756 fold_read_from_constant_string): New.
4757 * function.c (struct function): Remove calls_constant_p.
4758 (current_function_calls_constant_p): Remove.
4759 (inline_function_decl): Remove.
4760 (put_var_into_stack): Don't use it.
4761 (fix_lexical_addr): Likewise.
4762 (inline_function_decl): Remove extern declaration.
4763 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4764 (trampolines_created): Move to varasm.c.
4765 (free_after_compilation): Update for removed fields.
4766 (allocate_struct_function): Likewise.
4767 (delete_handlers, lookup_static_chain): Remove.
4768 (fix_lexical_addr): Don't consider non-local variable refs.
4769 (trampoline_address): Remove.
4770 (round_trampoline_addr): Move to builtins.c.
4771 (adjust_trampoline_addr): Remove.
4772 (expand_function_start): Update for changes to static chain
4773 and nonlocal goto handling.
4774 (initial_trampoline): Move to varasm.c.
4775 (expand_function_end): Don't build trampolines or kill
4776 unreferenced nonlocal goto labels.
4777 (free_after_compilation): Don't set it.
4778 (expand_function_end): Likewise.
4779 (setjmp_vars_warning): Rename from
4780 uninitialized_vars_warning, remove uninitialized vars warning.
4781 (uninitialized_vars_warning): Remove old comment
4782 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4783 and do not call the langhook.
4784 (expand_function_start, expand_function_end): Don't do
4785 function instrumentation here.
4786 (clear_block_marks): Rename from reorder_blocks_0, export.
4787 (blocks_nreverse): Export.
4788 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4789 of rtl.
4790 (reset_block_changes, record_block_change, finalize_block_changes,
4791 check_block_change, free_block_changes): New functions.
4792 (assign_parms): Setting of current_function_stdarg
4793 moved ...
4794 (allocate_struct_function): ... here.
4795 * function.h (struct function): Remove x_nonlocal_labels,
4796 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4797 x_context_display, x_trampoline_list, needs_context.
4798 Add static_chain_decl, nonlocal_goto_save_area.
4799 (struct function): Remove x_clobber_return_insn.
4800 Add tail_call_emit field, last_label_uid,
4801 unexpanded_var_list, dont_emit_block_notes,
4802 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4803 (clear_block_marks): Declare.
4804 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4805 (mfwrap_spec, mflib_spec): Declare.
4806 (cpp_unique_options, cc1_options): Ditto.
4807 (default_compilers): Add .F and .f90.
4808 (static_specs): Add mfwrap and mflib.
4809 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4810 CONSTANT_RTX_P.
4811 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4812 Update to match insns field in struct edge_def.
4813 * gdbinit.in (pgs, pge): Define.
4814 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4815 instead of the integrated flag.
4816 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4817 * gengtype-yacc.y (bitfieldlen): Add empty action.
4818 (struct_fields): Accept unnamed bitfields.
4819 (bitfieldlen): Split from ...
4820 (bitfieldopt): ... here.
4821 * gengtype.c (ifiles): Add tree-alias-type.h and
4822 tree-flow.h.
4823 * genrecog.c (validate_pattern): Do not handle
4824 CONSTANT_P_RTX.
4825 * gimple-low.c: New file.
4826 * gimplify.c: New file.
4827 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4828 (restore_line_notes): Do not set RTX_INTEGRATED_P.
4829 * ifcvt.c (dead_or_predicable): Initialize local variable
4830 'earliest'.
4831 * input.h (expr_wfl_stack): Remove.
4832 * integrate.c (INTEGRATE_THRESHOLD): Remove.
4833 (setup_initial_hard_reg_value_integration): Likewise.
4834 (initialize_for_inline): Likewise.
4835 (note_modified_parmregs): Likewise.
4836 (integrate_parm_decls): Likewise.
4837 (process_reg_param): Likewise.
4838 (save_parm_insns): Likewise.
4839 (copy_insn_list): Likewise.
4840 (copy_insn_notes): Likewise.
4841 (compare_blocks): Likewise.
4842 (find_block): Likewise.
4843 (inlining): Likewise.
4844 (function_cannot_inline_p): Likewise.
4845 (parmdecl_map): Likewise.
4846 (in_nonparam_insns): Likewise.
4847 (save_for_inline): Likewise.
4848 (FIXED_BASE_PLUS): Likewise.
4849 (expand_inline_function): Likewise.
4850 (copy_rtx_and_substitute): Don't look at map->integrating,
4851 map->inline_target, and inlining, since we are never copying
4852 for integrating.
4853 Don't abort on RTX_INTEGRATED_P.
4854 (old_fun): Remove.
4855 (output_inline_function): Remove.
4856 * integrate.h (struct inline_map): Remove fields integrating,
4857 block_map, leaf_reg_map, inline_target, and local_return_label.
4858 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4859 copy_loop_headers, never_reached_warning): Removed.
4860 (any_uncondjump_p): Reject nonlocal goto.
4861 * langhooks-def.h (lhd_types_compatible_p,
4862 lhd_expand_decl, lhd_gimplify_expr): Declare.
4863 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4864 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4865 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4866 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4867 LANG_HOOKS_GIMPLIFY_EXPR,
4868 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4869 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4870 LANG_HOOKS_GIMPLIFY_EXPR,
4871 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4872 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4873 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4874 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4875 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4876 LANG_HOOKS_DECL_UNINIT,
4877 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4878 * langhooks.c: Include tree-simple.h.
4879 (lhd_expand_decl): New.
4880 (lhd_types_compatible_p): New.
4881 (lhd_decl_uninit): Remove.
4882 (lhd_gimplify_expr): New.
4883 * langhooks.h (struct lang_hooks_for_rtl_expansion):
4884 Remove.
4885 (struct lang_hooks_for_functions): Add field
4886 missing_noreturn_ok_p.
4887 (struct lang_hooks): Add field expand_decl,
4888 types_compatible_p, gimplify_expr and
4889 gimple_before_inlining.
4890 Remove fields decl_uninit and rtl_expand
4891 * opts.c (decode_options): Set flag_tree_ccp,
4892 flag_tree_dce, flag_tree_dom, flag_tree_dse,
4893 flag_tree_pre, flag_tree_ter,
4894 flag_tree_live_range_split, flag_tree_sra,
4895 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4896 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4897 OPT_fmudflapth, OPT_fmudflapir,
4898 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4899 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4900 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4901 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4902 OPT_ftree_points_to_ and OPT_ftree_pre.
4903 * output.h (regno_uninitialized, find_basic_blocks,
4904 cleanup_cfg, delete_unreachable_blocks,
4905 check_function_return_warnings): Remove.
4906 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4907 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4908 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4909 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4910 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4911 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4912 Define.
4913 * passes.c (rest_of_decl_compilation):
4914 (rest_of_handle_sibling_calls): Remove.
4915 (rest_of_handle_inlining): Remove.
4916 (rest_of_handle_gcse): Do not run
4917 purge_builtin_constant_p.
4918 (rest_of_compilation): Update.
4919 Do not call copy_loop_headers.
4920 Do rtl-based profiling only when
4921 !flag_tree_based_profiling. Register rtl-based profiling
4922 hooks.
4923 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
4924 (predicted_by_p): Rename to ...
4925 (rtl_predicted_by_p): .. this one; make global
4926 (tree_predicted_by_p): New.
4927 (dump_prediction): Add FILE argument.
4928 (predict_edge): Rename to ...
4929 (rtl_predict_edge): .. this one.
4930 (tree_predict_edge): New.
4931 (combine_predictions_for_insn): Update calls of predict_edge.
4932 (predict_loops): Break out from ...
4933 (estimate_probability): ... here; update comments; move updating
4934 of unknown probabilities from ...
4935 (estimate_bb_frequencies): ... here.
4936 (combine_predictions_for_bb): New.
4937 (tree_predict_by_opcode): New.
4938 (tree_estimate_probability): New.
4939 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4940 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4941 * predict.h: Add include guard.
4942 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4943 * pretty-print.c (pp_write_text_to_stream): Make extern.
4944 * pretty-print.h (pp_write_text_to_stream): Declare.
4945 * print-rtl.c (print_rtx): Don't print the integrated flag.
4946 Print the return_val flag.
4947 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4948 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4949 Remove support for EXPR_WITH_FILE_LOCATION nodes.
4950 (print_node): Print TREE_INVARIANT and TREE_VISITED.
4951 * profile.c: Include cfghooks.h, tree-flow.h.
4952 (profile_hooks): New.
4953 (profile_dump_file): New.
4954 (instrument_edges): Use hooks instead of RTL-specific code.
4955 (instrument_values): Ditto.
4956 (get_exec_counts): Ditto.
4957 (compute_branch_probabilities): Ditto.
4958 (compute_value_histograms): Ditto.
4959 (branch_prob): Ditto.
4960 (find_spanning_tree): Ditto.
4961 (end_branch_prob): Ditto.
4962 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4963 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4964 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4965 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4966 (tree_register_profile_hooks): New.
4967 (rtl_register_profile_hooks): New.
4968 * ra-rewrite.c (rewrite_program): Clear variable info.
4969 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4970 * regs.h: Add include guards.
4971 * reload.c (decompose): Clear val using memset.
4972 * rtl.def (CONSTANT_P_RTX): Remove.
4973 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4974 (copy_loop_headers): Remove.
4975 (struct rtx_def): Replace the integrated flag with the
4976 return_val flag.
4977 (maybe_set_first_label_num): Declare.
4978 (init_branch_prob): Move declaration to value-prof.h.
4979 (end_branch_prob): Ditto.
4980 (branch_prob): Ditto.
4981 (never_reached_warning): Don't declare it.
4982 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4983 (hoist_insn_to_edge): Update to match field insns in
4984 struct edge_def.
4985 * sbitmap.c (sbitmap_realloc): New.
4986 * sbitmap.h (sbitmap_realloc): Declare.
4987 * sibcall.c: Remove file.
4988 * simplify-rtx.c (simplify_rtx): Do not handle
4989 CONSTANT_P_RTX.
4990 * stmt.c (parse_output_constraint): Don't warn for read-write
90afe2c9 4991 memory operand.
6de9cd9a
DN
4992 (tail_recursion_args): Use types_compatible_p langhook.
4993 (force_label_rtx): Don't look at inline_function_decl.
4994 (label_rtx): Set LABEL_PRESERVE_P appropriately.
4995 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4996 (declare_nonlocal_label): Remove.
4997 (expand_goto): Don't handle nonlocal gotos.
4998 (expand_nl_handler_label): Remove.
4999 (expand_nl_goto_receivers): Remove.
5000 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
5001 update_nonlocal_goto_save_area.
5002 (expand_expr_stmt_value): Check TREE_NO_WARNING.
5003 (warn_if_unused_value): Likewise.
5004 (expand_start_loop, expand_loop_continue_here,
5005 expand_end_loop): Don't create loop notes.
5006 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
5007 mark_seen_cases, check_for_full_enumeration_handling): Remove.
5008 (expand_end_case_type): Don't do warn_switch handling.
5009 (pushcase, pushcase_range) Update add_case_node calls.
5010 (add_case_node): Add dont_expand_label argument.
5011 (same_case_target_p): Don't search rtl.
5012 (expand_start_bindings_and_block, expand_end_bindings):
5013 Don't emit block notes when dont_emit_block_notes.
5014 (using_eh_for_cleanups_p): Export.
5015 (expand_return): Allow any typed rhs.
5016 (expand_stack_alloc): New.
5017 (expand_stack_save, expand_stack_restore): New.
5018 (containing_blocks_have_cleanups_or_stack_level): New
5019 function.
5020 (asm_op_is_mem_input): New fn.
5021 (expand_asm_expr): New fn.
5022 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
5023 nodes.
5024 * stor-layout.c (layout_type): Just return if type is
5025 error_mark_node.
5026 (update_alignment_for_field): Export.
5027 (variable_size): We don't care about global_bindings_p if
5028 the frontend doesn't want a list of the expressions.
5029 * system.h: Poison INTEGRATE_THRESHOLD.
5030 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
5031 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
5032 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
5033 TV_TREE_SSA_OTHER, TV_TREE_OPS,
5034 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
5035 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
5036 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
5037 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
5038 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
5039 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
5040 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
5041 TV_CONTROL_DEPENDENCES): Define.
5042 * toplev.c: Include tree-alias-common.h
5043 (current_file_decl, flag_mudflap, flag_mudflap_threads,
5044 flag_mudflap_ignore_reads, flag_tree_based_profiling,
5045 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
5046 flag_tree_dce, flag_tree_ch, flag_tree_sra,
5047 flag_tree_combine_temps, flag_tree_ter,
5048 flag_tree_live_range_split, flag_tree_dom,
5049 flag_tree_copyrename, flag_tree_dse): Declare.
5050 (f_options): Add tree-based-profiling, tree-gvn,
5051 tree-pre, tree-ccp, tree-dce,
5052 tree-dominator-opts, tree-copyrename, tree-dse,
5053 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
5054 (wrapup_global_declarations): Don't output nested inlined functions.
5055 (general_init): Call init_tree_optimization_passes.
5056 (process_options): Sorry for -ftree-based-profiling plus
5057 -ftest-coverage or -fprofile-values.
5058 * toplev.h (init_tree_optimization_passes,
5059 flag_tree_based_profiling): Declare.
5060 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
5061 * tree-alias-ander.c: New file.
5062 * tree-alias-ander.h: New file.
5063 * tree-alias-common.c: New file.
5064 * tree-alias-common.h: New file.
5065 * tree-alias-type.c: New file.
5066 * tree-alias-type.h: New file.
5067 * tree-browser.c: New file.
5068 * tree-browser.def: New file.
5069 * tree-cfg.c: New file.
5070 * tree-complex.c: New file.
5071 * tree-dfa.c: New file.
5072 * tree-dump.c (dump_enable_all): New.
5073 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
5074 (dump_node): Remove const from field suffix and swtch.
5075 (dump_files): Add null entry, .generic, .nested, .vcg,
5076 .xml and a match-all entry.
5077 (extra_dump_files, extra_dump_files_in_use,
5078 extra_dump_files_alloced): Declare
5079 (dump_option_value_info): Add raw, details, stats,
5080 blocks, vops, lineno, uid and all.
5081 (dump_register): New.
5082 (get_dump_file_info): New.
5083 (dump_begin): Call it.
5084 Do nothing for TDI_none.
5085 (dump_begin): Include phase number in dump filename.
5086 (dump_enable_all): New.
5087 (dump_switch_p_1): Split out from dump_switch_p.
5088 (dump_switch_p): Handle extra_dump_files.
5089 Start our scan at TDI_none + 1.
5090 If -fdump-tree-all was given, call dump_enable_all.
5091 * tree-dump.h: Include splay-tree.h.
5092 (dump_function, dump_function_to_file, dump_register):
5093 Declare.
5094 * tree-eh.c: New file.
5095 * tree-flow-inline.h: New file.
5096 * tree-flow.h: New file.
5097 * tree-inline.c: Re-write to handle inlining on GIMPLE.
5098 * tree-inline.h (walk_tree,
5099 walk_tree_without_duplicates): Move to tree.h.
5100 (estimate_num_insns): Declare.
5101 * tree-into-ssa.c: New file.
5102 * tree-iterator.c: New file.
5103 * tree-iterator.h: New file.
5104 * tree-mudflap.c: New file.
5105 * tree-mudflap.h: New file.
5106 * tree-nested.c: New file.
5107 * tree-nomudflap.c: New file.
5108 * tree-nrv.c: New file.
5109 * tree-optimize.c (dump_flags, vars_to_rename,
5110 in_gimple_form, all_passes, pass_gimple,
5111 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
5112 (execute_gimple, execute_rebuild_bind,
5113 gate_all_optimizations, execute_del_cfg,
5114 register_one_dump_file, register_dump_files, dup_pass_1,
5115 init_tree_optimization_passes, execute_todo,
5116 execute_one_pass, execute_pass_list): New.
5117 (clear_decl_rtl): Remove.
5118 (tree_rest_of_compilation): Update to use tree
5119 optimizers.
5120 * tree-outof-ssa.c: New file.
5121 * tree-pass.h: New file.
5122 * tree-phinodes.c: New file.
5123 * tree-pretty-print.c: New file.
5124 * tree-profile.c: New file.
5125 * tree-simple.c: New file.
5126 * tree-simple.h: New file.
5127 * tree-sra.c: New file.
5128 * tree-ssa-alias.c: New file.
5129 * tree-ssa-ccp.c: New file.
5130 * tree-ssa-copy.c: New file.
5131 * tree-ssa-copyrename.c: New file.
5132 * tree-ssa-dce.c: New file.
5133 * tree-ssa-dom.c: New file.
5134 * tree-ssa-dse.c: New file.
5135 * tree-ssa-forwprop.c: New file.
5136 * tree-ssa-live.c: New file.
5137 * tree-ssa-live.h: New file.
5138 * tree-ssa-loop.c: New file.
5139 * tree-ssa-operands.c: New file.
5140 * tree-ssa-operands.h: New file.
5141 * tree-ssa-phiopt.c: New file.
5142 * tree-ssa-pre.c: New file.
5143 * tree-ssa.c: New file.
5144 * tree-ssanames.c: New file.
5145 * tree-tailcall.c: New file.
5146 * tree.c: Include tree-iterator.h, basic-block.h and
5147 tree-flow.h.
5148 (tree_node_kind): Add phi_nodes and ssa names.
5149 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
5150 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
5151 (make_node_stat): Handle PHI_NODE and SSA_NAME.
5152 <'c'> Set TREE_INVARIANT.
5153 (copy_node_stat): Abort if trying to copy a
5154 STATEMENT_LIST.
5155 Clear TREE_VISITED.
5156 Clear annotation field.
5157 (build_constructor): Copy TREE_INVARIANT from vals.
5158 Don't clear TREE_CONSTANT.
5159 (expr_first, expr_last, expr_length): Remove.
5160 (staticp): Pass unknown component references to the language.
5161 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
5162 (skip_simple_arithmetic): Likewise.
5163 (stabilize_reference_1): Likewise.
5164 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
5165 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
5166 STATEMENT_LIST.
5167 (lhd_unsave_expr_now): Remove.
5168 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
5169 (recompute_tree_invarant_for_addr_expr): New.
5170 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
5171 Call recompute_tree_invarant_for_addr_expr.
5172 Set TREE_INVARIANT accordingly.
5173 (build2_stat): Don't handle CALL_EXPR.
5174 (build3_stat): Don't call build2_stat for CALL_EXPRs.
5175 (build_expr_wfl): Remove.
5176 (annotate_with_file_line, annotate_with_locus): New.
5177 (simple_cst_equal): Call simple_cst_list_equal to compare
5178 CONSTRUCTOR_ELTS pointers.
5179 (iterative_hash_expr): Don't hash types associated
5180 with conversions. Instead hash on the signedness of the
5181 toplevel object and the operand of the conversion.
5182 (dump_tree_statistics): Call ssanames_print_statistics
5183 and phinodes_print_statistics.
5184 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
5185 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
5186 needs_to_live_in_memory): New.
5187 (initializer_zerop): Handle VECTOR_CST. Don't check
5188 AGGREGATE_TYPE_P for CONSTRUCTOR.
5189 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
5190 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
5191 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
5192 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
5193 (CALL_EXPR): Add another operand.
5194 (EXPR_WITH_FILE_LOCATION): Remove.
5195 (SWITCH_EXPR): Add another operand.
5196 * tree.h: Update various comments.
5197 (union tree_ann_d): Forward declare.
5198 (struct tree_common): Add fields nowarning_flag,
5199 invariant_flag and visited.
5200 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
5201 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
5202 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
5203 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
5204 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
5205 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
5206 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
5207 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
5208 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
5209 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
5210 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
5211 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
5212 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
5213 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
5214 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
5215 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
5216 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
5217 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
5218 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
5219 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
5220 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
5221 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
5222 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
5223 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
5224 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
5225 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
5226 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
5227 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
5228 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
5229 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
5230 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
5231 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
5232 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
5233 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
5234 TDF_UID,): Define.
5235 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
5236 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
5237 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
5238 EXPR_WFL_SET_LINECOL): Remove.
5239 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
5240 make_phi_node, init_phinodes, fini_phinodes,
5241 release_phi_node, phinodes_print_statistics,
5242 init_ssanames, fini_ssanames, make_ssa_name,
5243 release_ssa_name, ssanames_print_statistics,
5244 annotate_with_file_line, build_empty_stmt,
5245 annotate_with_locus, expr_only, categorize_ctor_elements,
5246 count_type_elements, add_var_to_bind_expr, is_essa_node,
5247 expand_stack_alloc, expand_stack_save,
5248 expand_stack_restore, add_case_node, operand_equal_p,
5249 nondestructive_fold_unary_to_constant,
5250 nondestructive_fold_binary_to_constant,
5251 fold_read_from_constant_string, int_const_binop,
5252 strip_float_extensions, simplify_builtin, c_strlen,
5253 recompute_tree_invarant_for_addr_expr,
5254 needs_to_live_in_memory, make_vector,
5255 setjmp_vars_warning, update_alignment_for_field,
5256 expand_asm_expr, asm_op_is_mem_input,
5257 containing_blocks_have_cleanups_or_stack_level,
5258 create_artificial_label, gimplify_function_tree,
5259 get_name, unshare_expr, walk_tree,
5260 walk_tree_without_duplicates, in_gimple_form): Declare.
5261 (struct tree_exp): Add fields locus and block.
5262 (struct tree_ssa_name, struct edge_def, struct
5263 tree_phi_node, struct tree_eref_common, struct
5264 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
5265 union alias_var_def, struct tree_statement_list_node,
5266 struct tree_statement_list, enum operand_equal_flag): Declare.
5267 (enum tree_node_structure_enum): Add TS_SSA_NAME,
5268 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
5269 TS_STATEMENT_LIST.
5270 (union tree_node): Add fields ssa_name, phi, eref, ephi,
5271 euse and stmt_list.
5272 (function_cannot_inline_p, uninitialized_vars_warning,
5273 save_for_inline, output_inline_function, all_cases_count,
5274 check_for_full_enumeration_handling,
5275 declare_nonlocal_label): Remove.
5276 (enum tree_dump_index): Add TDI_none, TDI_tu,
5277 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
5278 * unroll.c (unroll_loop): Don't clear map->inline_target.
5279 * unwind-sjlj.c (uw_install_context): Make a proper static inline
5280 function.
5281 * value-prof.c (value_prof_hooks): New.
5282 (find_values_to_profile): Rename to rtl_find_values_to_profile.
5283 Move rtl-specific bits in from branch_prob.
5284 (value_profile_transformations): Rename to
5285 rtl_value_profile_transformations.
5286 (struct value_prof_hooks): New.
5287 (rtl_value_prof_hooks): New.
5288 (rtl_register_value_prof_hooks): New.
5289 (tree_find_values_to_profile): New stub.
5290 (tree_value_profile_transformations): New stub.
5291 (tree_value_prof_hooks): New stub.
5292 (tree_register_value_prof_hooks): New stub.
5293 (find_values_to_profile): New.
5294 (value_profile_transformations): New.
5295 * value-prof.h: Add multiple inclusion guard.
5296 (struct histogram_value): Change rtx fields to void *.
5297 (rtl_register_value_prof_hooks): New declaration.
5298 (tree_register_value_prof_hooks): New declaration.
5299 (find_values_to_profile): New declaration.
5300 (free_profiled_values): New declaration.
5301 (value_profile_transformations): New declaration.
5302 (struct profile_hooks): New declaration.
5303 (init_branch_prob): Declaration moved from rtl.h.
5304 (branch_prob): Declaration moved from rtl.h.
5305 (end_branch_prob): Declaration mooved from rtl.h.
5306 (tree_register_profile_hooks): New declaration.
5307 (rtl_register_profile_hooks): New declaration.
5308 (tree_profile_hooks): New declaration.
5309 (rtl_profile_hooks): New declaration.
5310 * varasm.c: Include tree-mudflap.h.
5311 (TRAMPOLINE_ALIGNMENT): Remove.
5312 (make_decl_rtl): Call mudflap_enqueue_decl.
5313 (assemble_static_space):
5314 (assemble_trampoline_template): Set and return
5315 TRAMPOLINE_ALIGNMENT.
5316 * varray.c (element): Add GENERIC_PTR_NOGC entry.
5317 Add entry for 'tree *'.
5318 Add entry for struct edge_def *.
5319 (varray_copy): New.
5320 * varray.h (enum varray_data_enum): Add
5321 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
5322 VARRAY_DATA_TREE_PTR.
5323 (union varray_data_tag): Corresponding changes.
5324 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
5325 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
5326 VARRAY_EDGE, VARRAY_TREE_PTR,
5327 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
5328 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
5329 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
5330
5331 * config/*/*: Various updates for changed macros, tree
5332 codes, etc. Check ChangeLog.tree-ssa.
5333
5334 * doc/cfg.texi: New file.
5335 * doc/tree-ssa.texi: New file.
5336 * doc/c-tree.texi: Document new codes.
5337 * doc/gccint.texi: Include new files.
5338 * doc/install.texi: Document new features.
5339 * doc/invoke.texi: Document new switches.
5340 * doc/passes.texi: Document new passes.
5341 * doc/rtl.texi: Update changed RTL codes.
5342 * doc/sourcebuild.texi: Update build instructions.
5343 * doc/standards.texi: Document Fortran changes.
5344 * doc/tm.texi: Update.
5345
5eaad481
PB
53462004-05-12 Paolo Bonzini <bonzini@gnu.org>
5347
5348 Replace several arrays with a struct of arrays.
90afe2c9
ZW
5349 * combine.c (struct reg_stat): New.
5350 (init_reg_last_arrays): Renamed to...
5351 (init_reg_last): ...this. Callers adjusted.
5352 (reg_stat): New.
5353 (combine_instructions): Allocate it and use it.
5354 (reg_last_death, reg_last_set, reg_last_set_value,
5355 reg_last_set_label, reg_last_set_table_tick,
5356 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
5357 reg_last_set_mode, reg_last_set_nonzero_bits,
5358 reg_last_set_sign_bit_copies): Replace throughout
5359 with items of reg_stat.
5eaad481 5360
e51f9159
KK
53612004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
5362
5363 PR optimization/15100
5364 * combine.c (distribute_notes): Don't create a dangling
5365 REG_LIBCALL/REG_RETVAL note.
5366
6a599451
AH
53672004-05-11 Aldy Hernandez <aldyh@redhat.com>
5368
5369 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
5370
5371 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
5372 negv2si2.
5373
425a2bde
AH
53742004-05-11 Aldy Hernandez <aldyh@redhat.com>
5375
5376 * doc/md.texi (Standard Names): Fix typo in vec_init description.
5377
bed7b8f1
GK
53782004-05-11 Geoffrey Keating <geoffk@apple.com>
5379
5380 * doc/gty.texi (GTY Options): Clarify example.
5381
7958a2a6
FJ
53822004-05-11 Fariborz Jahanian <fjahanian@apple.com>
5383
5384 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
5385 Add const qualifier to altivec vector type if one is needed.
5386
32770746
PB
53872004-05-11 Paul Brook <paul@codesourcery.com>
5388
5389 * flags.h (flag_short_enums): Update comment.
5390 * opts.c (decode_options): Set flag_short_enums to 2.
5391 * toplev.c (flag_short_enums): Update comment.
5392 (process_options): Call default_short_enums target hook.
5393
78f59f3e
AP
53942004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
5395
5396 PR target/14063
5397 * config/rs6000/altivec.md (altivec_dssall):
5398 Change to unspec_volatile.
5399 (altivec_dss): Likewise.
5400
39302b6a
AH
54012004-05-10 Aldy Hernandez <aldyh@redhat.com>
5402
5403 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
5404 vnor.
5405 ("one_cmplv8hi2"): Same.
5406 ("one_cmplv4si2"): Same.
5407
726d4cb7
KK
54082004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
5409
5410 PR target/15130
5411 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
5412 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
5413 into account. Compute the correct number of general registers
5414 for the return value. Generate a special push/pop sequence when
5415 failing to get a temporary register for non SHmedia epilogue.
5416 (sh_expand_epilogue): Add an argument to show whether it's for
5417 sibcall or not. Set the 3rd argument of output_stack_adjust to
5418 -1 if needed.
5419 (sh_need_epilogue): Call sh_expand_epilogue with 0.
5420 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
5421 with 1.
5422 (epilogue): Call sh_expand_epilogue with 0.
5423
0c196bf9
AP
54242004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
5425
5426 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
5427 goto a cleanup label. After the cleanup, free the allocated memory.
5428
16cfa3dc
ZL
54292004-05-10 Ziemowit Laski <zlaski@apple.com>
5430
5431 * config/rs6000/altivec.h (vec_sld): Add overloads for
5432 argument/return types of 'vector bool int', 'vector bool short'
5433 and 'vector bool char'.
5434
3358cae0
ZW
54352004-05-10 Zack Weinberg <zack@codesourcery.com>
5436
5437 * c-decl.c (store_parm_decls_newstyle): Correct test for a
5438 nested function.
5439
62d45923
RS
54402004-05-10 Richard Sandiford <rsandifo@redhat.com>
5441
5442 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
5443 treating missing ones as "".
5444 * config/mips/mips.md: Remove constraints from match_operands and
5445 match_scratches if they appear in define_expands (except reload*),
5446 define_peephole2s, define_splits or attribute specifications.
5447 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
5448 constraint strings.
5449
b2d04ecf
AM
54502004-05-10 Alan Modra <amodra@bigpond.net.au>
5451
5452 * config/rs6000/rs6000.c (function_arg_boundary): Always align
5453 AltiVec vectors.
5454 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
5455 vectors by refererence. Align the same for TARGET_64BIT to a 16
5456 byte boundary. Remove useless code. Add function comment.
5457 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
5458 call to where it belongs.
5459 (function_arg_partial_nregs): Return true for all TARGET_32BIT
5460 -mabi=no-altivec AltiVec vectors. Fix debug output.
5461 (rs6000_va_arg): Adjust for AltiVec change.
5462
b6685939
PB
54632004-05-10 Paul Brook <paul@codesourcery.com>
5464
5465 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5466 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5467 (TARGET_DOUBLEWORD_ALIGN): Use it.
5468 (WCHAR_TYPE): Define.
5469 (WCHAR_SIZE_TYPE): Define.
5470 (SIZE_TYPE): Define.
5471
4ed78545
AM
54722004-05-10 Alan Modra <amodra@bigpond.net.au>
5473
5474 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
5475 when size is 8 bytes.
5476 (function_arg_advance): Account for stack space used by AltiVec
3358cae0 5477 args when -mabi=altivec. Simplify alignment calculations. For
4ed78545
AM
5478 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
5479 (function_arg): Similarly.
5480 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
5481 not AltiVec ABI.
5482 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
5483 Correct alignment, and align before testing reg count. Remove
5484 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
5485 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
5486 TARGET_FPRS here..
5487 (rs6000_function_value): .. not here before call.
5488
f350ff00
AH
54892004-05-09 Aldy Hernandez <aldyh@redhat.com>
5490
5491 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
5492
eecec698
ZW
54932004-05-09 Zack Weinberg <zack@codesourcery.com>
5494
5495 PR 15007
5496 * c-decl.c (current_file_decl): Rename to all_translation_units,
5497 adjust comment.
5498 (pop_scope): If popping file_scope, construct a
5499 TRANSLATION_UNIT_DECL and make it the context of all the
5500 symbols in the scope.
5501 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
5502 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
5503 anything to current_file_decl.
5504 (pushdecl_top_level): Likewise.
5505 (store_parm_decls_newstyle): Adjust check for nested function.
4ed78545
AM
5506 (c_write_global_declarations): Update for renamed variable.
5507
2aa4498c
AH
55082004-05-09 Aldy Hernandez <aldyh@redhat.com>
5509
5510 * config/rs6000/rs6000-protos.h
5511 (rs6000_conditional_register_usage): Protoize.
5512
5513 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
5514
5515 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
5516 function.
5517
8dc2384c
RS
55182004-05-08 Roger Sayle <roger@eyesopen.com>
5519
5520 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
5521 where op is a comparison operator and C1 and C2 are integer constants
5522 into a range check.
5523 (fold): Call fold_div_compare.
5524
ae81c844
EB
55252004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
5526
5527 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
5528 problems with earlier versions of the GNU compiler.
5529
0d1fbc8c
AH
55302004-05-07 Aldy Hernandez <aldyh@redhat.com>
5531
5532 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
5533 Declare.
5534
5535 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
5536 (rs6000_hard_regno_mode_ok): New.
5537 (rs6000_init_hard_regno_mode_ok): New.
5538 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
5539
5540 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
5541 result.
5542
f95d9272
ZL
55432004-05-07 Ziemowit Laski <zlaski@apple.com>
5544
5545 * config/rs6000/altivec.h (vector, pixel, bool): Do not
5546 define as macros #ifdef __APPLE_ALTIVEC__.
5547
55482004-05-07 Fariborz Jahanian <fjahanian@apple.com>
5549
36a454e1
FJ
5550 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
5551 Generate appropriate parallels for vector arguments
5552 passed to vararg functions. (function_arg): make the call
5553 to rs6000_mixed_function_arg for vector args as needed.
eecec698 5554
f7dbd289
RS
55552004-05-07 Richard Sandiford <rsandifo@redhat.com>
5556
5557 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
5558 EABI_FLOAT_VARARGS_P.
5559
5c8a81d5
RS
55602004-05-07 Richard Sandiford <rsandifo@redhat.com>
5561
5562 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
5563 * config/mips/mips.c (override_options): Disable branch likely
5564 instructions if TUNE_MIPS5500.
5565
9045f39a
RS
55662004-05-07 Richard Sandiford <rsandifo@redhat.com>
5567
5568 * config/mips/mips.c (override_options): Allow the hi and lo registers
5569 to store any integral mode, not just MODE_INTs.
5570
bc21b3f3
PB
55712004-05-07 Paul Brook <paul@codesourcery.com>
5572
5573 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
5574 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
5575 (TARGET_DOUBLEWORD_ALIGN): Use it.
5576 (WCHAR_TYPE): Define.
5577 (WCHAR_SIZE_TYPE): Define.
5578 (SIZE_TYPE): Define.
5579
2484cc35
UB
55802004-05-07 Uros Bizjak <uros@kss-loka.si>
5581
5582 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
5583 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
5584
7600f094
AP
55852004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
5586
5587 * loop-doloop.c (doloop_valid_p): Make sure that body
5588 gets freed.
5589
bfb23806
EB
55902004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
5591
5592 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
5593 declaration.
5594 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
5595 (sparc_skip_caller_unimp): New global variable.
5596 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
5597 Use it instead of SKIP_CALLERS_UNIMP_P.
5598 * config/sparc/sparc.md (call expander): Add sanity check.
5599 (call_address_struct_value_sp32): Re-sync with expander.
5600 (call_symbolic_struct_value_sp32): Likewise.
5601 (return peepholes): Use 'sparc_skip_caller_unimp' instead
5602 of custom predicate.
5603
92ff0c41
EB
56042004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
5605
5606 PR c++/14962
5607 * c-pragma.c (handle_pragma_redefine_extname): Only change
5608 the assembler name of FUNCTION_DECLs and VAR_DECLs.
5609
c2fcfa4f
UB
56102004-05-07 Uros Bizjak <uros@kss-loka.si>
5611
5612 * optabs.h (enum optab_index): Add new OTI_log1p.
5613 (log1p_optab): Define corresponding macro.
5614 * optabs.c (init_optabs): Initialize log1p_optab.
5615 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
5616 patterns.
5617 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
5618 using log1p_optab.
5619 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
5620 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5621
5622 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
5623
5624 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
5625 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
5626 Prototype here.
5627 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
5628 x87's fyl2xp1 instruction.
5629 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
5630 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
5631 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
5632 log1p and log1pl built-ins as inline x87 intrinsics.
5633
4d980568
LR
56342004-05-07 Loren James Rittle <ljrittle@acm.org>
5635
3c4392aa 5636 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4d980568
LR
5637 * config/arm/freebsd.h: Likewise.
5638 * config/ia64/freebsd.h: Likewise.
5639 * config/sparc/freebsd.h: Likewise.
5640
afce2847
HPN
56412004-05-07 Hans-Peter Nilsson <hp@axis.com>
5642
5643 PR optimization/15296
5644 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5645 getting last consecutive label at a branch.
5646 (relax_delay_slots): Similar, near top of loop.
5647
9acf97b6
JDA
56482004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5649
5650 PR target/15202
5651 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5652 register to general register.
5653
19fb36e3
AM
56542004-05-07 Alan Modra <amodra@bigpond.net.au>
5655
5656 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5657 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5658 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5659 (STACK_BOUNDARY): Delete.
5660
db643b91 56612004-05-06 Stuart Hastings <stuart@apple.com>
2484cc35 5662
db643b91
SH
5663 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5664 mistakenly clobbered by 1.423.
19fb36e3 5665
dc884a86
RS
56662004-05-06 Richard Sandiford <rsandifo@redhat.com>
5667
5668 * doc/invoke.texi: Document -mvr4130-align.
5669 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5670 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5671 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5672 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5673 * config/mips/mips.md: Include sched-int.h.
5674 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5675 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5676 (override_options): Enable -mvr4130-align at -O3 and above.
5677 (mips_sim_insn): New variable.
5678 (mips_sim): New structure.
5679 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5680 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5681 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5682 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5683 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5684 (mips_reorg): Call vr4130_align_insns.
5685 (vr4130_last_insn): New variable.
5686 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5687 (vr4130_swap_insns_p, vr4130_reorder): New functions.
5688 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5689 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5690 (mips_use_dfa_pipeline_interface): Return true for the same.
5691 * config/mips/4130.md: New file.
5692 * config/mips/mips.md: Include it. Add a peephole2 to convert
5693 "mult;mflo" into "mtlo;macc".
5694 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5695 target of maccs.
5696 (*msac_using_macc): New pattern.
5697
615ccdd3
RS
56982004-05-06 Richard Sandiford <rsandifo@redhat.com>
5699
5700 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5701 (ir_vr55_hilo): Split into...
5702 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5703 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5704 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
5705 Add various multiplication bypasses.
5706 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5707 multiplication.
5708
152e3565
UB
57092004-05-06 Uros Bizjak <uros@kss-loka.si>
5710
5711 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5712 attribute to "XF".
5713
5ae27cfa
UB
57142004-05-05 Uros Bizjak <uros@kss-loka.si>
5715
5716 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
152e3565 5717 (fmod_optab, drem_optab): Define corresponding macros.
5ae27cfa
UB
5718 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5719 * genopinit.c (optabs): Implement fmod_optab and drem_optab
5720 using fmod?f3 and drem?f3 patterns.
5721 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5722 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5723 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5724 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5725 flag_unsafe_math_optimizations is set.
5726
5727 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5728 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5729
5730 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5731 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5732 Prototype here.
5733 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5734 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5735 fprem and fprem1 instructions.
5736 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5737 Rename insn definition to x86_fnstsw_1.
5738 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5739 x87 instructions.
5740 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5741 and fmodl built-ins as inline x87 intrinsics.
5742 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5743 and dreml built-ins as inline x87 intrinsics.
5744
cf9c6ca5
RS
57452004-05-05 Roger Sayle <roger@eyesopen.com>
5746
5747 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5748
32dd2dc9
ILT
57492004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
5750
5751 PR driver/9822
5752 * doc/invoke.texi (Spec Files): Remove documentation of %c.
5753
4a6f766d
CD
57542004-05-05 Chris Demetriou <cgd@broadcom.com>
5755
5756 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5757 representation.
5758
fdd695fd
PB
57592004-05-06 Paul Brook <paul@codesourcery.com>
5760
5761 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5762 (arm_coproc_mem_operand): ... To this.
5763 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5764 (arm_legitimate_index_p): Ditto.
5765 (vfp_mem_operand): Rename ...
5766 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
5767 (vfp_secondary_reload_class): Use it.
5768 (output_move_double): Use doubleword load/store instructions.
5769 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5770 * config/arm/arm.h (TARGET_LDRD): Define.
5771 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5772 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5773 New splitter for invalid doubleword loads.
5774 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5775 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5776 * doc/md.texi: Document Uy constraint.
5777
59af0b6a
JH
57782004-05-05 Jan Hubicka <jh@suse.cz>
5779
5780 PR opt/14980
5781 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5782 inline clones.
5783
9953b5e1
L
57842004-05-05 H.J. Lu <hongjiu.lu@intel.com>
5785
5786 PR target/15290
5787 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5788 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5789
e3c287c9
MS
57902004-05-05 Mike Stump <mrs@apple.com>
5791
5792 * config/darwin-c.c (add_framework): Copy the directory name as it
5793 can be freed later. Also, ensure we always allocate enough room
5794 for the cached framework information.
5795 (find_subframework_header): Keep track of the directory where the
5796 subframework header was found.
5797 (framework_construct_pathname): Speed up by not trying to re-add a
5798 framework.
5799 * cppfiles.c (search_path_exhausted): Arrange for the missing
5800 header callback to be able to set the directory where the header
5801 was found.
5802 (cpp_get_dir): Add.
5803 * cpplib.h (missing_header_cb): Add a parameter.
5804 (cpp_get_dir): Add.
5805
58062004-05-03 Mike Stump <mrs@apple.com>
4bed3787
MS
5807
5808 * doc/invoke.texi (Directory Options): Document -iquote.
5809 * doc/cpp.texi: Likewise.
5810 * doc/cppopts.texi: Likewise.
5811 * c-opts.c (c_common_missing_argument): Add -iquote processing.
5812 (c_common_handle_option): Likewise.
5813 * c.opt (iquote): Add.
5814 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5815 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5816
5817 * c-opts.c (case OPT_I): Deprecate -I- support.
5818 * doc/invoke.texi: Likewise.
5819 * doc/cpp.texi: Likewise.
5820 * doc/cppopts.texi: Likewise.
5821
bb8a619e
SB
58222004-05-05 Steven Bosscher <stevenb@suse.de>
5823
5824 * basic-block.h (free_basic_block_vars): Update prototype.
5825 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5826 argument.
5827 (life_analysis): Update call.
5828 * ifcvt.c (if_convert): Likewise.
5829 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5830 * passes.c (rest_of_handle_final): Likewise.
5831 (rest_of_compilation): Likewise.
5832 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5833
5834 * emit-rtl.c (next_real_insn): Use INSN_P.
5835 (prev_real_insn): Likewise.
5836
2e592dce
EC
58372004-05-05 Eric Christopher <echristo@redhat.com>
5838
5839 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5840 representation.
5841
7c62e993
PB
58422004-05-05 Paolo Bonzini <bonzini@gnu.org>
5843
5844 * config/rs6000/rs6000.c (build_opaque_vector_type):
5845 New function.
5846 (rs6000_init_builtins): Use it.
5847
87fac4e3
BG
58482004-05-04 Bernard Giroud <bgiroud2@free.fr>
5849
5850 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5851 (func_table): Change type from char ** to vms_func_ref.
5852 (write_rtnbeg): Update to reflect func_table change. Use
5853 fde->funcdef_number instead of rtnnum in output.
5854 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5855
cc27e657
PB
58562004-05-04 Paolo Bonzini <bonzini@gnu.org>
5857 Richard Henderson <rth@redhat.com>
5858
5859 PR target/14899
5860
5861 * c-common.c (vector_types_convertible_p): New function.
5862 * c-typeck.c (comptypes): Recurse on vector types.
5863 (convert_for_assignment): Use vector_types_convertible_p.
5864 (digest_init): Use vector_types_convertible_p to check
5865 validness of constant vector initializers; otherwise treat
5866 them as scalars.
5867 * tree.c (make_or_reuse_type): New.
5868 (build_common_tree_nodes): Use it.
5869 * cp/call.c (standard_conversion): Likewise.
5870 * cp/typeck.c (comptypes): Recurse on vector types.
5871 (convert_for_assignment): Use vector_types_convertible_p.
cc27e657 5872
6fc8a30a
CD
58732004-05-04 Chris Demetriou <cgd@broadcom.com>
5874
5875 * config/mips/mips.c (override_options): Default to no
5876 generation of branch-likely operations when tuning for
5877 CPUs where they tend to have a negative performance impact
5878 (e.g., SB-1).
5879
6c89c39a
RK
58802004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5881
5882 * expr.c (store_constructor_field): Don't call store_constructor
5883 if bitsize is not a multiple of a byte.
5884
b5ba341f
RS
58852004-05-04 Richard Sandiford <rsandifo@redhat.com>
5886
5887 * reload1.c (inherit_piecemeal_p): New function.
5888 (emit_reload_insns): When reloading a group of hard registers, use
5889 inherit_piecemeal_p to decide whether the values of individual hard
5890 registers can be inherited.
5891
c6c8779b
L
58922004-05-04 H.J. Lu <hongjiu.lu@intel.com>
5893
5894 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5895 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5896 * config/t-linux (LIB2ADDEHDEP): Likewise.
5897
82c732f9
PB
58982004-05-04 Paul Brook <paul@codesourcery.com>
5899
5900 * config/arm/crti.asm: Push an even number of registers.
5901 * config/arm/crtn.asm: And restore them. Load via sp.
5902
92e838e2
PB
59032004-05-04 Paolo Bonzini <bonzini@gnu.org>
5904
5905 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5906 Collect overhead information.
5907 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
5908 parameter and pass it through.
5909 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
5910 MEM_STAT_DECL parameter and pass it through.
5911 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
5912 MEM_STAT_DECL parameter and pass it through.
5913
d8ecbcdb
AH
59142004-05-03 Aldy Hernandez <aldyh@redhat.com>
5915
5916 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5917
5918 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5919
5920 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5921 rs6000_hard_regno_nregs.
5922
2f7e5a0d
EC
59232004-05-03 Eric Christopher <echristo@redhat.com>
5924
5925 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5926 prologue insn instead of setting up call.
5927 (s390_emit_epilogue): Ditto.
5928 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5929 (define_constants): Add numbers for above patterns.
5930
38899e29
EC
59312004-05-03 Eric Christopher <echristo@redhat.com>
5932
5933 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5934 * config/s390/s390.c (s390_conditional_register_usage): ...here.
5935 * config/s390/s390-protos.h: Prototype.
5936
97d62313
JB
59372004-05-03 Joe Buck <jbuck@welsh-buck.org>
5938
5939 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5940 assignment.
5941
03a53989
EC
59422004-05-03 Eric Christopher <echristo@redhat.com>
5943
5944 * config/mips/mips.md: Fix branch length attribute definition.
5945
318fec6d
AH
59462004-05-03 Aldy Hernandez <aldyh@redhat.com>
5947
5948 * config.gcc: Remove --enable-altivec support.
5949
5950 * config/rs6000/altivec-defs.h: Remove.
5951
553cba65
RO
59522004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5953
5954 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5955 * fixinc/fixincl.x: Regenerate.
5956
6adcf89d
UB
59572004-05-03 Uros Bizjak <uros@kss-loka.si>
5958
5959 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5960 definition.
5961 (log?f2, log10?f2, log2?f2): Reimplement expanders with
5962 float_truncate insn.
5963 (*fxtractsf3, *fxtractdf3): Remove insn definition.
5964 (logb?f2): Reimplement expanders with float_truncate insn.
5965
834eb1f0
GS
59662004-05-03 Graham Stott <graham.stott@btinternet.com>
5967
5968 PR 14718
5969 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5970 force_type_die for CONST_DECL.
5971
bb8a619e
SB
59722004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
5973 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
178af0f3
EB
5974
5975 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5976 tm-dwarf2.h to tm_file.
5977 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5978 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5979 (ASM_DEBUG_SPEC): Delete.
5980
7a8e07c7
UB
59812004-05-03 Uros Bizjak <uros@kss-loka.si>
5982
5983 * optabs.h (enum optab_index): Add new OTI_expm1.
5984 (expm1_optab): Define corresponding macro.
5985 * optabs.c (init_optabs): Initialize expm1_optab.
5986 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5987 patterns.
5988 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5989 using expm1_optab.
5990 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5991 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5992
5993 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5994 to implement expm1, expm1f and expm1l built-ins as inline x87
5995 intrinsics.
5996
5f2b9599
AO
59972004-05-02 Alexandre Oliva <aoliva@redhat.com>
5998
5999 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
6000 * config/frv/frv.md (*return_true, *return_false): New patterns.
6001
1e5b67ff
KH
60022004-05-02 Kazu Hirata <kazu@cs.umass.edu>
6003
6004 * rtl.h (PHI_NODE_P): Remove.
6005
cfa29a4c
EB
60062004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
6007
6008 PR middle-end/14988
6009 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
6010 when passed -2 as 'align'.
6011 (put_var_into_stack): Use 'bool' as the type for the three local
6012 predicates. Adjust calls to put_reg_into_stack.
6013 When passed a CONCAT, instruct put_reg_into_stack to use
6014 a consecutive stack slot for the second part.
6015 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
6016 'consecutive_p' parameter. Turn the three predicates into 'bool'
6017 parameters. Retrieve the register mode from 'reg'.
6018 When consecutive_p is true, instruct assign_stack_local_1 to use
6019 BITS_PER_UNIT alignment.
6020 (put_addressof_into_stack): Use 'bool' as the type for the two
6021 local predicates. Adjust call to put_reg_into_stack.
6022
fc627530
KG
60232004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6024
6025 * fold-const.c (fold_convert_const, fold): Add missing
6026 FIX_ROUND_EXPR case.
6027
afbe7e61
AO
60282004-05-02 Alexandre Oliva <aoliva@redhat.com>
6029
9850f34a
AO
6030 * configure.ac (FLEX, BISON): Only use tools from the build tree
6031 if build equals host.
6032 * configure: Rebuilt.
6033
764678d1
AO
6034 * config/frv/frv-protos.h (frv_expand_epilogue,
6035 frv_expand_fdpic_call): Add bool argument.
6036 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
6037 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
6038 (frv_expand_epilogue): Use new argument to decide whether to emit
6039 return instruction or copy the return address to LR.
6040 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
6041 sibcalls.
6042 (sibcall_operand): New.
6043 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
6044 PLUS nor LABEL_REF. Add sibcall_operand.
6045 * config/frv/frv.md (call, call_value): Pass false to
6046 frv_expand_fdpic_call.
6047 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
6048 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
6049 sibcall_value_internal, sibcall_value_fdpicdi): New.
6050 (return_unsigned_true, return_unsigned_false): New.
6051 (epilogue): Adjust call to frv_expand_epilogue.
6052 (sibcall_epilogue): New.
6053
afbe7e61
AO
6054 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
6055 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
6056 before redefining them.
6057
ca3df643
KG
60582004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6059
6060 * builtins.c (fold_fixed_mathfn): New function.
6061 (fold_builtin_lround, fold_builtin): Use it.
6062
f2c0cb15
JJ
60632004-05-01 Jakub Jelinek <jakub@redhat.com>
6064
6065 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
6066 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
6067
ea2637eb
KH
60682004-05-01 Kazu Hirata <kazu@cs.umass.edu>
6069
6070 * config/cris/cris.h: Revert my "fix comment typos" patch.
6071
d0cb84e9
RS
60722004-05-01 Richard Sandiford <rsandifo@redhat.com>
6073
6c3db3ab 6074 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
d0cb84e9 6075
ebade076
FH
60762004-05-01 Falk Hueffner <falk@debian.org>
6077
6078 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
6079 builtin_insll): Disallow 0 as first input operand.
6080
0962c33d
FH
60812004-05-01 Falk Hueffner <falk@debian.org>
6082
6083 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
6084
e2655d15 60852004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
03a53989 6086
e2655d15 6087 PR middle-end/15054
03a53989 6088 * expr.c (expand_expr_real): Do not call preserve_temp_slots
e2655d15
UW
6089 on a TARGET_EXPR temp.
6090 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
6091 TARGET_EXPR temp slots.
6092
77306e3e
PB
60932004-05-01 Paolo Bonzini <bonzini@gnu.org>
6094
6095 * simplify-rtx.c (simplify_ternary_operation): When
6096 converting an IF_THEN_ELSE to a relational op, return
6097 correct mode.
6098
3bf05748
KG
60992004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6100
6101 * builtins.c (fold_builtin_round): Fix comment typo.
6102 (fold_builtin_lround): New function.
6103 (fold_builtin): Use it.
6104
c0873231
AP
61052004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
6106
6107 PR target/11608
6108 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
6109 more like the one in config/dbxelf.h.
6110
5c5214a9
ZW
61112004-04-30 Zack Weinberg <zack@codesourcery.com>
6112
6113 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
6114 and adjust definition accordingly.
6115 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
6116 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
6117 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
6118 VECTOR_TYPE.
6119
67214984
JM
61202004-04-30 Jason Merrill <jason@redhat.com>
6121
6122 PR c++/14587
6123 * config/i386/winnt.c (associated_type): Look for attributes on
6124 the TYPE_MAIN_VARIANT of *this.
6125 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
6126 apply the attributes to the variants.
6127
b73f075a
PB
61282004-04-30 Paul Brook <paul@codesourcery.com>
6129
6130 * config.gcc: Simplify arm --with-{cpu,tune} test.
6131 * config/arm/arm-cores.def: Document whitespace restrictions.
6132
5076da17
RO
61332004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6134
6135 PR other/1963
6136 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
6137
8a897bf9 61382004-04-30 Brian Ford <ford@vss.fsi.com>
bb8a619e
SB
6139 DJ Delorie <dj@redhat.com>
6140
6141 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6142 (DWARF2_DEBUGGING_INFO): Define to enable.
6143 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
6144 DWARF2.
6145 * configure.ac (Target-specific assembler checks)
6146 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
6147 relocs.
6148 * configure: Regenerate.
6149 * config.in: Likewise.
6150
6151 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
6152 (ASM_OUPUT_DWARF_OFFSET): Define.
8a897bf9 6153
ed9676cf
AK
61542004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6155
6156 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
6157 (s390_emit_call): New function prototype added.
6158 (s390_tls_get_offset): Function removed.
6159 * config/s390/s390.c (s390_function_ok_for_sibcall,
6160 s390_call_saved_register_used_p): New functions.
6161 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
6162 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
6163 (s390_emit_tls_call_insn): New function.
6164 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
6165 emit_call_insn.
6166 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5c5214a9 6167 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
ed9676cf 6168 added.
5c5214a9 6169 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
ed9676cf
AK
6170 register number used to hold the target address for sibcalls.
6171 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
6172 New expanders.
5c5214a9 6173 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
ed9676cf 6174 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5c5214a9 6175 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
ed9676cf
AK
6176 Expanders removed.
6177 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5c5214a9 6178 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
ed9676cf
AK
6179 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
6180 ("epilogue"): Changed the call to s390_emit_epilogue to use the
6181 new parameter.
6182
1ae58c30
KH
61832004-04-30 Kazu Hirata <kazu@cs.umass.edu>
6184
6185 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
6186 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
6187 reg-stack.c, varasm.c, config/alpha/ev4.md,
6188 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
6189 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
6190 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
6191 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
6192 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
6193 config/ia64/itanium2.md, config/ip2k/ip2k.c,
6194 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
6195 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
6196 comment typos.
6197
78011587
PB
61982004-04-30 Paul Brook <paul@codesourcery.com>
6199
2d84a437 6200 * config.gcc: Default ep9312 to hard-float.
78011587
PB
6201 * config/arm/arm-cores.def: Add ARCH field.
6202 * config/arm/arm.c (FL_FOR_ARCH*): Define.
6203 (arm_arch_cirrus): New variable.
6204 (all_cores): Set and use arch.
6205 (all_architectures): Ditto.
6206 (arm_arch_name): New variable.
6207 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
6208 Set and use arm_arch_cirrus.
6209 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
6210 (enum processor_type): Update ARM_CORE define.
6211 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
6212 (CPP_SPEC): Remove %(cpp_cpu_arch).
6213 (CPP_ARCH_DEFAULT_SPEC): Remove.
6214 (CPP_CPU_ARCH_SPEC): Remove.
6215 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
6216 (FPUTYPE_DEFAULT): Don't define here.
6217
e344dbf3
R
62182004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
6219
6220 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
6221 updates too.
6222
65a939f7
PB
62232004-04-30 Paul Brook <paul@codesourcery.com>
6224
6225 * arm.c (arm_needs_doubleword_align): Use mode alignment.
6226
0bf87ea5
PB
62272004-04-30 Paolo Bonzini <bonzini@gnu.org>
6228
6229 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
6230 vec_sububs.
6231 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
6232 duplicates.
6233
a6bf61c7
UB
62342004-04-30 Uros Bizjak <uros@kss-loka.si>
6235
65a939f7
PB
6236 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
6237 atan2?f3 expanders.
a6bf61c7 6238
150e407a
NC
62392004-04-29 Nick Clifton <nickc@redhat.com>
6240
6241 Bug 14093
6242 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
6243 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
6244 Delete static from definition.
6245 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
6246
6862f97f
UB
62472004-04-30 Uros Bizjak <uros@kss-loka.si>
6248
65a939f7
PB
6249 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
6250 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
6251 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
6252 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6862f97f 6253
c65a01af
RG
62542004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
6255
6256 * commom.opt (Wfatal-errors): Add it.
6257 * diagnostic.c (flag_fatal_errors): Define it.
6258 (diagnostic_action_after_output): Check for flag_fatal_errors.
6259 * flags.h (flag_fatal_errors): Declare it.
6260 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
6261 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
6262
d1c6a401
JZ
62632004-04-30 Josef Zlomek <zlomekj@suse.cz>
6264
6265 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
6266 blocks which have kill flag set.
6267
99c012a8
BE
62682004-04-29 Ben Elliston <bje@au.ibm.com>
6269
6270 * configure.ac (--with-as): Abort if user-supplied assembler
6271 cannot be executed.
6272 (--with-ld): Likewise for the linker.
6273 * configure: Regenerate.
6274
d2be4368
KG
62752004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6276
6277 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
6278 isn't NULL before using it.
6279
15a6f2c3
RS
62802004-04-29 Richard Sandiford <rsandifo@redhat.com>
6281
6282 PR target/15189
6283 * config/mips/mips.md (load_df_low): Use default length.
6284 (load_df_high, store_df_high): Likewise.
6285
effa5d5d
KH
62862004-04-29 Kazu Hirata <kazu@cs.umass.edu>
6287
6288 * config/mips/mips.md, config/mips/sb1.md,
6289 config/rs6000/rs6000.c: Fix comment typos.
6290
2b8a92de
KH
62912004-04-29 Kazu Hirata <kazu@cs.umass.edu>
6292
6293 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
6294 Fix comment typos.
6295
8fd58397
DR
62962004-04-29 Douglas B Rupp <rupp@gnat.com>
6297
6298 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
6299 (delete_if_ordinary): Use above macro.
6300 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
6301 Update copyright.
6302 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
6303
56141a6a
RE
63042004-04-29 Richard Earnshaw <rearnsha@arm.com>
6305
6306 * c-decl.c (get_parm_info): Use the correct tag keywords when
6307 warning about type declarations in prototypes.
6308
2682e19f
PB
63092004-04-29 Paul Brook <paul@codesourcery.com>
6310
6311 * config.gcc: Pull list of cores from arm-cores.def.
6312
c6fb08ad
PB
63132004-04-29 Paolo Bonzini <bonzini@gnu.org>
6314
6315 * combine.c (combine_simplify_rtx): Adjust call to use
6316 simplify_relational_operation. Do not use SELECT_CC_MODE
6317 when a comparison already has a MODE_CC mode.
0bf87ea5
PB
6318
63192004-04-29 Paolo Bonzini <bonzini@gnu.org>
6320
c6fb08ad
PB
6321 (simplify_set): simplify_relational_operation may now
6322 return another relational expression.
6323 * cse.c (fold_rtx): simplify_relational_operation now
6324 takes of computing the comparison mode.
6325 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
6326 remove dead code.
6327 (do_compare_rtx_and_jump): Likewise.
6328 * integrate.c (subst_constants): simplify_relational_operation
6329 may now return another relational expression.
6330 * simplify-rtx.c (simplify_gen_relational): Move most code to
6331 the new simplify_relational_operation and
6332 simplify_relational_operation_1 functions.
6333 (simplify_relational_operation): Rewritten.
6334 (simplify_relational_operation_1): New function.
6335 (simplify_ternary_operation): simplify_relational_operation
6336 may now return another relational expression.
5c5214a9 6337 (simplify_rtx): Remove unnecessary temp variable.
c6fb08ad 6338
f964bd29
UB
63392004-04-29 Uros Bizjak <uros@kss-loka.si>
6340
2682e19f
PB
6341 * reg-stack.c (swap_to_top): New function.
6342 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
6343 swap_to_top().
6344 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5c5214a9 6345 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2682e19f 6346 UNSPEC_FSCALE_EXP.
f964bd29 6347
2682e19f
PB
6348 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
6349 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
6350 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
6351 x87's fscale insn.
6352 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
6353 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
6354 patterns.
f964bd29 6355
cb83302c
SB
63562004-04-28 Serge Belyshev <1319@bot.ru>
6357
6358 PR 14944
6359 * coverage.c (read_counts_file): Fix usage of warning () call.
6360 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
6361
5ad7ae7f
BE
63622004-04-28 Ben Elliston <bje@au.ibm.com>
6363
6364 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
6365 options with "-" in the option index.
6366 (SPARC Options): Likewise.
6367 (M32R/D Options): Likewise.
6368
332d782c
KG
63692004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6370
6371 * convert.c (convert_to_integer): Convert (long)round -> lround,
6372 etc.
6373
90f81f99
AP
63742004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
6375
6376 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
6377 Return false if we do not have fp register.
6378 (addrs_ok_for_quad_peep): Rename to ...
6379 (mems_ok_for_quad_peep): this.
6380 Add check for volatile memory.
6381 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
6382 Rename to ...
6383 (mems_ok_for_quad_peep): this.
6384 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
6385 to peephole2's.
6386 (lfq_power2): New instruction.
6387 (stfq_power2): Likewise.
6388
902edd36
JH
63892004-04-28 Jan Hubicka <jh@suse.cz>
6390
6391 PR c/15004
6392 * function.c (do_warn_unused_parameter): Break out form ...
6393 (expand_function_end): ... here; warn only when not using cgraphunit.
6394 * function.h (do_warn_unused_parameter): Declare.
6395 * cgraphunit.c: Include function.h.
6396 (cgraph_finalize_function): Do unused parameter warning.
6397 * Makefile.in (cgraphunit.o): Depend on function.h
6398
a89f5df3
JM
63992004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
6400
6401 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
6402 calling install-info on $(DESTDIR)$(infodir)/dir already being
6403 present.
6404
40f0b3ee
PB
64052004-04-28 Paul Brook <paul@codesourcery.com>
6406
6407 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
6408
c2e2375e
UW
64092004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
6410
5c5214a9 6411 * gcse.c (find_moveable_store): Do not accept store insns with
c2e2375e
UW
6412 REG_EH_REGION note.
6413
9e1622ed
PB
64142004-04-28 Paul Brook <paul@codesourcery.com>
6415
6416 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
6417 * function.c (assign_temp): Ditto.
6418 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
6419
e0d4a859
PB
64202004-04-28 Paul Brook <paul@codesourcery.com>
6421
6422 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
6423
83532fb7
JZ
64242004-04-28 Josef Zlomek <zlomekj@suse.cz>
6425
6426 * var-tracking.c (variable_different_p): Add a parameter
6427 compare_current_location, compare current location of variable parts
6428 if it is true.
6429 (dataflow_set_different_1): Pass compare_current_location == false.
6430 (dataflow_set_different_2): Pass compare_current_location == false.
6431 (emit_notes_for_differences_1): Pass compare_current_location == true.
6432
cfa29496
UW
64332004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
6434
6435 * config/s390/s390.md ("casesi"): Mark jump table access as
6436 non-trapping and unchanging.
6437
23959f19
JDA
64382004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6439
6440 PR debug/14829
6441 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
6442 callers.
6443 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
6444 number for indexing hard_regno_nregs array.
5c5214a9 6445
2f70eed1
GK
64462004-04-27 Geoffrey Keating <geoffk@apple.com>
6447
6448 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
6449 * config/darwin-crt2.c: Only have contents on __ppc__.
6450
f1dfe704
BW
64512004-04-27 Bob Wilson <bob.wilson@acm.org>
6452
6453 * config/xtensa/xtensa.c (call_insn_operand): Check
6454 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
6455 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
6456 * config/xtensa/xtensa.md (call, call_value): Likewise.
6457
80408cac
WY
64582004-04-27 Wu Yongwei <adah@sh163.net>
6459
6460 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
6461 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
6462 (__gthread_mutex_init_function): Replace CreateMutex with
6463 initialization of custom mutex using CreateSemaphore.
6464 (__gthread_mutex_lock): Use InterlockedIncrement.
6465 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
6466 (__gthread_mutex_unlock): Use InterlockedDecrement and
6467 ReleaseSemaphore to unlock
6468 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
6469 __gthread_mutex_lock, __gthread_mutex_trylock,
6470 __gthread_mutex_unlock): Adjust to match inline versions in
6471 gthr-win32.h.
6472
70301b45
PB
64732004-04-27 Paul Brook <paul@codesourcery.com>
6474
6475 * config/arm/arm.c (arm_promote_prototypes): New function.
6476 (TARGET_PROMOTE_PROTOTYPES): Use it.
6477
4b763d77
PB
64782004-04-27 Paul Brook <paul@codesourcery.com>
6479
6480 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
6481
7053a0e2
BG
64822004-04-26 Bernard Giroud <bgiroud@free.fr>
6483
6484 * config/alpha.c (alpha_end_function): For OpenVMS gas,
6485 correctly output .pdesc directive before .end.
6486
6d7870d1
JW
64872004-04-26 James E Wilson <wilson@specifixinc.com>
6488
6489 Bug 14927
6490 * config/ia64/ia64.md (movxf): New local op0. Handle case where
6491 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
6492
7dd7fb88
ZW
64932004-04-26 Zack Weinberg <zack@codesourcery.com>
6494
6495 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
6496 * config/pa/pa-hpux10.h: Likewise.
6497 * config/pa/pa-hpux11.h: Likewise.
6498
488061c8
GK
64992004-04-26 Geoffrey Keating <geoffk@apple.com>
6500
6501 * doc/invoke.texi (Overall Options): Document default for -o
6502 for PCH files.
6503
2b92e7f5
RK
65042004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6505
6506 * builtins.c (expand_builtin_update_setjmp_buf): New function.
6507 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
6508 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
6509
3657dc3e
PB
65102004-04-26 Paul Brook <paul@codesourcery.com>
6511
6512 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
6513
778ebdd9
PB
65142004-04-26 Paul Brook <paul@codesourcery.com>
6515
6516 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
6517
7c95f621
RS
65182004-04-25 Roger Sayle <roger@eyesopen.com>
6519
6520 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
6521 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
6522 X % -1 as 0.
6523
29c246a7
HPN
65242004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
6525
6526 PR bootstrap/15141
6527 * except.c (connect_post_landing_pads): Delete insns after the
6528 barrier when generating a unwind_resume_libfunc call.
6529
95df09f0
RK
65302004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6531
6532 PR/c++ 15119
6533 * tree.c (substitute_placeholder_in_expr, case 4): New case,
6534 for TARGET_EXPR.
6535
65362004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
060c5f00
ZD
6537
6538 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6539 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
6540 inhibit_libc is defined.
6541
39ba1719
RS
65422004-04-25 Richard Sandiford <rsandifo@redhat.com>
6543
6544 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
6545 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
6546 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
6547 (TARGET_SCHED_VARIABLE_ISSUE): Define.
6548 (mips_adjust_cost): Move later in file, next to other sched hooks.
6549 (mips_macc_chains_last_hilo): New variable.
6550 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
6551 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
6552 * config/mips/mips.md (may_clobber_hilo): New attribute.
6553
d3535e80
RS
65542004-04-24 Roger Sayle <roger@eyesopen.com>
6555 Bruce Korb <bkorb@gnu.org>
6556
6557 * fixinc/inclhack.def (aix_syswait_2): New fix.
6558 * fixinc/fixincl.x: Regenerate.
6559 * fixinc/tests/base/sys/wait.h: Update for new test.
6560
44688022
AM
65612004-04-24 Alan Modra <amodra@bigpond.net.au>
6562
6563 PR target/14960
6564 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
6565 to non_fixed_size, and leave out fixed_size from the sum.
6566 (generate_set_vrsave): Correct clobbers.
6567 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
6568 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
6569 (rs6000_libcall_value): Likewise.
6570 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
6571 (FUNCTION_ARG_REGNO_P): Likewise.
6572
77278891
UW
65732004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
6574
6575 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
6576 is a CONST_INT.
6577 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
6578 with NARROW_OP1 instead of OP1.
6579
170f9e63
UW
65802004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
6581
6582 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
6583 and __s390x__ hosts.
6584
d1c38823
ZD
65852004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6586
6587 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
6588 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
6589 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
6590 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
6591 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
6592 * builtins.c (expand_builtin_fork_or_exec): New.
6593 (expand_builtin): Call it.
6594 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
6595 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
6596 * c-common.c (PID_TYPE): New macro.
6597 (c_common_nodes_and_builtins): Initialize pid_type_node.
6598 * calls.c (special_function_p): Do not handle fork and exec.
6599 (expand_call): Do not handle ECF_FORK_OR_EXEC.
6600 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6601 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
6602 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
6603 __gcov_execv, __gcov_execvp, __gcov_execve): New.
6604 * tree.h (enum tree_index): Add TI_PID_TYPE.
6605 (pid_type_node): New macro.
6606 (ECF_FORK_OR_EXEC): Removed.
6607
1548580c
EB
66082004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
6609
6610 PR optimization/13985
6611 * cfgloopmanip.c (fix_loop_placements): New prototype.
6612 Call fix_bb_placements on the preheader of loops that have
6613 been reparented.
6614 (remove_path): Adjust call to fix_loop_placements.
6615
9b2d02a0
AP
66162004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
6617
6618 * config/darwin7.h: New file.
6619 * config.gcc (*-*-darwin*): Add darwin7.h if the
6620 version is greater than 6.
6621 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
6622 (MATH_LIBRARY): Wrap in ifdefs.
6623
01d4c813
DJ
66242004-04-23 Daniel Jacobowitz <drow@mvista.com>
6625
6626 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
6627 loading iWMMXt registers with a frame pointer. Use post-increment
6628 without a frame pointer.
6629 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
6630
7797ff53
PB
66312004-04-23 Paolo Bonzini <bonzini@gnu.org>
6632
6633 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
6634 mode" rather than "-funit-at-a-time" since -O2 enables it
6635 without requiring -f* options. Refer to -fprofile-generate and
6636 -fprofile-use correctly. Move -funit-at-a-time among options
6637 enabled by -O. Add information about unit-at-a-time caveats.
6638
500bee0a
PB
66392004-04-22 Per Bothner <per@bothner.com>
6640
6641 * line-map.h (struct line_maps): New field highest_line.
6642 (linemap_position_for_column): Make non-inline function.
6643 (LINEMAP_POSITION_FOR_COLUMN): New macro.
6644 * line-map.c (linemap_init): Clear highest_line field.
6645 (linemap_add): Set highest_line field.
6646 (linemap_line_start): Minor optimization - use highest_line field.
6647 Reduce maximum column hint to 10000. Update highest_line field.
6648 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
6649 * cpphash.h (struct cpp_reader): Remove line field - instead use
6650 line_table->highest_line.
6651 (saved_line): Remove unused field.
6652 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
6653 Use line_table's highest_line field instead of cpp_reader's line.
6654 * cpplib.c (start_directive): Likewise use highest_line field.
6655 (do_line, do_linemarker): Likewise just use newest map.
6656 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
6657 * cpperror.c (cpp_error): Likewise use highest_line field.
6658 * cppfiles.c (open_file_failed: Likewise.
6659 (cpp_make_system_header): Likewise use newest map and highest_line.
6660 * cppinit.c (cpp_create_reader): Don't initialize removed field.
6661 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6662 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6663 _cpp_lex_direct): Likewise use highest_line.
6664 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
6665 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
6666 and use newest map.
6667 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
6668 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
6669 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
6670
8efcd34f
AM
66712004-04-23 Alan Modra <amodra@bigpond.net.au>
6672
9344fdb9 6673 PR bootstrap/14992
8efcd34f
AM
6674 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6675 * config/linux.h (USE_LD_AS_NEEDED): Define.
6676 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6677 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6678 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6679 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6680 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6681 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6682 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6683
3092d0fc
PB
66842004-04-22 Per Bothner <per@bothner.com>
6685
6686 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
6687 Fixes PR preprocessor/15067.
6688
e203404e
AS
66892004-04-23 Andreas Schwab <schwab@suse.de>
6690
6691 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6692 avoid aliasing warning.
6693
bade3a00 66942004-04-22 Jan Hubicka <jh@suse.cz>
bdabb153 6695 Mostafa Hagog <mustafa@il.ibm.com>
bade3a00
JH
6696
6697 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6698 * cfgloopanal.c (expected_loop_iterations): Change the return value
6699
fb5d4a68
JJ
67002004-04-22 Jakub Jelinek <jakub@redhat.com>
6701
6702 * cselib.h (struct elt_loc_list): Remove canon_loc field.
6703 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6704 (cselib_invalidate_mem): Remove all canon_loc and canon_x
6705 traces.
6706
b10e5b3a
JZ
67072004-04-22 Josef Zlomek <zlomekj@suse.cz>
6708
6709 Revert
6710 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
6711
6712 * var-tracking.c (variable_part_different_p): Variable parts
6713 differ when the most recent locations differ.
6714
827555ea
RS
67152004-04-22 Richard Sandiford <rsandifo@redhat.com>
6716
6717 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6718 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6719 (embedded_pic_offset): Delete.
6720 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
6721 MASK_* constants.
6722 (TARGET_EMBEDDED_PIC): Delete.
6723 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6724 (ASM_SPEC): Remove -membedded-pic.
6725 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6726 (ASM_OUTPUT_CASE_LABEL): Likewise.
6727 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6728 * config/mips/windiss.h (ASM_SPEC): Likewise.
6729 * config/mips/mips.c (struct machine_function): Remove
6730 embedded_pic_fnaddr_rtx.
6731 (TARGET_ENCODE_SECTION_INFO): Remove override.
6732 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6733 (override_options): Remove -membedded-pic handling.
6734 (print_operand): Remove handling of '%S'.
6735 (mips_select_section: Remove -membedded-pic handling.
6736 (mips_encode_section_info): Delete.
6737 (mips_output_conditional_branch): Remove mention of -membedded-pic.
6738 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6739 -membedded-pic handling.
6740 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6741
00ca716b
AM
67422004-04-22 Alan Modra <amodra@bigpond.net.au>
6743
6744 * var-tracking.c (frame_base_decl): Remove useless GTY.
6745
e4463bf1
AH
67462004-04-21 Aldy Hernandez <aldyh@redhat.com>
6747
6748 * config/rs6000/rs6000.c (rs6000_override_options): Error when
6749 user wants altivec and e500 instructions.
6750
e24e0aa7
L
67512004-04-21 H.J. Lu <hongjiu.lu@intel.com>
6752
6753 PR target/14813
6754 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6755 in .init_array section to ...
6756 * config/ia64/crtbegin.asm: Here.
6757
6758 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6759 and hidden if HAVE_INITFINI_ARRAY is defined.
6760
cb7761f5
JW
67612004-04-21 James E Wilson <wilson@specifixinc.com>
6762
50d32cf6
JW
6763 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6764 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6765 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6766 (fp_register_operand, lo_operand): New.
6767 (mips_rtx_costs): Add TUNE_SB1 support.
6768 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
6769 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6770 (mips_multipass_dfa_lookahead): New.
6771 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6772 TUNE_SB1): New.
6773 (TARGET_SWITCHES): Add -mfp-exceptions support.
6774 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6775 (BRANCH_COST): Fix whitespace.
6776 * config/mips/mips.md: Include sb1.md.
6777 * config/mips/sb1.md: New file.
6778 * doc/invoke.texi: Document -mfp-exceptions.
6779
cb7761f5
JW
6780 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
6781 comment.
6782 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6783 (fixincl.o-warn): Delete.
6784
a031e781
AP
67852004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
6786
6787 * config/rs6000/rs6000 (print_operand) ['z']:
6788 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6789
06a6469a
DJ
67902004-04-21 Daniel Jacobowitz <drow@mvista.com>
6791
6792 * config.gcc: Support --with-arch=iwmmxt for ARM.
6793
665acd1e
RK
67942004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6795
6796 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6797 in two more places; remove unneeded force_reg
6798
f9da97f0
AP
67992004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
6800
6801 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6802 for TARGET_MACHO.
6803 (print_operand): For TARGET_MACHO check to see if we need a stub
6804 and output one if we need it.
de3c6d93
AP
6805
6806 PR debug/15033
6807 * dwarf2out.c (rtl_for_decl_location): Check for NULL
6808 rtl.
6809
75293ad6
JW
68102004-04-20 James E Wilson <wilson@specifixinc.com>
6811
6812 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6813 (vall_value_gp): Likewise.
6814
8b495402 68152004-04-20 DJ Delorie <dj@redhat.com>
7dd7fb88 6816
8b495402
DD
6817 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6818 variables stored in word registers, then in memory.
6819
77a705e4
EC
68202004-04-20 Eric Christopher <echristo@redhat.com>
6821
6822 * cp/parser.c (cp_parser_declaration): Move translate
6823 up before tokens are lexed.
6824
c56122d8
UB
68252004-04-20 Uros Bizjak <uros@kss-loka.si>
6826
6827 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6828 (asin_optab, acos_optab): Define corresponding macros.
6829 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6830 * genopinit.c (optabs): Implement asin_optab and acos_optab
6831 using asin?f2 and acos?f2 patterns.
6832 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6833 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6834 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6835 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6836
6837 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6838 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6839 acos, acosf and acosl built-ins as inline x87 intrinsics.
6840
386d3a16
PB
68412004-04-20 Paul Brook <paul@codesourcery.com>
6842
6843 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6844
7aebacee
PB
68452004-04-20 Paul Brook <paul@codesourcery.com>
6846
6847 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6848
a7b1dc36
PB
68492004-04-20 Paolo Bonzini <bonzini@gnu.org>
6850
6851 Revert part of 2004-04-17 change that moved -frename-registers
6852 to -O1. -frename-registers is buggy.
6853
6854 * toplev.c (flag_rename_registers): Initialize to 0.
6855 * doc/invoke.texi (Optimize options): Move -frename-registers
6856 to "Not triggered by any -O level" section. Adjust commentary
6857 accordingly.
77a705e4 6858
1548580c 68592004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
57bef48e
AP
6860
6861 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6862
169304de
RS
68632004-04-20 Richard Sandiford <rsandifo@redhat.com>
6864
6865 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6866 for mflo and mfhi instructions.
6867 (mips_output_move): Remove mflo and mfhi handling.
6868 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6869 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6870 Likewise various define_peephole2s.
6871 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6872 alternatives.
6873 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6874 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6875 (mfhilo_di, mfhilo_si): New patterns.
6876
c6ca23fb
JZ
68772004-04-20 Josef Zlomek <zlomekj@suse.cz>
6878
6879 * function.c (assign_parms): Force
6880 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6881
6f615a28
JZ
68822004-04-20 Josef Zlomek <zlomekj@suse.cz>
6883
6884 * var-tracking.c (variable_part_different_p): Variable parts differ
6885 when the most recent locations differ.
6886
a1bac22c
JW
68872004-04-19 James E Wilson <wilson@specifixinc.com>
6888
6889 * rtl.h (reg_set_last): Delete declaration.
6890 * rtlanal.c (reg_set_last): Delete.
6891
e419fe91
RS
68922004-04-19 Roger Sayle <roger@eyesopen.com>
6893
6894 * fold-const.c (fold_convert): Make function extern/public.
6895 * tree.h (fold_convert): Prototype here.
6896 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6897 expand_builtin_strrchr, expand_builtin_strpbrk,
6898 expand_builtin_mempcpy, expand_builtin_bcopy,
6899 expand_builtin_bzero, expand_builtin_memcmp,
6900 expand_builtin_strcmp, expand_builtin_strncmp,
6901 stabilize_va_list, expand_builtin_sprintf,
6902 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6903 fold_builtin_exponent, fold_builtin_mempcpy,
6904 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6905 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6906 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6907
423c1189
AH
69082004-04-19 Aldy Hernandez <aldyh@redhat.com>
6909
7dd7fb88
ZW
6910 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6911 (move_from_CR_gt_bit): New.
6912 (cceq_ior_compare): Name previously unnamed pattern. Disable for
6913 E500.
6914 (cceq_rev_compare): Name previously unnamed pattern. Allow for
6915 E500.
6916
6917 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6918 (tstsfeq_gpr): Same.
6919 (cmpsfgt_gpr): Same.
6920 (tstsfgt_gpr): Same.
6921 (cmpsflt_gpr): Same.
6922 (tstsflt_gpr): Same.
6923 (e500_cceq_ior_compare): New.
6924 (e500_flip_gt_bit): New.
6925
6926 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6927 (print_operand): Add 'c' and 'D'.
6928 (rs6000_generate_compare): Rewrite to generate correct rtl.
6929 (rs6000_emit_sCOND): Handle E500.
6930 (output_cbranch): Adjust for changes in rs6000_generate_compare.
6931 (output_e500_flip_gt_bit): New.
6932
6933 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6934 Protoize.
423c1189 6935
d2beeae7
EC
69362004-04-19 Eric Christopher <echristo@redhat.com>
6937
6938 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6939
06e7f299
DE
69402004-04-19 David Edelsohn <edelsohn@gnu.org>
6941
6942 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6943 fix information.
d2beeae7 6944
8df5a2b4
RO
69452004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6946
6947 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6948 download URL.
6949
9ca75f15
DJ
69502004-04-19 Daniel Jacobowitz <drow@mvista.com>
6951
6952 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6953 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
6954
4b493aa5
AP
69552004-04-19 Andrew PInski <pinskia@physics.uc.edu>
6956
66a5d24b
AP
6957 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6958 (fold_builtin): Update caller to match.
6959
4b493aa5
AP
6960 PR bootstrap/15009
6961 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6962
6963 PR bootstrap/14999
6964 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6965
3d8f2528
RK
69662004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6967
a3d71605
RK
6968 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6969
3d8f2528
RK
6970 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6971 (expand_mult_highpart_optab): Likewise.
6972 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6973
6f6c1f6d
PB
69742004-04-19 Paul Brook <paul@codesourcery.com>
6975
6976 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6977 floatunssisf2, floatunssidf2): New patterns.
6978
fea77ed9
MM
69792004-04-18 Mark Mitchell <mark@codesourcery.com>
6980
33adcb6c
MM
6981 PR other/14918
6982 * doc/invoke.texi (-fprofile-generate): Document requirement to
6983 use -fprofile-generate when linking.
6984
fea77ed9
MM
6985 * doc/extend.texi (Strong Using): Warn users against using this
6986 feature.
6987
76cbf5bf
RS
69882004-04-18 Richard Sandiford <rsandifo@redhat.com>
6989
6990 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6991 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6992 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6993 * config/mips/mips.c (struct mips16_constant): Renamed from struct
6994 constant. Propogate change throughout file.
6995 (struct machine_function): Remove insns_len.
6996 (mips_string_length, mips16_strings, string_constants): Delete.
6997 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6998 when generating mips16 code. Remove special mips16 treatment of
6999 string constants.
7000 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
7001 to have the form LABEL+CONSTANT.
7002 (mips_symbolic_address_p): Fix comment.
7003 (m16_usym8_4, m16_usym5_4): Delete.
7004 (mips_output_function_epilogue): Remove mips16 string handling.
7005 (mips_output_mi_thunk): Call mips16_lay_out_constants.
7006 (mips_select_section, mips_encode_section_info): Remove mips16
7007 string handling.
7008 (struct mips16_constant_pool): New.
7009 (add_constant): Take a mips16_constant_pool structure. Keep pool
7010 sorted into order of ascending mode size. Keep track of the highest
7011 possible start address, taking padding and the masking of the base PC
7012 value into account.
7013 (dump_constants_1): New function, split out from dump_constants.
7014 Handle vector constants. Use gen_consttable_{int,float} rather than
7015 separate functions for each mode.
7016 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
7017 rather than separate functions for each alignment.
7018 (mips_find_symbol): Delete.
7019 (mips16_insn_length): New function, split out from
7020 mips16_lay_out_constants.
7021 (mips16_rewrite_pool_refs): New function.
7022 (mips16_lay_out_constants): Rework. Remove string handling.
7023 Always create an inline constant pool.
7024 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
7025 (UNSPEC_ALIGN): New constants.
7026 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
7027 (UNSPEC_ALIGN_[248]): Delete.
7028 (consttable_int, consttable_float, align): New patterns.
7029 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
7030
8d33585c
AH
70312004-04-17 Aldy Hernandez <aldyh@redhat.com>
7032
7033 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
7034 __unn_args_eq.
7035
03e007d7
AM
70362004-04-17 Alan Modra <amodra@bigpond.net.au>
7037
7038 PR target/14715
7039 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
7040 with STARTING_FRAME_OFFSET.
7041
3bd06df7
RS
70422004-04-17 Richard Sandiford <rsandifo@redhat.com>
7043
7044 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
7045 * config/mips/mips.c (macc_msac_operand): New function.
7046 * config/mips/mips.md (*msac): Move after *macc.
7047 (*msac2): New. Generalize macc-related peepholes so that they apply
7048 to msac too.
7049
38d396e5
PB
70502004-04-17 Paolo Bonzini <bonzini@gnu.org>
7051
7052 * opts.c (decode_options): Do not enable flag_rename_registers
7053 and flag_web at -O3.
7054 * toplev.c (flag_rename_registers): Initialize
7055 flag_rename_registers and flag_web to
7056 AUTODETECT_FLAG_VAR_TRACKING.
7057 (default_debug_hooks): New global.
7058 (process_options): Initialize default_debug_hooks. Warn if
7059 -fvar-tracking specified but not supported by the current
7060 debug format. Do not run var tracking at -O0 or if not
7061 supported by the current debug format, even if
7062 -fvar-tracking was given. If -fno-rename-registers
7063 is not specified, always run register renaming if var
7064 tracking is supported by the default debugging information
7065 format for the target, and we are at -O1 or higher; similarly
7066 for -fweb, but only at -O2 or higher.
7067 * doc/invoke.texi (Optimize Options): Document this.
7068
82e923f6
RS
70692004-04-17 Richard Sandiford <rsandifo@redhat.com>
7070
7071 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
7072 * configure: Regenerate.
7073
f645e2bd
RS
70742004-04-17 Richard Sandiford <rsandifo@redhat.com>
7075
7076 * gcc.c (used_arg): Check whether an option has been removed.
7077
04db08db
RO
70782004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7079
7080 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
7081 debugging on Solaris 7 and up.
7082
7e270317
RO
70832004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7084
7085 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
7086 IRIX 5 port.
7087 Remove -save-temps workaround, handled automatically.
7088 Require GNU binutils 2.15 for debugging.
7089 Remove SGI make warnings since GNU make is now required.
7090 (Specific, mips-sgi-irix6): Some markup fixes.
7091 Describe MIPSpro C problems and workarounds.
7092 Mention working O32 ABI support.
7093 Recommend GNU as 2.15 for O32 with debugging.
7094 Remove description of fixed structure pass/return bug.
7095
2d49ce67
DD
70962004-04-16 DJ Delorie <dj@redhat.com>
7097
7098 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
7099 TYPE_FIELDS.
7100 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
7101
41067a2f
JDA
71022004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7103
e6b75edc
JDA
7104 * pa.md: Remove unnecessary declarations for asm_out_file.
7105
7945b276
JDA
7106 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
7107 SAR register. Fix comment.
7108 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
7109 (%cr11).
7110
41067a2f
JDA
7111 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
7112
c805f22e
NC
71132004-04-16 Nick Clifton <nickc@redhat.com>
7114
7115 * config/arm/arm.c (arm_override_options): Revert previous patch.
7116 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
7117 be safely built.
7118
7b14411a 71192004-04-16 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8a897efe
KI
7120
7121 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
7122 bug.
7123 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
7124 TARGET_DEFAULT): Changed. Ditto.
7125 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
7126 TARGET_ENDIAN_DEFAULT): Added. Ditto.
7127 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
7128 (TARGET_ENDIAN_DEFAULT): Added.
7129
b069dd3f
KG
71302004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7131
7132 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
7133 ATTR_CONST_NOTHROW_LIST.
7134
df28deda
KG
71352004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7136
7137 PR/middle-end 14915
7138 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
7139 BITS_BIG_ENDIAN.
7140
c87fbb0a
PH
71412004-04-15 Pat Haugen <pthaugen@us.ibm.com>
7142
7143 * ra-debug.c (ra_print_rtx): Add break's to case legs.
7144
ea7b98d0
JW
71452004-04-14 James E Wilson <wilson@specifixinc.com>
7146
7147 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
7148
69f9a345
NN
71492004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
7150
7151 * libada-mk.in: New file.
7152 * configure.ac: Create libada-mk from libada-mk.in.
7153 * configure: Regenerate.
7154
88b28a31
UB
71552004-04-14 Uros Bizjak <uros@kss-loka.si>
7156
7157 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
7158 (logb_optab, ilogb_optab): Define corresponding macros.
7159 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
7160 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
7161 using logb?f2 and ilogb?i2 patterns.
7162 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
7163 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
7164 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
7165 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7166
7167 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
7168 and UNSPEC_XTRACT_EXP.
7169
7170 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
7171 patterns to implement fxtract x87 instruction.
7172 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
7173 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
7174 intrinsics.
7175 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
7176 x87's fxtract insn.
7177
ec6e4092
EC
71782004-04-14 Eric Christopher <echristo@redhat.com>
7179
7180 * config/mips/t-elf: Enable multilibs by default.
7181
ef482a86
AT
71822004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
7183
7184 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
7185 previous fix to check HAVE_return at runtime too.
7186
cd2b7af0
NC
71872004-04-14 Nick Clifton <nickc@redhat.com>
7188
7189 * config/arm/arm.c (arm_override_options): If the user has not
7190 specified an ABI, then default to AAPCS for the iWMMXt processor.
7191 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
7192 * config/arm/t-xscale-coff: Likewise.
7193
61218d19
KG
71942004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7195
7196 * builtins.c (fold_builtin_isdigit): New.
7197 (fold_builtin): Handle BUILT_IN_ISDIGIT.
7198 * defaults.h: Add TARGET_DIGIT0 and sort.
7199 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
7200
a69934e0
KG
72012004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7202
7203 * builtins.c (fold_builtin_cabs, fold_builtin): Use
7204 `mathfn_built_in' to determine the new builtin.
7205 * fold-const.c (fold): Likewise.
7206
74b9f2d5
RS
72072004-04-14 Richard Sandiford <rsandifo@redhat.com>
7208
7209 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
7210 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
7211 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
7212 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
7213 (ASM_SPEC): Update accordingly.
7214 * config/mips/mips.c: Update after above renaming.
7215 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
7216 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
7217
540554f4
JW
72182004-04-13 James E Wilson <wilson@specifixinc.com>
7219
7220 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
7221 increment errorcount and return false instead of true.
7222
a072d43b
UB
72232004-04-13 Uros Bizjak <uros@kss-loka.si>:
7224
7225 * optabs.c (expand_twoval_unop): Reorder function arguments.
7226 * builtins.c (expand_builtin_mathfn_3): Update calls to
7227 expand_twoval_unop.
7228
7229 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
7230 and UNSPEC_TAN_TAN. Add missing comment.
7231
7232 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
7233 patterns to implement fptan x87 instruction.
7234 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
7235 and tanl built-ins as inline x87 intrinsics. Define corresponding
7236 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
7237 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
7238 x87's fptan insn.
7239
b50b729d
RH
72402004-03-13 Richard Henderson <rth@redhat.com>
7241
7242 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
7243 for LABEL_REFs.
7244
3a4bdd05
RH
7245 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7246 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
7247 * doc/invoke.texi: Update to match.
7248
73ad3de5
RH
7249 * varasm.c (unlikely_text_section): Use assemble_align instead of
7250 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
7251 correct alignment argument.
7252
9532c14f
UW
72532004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
7254
7255 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
7256 after setting reg_last_reload_reg for optional output reloads.
7257
3d3947a9
FJ
72582004-04-12 Fariborz Jahanian <fjahanian@apple.com>
7259
7260 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
7261 Definition of these two macros are corrected by adding
7262 matchine right paren.
7263
f778cbf0
JL
72642004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
7265
7266 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
7267
5ea9cb6e
RS
72682004-04-12 Roger Sayle <roger@eyesopen.com>
7269
7270 * config/i386/i386.c (output_387_reg_move): New function.
7271 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
7272 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
7273 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
7274 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
7275 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
7276
1c9766da
RK
72772004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7278
7279 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
7280 TYPE_DECL.
7281 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
7282 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
7283 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
7284 Use skip_simple_arithmetic to find SAVE_EXPR.
7285 (force_type_save_exprs, force_type_save_exprs_1): New functions.
7286 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
7287 Properly chain multiple pointers.
7288 (copy_tree_r): Copy a TYPE_DECL.
7289 * tree.c (variably_modified_type_p): Add some missing tests and
7290 make some other minor changes.
7291 * tree.h (force_type_save_exprs): New declaration.
7292
1e9b78b0
RS
72932004-04-12 Roger Sayle <roger@eyesopen.com>
7294
7295 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
7296 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
7297 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
7298 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
7299 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
7300 x%-1 into 0 (or x&0 if x has side-effects).
7301
fef98bf2
AH
73022004-04-11 Aldy Hernandez <aldyh@redhat.com>
7303
7304 * config/rs6000/rs6000.md: Document why a pattern is not
7305 available.
7306
7307 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
7308 of floats on the E500.
7309 (branch_positive_comparison_operator): Do not allow NE even on the
7310 E500.
7311
642af3be
AH
73122004-04-11 Aldy Hernandez <aldyh@redhat.com>
7313
7314 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
7315 in_text_unlikely_section to in_unlikely_text_section.
7316
b3e65ebb
RS
73172004-04-11 Roger Sayle <roger@eyesopen.com>
7318
7319 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
7320 calling convention to allow a NULL_TREE to be returned. Factor
7321 sanity checks from callers, return NULL_TREE when appropriate.
7322 (fold): Handle COMPOUND_EXPR operands of binary expressions
7323 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
7324 whether a op (b,c) can be rewritten as (b, a op c). Simplify
7325 calls to fold_binary_op_with_conditional_arg.
7326
19d33948
KG
73272004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7328
7329 * config/mips/iris5.h (current_section_flags): Add
7330 in_unlikely_executed_text and default case.
7331
cf22ce3c
AT
73322004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
7333
7334 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
7335 failure on solaris. Place ifdef HAVE_return around gen_ret call.
7336 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
7337 HAVE_return and place it around the place where it is needed.
7338
34982294
AP
73392004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
7340
7341 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
7342 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
7343 and NORMAL_TEXT_SECTION_NAME.
7344 (unlikely_text_section): Check targetm.have_named_sections
7345 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
7346 instead of SECTION_FORMAT_STRING.
7347 * config/mips/iris5.h (current_section_name): Add
7348 in_unlikely_executed_text case and move the abort into the switch.
7349 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
7350 (NORMAL_TEXT_SECTION_NAME): Remove.
7351 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
7352 (SECTION_FORMAT_STRING): Remove.
7353 * defaults.h (SECTION_FORMAT_STRING): Remove.
7354 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
7355 (SECTION_FORMAT_STRING): Remove.
7356
c7e1876b
JM
73572004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
7358
7359 * c-typeck.c (common_type): Prefer long long to long when same
7360 precision.
7361
7c3ac422
ZW
73622004-04-09 Zack Weinberg <zack@codesourcery.com>
7363
7364 PR 14887
7365 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
7366 mode argument.
7367 * config/ia64/ia64.c (ia64_hpux_file_end): Check
7368 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
7369
0b24db88
RS
73702004-04-09 Roger Sayle <roger@eyesopen.com>
7371
7372 * simplify-rtx.c (mode_signbit_p): New function to check whether
7373 an RTX is an immediate constant that represents the most significant
7374 bit of a given machine mode.
7375 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
7376 C is the sign bit.
7377 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
7378 when C2 is the sign bit.
7379 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
7380 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
7381 sign bit.
7382
ce58118c
KG
73832004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7384
7385 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
7386 TYPE_MODE.
7387
c29726e2
AP
73882004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
7389
7390 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
7391 of TREE_READONLY for types.
7392
750054a2
CT
73932004-04-09 Caroline Tice <ctice@apple.com>
7394
7c3ac422 7395 * basic-block.h (struct edge_def): Add new field, crossing_edge.
750054a2
CT
7396 (struct basic_block_def): Add new field, partition.
7397 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
7398 definitions.
7c3ac422 7399 (partition_hot_cold_basic_blocks): Add extern function
750054a2 7400 declaration.
7c3ac422 7401 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
750054a2
CT
7402 include statements.
7403 (N_ROUNDS): Increase the maximum number of rounds by 1.
7404 (branch_threshold): Add array value for new round.
7405 (exec_threshold): Add array value for new round.
7406 (push_to_next_round_p): New function.
7407 (add_unlikely_executed_notes): New function.
7408 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
7409 (mark_bb_for_unlikely_executed_section): New function.
7410 (add_labels_and_missing_jumps): New function.
7411 (add_reg_crossing_jump_notes): New function.
7412 (fix_up_fall_thru_edges): New function.
7413 (find_jump_block): New function.
7414 (fix_crossing_conditional_branches): New function.
7415 (fix_crossing_unconditional_branches): New function.
7416 (fix_edges_for_rarely_executed_code): New function.
7417 (partition_hot_cold_basic_blocks): New function.
7418 (find_traces): Add an extra round for partitioning hot/cold
7419 basic blocks.
7420 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
7421 and only cold blocks, into the last (extra) round of collecting traces.
7c3ac422 7422 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
750054a2 7423 over crossing edges.
7c3ac422 7424 (bb_to_key): Add code to correctly identify cold blocks when
750054a2
CT
7425 doing partitioning.
7426 (connect_traces): Modify to connect all the non-cold traces first, then
7427 go back and connect up all the cold traces.
7428 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
7429 * cfg.c (entry_exit_blocks): Add initialization for partition field in
7430 entry and exit blocks.
7c3ac422 7431 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
750054a2
CT
7432 if we are doing hot/cold partitioning.
7433 * cfgcleanup.c (cfglayout.h): Add new include statement.
7c3ac422 7434 (try_simplify_condjump): Modify to not attempt on blocks with jumps
750054a2
CT
7435 that cross section boundaries.
7436 (try_forward_edges): Likewise.
7437 (merge_blocks_move_predecessor_nojumps): Likewise.
7438 (merge_blocks_move_successor_nojumps): Likewise.
7439 (merge_blocks_move): Likewise.
7440 (try_crossjump_to_edge): Modify to not attempt after we have done
7441 the block partitioning.
7442 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
7443 cross section boundaries.
7444 (try_optimize_cfg): Likewise.
7445 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
7446 jumps that cross section boundaries.
7c3ac422 7447 * cfglayout.c (flags.h): Add new include statement.
750054a2 7448 (update_unlikely_executed_notes): New function.
7c3ac422
ZW
7449 (fixup_reorder_chain): Add code so when a new jumping basic block is
7450 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
750054a2
CT
7451 updated appropriately.
7452 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
7453 introduced by this optimization.
7c3ac422
ZW
7454 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
7455 extern function declaration.
750054a2
CT
7456 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
7457 list of notes that can be deleted.
7458 (create_basic_block_structure): Add initialization for partition field.
7459 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
7460 section boundaries.
7461 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
7462 cross section boundaries.
7463 (commit_one_edge_insertion): Add code so newly created basic block
7c3ac422 7464 ends up in correct (hot or cold) section. Modify to disallow
750054a2
CT
7465 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
7466 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
7467 crosses section boundaries.
7468 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
7469 cross section boundaries.
7470 (force_nonfallthru_and_redirect): Modify to make sure new basic block
7471 ends up in correct section, with correct notes attached.
7c3ac422
ZW
7472 * common.opt (freorder-blocks-and-partition): Add new flag for this
7473 optimization.
7474 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
7475 the end of functions are written into the correct (hot or cold)
7476 section.
750054a2
CT
7477 (dbx_source_file): Add code so writing debug file information
7478 doesn't incorrectly change sections.
7c3ac422 7479 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
750054a2 7480 in partitioning hot/cold basic blocks into separate sections.
7c3ac422 7481 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
750054a2
CT
7482 section partitioning.
7483 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
7484 conditional branches can span all of memory.
7485 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
7486 unconditional branches can span all of memory.
7c3ac422
ZW
7487 * final.c (scan_ahead_for_unlikely_executed_note): New function.
7488 (final_scan_insn): Add code to check for NOTE instruction indicating
7489 whether basic block belongs in hot or cold section, and to make sure
7490 the current basic block is being written to the appropriate section.
7491 Also added code to ensure that jump table basic blocks end up in the
7492 correct section.
7493 * flags.h (flag_reorder_blocks_and_partition): New flag.
750054a2
CT
7494 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
7495 one of the branches has a jump that crosses between sections.
7496 (find_if_case_2): Likewise.
7c3ac422 7497 (ifcvt): Modify to not attempt to mark loop exit edges after
750054a2 7498 hot/cold partitioning has occurred.
7c3ac422
ZW
7499 * opts.c (decode_options): Code to handle new flag,
7500 flag_reorder_blocks_and_partition; also to turn it off if
750054a2 7501 flag_exceptions is on.
7c3ac422
ZW
7502 (common_handle_option): Code to handle new flag,
7503 flag_reorder_blocks_and_partition.
7504 * output.h (unlikely_text_section): New extern function declaration.
750054a2 7505 (in_unlikely_text_section): New extern function declaration.
7c3ac422
ZW
7506 * passes.c (rest_of_handle_stack_regs): Add
7507 flag_reorder_blocks_and_partition as an 'or' condition for calling
750054a2 7508 reorder_basic_blocks.
7c3ac422 7509 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
750054a2
CT
7510 as an 'or' condition for calling reorder_basic_blocks.
7511 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
7c3ac422
ZW
7512 * print-rtl.c (print_rtx): Add code for handling new note,
7513 NOTE_INSN_UNLIKELY_EXECUTED_CODE
7514 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
750054a2
CT
7515 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
7516 cross between section boundaries.
7c3ac422
ZW
7517 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
7518 indicating the basic block containing it belongs in the cold section.
750054a2
CT
7519 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
7520 between hot and cold sections.
7c3ac422
ZW
7521 * toplev.c (flag_reorder_blocks_and_partition): Add code to
7522 initialize this flag, and to tie it to the command-line option
7523 freorder-blocks-and-partition.
7524 * varasm.c (cfglayout.h): Add new include statement.
7525 (unlikely_section_label_printed): New global variable, used for
7526 determining when to output section name labels for cold sections.
750054a2
CT
7527 (in_section): Add in_unlikely_executed_text to enum data structure.
7528 (text_section): Modify code to use SECTION_FORMAT_STRING and
7529 NORMAL_TEXT_SECTION_NAME macros.
7530 (unlikely_text_section): New function.
7531 (in_unlikely_text_section): New function.
7c3ac422
ZW
7532 (function_section): Add code to make sure beginning of function is
7533 written into correct section (hot or cold).
7534 (assemble_start_function): Add code to make sure stuff is written to
7535 the correct section.
7536 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
7537 to an if statement that was checking 'in_text_section'.
7538 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
7539 condition to an if statement that was checking 'in_text_section'.
7540 (default_section_type_flags_1): Add check: if in cold section
7541 flags = SECTION_CODE.
750054a2
CT
7542 * config/darwin.c (darwin_asm_named_section): Modify to use
7543 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7c3ac422 7544 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
750054a2
CT
7545 specifically for the i386.
7546 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
7c3ac422 7547 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
750054a2
CT
7548 text string to something more informative.
7549 (NORMAL_TEXT_SECTION_NAME): Add new definition.
7550 (SECTION_FORMAT_STRING): Add new definition.
7c3ac422
ZW
7551 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
7552 '!in_unlikely_text_section' as an 'and' condition to an if statement
7553 that was already checking '!in_text_section'.
7554 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
7555 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
7556 sure these are properly defined for linux on ppc.
7557 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
7558 for this new flag.
750054a2
CT
7559 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
7560 reg_note.
7c3ac422
ZW
7561 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
7562 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
750054a2
CT
7563 these new macros.
7564
88673361
RS
75652004-04-08 Roger Sayle <roger@eyesopen.com>
7566
7567 * function.c (gen_mem_addressof): When changing the RTX from a REG
7568 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
7569
82a6a758
RS
75702004-04-08 Roger Sayle <roger@eyesopen.com>
7571
7572 PR target/14888
7573 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
7574 truncxfdf2_noop): Provide dummy "fmov" implementations.
7575
febc5365
ILT
75762004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
7577
2a782c52
ILT
7578 * gcc.c (default_compilers): Add missing initializers.
7579
febc5365
ILT
7580 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7581 Return 1 if file was successfully mapped.
7582
f07e9f0f
GK
75832004-04-08 Geoffrey Keating <geoffk@apple.com>
7584
54e109ed
GK
7585 PR pch/13419
7586 PR pch/14137
7587 Radar #: 3315288
7588 * doc/invoke.texi (Precompiled Headers): Suggest -o
7589 to put an output file in a particular place. Be more detailed
7590 about which options affect PCH validity and which options
7591 might not work.
7592 * c-pch.c (pch_matching): New.
7593 (MATCH_SIZE): New.
7594 (struct c_pch_validity): New field 'match'.
7595 (pch_init): Handle pch_matching.
7596 (c_common_valid_pch): Check pch_matching.
7597
f07e9f0f
GK
7598 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
7599
f7b6f250
MM
76002004-04-08 Mark Mitchell <mark@codesourcery.com>
7601
7602 * doc/invoke.texi (Precompiled Headers): Warn about known
7603 problems.
7604
4a77e08c
DS
76052004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7606
7607 PR c++/14808
7608 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
7609 to 1 if ASM_OUTPUT_DEF is defined.
7610 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
7611 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
7612 Set to non-zero iff not a one_only decl.
7613
cc81dde8
PB
76142004-04-08 Paul Brook <paul@codesourcery.com>
7615
7616 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
7617
d4453b7a
PB
76182004-04-08 Paul Brook <paul@codesourcery.com>
7619
7620 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
7621 PROMOTE_FOR_CALL_ONLY.
7622 * config/arm/arm-protos.h (arm_function_value): Declare.
7623 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
7624 (TARGET_PROMOTE_PROTOTYPES): Return false.
7625 (arm_function_value): New function.
7626 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
7627 (FUNCTION_VALUE): Call arm_function_value.
7628 * config/cris/cris.h (PROMOTE_MODE): Rename ...
7629 (PROMOTE_FUNCTION_MODE): ... to this.
7630 (PROMOTE_FOR_CALL_ONLY): Remove.
7631 * config/mmix/mmix.h: Likewise.
7632 * config/s390/s390.h: Likewise.
7633 * config/sparc/sparc.h: Likewise.
7634 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
7635 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
7636 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
7637 (PROMOTE_FOR_CALL_ONLY): Remove.
7638
c00e272e
JS
76392004-04-08 Joel Sherrill <joel@oarcorp.com>
7640
7641 PR ada/14538
7642 * ada/5rosinte.adb: Remove fake mprotect() body.
7643 * ada/5rosinte.ads: Add SA_SIGINFO.
7644 * ada/5rtpopsp.adb: Rewrite to use new interface.
7645 * ada/init.c: Reorder so the simple single OS conditional __rtems__
7646 is tested before more complex ones which mix UNIX and embedded
7647 systems in the conditional.
7648
4afae4b9
JS
76492004-04-08 Joel Sherrill <joel@oarcorp.com>
7650
7651 PR ada/14665
7652 * ada/osint.adb (Find_Program_Name): Rework to properly handle
7653 filenames which end in .exe or have versioning suffixes like VMS.
7654
bfbdca0b
AP
76552004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
7656
467f3af0 7657 PR target/10129
bfbdca0b
AP
7658 * config/darwin.c (darwin_encode_section_info): When the decl has
7659 a DECL_INITIAL, it is only defined also when it is not a common.
7660
df0785d6
KG
76612004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7662
7663 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7664 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7665
2897f1d4
L
76662004-04-07 H.J. Lu <hongjiu.lu@intel.com>
7667
7668 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7669 global register variables.
7670
6ed6a1b9
JM
76712004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
7672
7673 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7674 rpc_xdr_lvalue_cast_b): New fixes.
7675 * fixinc/fixincl.x: Regenerate.
7676 * fixinc/tests/base/rpc/xdr.h: Add new tests.
7677
fc091c8e
DE
76782004-04-07 David Edelsohn <edelsohn@gnu.org>
7679
7680 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7681 to power4 and power5 entries.
7682
7876228d
GK
76832004-04-06 Geoffrey Keating <geoffk@apple.com>
7684
7685 * c-common.h (pending_lang_change): Mark for PCH.
7686
b21292d0
CT
76872004-04-07 Caroline Tice <ctice@apple.com>
7688
7689 * gcc.c (main): Move 'break' in main loops (on an error)
7690 to wait until error processing has occurred.
7c3ac422 7691
615be2cf
NN
76922004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
7693
7694 * config.gcc: Stop changing enable_threads midstream.
7695 Replace uses of enable_threads_flag with enable_threads.
7696 * configure.ac: Replace uses of enable_threads_flag with
7697 enable_threads. Improve autoconf quotation in one place.
7698 * configure: Regenerate.
7699
6c7cf1f0
UB
77002004-04-06 Uros Bizjak <uros@kss-loka.si>
7701
7702 * builtins.c: Implement support for sincos function.
7703 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7704 BUILT_IN_COS{,F,L}.
7705 (expand_builtin_mathfn_3): New function.
7706 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7707 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7708 flag_unsafe_math_optimization is set.
7709
7710 * optabs.h (enum optab_index): Add new OTI_sincos.
7711 (sincos_optab): Define corresponding macro.
7712
7713 * optabs.c (init_optabs): Initialize sincos_optab.
7714 (expand_twoval_unop): New function.
7715
7716 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7717 patterns.
7718
7719 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7720 and UNSPEC_SINCOS_SIN.
7721
7722 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7723 sincosxf3): New patterns to implement sincos, sincosf and sincosl
7724 built-ins as inline x87 intrinsics. Define splits for
7725 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7726 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7727 sincos patterns.
7728 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7729 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7730
a072d43b
UB
7731 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7732 x87's fsincos insn.
6c7cf1f0 7733
23bd1514
DP
77342004-04-06 Devang Patel <dpatel@apple.com>
7735
7736 PR 14467
7737 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7c3ac422 7738
c5124497
JDA
77392004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7740
7741 * doc/install.texi: Update HP-UX 11 installation procedure.
7742
485d61a7
PB
77432004-04-06 Paul Brook <paul@codesourcery.com>
7744
7745 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7746
13ecc9e0
KK
77472004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
7748
7749 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7750 when the TLS address is generated by a function call.
7751 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7752 (tls_local_dynamic): Likewise.
7753
e0e4ac7f
AP
77542004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
7755
7756 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7757 and TYPE_VOLATILE.
7758
0855eab7
CT
77592004-04-05 Caroline Tice <ctice@apple.com>
7760
485d61a7 7761 * gcc.c (combine_flag): New global variable, for new driver option.
0855eab7
CT
7762 (struct compiler): Add two new fields, to be used when
7763 combining multiple input files in a single pass (IMA).
7c3ac422
ZW
7764 (default_compilers): Add values for the new fields to all
7765 compiler entries. Modify the "@c" compiler entry for doing IMA
0855eab7
CT
7766 properly with "-save-temps" and the "combine" flag.
7767 (option_map): Add new driver option, "--combine", to tell driver
7768 to pass multiple input files to compiler at one time.
7769 (have_o_argbuf_index): New global variable.
7770 (store_arg): Modify to assign value to have_o_argbuf_index.
7771 (struct infile): Add three new fields, to help with IMA.
7772 (display_help): Add help for new "combine" option.
7773 (process_command): Remove local variable have_o; add code to check
7774 for new "combine" option; remove assignment to combine_inputs.
7775 (do_spec_1): Modify to deal with IMA better.
7776 (main): Make variable 'lang_n_infiles' local to entire function
7c3ac422
ZW
7777 rather than to a single block. Use flag combine_flag to
7778 determine whether to do IMA or not; Modify loop initializing
0855eab7
CT
7779 infiles to deal properly with linker files.
7780 Add code for doing preprocessing in presence of
7781 IMA with "-save-temps" flag. Modify "main" loop to handle
7782 multiple input files, in multiple languages, with or without
7783 preprocessing, gracefully.
7784 * toplev.c (set_src_pwd): Modify to not complain if attempting to
7785 re-set it to same directory it's previously been set to (avoid
7c3ac422 7786 irritating, meaningless warning messages when doing IMA with
0855eab7
CT
7787 save-temps).
7788 * doc/invoke.texi: Add "-combine" to list of Overall Options;
7789 remove documentation about IMA that is no longer accurate; Add
7790 documentation explaining what "-combine" does.
7791 * ada/lang-specs.h: Add initialization values for new fields in
7792 "struct compiler".
7793 * cp/lang-specs.h: Likewise.
7794 * f/lang-specs.h: Likewise.
7795 * java/lang-specs.h: Likewise.
7796 * objc/lang-specs.h: Likewise.
7797 * treelang/lang-specs.h: Likewise.
7798
26be75db
DE
77992004-04-05 David Edelsohn
7800
7801 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7802 symbol handling.
7803
fda935a2 78042004-04-05 Jakub Jelinek <jakub@redhat.com>
26be75db 7805 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
fda935a2
JJ
7806
7807 PR optimization/13424 (hppa), bootstrap/14462, c/14828
7808 * pa.md: Use replace_equiv_address to retain the attributes of the
7809 memory operands used in the split and peephole2 patterns for optimizing
7810 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7811
4f976745
RK
78122004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7813
7814 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7815 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7816 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7817 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7818 PARM_DECL.
7819 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7820 for a type.
7821 * print-tree.c (print_node): Properly handle side-effects, readonly,
7822 and constant flags.
7823 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7824 and TREE_CONSTANT if not a type.
7825 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7826 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7827 (NON_TYPE_CHECK): New macro.
7828 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7829
5ffc4730
EB
78302004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
7831
7832 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7833 to DWARF2_DEBUG unconditionally.
7834 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7835
c38f02df
ILT
78362004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
7837 Nathanael Nerode <neroden@gcc.gnu.org>
7838
7839 PR target/14548
7840 * config.host: Set the shell variable host_can_use_collect2.
7841 Set it to yes by default, and to no for alpha*-dec-*vms*,
7842 i[34567]86-*-mingw32*, and powerpc-*-beos*.
7843 * configure.ac: Set and substitute the shell variable collect2.
7844 Give an error if use_collect2 is yes and host_can_use_collect2 is
7845 no.
7846 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
7847 uses. Initialize to @collect2@.
7848 (STAGESTUFF): Remove $(USE_COLLECT2).
7849 * config/alpha/x-vms (USE_COLLECT2): Don't set.
7850 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7851 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7852 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7853 * configure: Regenerate.
7854
9d317251
RS
78552004-04-04 Roger Sayle <roger@eyesopen.com>
7856
7857 * simplify-rtx.c (simplify_binary_operation): Constant fold
7858 DIV, MOD, UDIV and UMOD using div_and_round_double.
7859
64480988
MM
78602004-04-04 Mark Mitchell <mark@codesourcery.com>
7861
7862 PR c++/14804
7863 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7864 RECORD_TYPEs.
7865
aaf3c6d9
MM
78662004-04-04 Mark Mitchell <mark@codesourcery.com>
7867
7868 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7869 documentation.
cd3f11a6 7870
d8b7ec41
RS
78712004-04-04 Roger Sayle <roger@eyesopen.com>
7872
7873 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7874 updating the REG_EQUAL note on an insn's libcall_insn.
7875
4012b7db
RS
78762004-04-04 Roger Sayle <roger@eyesopen.com>
7877
7878 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7879
2f63a457
RS
78802004-04-03 Roger Sayle <roger@eyesopen.com>
7881
7882 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7883 with reorder_operands_p.
7884
ef1140a9
JH
78852004-04-03 Jan Hubicka <jh@suse.cz>
7886
7887 * md.texi (vec_set, vec_extract, vec_init): Document.
7888
f736cb3e
GL
78892004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
7890
7891 * opts.c (decode_options): Do function inlining with very small
7892 max-inline-insns-* parameters when optimizing for size.
7893
89c43c0a
VM
78942004-04-02 Vladimir Makarov <vmakarov@redhat.com>
7895
7896 * config/i386/i386.h (TARGET_NOCONA): New macro.
7897 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7898 (processor_type): Add PROCESSOR_NOCONA.
7c3ac422 7899
89c43c0a
VM
7900 * config/i386/i386.md (cpu): Add nocona to the attribute values.
7901
7902 * config/i386/i386.c (nocona_cost): New variable.
7903 (m_NOCONA): New macro.
7904 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7905 x86_branch_hints, x86_use_sahf, x86_single_stringop,
7906 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7907 x86_integer_DFmode_moves, x86_partial_reg_dependency,
7908 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7909 x86_decompose_lea, x86_arch_always_fancy_math_387,
7910 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7911 x86_ext_80387_constants, x86_four_jump_limit):
7912 (override_options): Add nocona_cost to processor_target_table.
7913 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7914 (incdec_operand): Prevent inc/dec generation for Nocona too.
7915 (ix86_issue_rate): Add PROCESSOR_NOCONA.
7c3ac422 7916
cd798543
AP
79172004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
7918
7919 * rtlanal.c (find_reg_note): Manually
7920 unswitch the loop.
7921
a406f566
MM
79222004-04-01 Mark Mitchell <mark@codesourcery.com>
7923
7924 * genemit.c (gen_split): Change prototype of generated code.
7925 * genrecog.c (write_action): Adjust prototype for and calls to
7926 gen_split_*.
7927 * gensupport.c (struct queue_elem): Add split field.
7928 (queue_pattern): Return a value. Clear the split field.
7929 (process_rtx): Maintain an association between an insn and the
7930 split generated from it for a define_insn_and_split.
7931 (process_one_cond_exec): Generate a new split for a
7932 define_insn_and_split.
7933 * config/arm/arm-protos.h (arm_split_constant): Add insn
7934 parameter.
7935 (emit_constant_insn): New function.
7936 (arm_gen_constant): Use it.
7937 * config/arm/arm.md: Adjust calls to arm_split_constant.
7938
18c6ada9
JH
79392004-04-02 Jan Hubicka <jh@suse.cz>
7940
7941 * cgraph.c: Add overall comment.
7942 (cgraph_inline_hash): New global variable.
7943 (cgraph_create_node): Break out from ...
7944 (cgraph_node): ... here.
7945 (cgraph_edge): New function.
7946 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7947 (cgraph_remove_edge): Accept edge, intead of source and destination.
7948 (cgraph_redirect_edge_callee): New.
7949 (cgraph_remove_node): Update all new datastructures.
7950 (cgraph_record_call, cgraph_remove_call): Kill.
7951 (dump_cgraph_node): Break out from ... ; dump new datastructures.
7952 (dump_cgraph): ... here.
7953 (cgraph_function_possibly_inlined_p): Use new hashtable.
7954 (cgraph_clone_edge, cgraph_clone_node): New.
7955 * cgraph.h: Include hashtab.h
7956 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7957 fields, add inlined_to pointer.
7958 (cgraph_node): Add pointer to next_clone.
7959 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7960 (cgraph_remove_call, cgraph_record_call): Kill.
7961 (cgraph_inline_hash): Declare.
7962 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7963 cgraph_redirect_edge_callee): Declare.
7964 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7965 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7966 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7967 * cgraphunit.c: Add overall comment.
7968 (cgraph_optimize_function): Kill.
7969 (cgraph_assemble_pending_functions): Do not assemble inline clones.
7970 (cgraph_finalize_function): Update call of cgraph_remove_node
7971 (record_call_1): Record call sites.
7972 (cgraph_create_edges): Accept node instead of decl argument.
7973 (error_found): New static variable.
7974 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7975 (cgraph_analyze_function): Update for new datastructures.
7976 (cgraph_finalize_compilation_unit): Plug memory leak.
7977 (cgraph_optimize_function): Kill.
7978 (cgraph_expand_function): Do not use cgraph_optimize_function.
7979 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7980 cgraph_inlined_callees): Kill.
7981 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7982 clones.
7983 (estimate_growth): Simplify.
7984 (cgraph_clone_inlined_nodes): New function.
7985 (cgraph_mark_inline_edge): Re-implement.
7986 (cgraph_mark_inline): Likewise.
7987 (cgraph_check_inline_limits): Simplify.
7988 (cgraph_recursive_inlining_p): New.
7989 (update_callee_keys): Break out from ...
7990 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7991 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7992 Likewise.
7993 (cgraph_expand_all_functions): Remove inline clones from the ordered
7994 list.
7995 (cgraph_preserve_function_body_p): New predicate.
7996 (cgraph_optimize): Verify cgraph.
7997 * function.h (struct function): Add fields saved_tree/saved_args.
7998 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7999 * toplev.c (rest_of_compilation): Do not free cfun.
8000 * tree-inline.c: Include function.h
8001 (struct inline_data): Add saving_p field; replace decl/current_decl by
8002 node/current_node.
8003 (insert_decl_map): New function.
8004 (copy_body_r): Handle saving; update cgraph datastructure.
8005 (copy_body): Handle recursive inlining.
8006 (initialize_inlined_parameters): Likewise.
8007 (expand_call_inline): Propagate node attributes; update cgraph.
8008 (optimize_inline_calls): Verify that datastructure still match.
8009 (save_body): New function.
8010 * tree-inline.h (save_body): New.
8011 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
8012 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
8013 * langhooks.c (lang_hooks): Add update_decl_after_saving.
8014
717415ad
SB
80152004-04-01 Serge Belyshev <1319@bot.ru>
8016
7c3ac422
ZW
8017 PR target/14702
8018 * config/i386/i386.md: fix source operand constraints in
8019 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
717415ad 8020
af5bdf6a
WH
80212004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
8022
8023 * fold-const.c (folda): Preserve types of comparisons.
8024
54fdc910
RH
80252004-04-01 Richard Henderson <rth@redhat.com>
8026
8027 * toplev.c (backend_init): Move init_optimization_passes call ...
8028 (lang_dependent_init): ... here.
8029
765f1bf9
AM
80302004-04-01 Alan Modra <amodra@bigpond.net.au>
8031 Jakub Jelinek <jakub@redhat.com>
8032
8033 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
8034 -lgcc --as-needed -lgcc_s --no-as-needed by default.
8035 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
8036 * configure: Rebuilt.
8037 * config.in: Rebuilt.
8038 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
8039 (stage2-start, stage3-start, stage4-start): Likewise.
8040 (stageprofile-start, stagefeedback-start): Likewise.
8041
45dcc026
JJ
80422004-04-01 Jakub Jelinek <jakub@redhat.com>
8043
8044 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
8045 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8046 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8047 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
8048 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
8049 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
8050 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
8051 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
8052 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
8053 * config/sparc/t-linux: Removed.
8054
0b612185
JJ
80552004-04-01 Jakub Jelinek <jakub@redhat.com>
8056
8057 PR c++/14755
8058 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
8059 "bitfld++ == const" to "++bitfld == const + incr" transformations.
8060
a150de29
RK
80612004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8062
8063 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
8064 * stor-layout.c (layout_decl): Likewise.
8065 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
8066 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
8067 * print-tree.c (print_node): Handle various used of unsigned_flag.
8068 * tree.def (BIT_FIELD_REF): Update comment.
8069 * tree.h (TREE_UNSIGNED): Deleted.
8070 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
8071
8df83eae
RK
80722004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8073
8074 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
8075 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
8076 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
8077 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
8078 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
8079 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
8080 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
8081 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
8082 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
8083 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
8084 REAL_TYPE, not INTEGER_TYPE.
8085 (layout_type, case VECTOR_TYPE): Simplify code.
8086 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
8087 * tree.h: Update comments.
8088 (STRIP_NOPS): Use TYPE_UNSIGNED.
8089 (TYPE_UNSIGNED): New macro.
8090 (TYPE_TRAP_SIGNED): Remove now redundant check.
8091 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
8092
8465edcc
RK
80932004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8094
8095 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
8096
80972004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
efdc5d91
AP
8098
8099 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
8100 Add darwin-fpsave.asm, darwin-vecsave.asm,
8101 and darwin-world.asm.
8102 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
8103 as the asm files contain altivec instructions.
8104 * config/rs6000/darwin-fpsave.asm: New file.
8105 * config/rs6000/darwin-vecsave.asm: New file.
8106 * config/rs6000/darwin-world.asm: New file.
8107
5fece182
ZW
81082004-03-31 Zack Weinberg <zack@codesourcery.com>
8109
8110 * gengtype-yacc.y (option, stringseq): Add missing
8111 terminating semicolon.
8112
b150f4f3
DE
81132004-03-30 David Edelsohn <edelsohn@gnu.org>
8114
8115 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
8116 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
8117 tls_dtprel_ha_32, tls_dtprel_ha_64,
8118 tls_dtprel_lo_32, tls_dtprel_lo_64,
8119 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
8120 tls_tprel_ha_32, tls_tprel_ha_64,
8121 tls_tprel_lo_32, tls_tprel_lo_64,
8122 tls_got_tprel_32, tls_got_tprel_64,
8123 tls_tls_32, tls_tls_64): Replace register_operand with
8124 gpc_reg_operand.
8125
81262004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
8127
8128 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
8129 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
8130 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
8131 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
8132 *ctrdi_internal6): Replace register_operand with
8133 nonimmediate_operand.
8134
0af5da7f
FJ
81352004-03-29 Fariborz Jahanian <fjahanian@apple.com>
8136
5fece182
ZW
8137 * fold-const.c (fold): Reassociate multiply expression
8138 with an adjacent non-multiply expression to use
8139 architecture's multiply-add instruction.
0af5da7f 8140
1431042e
ZW
81412004-03-30 Zack Weinberg <zack@codesourcery.com>
8142
8143 * gengtype.c (create_option): New function.
8144 * gengtype.h: Prototype it.
8145 * gengtype-yacc.y (stringseq): New rule.
8146 (option): Use create_option. Add new bare ID production. Use
8147 stringseq, not STRING directly.
8148
8149 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
8150 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
8151 * varray.h, config/alpha/alpha.c:
8152 Use new shorter form of GTY markers.
8153
8154 * doc/gty.texi: Rewrite.
8155
9ffab06b
AP
81562004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
8157
8158 * config/darwin.c (machopic_function_base_name):
8159 Remove current_name and getting the name of the
8160 current function.
8161
a2246edc
NC
81622004-03-30 Nick Clifton <nickc@redhat.com>
8163
8164 * config/arm/arm.md (thumb_jump): Reduce the backward branch
8165 range, and increase the forward branch range, to allow for
8166 the fact that the PC will be off by 4.
8167
547799a7
AM
81682004-03-30 Alan Modra <amodra@bigpond.net.au>
8169
8170 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
8171
452a7d36
HP
81722004-03-30 Hartmut Penner <hpenner@de.ibm.com>
8173
1431042e
ZW
8174 * config/rs6000/rs6000.c (output_vec_const_move):
8175 Find all cases of EASY_VECTOR_15_ADD_SELF.
8176 (easy_vector_constant_add_self): Accept
8177 all vector constant loadable by vsplt* and vadd*.
452a7d36
HP
8178 (easy_vector_same): Use easy_vector_splat_const.
8179 (easy_vector_const): Use easy_vector_splat_const.
1431042e 8180 (easy_vector_splat_const): New function.
452a7d36 8181 (gen_easy_vector_constant_add_self): New function.
1431042e 8182
452a7d36
HP
8183 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
8184 New prototype.
8185
1431042e 8186 * config/rs6000/altivec.md (movv4si splitter): Change to
452a7d36
HP
8187 emit move insn with halfed vector constant.
8188 (*movv8hi splitter): Likewise.
8189 (*movv16qi splitter): Likewise.
1431042e 8190
708d2456
HP
81912004-03-30 Hartmut Penner <hpenner@de.ibm.com>
8192
1431042e
ZW
8193 PR 11591
8194 * config/rs6000/rs6000.c (rs6000_legitimate_address):
708d2456
HP
8195 Allow any offset to argument pointer in no-strict case.
8196
6868bb1c
JH
81972004-03-30 Jan Hubicka <jh@suse.cz>
8198
8199 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
8200 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
8201 dump file in non-unit-at-a-time mode.
8202
43537bf6
HPN
82032004-03-29 Hans-Peter Nilsson <hp@axis.com>
8204
8205 * config/cris/cris.h: Correct #ifdef to test for
8206 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
8207 HAVE_AS_MUL_BUG_ABORT_OPTION.
8208
97955d55
RK
82092004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8210
8211 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
8212 the address inside the old RTL.
8213
18d5f982
ZW
82142004-03-28 Zack Weinberg <zack@codesourcery.com>
8215
8216 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
8217 (struct c_binding, struct c_scope): Add chain_next
8218 attributes to GTY markers.
8219 (struct lang_identifier, struct lang_tree_node): Define
8220 here...
8221 * c-tree.h: ... not here. No longer need to declare struct
8222 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8223 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
8224 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
8225
8226 PR 14734, 11944
8227 * c-decl.c (get_parm_info): If error_mark_node is encountered
8228 in the bindings chain, unbind and discard it; don't abort.
8229
e20f3dd1 82302004-03-28 Olga Golovonevsky <olga@il.ibm.com>
18d5f982 8231 Dorit Naishlos <dorit@il.ibm.com>
e20f3dd1 8232
18d5f982
ZW
8233 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
8234 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
e20f3dd1 8235
d5ebbf58
SC
82362004-03-28 Stephane Carrez <stcarrez@nerim.fr>
8237
8238 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
8239
8240 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
8241 (m68hc11_attribute_table): New attribute "page0" to mark a global
8242 variable as being allocated from within page0 section.
8243 (m68hc11_encode_label): New function.
8244 (m68hc11_strip_name_encoding): New function.
8245 (m68hc11_page0_symbol_p): New function.
8246 (m68hc11_indirect_p): Accept global variables marked in page0.
8247 (m68hc11_encode_section_info): Lookup "page0" attribute.
8248
8249 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
8250 represents access to page0 variables.
8251
8252 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
8253 ("*logicalsi3_silshl16_zext"): Likewise.
8254 ("*ashldi3_const32"): Likewise.
8255 (peephole2 ashift): Likewise.
8256
5baeaac0
JM
82572004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
8258
8259 * c-tree.h (C_DECL_REGISTER): New.
8260 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
8261 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
8262 (build_array_ref, c_mark_addressable): Set and use it.
8263 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
8264 Allow structures with volatile fields to be declared register.
8265 Don't check TREE_ADDRESSABLE before warning about taking address
8266 of register.
8267 * c-decl.c (finish_decl): Don't allow structures with volatile
8268 fields to be placed in named register.
8269 * doc/trouble.texi: Remove reference to structures with volatile
8270 fields in registers.
8271
84c1fa24
UW
82722004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
8273
8274 * function.c (thread_prologue_and_epilogue): Move
8275 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
8276 before the epilogue.
8277
053ee101
UW
82782004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
8279
8280 * expr.c (store_constructor): Use gen_int_mode to correctly
8281 sign-extend CONST_INT value.
8282
ca4944e1
KG
82832004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8284
8285 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
8286 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
8287 * doc/extend.texi: Likewise.
8288
eb1a2c88
DN
82892004-03-26 Diego Novillo <dnovillo@redhat.com>
8290
8291 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
8292 with TYPE_ORIG_SIZE_TYPE.
8293
eabe2b29 82942004-03-25 Aldy Hernandez <aldyh@redhat.com>
18d5f982
ZW
8295
8296 PR 14219
8297 * c-typeck.c (build_binary_op): Do not allow comparisons of
8298 vectors.
eabe2b29 8299
9e1395f1
JM
83002004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
8301
8302 * config.gcc: Remove sparc-tti-*.
8303 * config/sparc/pbd.h: Delete.
8304
8305 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
8306 * config/sparc/aout.h: Likewise.
8307
8308 * config/sparc/sparc.h: Remove if 0'd code.
8309 * config/sparc/sparc.md (call): Remove if 0'd code.
8310 (call_value): Likewise.
8311 (nonlocal_goto): Likewise.
8312 (unimp_insn): Delete.
8313
22e63bd3
RS
83142004-03-25 Roger Sayle <roger@eyesopen.com>
8315
8316 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
8317 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
8318
0066ef9c
RH
83192004-03-25 Richard Henderson <rth@redhat.com>
8320
8321 PR 11527
18d5f982
ZW
8322 * c-typeck.c (pop_init_level): Emit pending init elements earlier
8323 rather than later.
0066ef9c 8324
3a048383
KG
83252004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8326
8327 * builtins.c (fold_builtin): Fix error in last change.
8328
0d63bf21
RS
83292004-03-25 Richard Sandiford <rsandifo@redhat.com>
8330
8331 * config/mips/mips.h: Formatting fix.
8332
740e5b6f
KG
83332004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8334
8335 * builtins.def: Add ctype builtins.
8336 * doc/extend.texi: Likewise.
8337
e19f6bde
KG
83382004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8339
8340 * builtins.c (fold_builtin): Add new builtin optimizations for
8341 sqrt and/or cbrt.
8342 * fold-const.c (fold): Likewise.
8343
ec507f2d
DE
83442004-03-25 David Edelsohn <edelsohn@gnu.org>
8345
8346 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
8347 (rs6000_sched_groups): New variable.
8348 (processor_target_table): Add power5.
8349 (rs6000_override_options): Set rs6000_sched_insert_nops,
8350 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
8351 from rs6000_sched_groups.
8352 (output_cbranch): Use rs6000_always_hint.
8353 (rs6000_variable_issue): Use rs6000_sched_groups.
8354 (rs6000_adjust_cost): Add CPU_POWER5.
8355 (is_microcoded_insn): Use rs6000_sched_groups.
8356 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
8357 Return 2 for POWER5 cracked instructions.
8358 (is_cracked_insn): Use rs6000_sched_groups.
8359 (is_branch_slot_insn): Use rs6000_sched_groups.
8360 (rs6000_issue_rate): Add CPU_POWER5.
8361 (rs6000_sched_finish): Use rs6000_sched_groups.
8362 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
8363 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
8364 (DEFAULT_SCHED_COSTLY_DEP): Delete.
8365 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
8366 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
8367 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
8368 * config/rs6000/power5.md: New file.
8369 * doc/invoke.texi: Add power5 option.
8370
666c27b9
KH
83712004-03-25 Kazu Hirata <kazu@cs.umass.edu>
8372
8373 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
8374 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
8375 * doc/invoke.texi: Fix a typo.
8376
43a21dfc
KH
83772004-03-25 Kazu Hirata <kazu@cs.umass.edu>
8378
8379 PR optimization/9707.
8380 * stmt.c (emit_case_nodes): Emit equality comparisons instead
8381 of recursing if both children are single-valued cases with no
8382 children.
8383
9728c9d1
PB
83842004-03-25 Paul Brook <paul@codesourcery.com>
8385
8386 * config/arm/arm.c (vfp_print_multi): Remove.
8387 (arm_output_fldmx): New function.
8388 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
8389 (arm_expand_prologue): Update to match.
8390 (arm_get_vfp_saved_size): New Function.
8391 (arm_get_frame_offsets): Use it.
8392 (arm_output_epilogue): Use new functions.
8393
bb1acb3e
RH
83942004-03-24 Richard Henderson <rth@redhat.com>
8395
8396 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
8397 (reg_known_value, reg_known_value_size): Likewise; make static.
8398 (reg_known_equiv_p): Make static.
8399 (clear_reg_alias_info): Update for new indexing.
8400 (get_reg_known_value, set_reg_known_value): New.
8401 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
8402 (canon_rtx): Use them.
8403 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
8404 Don't play queer offsetting games with reg_known_value and
8405 reg_known_equiv_p.
8406 (end_alias_analysis): Free reg_known_value with gc.
8407 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
8408 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
8409 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
8410 functions instead.
8411
ef335eb8
KH
84122004-03-24 Kazu Hirata <kazu@cs.umass.edu>
8413
8414 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
8415 config/i386/mmintrin.h: Update copyright.
8416
09a9c095
NN
84172004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8418
8419 * configure.ac: Add --enable-werror-always (for top level bootstrap
8420 support).
8421 * configure: Regenerate.
8422
f75963f5
ZL
84232004-03-24 Ziemowit Laski <zlaski@apple.com>
8424
8425 * objc/objc-act.c (objc_comptypes): Treat comparisons
8426 between 'Class' and '<class> *' as explicitly invalid.
8427
8d3b3fb7
DE
84282004-03-24 David Edelsohn <edelsohn@gnu.org>
8429
827c06b6 8430 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8d3b3fb7
DE
8431 (-fprofile-values): Add enabled with profile-{generate,use}.
8432 (-fvpt): Same.
8433 (-ftracer): Add enabled with profile-use.
8434 (-funit-at-a-time): Add enabled at -O2,-O3.
8435 (-funroll-loops): Add enabled with profile-use.
8436 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
8437 (max-gcse-passes): Mention default.
8438 (max-cse-path-length): Mention default.
8439
643d3bd2
NN
84402004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8441
8442 * Makefile.in (STRICT2_WARN): Reorder.
8443 * configure.ac: Check for -Wold-style-definition, and use it
8444 in strict1_warn if it's available.
8445 * configure: Regnerate.
8446
5848830f
PB
84472004-03-24 Paul Brook <paul@nowt.org>
8448
8449 * config.gcc <arm>: Add --with-abi=
8450 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
8451 thumb_far_jump_used): Remove prototypes.
8452 (arm_needs_doubleword_align): Add prototype.
8453 (thumb_compute_initial_elimination_offset): Ditto.
8454 * config/arm/arm.c (arm_get_frame_offsets): New function.
8455 (use_return_insn, output_return_instruction, arm_output_epilogue,
8456 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
8457 arm_expand_prologue, thumb_expand_epilogue): Use it.
8458 (arm_abi, target_abi_name, all_arm_abis): New variables.
8459 (arm_override_options): Set them. Set structure padding for AAPCS.
8460 (arm_return_in_memory): Update ABI check.
8461 (arm_init_cumulative_args): Initialize can_split.
8462 (arm_needs_doubleword_align): New function.
8463 (arm_function_arg): Don't split args after pushing to stack. Handle
8464 doubleword/even reg alignment.
8465 (arm_va_arg): Handle all doubleword aligned args.
8466 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
8467 on ABI, not CPU.
8468 (arm_compute_save_reg0_reg12_mask): Fix comment.
8469 (thumb_get_frame_size, thumb_get_frame_size): Remove.
8470 (thumb_jump_far_used_p): Remove superfluous argument. Return save
8471 value for alignment.
8472 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
8473 to match.
8474 (thumb_compute_initial_elimination_offset): New function.
8475 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
8476 unneccessary rounding.
8477 * config/arm/arm.h (target_abi_name): Declare.
8478 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
8479 arm_abi_type, ARM_DEFAULT_ABI): Define.
8480 (ARM_FLAG_ATPCS): Remove.
8481 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
8482 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
8483 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
8484 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
8485 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
8486 Contitionalize on ABI, not CPU.
8487 (struct arm_stack_offsets): Define.
8488 (struct machine_function): Add stack_offsets. Remove frame_size.
8489 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
8490 pushed.
8491 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
8492 doubleword alignment.
8493 (THUMB_INITIAL_ELIMINATION_OFFSET,
8494 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
8495 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
8496 * config/arm/arm.md (align_8): Enable for all targets.
8497 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
8498 (ARM_DEFAULT_ABI): Define.
8499 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
8500 -mstructure-size-boundary.
8501
b5472e1d
NN
85022004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
8503
8504 * configure.ac: Check for -Wno-variadic-macros; don't use
8505 -pedantic (in stage 1 or a simple 'make all') unless it's available,
8506 and if it's available, use it. Also, clean up check for
8507 -Wno-long-long.
8508 * configure: Regenerate.
8509
c1077e1e
RS
85102004-03-24 Richard Sandiford <rsandifo@redhat.com>
8511
8512 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
8513 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
8514 (MULTILIB_DEFAULTS): Use it.
8515 (MIPS_CPU_STRING_DEFAULT): Remove.
8516 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
8517 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
8518 EABI64 -mlong32 the default ABI. Enforce the default architecture.
8519 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
398a9492 8520 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
c1077e1e
RS
8521 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
8522 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
8523 accordingly.
8524
c235ddf2
DD
85252004-03-24 DJ Delorie <dj@redhat.com>
8526 Richard Sandiford <rsandifo@redhat.com>
8527
8528 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
8529 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
8530 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
8531 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
8532 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
8533 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
8534 if TARGET_FIX_VR4122.
8535 * config/mips/mips.md (define_attr length): Account for nops inserted
8536 after macc and dmult when using -mfix-vr4122-bugs.
8537 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
8538 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
8539 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
8540 * config/mips/vr4122-div.S: New file.
8541 * doc/invoke.texi: Document -mfix-vr4122-bugs.
8542
cf768d70
RS
85432004-03-24 Richard Sandiford <rsandifo@redhat.com>
8544
8545 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
8546 (TARGET_MIPS4130): New macro.
8547 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
8548 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
8549 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
8550 with PROCESSOR_R4130.
8551 * config/mips/mips.md (define_attr cpu): Add r4130.
8552 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
8553
5ef1a99d
MR
85542004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8555 Richard Sandiford <rsandifo@redhat.com>
8556
8557 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
8558
ae87624f
AO
85592004-03-24 Alexandre Oliva <aoliva@redhat.com>
8560
8561 PR preprocessor/14438
8562 * cpplib.c (do_pragma): Remove line_change call after pragma
8563 handler.
8564
d63851eb
ILT
85652004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
8566
8567 * doc/extend.texi (ARM Built-in Functions): Replace with correct
8568 declarations.
8569
0c5faf29
RS
85702004-03-23 Roger Sayle <roger@eyesopen.com>
8571
8572 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
8573 if flag_unsafe_math_optimizations.
8574 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
8575 and TARGET_80387 expand using truncdfsf2_noop pattern.
8576 (truncxfsf2): Likewise using truncxfsf2_noop.
8577 (truncxfdf2): Likewise using truncxfdf2_noop.
8578 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
8579
f18eca82
ZL
85802004-03-23 Ziemowit Laski <zlaski@apple.com>
8581
8582 * hooks.c (hook_constcharptr_tree_null): New hook.
8583 * hooks.h (hook_constcharptr_tree_null): New prototype.
8584 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
8585 * target.h (mangle_fundamental_type): New target hook.
8586 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
8587 target hook at rs6000_mangle_fundamental_type.
8588 (rs6000_mangle_fundamental_type): New function.
8589 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
8590
f75fbaf7
ZW
85912004-03-23 Zack Weinberg <zack@codesourcery.com>
8592
1b1d85bd 8593 PR 12267, 12391, 12560, 13129, 14114, 14133
f75fbaf7
ZW
8594 * c-tree.h: Forward declare struct c_binding. Declare
8595 c_override_bindings_to_false. Update prototypes.
8596 (struct lang_identifier): Update comments. Change fields to be
8597 struct c_binding *.
8598 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
8599 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
8600 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
8601 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
8602 * c-common.h: Update prototypes.
8603 * c-decl.c (struct c_scope): Update commentary. Remove names,
8604 names_last, parms, parms_last, tags, and shadowed fields. Add
8605 bindings and depth fields.
8606 (scope_freelist): Move to more appropriate location.
8607 (c_print_identifier): Update for changes to struct lang_identifier.
8608 (objc_mark_locals_volatile): Update for new bindings structures.
8609 (global_bindings_p): Honor c_override_global_bindings_to_false.
8610 (pushlevel): Rename to push_scope; take no arguments; use the
8611 scope_freelist; initialize scope->depth and check for overflow.
8612 (poplevel): Rename to pop_scope; totally rewritten for new bindings
8613 structures.
8614 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
8615 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
8616 Improve some commentary. Adjust handling of forward parm decls.
8617 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
8618 Preserve C_DECL_IN_EXTERNAL_SCOPE.
8619 (warn_if_shadowing): Correct indentation. Improve diagnostics.
8620 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
8621 decls. Rewrite for new bindings structures. Improve commentary.
8622 Eliminate the copy_node call.
8623 (implicit_decl_warning): Use the "diag" idiom (as seen in
8624 locate_old_decl) to reduce code duplication; call locate_old_decl
8625 if appropriate. Relocate to remove need for forward declaration.
8626 (implicitly_declare): Adjust for new bindings structures. Kludge
8627 around Objective-C not-really-builtin functions.
8628 (undeclared_variable): Improve diagnostics. If current_function_decl
8629 is nonnull but current_function_scope is null, use current_scope.
8630 Use bind.
8631 (lookup_tag): Adjust for new bindings structures. Kludge around
8632 Objective-C's tag declarations that wind up in the external scope.
8633 (lookup_name): Adjust for new bindings structures. Kludge around
8634 c-common.c's pseudo-typedefs that wind up in the external scope.
8635 (lookup_name_current_level): Rename lookup_name_in_scope; take a
8636 second argument indicating the scope to examine; rewrite for
8637 new bindings structures.
8638 (c_init_decl_processing): Adjust for renamed functions. Do not
8639 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
8640 First scope pushed is the external scope, not the global scope.
8641 (builtin_function): Use bind, not pushdecl. Adjust other bits
8642 for new data structures. Keep track of builtins that should be
8643 made visible automatically.
8644 (start_decl): Adjust diagnostics. Remove unnecessary call to
8645 expand_decl.
8646 (grokparms): Return 0 if arg_types is error_mark_node.
8647 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8648 reversed sense. Rewrite for new bindings structures. Do not
8649 leave any decls in the scope, to prevent pop_scope from doing
8650 contradictory things with them.
8651 (finish_struct, finish_enum): Remove redundant diagnostics.
8652 (build_enumerator): Don't cascade diagnostics for error_mark_node.
8653 Mark location where -pedantic changes the meaning of the program.
8654 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8655 parameter decls into the function's scope structure using bind.
8656 Warn here about function definitions in the wrong style.
8657 Adjust diagnostics.
8658 (store_parm_decls): Correct the determination of whether a
8659 function was defined with a prototype.
8660 (c_write_global_declarations): Operate on all file decls and on
8661 the external scope. Split body of the loop to...
8662 (c_write_global_declarations_1): ... this new function, to avoid
8663 code duplication.
8664 (truly_local_externals, first_builtin_decl, last_builtin_decl)
8665 (make_scope, pop_scope, in_parm_level_p, set_block)
8666 (any_external_decl, record_external_decl, bind_label, getdecls)
8667 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8668 (c_reset_state): Delete.
8669 (visible_builtins, c_override_global_bindings_to_false)
8670 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8671 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8672 (external_scope, binding_freelist, bind, free_binding_and_advance)
8673 (push_file_scope, pop_file_scope): New.
8674 (pushtag, pushdecl_top_level, lookup_label, declare_label)
8675 (define_label, c_make_fname_decl, finish_decl)
8676 (mark_forward_parm_decls, build_compound_literal)
8677 (grokdeclarator, start_function, check_for_loop_decls)
8678 (identifier_global_value, record_builtin_type): Minor adjustments
8679 for new bindings structures. Improve diagnostics and commentary.
8680 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8681 pushlevel/poplevel respectively.
8682 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8683 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8684 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
8685 correct loop over multiple translation units; call fatal_error if
8686 requested to compile more than one file at once. (This disables
8687 IMA temporarily - an up-front error being preferable to a crash.)
8688 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8689 (all actions): Adjust calls to pushlevel/poplevel.
8690 (parsing_iso_function_signature): Delete.
8691 (extdef_1): Fold into extdef.
8692 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
8693 warn here about function definitions in the wrong style.
8694 (after_tyle_declarator, parm_declarator_starttypename)
8695 (parm_declarator_nostarttypename, notype_declarator): Remove
8696 commented-out productions.
8697 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8698 an empty TREE_LIST node. Adjust calls to get_parm_info.
8699 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8700 to suppress -Wold-style-definition after this error.
8701 (c_parse_file): Don't clear the binding stack or call
8702 finish_fname_decls here. Correct comment.
8703 * c-typeck.c (same_translation_unit_p): Export.
8704 (common_type): Use c_override_global_bindings_to_false, not
8705 pushlevel/poplevel/declare_parm_level.
8706 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8707 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8708 and LANG_HOOKS_GETDECLS with do-nothing stubs.
8709 * objc/objc-lang.c: Likewise.
8710 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8711 get_parm_info.
8712 (OBJC_VOID_AT_END): Delete; replace all uses
8713 with void_list_node.
8714 (generate_forward_declaration_to_string_table): Delete.
8715 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8716
8717 * coverage.c (create_coverage): Don't pushdecl anything.
8718 * langhooks.c (lhd_clear_binding_stack): Call
8719 lang_hooks.decls.poplevel, not poplevel.
8720 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8721 circular list rather than going into an infinite loop.
8722
0c0ab0f1
OH
87232004-03-23 Olivier Hainque <hainque@act-europe.fr>
8724
f75fbaf7
ZW
8725 * optabs.c (expand_binop): When synthesizing double word rotates
8726 from single word shifts, use a new register target if the provided
8727 target is not a REG already.
0c0ab0f1 8728
22421b79
RK
87292004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8730
8731 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8732 * c-common.c (handle_mode_attribute): Add extra arg to
8733 build_pointer_type_for_mode and build_reference_type_for_mode.
8734 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8735 for INTEGER_CST.
8736 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8737 Chain pointers via TYPE_NEXT_PTR_TO.
8738 (build_reference_type_for_mode): Similarly.
8739 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8740 and build_reference_type_for_mode.
8741 (tree_check4_failed): New function.
8742 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8743 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8744 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8745 Add check.
8746
b1500d00
RS
87472004-03-23 Roger Sayle <roger@eyesopen.com>
8748
8749 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8750 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
8751 when both A and B are nonnegative.
8752 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8753 nonzero.
8754
73b91357
KH
87552004-03-23 Kazu Hirata <kazu@cs.umass.edu>
8756
8757 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8758 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8759
bb3a37ac
RS
87602004-03-23 Kazu Hirata <kazu@cs.umass.edu>
8761
8762 PR optimization/14669
8763 * fold-const.c (fold): Only unwiden integer comparisons for equality
8764 and inequality operators, or when the signedness doesn't change.
8765
f2c79f80
JJ
87662004-03-23 Jakub Jelinek <jakub@redhat.com>
8767
8768 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8769 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8770 * config/sparc/t-linux: New file.
8771
1707bafa
RS
87722004-03-23 Richard Sandiford <rsandifo@redhat.com>
8773
8774 * gcse.c (can_assign_to_reg_p): New function, split out from...
8775 (want_to_gcse_p): ...here.
8776 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8777 the rhs of a store.
8778
63185fab
DN
87792004-03-22 Diego Novillo <dnovillo@redhat.com>
8780
8781 * c-typeck.c (same_translation_unit_p): Fix pasto.
8782
f72c6b56
DE
87832004-03-22 David Edelsohn <edelsohn@gnu.org>
8784
8785 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8786 (PARAM_MAX_SCHED_REGION_INSNS): New.
8787 * sched-rgn.c: Include params.h
8788 (MAX_RGN_BLOCKS): Delete.
8789 (MAX_RGN_INSNS): Delete.
8790 (too_large): Return bool. Convert to PARAM_VALUE.
0483ab6e 8791 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
f72c6b56
DE
8792 * doc/invoke.texi (param): Document max-sched-region-blocks and
8793 max-sched-region-insns.
8794
d6672e91
JB
87952004-03-22 Joel Brobecker <brobecker@gnat.com>
8796
8797 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8798 for base types.
8799
886de2d4
JB
88002004-03-22 Joel Brobecker <brobecker@gnat.com>
8801
8802 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8803 change.
8804
d915eec0
JJ
88052004-03-22 Jakub Jelinek <jakub@redhat.com>
8806
8807 PR c/14069
8808 * c-decl.c (finish_struct): Change type of incorrect flexible array
8809 field into error_mark_node.
8810
aa6d25c9
AP
88112004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
8812
19a03303 8813 PR target/14580
aa6d25c9
AP
8814 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8815 who are not local for Darwin PIC.
8816
ead61c1d
UW
88172004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
8818
8819 * regrename.c (regrename_optimize): Set regs_ever_live for all
8820 registers introduced as replacement.
8821
1bbd65cd
EB
88222004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
8823
8824 PR middle-end/14470
8825 * expr.c (mark_queue): New function.
8826 (emit_insns_enqueued_after_mark): New function replacing
8827 emit_queue. Clear the body of emitted queued insns.
8828 (emit_queue): Call emit_insns_enqueued_after_mark.
8829 (store_expr): Mark the increment queue on entry. Emit
8830 only the incrementations queued when expanding the source.
8831
6dd297da
NN
88322004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
8833
8834 * configure.ac: Allow --disable-coverage-flags (for the future benefit
8835 of top level bootstrap, and consistency). Reindent.
8836 * configure: Regenerate.
8837
400e39e3
KH
88382004-03-21 Kazu Hirata <kazu@cs.umass.edu>
8839
8840 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8841 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8842 unnecessary casts.
8843
bd8ec6a7
DS
88442004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
8845
8846 PR target/14291
8847 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8848 __MINGW32__.
8849
bd446804
UW
88502004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8851
8852 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8853 to nonimmediate_operand.
8854 ("*doloop_di"): Likewise.
8855
1e92bbb9
AO
88562004-03-21 Alexandre Oliva <aoliva@redhat.com>
8857
8858 * real.h (struct real_value): Use the same type for all
8859 bitfields. Rename exp to uexp.
8860 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8861 Adjust all uses of exp...
8862 * builtins.c: ... here, ...
8863 * emit-rtl.c: ... here, and ...
8864 * real.c: ... and here.
8865
b9b44fb9
GDR
88662004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
8867
8868 * pretty-print.c (pp_base_maybe_space): New function.
8869 * pretty-print.h (pp_base_maybe_space): Declare.
8870 (pp_maybe_space): New macro.
8871
1c7b1b7e
UW
88722004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8873
8874 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8875
f258e38b
UW
88762004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
8877
8878 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8879 of using register multiplication cost.
8880 (expand_mult): Adapt choose_mult_variant call.
8881 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8882 of MODE; pass appropriate cost bound. Adjust result when
8883 performing signed multiplication by a negative constant.
8884 Don't use intermediate modes larger than word_mode.
8885
6fce44af
RK
88862004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8887
8888 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8889 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8890 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8891 * explow.c (expr_size): Likewise.
8892 * expr.h (placeholder_list, find_placeholder): Deleted.
8893 * expr.c (store_constructor): Likewise.
8894 (get_inner_reference): Likewise. Also don't call find_placeholder.
8895 (placeholder_list, find_placeholder): Deleted.
8896 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8897 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8898 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8899 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8900 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8901 Likewise.
8902 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8903 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8904 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8905 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8906 Clean up by using first_rtl_op.
8907 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8908 (substitute_placeholder_in_expr): New function.
8909 * tree.def (WITH_RECORD_EXPR): Deleted.
8910 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8911 (substitute_placeholder_in_expr): New.
8912
0f005f33
AP
89132004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
8914
8915 * dojump.c (prefer_and_bit_test): Fix which part of
8916 the and_test is replaced.
8917
f80352b8
JM
89182004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
8919
8920 * frontends.texi: Add missing line.
8921
6ad79f18 89222004-03-21 Zack Weinberg <zack@codesourcery.com>
f75fbaf7
ZW
8923 Chris Devers <cdevers@pobox.com>
8924 Joseph S. Myers <jsm@polyomino.org.uk>
6ad79f18
JM
8925
8926 * doc/frontends.texi: Rewrite.
8927 * doc/gcc.texi: Update last modification date.
8928
eabd7d31
JZ
89292004-03-21 Josef Zlomek <zlomekj@suse.cz>
8930
8931 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8932 message before redirecting the edge.
8933
f8ad8d7c
ZD
89342004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8935
8936 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8937 flag.
8938 * explow.c (force_not_mem): Set REG_POINTER flag according to
8939 MEM_POINTER one.
8940 * rtl.h (MEM_POINTER): New macro.
8941 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8942 for MEM_POINTER.
8943
8cce3d04
RS
89442004-03-20 Roger Sayle <roger@eyesopen.com>
8945
8946 PR target/13889
8947 * cse.c (fold_rtx): Avoid substituting constants into unary
687c3ea5 8948 conversion operations.
8cce3d04 8949
05fe5c67
KH
89502004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8951
8952 * fold-const.c (fold): Replace "expr" with "t".
8953
dea984dc
ILT
89542004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
8955
8956 PR c/12373
8957 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8958 DECL_ORIGINAL_TYPE if there isn't one.
8959
079f946d
KH
89602004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8961
8962 * fold-const.c (fold): Replace "final_type" with "type".
8963 Remove variable "final_type".
8964
8d3784af
KH
89652004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8966
8967 * fold-const.c (fold): Constify "type".
8968 Replace "TREE_TYPE (t)" with "type".
8969
245f1bfa
KH
89702004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8971
8972 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8973 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8974 via (*targetm.foo) () with targetm.foo ().
8975
802f6d4b
JM
89762004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
8977
8978 PR other/14630
8979 * doc/install.texi: Add info directory category and entry.
8980
ea993805
KH
89812004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8982
8983 * fold-const.c (fold): Replace "t" with "tem" where it is used
8984 as a temporary variable. Remove "orig_t" and all of its uses.
8985
8e7b3a43
KH
89862004-03-20 Kazu Hirata <kazu@cs.umass.edu>
8987
8988 * fold-const.c (fold): Remove variable "invert".
8989 Move the handling of relational expressions that can be folded
8990 to a constant ...
8991 (fold_relational_const): ... here.
8992 (tree_expr_nonzero_p): New.
8993
b1c2d04a
JM
89942004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
8995
8996 PR c/14635
8997 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8998 DEF_GCC_BUILTIN.
8999
dbf833ee
RS
90002004-03-20 Richard Sandiford <rsandifo@redhat.com>
9001
9002 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
9003 (GTFILES): Add $(srcdir)/dojump.h.
9004 (gt-dojump.h): New dependency.
9005 * dojump.c (and_reg, and_test, shift_test): New static variables.
9006 (prefer_and_bit_test): New function.
9007 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
9008
d1a6adeb
KH
90092004-03-20 Kazu Hirata <kazu@cs.umass.edu>
9010
9011 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
9012 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
9013 reorg.c, tree.h: Fix comment typos.
9014
5fd9b178
KH
90152004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9016
9017 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
9018 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
9019 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
9020 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
9021 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
9022 vmsdbgout.c: Replace calls via (*targetm.foo) () with
9023 targetm.foo ().
9024
86e7df90
ZL
90252004-03-19 Ziemowit Laski <zlaski@apple.com>
9026
9027 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
9028 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
9029 always_inline attribute.
9030 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
9031 Treat expansion as completed even if literal argument is
9032 invalid (so that other expansions are not tried in vain).
9033
147d77b6
KH
90342004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9035
9036 * loop-doloop.c (add_test): Replace GEN_INT (0) with
9037 const0_rtx.
9038
73c4ab99
KH
90392004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9040
9041 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
9042 ...
9043 (fold_abs_const): ... here.
9044
a6002f8d
RK
90452004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9046
9047 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
9048
829bde68
DC
90492004-03-19 Denis Chertykov <denisc@overta.ru>
9050
d0aa5f10 9051 PR target/11520
829bde68
DC
9052 * config/avr/avr.md ("call_insn"): Handle explicit integer
9053 specially.
9054 (call_value_insn): Likewise.
9055
9d2a492d
RK
90562004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9057
9058 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
9059
33d13fac
KH
90602004-03-19 Kazu Hirata <kazu@cs.umass.edu>
9061
9062 * fold-const.c (negate_expr): Move the handling of constants
9063 ...
9064 (fold_negate_const): ... here.
9065
7548281d
RK
90662004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9067
9068 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
9069 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
9070 * tree.c (debug_no_type_hash): Deleted.
9071 (type_hash_canon): Abort if passed a variant.
9072 Check lang_hooks.types.hash_types.
9073 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
9074 (build_array_type): Remove unnecessary allocation of pointer type.
9075 (build_complex_type): Properly qualify resulting type.
9076
7e463bda
PB
90772004-03-19 Paolo Bonzini <bonzini@gnu.org>
9078
9079 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
9080
8efc8980
RS
90812004-03-19 Richard Sandiford <rsandifo@redhat.com>
9082
9083 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
9084 (expand_mult): ...here.
9085 (extract_high_half): New, split out from expand_mult_highpart.
9086 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
9087 (expand_highpart): Evaluate the cost of a shift/add sequence,
9088 then see if any of the specialized optabs are cheaper.
9089
ff3fcb8a
ILT
90902004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
9091
9092 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
9093
1fb7e3af
KG
90942004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9095
9096 * convert.c (convert_to_real): Add more math builtins.
9097
b3810360
KG
90982004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9099
9100 * convert.c (convert_to_real): Reformat using switch stmt.
9101
9d363a56
MM
91022004-03-18 Mark Mitchell <mark@codesourcery.com>
9103
9104 * c-common.c (pointer_int_sum): Do not complain about using
9105 pointers to pointers-to-members.
9106
c3690d79
KH
91072004-03-18 Kazu Hirata <kazu@cs.umass.edu>
9108
9109 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
9110 have moved to the target hooks structure".
9111
c3840092
JW
91122004-03-18 James E Wilson <wilson@specifixinc.com>
9113
9114 * config/mips/mips.md (type): Split move into arith and fmove. Split
9115 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
9116 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
9117 Likewise.
9118 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
9119 Likewise.
9120 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
9121 rm7_fp_quick): Likewise.
9122 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
9123 rm9k_fquick): Likewise.
9124 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
9125 Likewise.
9126 (ir_sr70_icmp): Delete.
9127
eb34af89 91282004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
f75fbaf7 9129
eb34af89
RK
9130 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
9131 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
9132 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
9133 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
9134 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
9135 Protect with proper check.
9136 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
9137 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
9138 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
9139 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
9140 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
9141 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
9142 not TYPE_FIELDS.
d3b6a5fb 9143 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
eb34af89 9144
2171cb85
MH
91452004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
9146
9147 * gcse.c (eliminate_partially_redundant_loads): Reject change if
9148 dest is set between beginning and current insn.
9149
4ada538b
MM
91502004-03-18 Mark Mitchell <mark@codesourcery.com>
9151
9152 * c-decl.c (grokdeclarator): Do not complain about redeclaring
9153 visible "static" identifiers "extern" in a local scope.
9154 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
9155 post-increments/decrements.
9156
79e9ebdc
BW
91572004-03-18 Bob Wilson <bob.wilson@acm.org>
9158
9159 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
9160 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
9161 (xtensa_va_start): Remove assignment to current_function_arg_words.
9162
5da6f168
RS
91632004-03-18 Richard Sandiford <rsandifo@redhat.com>
9164
9165 * alias.c (record_set): Detect the case where a register is assigned
9166 a new value that has the same base term as the old one.
9167
689ba89d
ZD
91682004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9169
9170 * doloop.c: Removed.
9171 * loop-doloop.c: New file.
9172 * Makefile.in (doloop.o): Remove.
9173 (loop-doloop.o): New.
9174 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
9175 * cfgloopanal.c (get_loop_level): New function.
9176 * loop-iv.c (iv_number_of_iterations): Handle case when loop
9177 is leaved immediatelly.
9178 * loop.c (strength_reduce): Do not call doloop optimization.
9179 * loop.h (LOOP_BCT): Removed.
9180 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
9181 (rest_of_handle_loop2): Call doloop_optimize_loops.
9182 (rest_of_compilation): Test for optimizations moved to
9183 rest_of_handle_loop2.
9184
327e5343
FJ
91852004-03-17 Fariborz Jahanian <fjahanian@apple.com>
9186
f75fbaf7
ZW
9187 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
9188 for mixed mode.
9189 (rs6000_emit_prologue): Ditto.
9190 (rs6000_emit_epilogue): Ditto.
9191 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
9192 macro for mixed mode.
327e5343 9193
214ee4a2
JH
91942004-03-18 Jan Hubicka <jh@suse.cz>
9195
9196 * predict.c (propagate_freq): Compute correctly frequency of
9197 EXIT_BLOCK.
9198
33521f7d
EC
91992004-03-17 Eric Christopher <echristo@redhat.com>
9200
9201 * builtins.c (apply_args_size): Use reg_raw_mode.
9202 (apply_result_size): Ditto.
9203
d3daf7bb
RC
92042004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9205
9206 PR target/14620
9207 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
9208
bb6df272
JJ
92092004-03-17 Jakub Jelinek <jakub@redhat.com>
9210
9211 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
9212 32-bit builds when defaulting to 32-bit.
9213
7eca0767
JH
92142004-03-17 Jan Hubicka <jh@suse.cz>
9215
9216 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
9217 array.
9218
3a3ae5e5
JW
92192004-03-17 James E Wilson <wilson@specifixinc.com>
9220
9221 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
9222 (hazard_nop): Change type to nop.
9223 (type): Split arith into arith, shift, slt, clz. Delete darith.
9224 Fix all uses. Change arith to multi if more than one insn emitted.
9225 * config/mips/5400.md (ir_vr54_arith): Likewise.
9226 * config/mips/5500.md (ir_vr55_arith): Likewise.
9227 * config/mips/7000.md (rm7_int_other): Likewise.
9228 * config/mips/9000.md (rm9k_int): Likewise.
9229 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
9230
6582c808
JB
92312004-03-17 Joel Brobecker <brobecker@gnat.com>
9232
9233 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
9234 to hold the subtype tree instead of recomputing it several times.
9235
7ae4afcb
KH
92362004-03-17 Kazu Hirata <kazu@cs.umass.edu>
9237
9238 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
9239 CC_INVERT.
9240 * config/mn10300/mn10300.md (cc): Remove "invert".
9241
b57051b2
KG
92422004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9243
d093738d
KG
9244 * builtins.c (integer_valued_real_p): Add builtin rint.
9245 (fold_builtin): Likewise.
9246 * convert.c (convert_to_real): Likewise.
9247
b57051b2
KG
9248 * convert.c (convert_to_real): Fix typos in `long double'
9249 builtins.
9250
88020bd8
MM
92512004-03-16 Mark Mitchell <mark@codesourcery.com>
9252
9253 PR c++/14481
9254 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
9255 generated COMPOUND_EXPRs.
9256
bf3864fe
RC
92572004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9258
9259 * config/h8300/t-rtems (h8300-*-rtems*): New.
9260
bc4c01b7
EC
92612004-03-16 Eric Christopher <echristo@redhat.com>
9262
9263 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
9264
3c5cb3e4
KH
92652004-03-16 Kazu Hirata <kazu@cs.umass.edu>
9266
9267 * config/i386/i386-protos.h: Add a prototype for
9268 ix86_reverse_condition.
9269 * config/i386/i386.c (ix86_reverse_condition): New.
9270 * config/i386/i386.h (REVERSE_CONDITION): Use
9271 ix86_reverse_condition.
9272 * config/i386/i386.md: Use ix86_reverse_condition instead of
9273 REVERSE_CONDITION.
9274
fd5580cb
B
92752004-03-16 J. Brobecker <brobecker@gnat.com>
9276
9277 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
9278
78fab00f
NN
92792004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
9280
9281 PR bootstrap/12974
9282 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
9283
4a5eab38
PB
92842004-03-16 Paolo Bonzini <bonzini@gnu.org>
9285
9286 * c-common.c (c_common_type_for_mode): Build vector types on
9287 demand.
9288 (handle_mode_attribute): Deprecate using the mode attribute
9289 to create vector types. Fix indentation.
9290 (vector_type_node_list): Remove.
9291 (handle_vector_size_attribute): Create vector types on demand.
9292 Strip a NON_LVALUE_EXPR from the attribute if there is one.
9293 * c-typeck.c (comptypes): Make vector types compatible if they
9294 have the same underlying mode.
9295 (convert_for_assignment): Use comptypes to convert between
9296 vector types.
9297 * tree.c (build_common_tree_nodes_2): Do not create vector types.
9298 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
9299 vector types.
9300 * tree.h: Remove vector types.
9301 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
9302 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
9303 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
9304 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
9305 * doc/extend.texi (Vector Types): Document how to use the
9306 vector_size attribute to create vectors, rather than mode.
9307
9308 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
9309 * config/i386/emmintrin.h: Likewise.
9310 * config/i386/mmintrin.h: Likewise.
9311 * config/i386/xmmintrin.h: Likewise.
9312 * config/sh/ushmedia.h: Likewise.
9313
b862b3b3
KH
93142004-03-16 Kazu Hirata <kazu@cs.umass.edu>
9315
9316 * config/freebsd-spec.h, config/arc/arc-protos.h,
9317 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
9318 config/arm/linux-gas.h, config/arm/semi.h,
9319 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
9320 config/ia64/freebsd.h, config/mips/7000.md,
9321 config/mips/9000.md, config/ns32k/ns32k-protos.h,
9322 config/sparc/pbd.h: Update copyright.
9323
314733e2
RC
93242004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
9325
9326 PR target/14577
9327 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
9328
6621d78e
PB
93292004-03-16 Paolo Bonzini <bonzini@gnu.org>
9330
9331 * combine.c (combine_simplify_rtx): Remove the "last"
9332 parameter and its documentation. Adjust recursive calls.
9333 (simplify_logical): Always perform the only simplification
9334 controlled by "last", if the simplified expression is
9335 actually different.
9336 (try_combine): Do not pass the "last" parameter to
9337 combine_simplify_rtx.
9338
4e7edcca
RS
93392004-03-16 Richard Sandiford <rsandifo@redhat.com>
9340
9341 PR target/14599
9342 * config/mips/mips.md (UNSPEC_GP): New constant.
9343 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
9344 an UNSPEC instead of (reg $gp).
9345 (mips16_gp_pseudo_reg): Change accordingly.
9346 (print_operand): Print $gp directly when handling CONST_GP_P.
9347
93482004-03-16 Richard Zidlicky <rz@linux-m68k.org>
3704aae9
RZ
9349
9350 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
9351 * longlong.h: Make code 68060 clean when compiling for m68060.
9352
4e7edcca 93532004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8ac658b6
RZ
9354
9355 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
9356 * doc/md.texi: Clarify description of "i" constraint.
9357
1a478672
JW
93582004-03-15 James E Wilson <wilson@specifixinc.com>
9359
9360 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
9361 Split store into store, fpstore, fpidxstore. Fix all uses.
9362 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
9363 Likewise.
9364 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
9365 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
9366 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
9367 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
9368 ir_sr70_fstore): Likewise.
9369
0977ab3a
RH
93702004-03-15 Richard Henderson <rth@redhat.com>
9371
9372 PR middle-end/14535
9373 * except.c (collect_one_action_chain): Record action for cleanup
9374 outer of exception spec.
9375
4e4083ad
ILT
93762004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
9377
9378 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9379 Fix the check for abort and only do the mmap if we can.
9380
ed38d6fe
EB
93812004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
9382
9383 * config/sparc/sparc.h: Rework comments about the code model
9384 in 64-bit environment and the mode 'Pmode'.
9385 * doc/invoke.texi (SPARC options): Rework description of the
9386 different code models supported in 64-bit environment.
9387
1f8551b2
KH
93882004-03-15 Kazu Hirata <kazu@cs.umass.edu>
9389
9390 * defaults.h (REVERSIBLE_CC_MODE): Define.
9391 * jump.c (reversed_comparison_code_parts): Don't check if
9392 REVERSIBLE_CC_MODE is defined.
9393
ca2b05ba
KH
93942004-03-15 Kazu Hirata <kazu@cs.umass.edu>
9395
9396 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
9397 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
9398 hosthooks.h, params.h, ra-colorize.c, web.c,
9399 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
9400 config/avr/avr-protos.h, config/avr/avr.md,
9401 config/fr30/fr30-protos.h, config/fr30/fr30.md,
9402 config/h8300/fixunssfsi.c, config/i386/darwin.h,
9403 config/i386/freebsd.h, config/i386/freebsd64.h,
9404 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
9405 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
9406 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
9407 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
9408 config/pa/pa64-regs.h, config/rs6000/aix41.h,
9409 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
9410 config/sparc/aout.h, config/sparc/freebsd.h,
9411 config/sparc/litecoff.h, config/vax/vax-protos.h,
9412 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
9413 copyright.
9414
983e6484
PB
94152004-03-15 Paul Brook <paul@codesourcery.com>
9416
9417 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
9418
5c3c69f4
GDR
94192004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
9420
9421 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
9422 (pp_c_cv_qualifier): Document.
9423 (pp_c_space_for_pointer_operator): Likewise.
9424 (pp_c_integer_constant): Likewise.
9425 (pp_c_identifier): Likewise.
9426 (pp_c_init_declarator): Don't print function body.
9427
2dd76960
JM
94282004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
9429
9430 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
9431 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
9432 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
9433 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
9434 wording and grammar.
9435
ae2bcd98
RS
94362004-03-14 Roger Sayle <roger@eyesopen.com>
9437
9438 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
9439 with lang_hooks.foo ().
9440 * builtins.c (expand_builtin_va_arg): Likewise.
9441 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
9442 c_common_type_for_mode, c_common_nodes_and_builtins,
9443 handle_mode_attribute, handle_vector_size_attribute): Likewise.
9444 * c-convert.c (convert): Likewise.
9445 * c-format.c (check_format_types): Likewise.
9446 * c-objc-common.c (c_tree_printer): Likewise.
9447 * c-typeck.c (build_unary_op, build_conditional_expr,
9448 build_binary_op): Likewise.
9449 * calls.c (try_to_integrate, expand_call,
9450 emit_library_call_value_1): Likewise.
9451 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
9452 Likewise.
9453 * cgraphunit.c (record_call_1, cgraph_analyze_function,
9454 cgraph_expand_function): Likewise.
9455 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
9456 * coverage.c (build_fn_info_type, build_ctr_info_type,
9457 build_gcov_info, create_coverage): Likewise.
9458 * dbxout.c (dbxout_init): Likewise.
9459 * diagnostic.c (diagnostic_report_current_function): Likewise.
9460 * dojump.c (do_jump): Likewise.
9461 * dwarf2out.c (dwarf2_name): Likewise.
9462 * except.c (init_eh): Likewise.
9463 * explow.c (expr_size, int_expr_size): Likewise.
9464 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
9465 Likewise.
9466 * expr.c (store_expr, store_constructor, safe_from_p,
9467 expand_expr_real, do_store_flag, try_casesi): Likewise.
9468 * function.c (push_function_context_to, pop_function_context_from,
9469 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
9470 put_var_into_stack, allocate_struct_function, current_function_name):
9471 Likewise.
9472 * integrate.c (copy_decl_for_inlining, expand_inline_function):
9473 Likewise.
9474 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
9475 lhd_print_error_function): Likewise.
9476 * opts.c (handle_option, decode_options): Likewise.
9477 * passes.c (open_dump_file): Likewise.
9478 * print-tree.c (print_node): Likewise.
9479 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
9480 expand_decl_cleanup, emit_case_nodes): Likewise.
9481 * stor-layout.c (variable_size): Likewise.
9482 * toplev.c (announce_function, wrapup_global_declarations,
9483 check_global_declarations, compile_file, default_tree_printer,
9484 process_options, lang_dependent_init, finalize): Likewise.
9485 * tree-dump.c (dequeue_and_dump): Likewise.
9486 * tree-inline.c (remap_decl, remap_block, copy_body_r,
9487 initialize_inlined_parameters, declare_return_variable,
9488 inlinable_function_p, expand_call_inline, optimize_inline_calls,
9489 walk_tree, copy_tree_r): Likewise.
9490 * tree-optimize.c (tree_rest_of_compilation): Likewise.
9491 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
9492 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
9493 variably_modified_type_p, dump_tree_statistics): Likewise.
9494 * varasm.c (assemble_variable, compare_constant, copy_constant,
9495 force_const_mem, compute_reloc_for_constant, output_constant,
9496 output_addressed_constants, initializer_constant_valid_p): Likewise.
9497
89acbae0
KC
94982004-03-14 Kelley Cook <kcook@gcc.gnu.org>
9499
9500 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
9501
d01b30dc
AT
95022004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
9503
9504 * doc/install.texi: Reflect autoconf and automake version for
9505 libffi. Update autoconf version to 2.59.
9506
5785c7de
RS
95072004-03-13 Roger Sayle <roger@eyesopen.com>
9508
9509 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
9510 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
9511 make_range, build_range_check, fold_range_test, unextend,
9512 constant_boolean_node, fold_binary_op_with_conditional_arg,
9513 fold_truthop, fold_mathfn_compare, fold_inf_compare,
9514 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
9515 with lang_hooks.foo ().
9516
edc62122
RE
95172004-03-14 Richard Earnshaw <rearnsha@arm.com>
9518
9519 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
9520
7db956db
DH
95212004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
9522
9523 * doc/install.texi: Note status of -fnew-ra.
9524
e6d55fd7
EB
95252004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
9526
9527 PR middle-end/14470
9528 * expr.c (store_expr): Call emit_queue before generating the move
9529 from the temporary to the original target. Protect the temporary
9530 from emit_queue.
9531
cfbab41c
JJ
95322004-03-13 Jakub Jelinek <jakub@redhat.com>
9533
9534 PR target/14533
9535 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
9536 other than UNSPEC_GOTOFF.
9537
1e1ab407
RE
95382004-03-13 Richard Earnshaw <rearnsha@arm.com>
9539
9540 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
9541 to arm_legitimate_index_p. Update all callers with SET as default
9542 value.
9543 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
9544 range if OUTER is a sign-extend operation on QImode. Correctly
9545 reject shift operations on sign-extended QImode addresses.
9546 (bad_signed_byte_operand): Delete.
9547 (arm_extendqisi_mem_op): New function.
9548 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
9549 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
9550 constraints.
9551 (CONSTRAINT_LEN): New.
9552 (EXTRA_CONSTRAINT): Delete. Replace with...
9553 (EXTRA_CONSTRAINT_STR): ... this.
9554 (PREDICATE_CODES): Remove bad_signed_byte_operand.
9555 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
9556 is now always default.
9557 (define_splits for bad sign-extend loads): Delete.
9558 (arm_extendqisi, arm_extendqisi_v5): Likewise.
9559 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
9560 Rework 'U' constraint to 'Uv'.
9561 * arm-protos.h: Remove bad_signed_byte_operand. Add
9562 arm_extendqisi_mem_op.
9563 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
9564 Add Uq constraint.
9565
c53bdcf5
AM
95662004-03-13 Alan Modra <amodra@bigpond.net.au>
9567
fa78dbea
AM
9568 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
9569 with targetm version.
9570
c53bdcf5
AM
9571 PR target/14567
9572 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
9573 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
9574 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
9575 Update all users of RS6000_ARG_SIZE.
9576 (function_arg_advance): Count fregno using mode size.
9577 (function_arg): Handle long double split over regs and memory.
9578 (function_arg_partial_nregs): Likewise.
9579 (rs6000_va_arg): Repackage complex args.
9580
992ab122
DF
95812004-03-13 Dean Ferreyra <dferreyra@igc.org>
9582
9583 PR target/14047
9584 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
9585 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
9586 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
9587
c973d557
JJ
95882004-03-12 Jakub Jelinek <jakub@redhat.com>
9589
9590 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
9591 prototype.
9592 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
9593 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
9594
94632047 95952004-03-12 Andrew Pinski <apinski@apple.com>
4319ac92
AP
9596
9597 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9598 Use ret instead of result. Use addr instead of base.
9599
bb674cef
DE
96002004-03-12 David Edelsohn <edelsohn@gnu.org>
9601
9602 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
9603 fixes required by libstdc++ and update installation instructions
9604 for libstdc++.a.
9605
b1f123c7
DS
96062004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
9607
9608 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
9609 leading '@' on fastcall symbols before stripping suffix.
9610
67962db5
RS
96112004-03-12 Roger Sayle <roger@eyesopen.com>
9612
9613 * combine.c (unmentioned_reg_p): New function to check whether an
9614 expression is a "specialization" of another, i.e. that there are
9615 no registers or memory references mentioned in the first that don't
9616 appear in the second.
9617 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
9618 (combine_instructions): Also try combining instructions using the
9619 REG_EQUAL note from a preceding log-linked instruction.
9620
8937b6a2
RS
96212004-03-12 Roger Sayle <roger@eyesopen.com>
9622
9623 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
9624
4746cf84
MA
96252004-03-12 Matt Austern <austern@apple.com>
9626
9627 * target.h (struct gcc_target): New target hook, unwind_label.
9628 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
9629 * output.h (default_emit_unwind_label): New function.
9630 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
9631 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
9632 (TARGET_SUPPORTS_HIDDEN): New target macro.
9633 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
9634 that corresponds to this FDE.
9635 (FRAME_BEGIN_LABEL): Allow target to override default label.
9636 (output_call_frame_info): If FDEs are linknonce, then use extra
c53bdcf5 9637 indirection for FDE encoding, output a label for each FDE, and
4746cf84
MA
9638 output an empty label for each function without an FDE.
9639 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
9640 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
9641 decls with DECL_ONE_ONLY set, if that macro is defined.
9642 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9643 for a SUPPORTS_ONE_ONLY target.
9644 * config/darwin-protos.h (darwin_unique_section): Declare.
9645 (darwin_asm_named_section): Likewise.
9646 (darwin_section_type_flags): Likewise.
9647 (darwin_non_lazy_pcrel): Likewise.
9648 (darwin_emit_unwind_label): Likewise.
9649 (darwin_make_decl_one_only): Likewise.
9650 * config/darwin.c (machopic_finish): Get rid of tweak that
9651 eliminate stubs for symbols that are defined.
9652 (darwin_encode_section_info): Don't treat weak functions as defined.
9653 (darwin_make_decl_one_only): Define.
9654 (darwin_asm_named_section): Likewise.
9655 (darwin_section_type_flags): Likewise.
9656 (darwin_unique_section): Likewise.
9657 (darwin_emit_unwind_label): Likewise.
9658 (darwin_non_lazy_pcrel): Likewise.
9659 (darwin_asm_output_dwarf_delta): Difference between two labels is
9660 local only if both labels are local.
9661 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9662 (ASM_MAKE_LABEL_LINKONCE): Likewise.
9663 (TARGET_SUPPORTS_HIDDEN): Likewise.
9664 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9665 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9666 (FRAME_BEGIN_LABEL): Likewise.
9667 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9668 (ASM_DECLARE_FUNCTION_NAME): Likewise.
9669 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9670 (TARGET_ASM_UNIQUE_SECTION): Define.
9671 (EH_FRAME_SECTION_NAME): Define.
9672 (EH_FRAME_SECTION_ATTR): Likewise.
9673 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9674 (TARGET_ASM_NAMED_SECTION): Likewise.
9675 (TARGET_SECTION_TYPE_FLAGS): Likewise.
9676 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9677 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9678 TARGET_ASM_EMIT_UNWIND_LABEL.
bc4c01b7 9679
fd0c8c8d
KG
96802004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9681
9682 * builtins.c (expand_builtin_mathfn): Add pow10* to the
9683 existing exp10* case.
9684 (expand_builtin): Likewise.
9685
ca0b6e3b
EB
96862004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
9687
9688 * doc/tm.texi (registers) <Values in Registers>: Add
9689 entry for REGMODE_NATURAL_SIZE.
9690
42ba5130
RH
96912004-03-12 Richard Henderson <rth@redhat.com>
9692
9693 PR target/14547
9694 * target.h (struct gcc_target): Move calls substructure before
9695 booleans. Add split_complex_arg.
9696 * function.c (assign_parms, split_complex_args): Use it.
c53bdcf5
AM
9697 * calls.c (expand_call): Likewise.
9698 (split_complex_values): Likewise. Check for splittable types
9699 before allocating memory.
9700 (split_complex_types): Likewise.
42ba5130
RH
9701 * system.h (SPLIT_COMPLEX_ARGS): Poison.
9702 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9703 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9704 * config/alpha/alpha.c (alpha_split_complex_arg): New.
9705 (TARGET_SPLIT_COMPLEX_ARG): New.
9706 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9707 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9708 (rs6000_override_options): Zap it for non-AIX.
9709 (rs6000_function_value): Use targetm.calls.split_complex_arg.
9710 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9711 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9712 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9713 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9714 SPLIT_COMPLEX_ARGS entry.
9715
75959f0a
RH
97162004-03-11 Richard Henderson <rth@redhat.com>
9717
9718 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9719 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9720 (alpha_emit_xfloating_arith): Update to match.
9721 (alpha_emit_xfloating_compare): Likewise.
9722 (alpha_emit_xfloating_cvt): Likewise.
9723 (alpha_emit_xfloating_libcall): Take already built symbol,
9724 mark call const.
9725 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9726 op1 in a register.
9727
e5e10fb4
RH
97282004-03-11 Richard Henderson <rth@redhat.com>
9729
9730 PR target/14539
9731 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9732
55cf9d62
RH
9733 * simplify-rtx.c (simplify_relational_operation): Fix typo.
9734
9caad63a
RH
97352004-03-11 Richard Henderson <rth@redhat.com>
9736
9737 PR middle-end/14477
9738 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9739
03ca1672
UW
97402004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
9741
9742 PR target/14262
9743 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9744 defined, pass small BLKmode values in registers in the low-order part.
9745
bbe708a3
UW
97462004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
9747
9748 * combine.c (if_then_else_cond): Check for NULL return value of
9749 simplify_gen_subreg.
9750
0e808055
RS
97512004-03-11 Richard Sandiford <rsandifo@redhat.com>
9752
9753 PR target/14496
9754 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9755 TARGET_SINGLE_FLOAT.
9756
1f7aa7cd
SE
97572004-03-11 Steve Ellcey <sje@cup.hp.com>
9758
9759 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9760 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9761 * config/ia64/ia64.c (ia64_init_libfuncs): New.
9762 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9763
239a625e
RS
97642004-03-11 Roger Sayle <roger@eyesopen.com>
9765
9766 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9767 -((int)X>>C) where C is an integer constant one bit less than the
9768 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
9769 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9770
9771 * simplify-rtx.c (simplify_unary_operation): Also implement the
9772 above transformations at the RTL level.
9773
40131a38
AM
97742004-03-11 Alan Modra <amodra@bigpond.net.au>
9775
9776 * real.c (encode_ibm_extended): Do round low word.
9777
df8e2ad0
BE
97782004-03-11 Ben Elliston <bje@wasabisystems.com>
9779
9780 * config/arm/arm.md (is_xscale): Comment this attribute and move
9781 it a bit further up in the file, closer to related attributes.
9782
d1704a35
EB
97832004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
9784
9785 * config/host-solaris.c (sol_gt_pch_use_address): Add
9786 missing terminating marker to comment.
9787
fc31c7ca
RS
97882004-03-11 Richard Sandiford <rsandifo@redhat.com>
9789
9790 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9791 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9792 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9793 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
9794 move_operand as source predicate in all cases.
9795 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
9796 Test reg_or_0_operand. Use move_operand as source predicate.
9797 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
9798 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9799 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
9800 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9801 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
9802 Use move_operand as source predicate. Remove 'K' constraint.
9803 (*movqi_internal): Likewise movqi_internal.
9804 (*movsf_hardfloat): Renamed from movsf_internal1. Test
9805 reg_or_0_operand. Use move_operand as source predicate.
9806 (*movsf_softfloat): Likewise movsf_internal2.
9807 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9808 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9809 (*movdf_softfloat): Likewise movdf_internal2.
9810 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9811 for DImode if !TARGET_64BIT.
9812 (mips_legitimize_move): Simplify accordingly.
9813
81f2eadb
JZ
98142004-03-11 Josef Zlomek <zlomekj@suse.cz>
9815
9816 PR/14362
9817 * var-tracking.c (struct variable_def): Added field refcount.
9818 (variable_htab_free): Decrease the refcount and delete variable
9819 only if there are no more references.
9820 (unshare_variable): New function.
9821 (vars_copy_1): Increase refcount instead of copying the variable.
9822 (variable_union): Share the variables where possible, unshare
9823 the variables if needed.
9824 (variable_different_p): Return false if var1 and var2 are
9825 the same structure.
9826 (variable_was_changed): Init the refcount of new variable.
9827 (set_frame_base_location): Unshare variable if needed.
9828 (set_variable_part): Init the refcount of new variable.
9829 Unshare the variables if needed.
c53bdcf5 9830 (delete_variable_part): Unshare the variables if needed.
81f2eadb
JZ
9831 (emit_notes_for_differences_1): Init the refcount of new variable.
9832 (vt_add_function_parameters): Do not add function parameters to
9833 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9834 (vt_initialize): Do not add frame_base_decl to IN set of
9835 ENTRY_BLOCK_PTR because it is unused anyway.
9836
11599d14
JZ
98372004-03-11 Josef Zlomek <zlomekj@suse.cz>
9838
9839 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9840 (vars_copy): Likewise.
9841 (variable_union): Likewise.
9842 (set_variable_part): Likewise.
9843 (delete_variable_part): Likewise.
9844
71cc389b
KH
98452004-03-11 Kazu Hirata <kazu@cs.umass.edu>
9846
9847 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9848 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9849 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9850 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9851 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9852 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9853 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9854 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9855 config/stormy16/stormy16.c: Fix comment typos and formatting.
9856
f3c9f174
NN
98572004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
9858
9859 * configure: Regenerate, since I forgot to while committing Paolo's
9860 changes.
9861
e4c9c075
PB
98622004-03-08 Paolo Bonzini <bonzini@gnu.org>
9863
9864 PR ada/14131
9865 Move language detection to the top level.
9866 * configure.ac: Remove code to detect languages,
9867 it now lives exclusively in the top level.
9868 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9869 top level, renamed to ACX_PROG_GNAT.
9870
4d0c31e6
RH
98712004-03-10 Richard Henderson <rth@redhat.com>
9872
9873 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9874 extra arguments.
9875 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9876 and host_xmake_file fragments.
9877 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9878 (gt_pch_restore): Similarly for gt_pch_use_address.
9879 (default_gt_pch_get_address): New.
9880 (mmap_gt_pch_get_address): Split out of gt_pch_save.
9881 (default_gt_pch_use_address): Split out of gt_pch_restore.
9882 (mmap_gt_pch_use_address): Likewise.
9883 * hooks.c (hook_voidp_size_t_null): Remove.
9884 (hook_bool_voidp_size_t_false): Remove.
9885 * hooks.h: Likewise.
9886 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9887 default_ or mmap_ definitions.
9888 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9889 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9890 and gt_pch_use_address.
9891 * config/host-linux.c, config/host-solaris.c: New files.
9892 * config/x-linux, config/x-solaris: New files.
bc4c01b7 9893 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4d0c31e6
RH
9894 Update for changed definition.
9895 (darwin_rs6000_gt_pch_use_address): Likewise.
9896 * doc/hostconfig.texi: Update docs.
9897
28fca7e4
RH
98982004-03-10 Richard Henderson <rth@redhat.com>
9899
9900 PR c/14517
9901 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9902 except for pedantic c90 mode.
9903
8ab705be
KC
99042004-03-10 Kelley Cook <kcook@gcc.gnu.org>
9905
9906 * configure.ac: Bump AC_PREREQ to 2.59.
9907 * configure: Regenerate.
9908
a251102e
UB
99092004-03-10 Uros Bizjak <uros@kss-loka.si>
9910
9911 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9912 (exp10_optab, exp2_optab): Define corresponding macros.
9913 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9914 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9915 using exp10?f2 and exp2?f2 patterns.
9916 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9917 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9918 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9919 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9920
9921 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9922 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9923 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9924
11f01d37
AG
99252004-03-10 Anthony Green <green@redhat.com>
9926
9927 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9928
bb904c1a
DE
99292004-03-10 David Edelsohn <edelsohn@gnu.org>
9930
9931 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9932 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
9933 __LONGDOUBLE128.
9934 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9935 TARGET_OS_AIX_CPP_BUILTINS.
9936 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9937 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9938 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9939 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9940 previous change.
9941
b45d3a36
KG
99422004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9943
9944 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9945
35ae04ba
DE
99462004-03-10 David Edelsohn <edelsohn@gnu.org>
9947
9948 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9949 __LONGDOUBLE128 on AIX.
9950
ffad84cd
AH
99512004-03-10 Andrew Haley <aph@redhat.com>
9952
f7b48371 9953 PR optimization/14381
ffad84cd
AH
9954 * function.c (expand_function_end): Emit a blockage insn before
9955 the epilogue when -fnon-call-exceptions is used.
9956
9957 * except.c (expand_start_all_catch): Make comment more accurate.
9958
65cd26a6
JS
99592004-03-08 Joel Sherrill <joel@oarcorp.com>
9960
9961 PR target/14480
9962 * config/rs6000/t-rtems: Add missing file on branch.
9963
452c159e
UW
99642004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
9965
9966 * dbxout.c (dbxout_symbol_location): Do not output references
9967 to optimized-out constant pool symbols.
9968
5f1b2068
AS
99692004-03-10 Andreas Schwab <schwab@suse.de>
9970
9971 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9972 twon34_r.
9973
5399d643
JW
99742004-03-09 James E Wilson <wilson@specifixinc.com>
9975
9976 * alias.c (alias_sets_might_conflict_p): New.
9977 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9978 * common.opt (Wstrict-aliasing=): New.
9979 * flags.h (warn_strict_aliasing): Change type to int.
9980 * opts.c (warn_strict_aliasing): Change type to int.
9981 (common_handle_option): Handle OPT_Wstrict_aliasing_.
9982 * tree.h (alias_sets_might_conflict_p): Declare it.
9983 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9984
a4e9467d
RZ
99852004-03-10 Roman Zippel <zippel@linux-m68k.org>
9986
9987 PR bootstrap/12371
9988 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9989 (CALL_USED_REGISTERS): Likewise.
c53bdcf5 9990 (REG_CLASS_CONTENTS): Likewise.
a4e9467d
RZ
9991 (REG_ALLOC_ORDER): New.
9992 (REGNO_REG_CLASS): Use regno_reg_class.
9993 * config/m68k/m68k.c: Add regno_reg_class array.
9994
9aec7fb4
SE
99952004-03-09 Steve Ellcey <sje@cup.hp.com>
9996
9997 * config/ia64/ia64.md (divsi3): Fix algorithm.
9998 (udivsi3): Ditto.
9999 (setf_exp_xf): Remove '*' from name.
10000 * testsuite/gcc.dg/20040309-1.c: New test.
10001
9acd4a03
ILT
100022004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
10003
10004 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
10005 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
10006 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
10007 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
10008 (sparc_aout_select_rtx_section): Don't check
10009 SUNOS4_SHARED_LIBRARIES.
10010 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
10011
a5249a21
HPN
100122004-03-10 Hans-Peter Nilsson <hp@axis.com>
10013
10014 PR other/14474
10015 * doc/md.texi (Pattern Ordering, Dependent Patterns)
10016 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
10017 INTERNALS".
10018
e373cdb4
ZW
100192004-03-09 Zack Weinberg <zack@codesourcery.com>
10020
10021 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
10022 (LIBGCC_SPEC): Update to match.
10023
77dbdb57
ZW
100242004-03-09 Zack Weinberg <zack@codesourcery.com>
10025
10026 * c-decl.c (last_function_parms, last_function_parm_tags)
10027 (last_function_parm_others, current_function_parms)
10028 (current_function_parm_tags, current_function_parm_others):
10029 Delete.
10030 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
10031 New macros.
10032 (grokdeclarator): For function definitions, save the arg-info
10033 block from the declarator in DECL_ARGUMENTS.
10034 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
10035 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
10036 contains only PARM_DECLs. Improve diagnostics.
10037 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
10038 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
10039 (store_parm_decls_newstyle): Take the function to operate on,
10040 and an arg-info block, as arguments; don't get anything from
10041 current_function_* globals.
10042 (store_parm_decls_oldstyle): Likewise.
10043 (store_parm_decls): Pass fndecl and its arg-info block down to
10044 store_parm_decls_newstyle/oldstyle. Send functions with empty
10045 argument lists through store_parm_decls_newstyle to reduce
10046 overhead.
10047 (pushdecl): Comment on the problems with the call to copy_node.
10048 Clear DECL_ARGUMENTS of the old node after copying it, if it
10049 is an arg-info block instead of a chain of decls.
10050 (start_function): Do not manipulate current_function_parm* or
10051 last_function_parm*.
10052
305eeaeb
RS
100532004-03-09 Roger Sayle <roger@eyesopen.com>
10054 Andrew Pinski <pinskia@physics.uc.edu>
10055
10056 * ifcvt.c (noce_try_sign_mask): New function to transform
10057 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
10058 (noce_process_if_block): Call noce_try_sign_mask.
10059
f38f747d
AP
100602004-03-09 Andrew Pinski <apinski@apple.com>
10061
10062 * c-typeck.c (tagged_types_tu_compatible_p):
10063 Fix typo.
10064
7ce3e360
RS
100652004-03-09 Roger Sayle <roger@eyesopen.com>
10066
10067 * simplify-rtx.c (simplify_const_relational_operation): New function
10068 renamed from simplify_relational_operation.
10069 (simplify_relational_operation): Change prototype to accept an
10070 additional mode argument. Call simplify_const_relational_operation.
10071 (simplify_gen_relational): Update simplify_relational_operation call.
10072 (simplify_ternary_operation): Update simplify_relational_operation
10073 subroutine call to use simplify_const_relational_operation instead.
10074
10075 * rtl.h (simplify_const_relational_operation): Prototype here.
10076 (simplify_relational_operation): Add addtional mode argument.
10077
10078 * combine.c (combine_simplify_rtx): Update calls to
10079 simplify_relational_operation.
10080 (simplify_set): Likewise.
10081 (gen_binary): Likewise.
10082 * cse.c (fold_rtx): Likewise.
10083 * dojump.c (compare_from_rtx): Likewise.
10084 (do_compare_rtx_and_jump): Likewise.
10085 * integrate.c (subst_constants): Likewise.
10086 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
10087
c0e63064
KH
100882004-03-09 Kazu Hirata <kazu@cs.umass.edu>
10089
10090 * config/m32r/m32r.md: Remove all define_peephole's.
10091
6ae08853
AM
100922004-03-09 Alan Modra <amodra@bigpond.net.au>
10093
10094 * config/rs6000/rs6000.md: Remove trailing whitespace.
10095
5340bbea
EC
100962004-03-08 Eric Christopher <echristo@redhat.com>
10097
10098 * Makefile.in (site.exp): Add libiconv variable definition.
10099
3beb1315
HPN
101002004-03-09 Hans-Peter Nilsson <hp@axis.com>
10101
10102 * configure: Regenerate for config/accross.m4 correction.
10103
c589970a
JS
101042004-03-08 Joel Sherrill <joel@oarcorp.com>
10105
10106 PR target/14480
10107 * config/rs6000/t-rtems: Add missing file on branch.
10108
e697b20f
RS
101092004-03-08 Roger Sayle <roger@eyesopen.com>
10110
10111 PR middle-end/14289
10112 * c-typeck.c (c_mark_addressable): A register variable should
10113 be considered global if its not automatic, i.e. TREE_PUBLIC,
10114 TREE_STATIC or DECL_EXTERNAL.
10115 * function.c (put_var_into_stack): Call abort when placing a
10116 hard register into the stack, if x_parm_reg_stack_loc is NULL.
10117
59f8a8be
UW
101182004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
10119
10120 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
10121 ("*extendqisi2_short_displ"): Likewise.
10122
23bd99da
KH
101232004-03-08 Kazu Hirata <kazu@cs.umass.edu>
10124
10125 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
10126 (comp_operator): Likewise.
10127 * config/pdp11/pdp11-protos.h: Remove corresponding
10128 prototypes.
10129
d50a16c4
EB
101302004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
10131
10132 * expr.c (highest_pow2_factor_for_type): Rename into
10133 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
10134 TYPE_ALIGN when the target is a COMPONENT_REF.
10135 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
10136
957211c3
AM
101372004-03-08 Alan Modra <amodra@bigpond.net.au>
10138
b1917422
AM
10139 * config/rs6000/rs6000.c: Formatting fix.
10140 (legitimate_offset_address_p): Correct offset range check.
10141
957211c3
AM
10142 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
10143 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
10144 and MASK_STRING.
10145
97727e85 101462004-03-07 Aldy Hernandez <aldyh@redhat.com>
5340bbea 10147
77dbdb57
ZW
10148 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
10149 for little endian.
10150 ("ashrdi3_no_power"): Disable for little endian.
97727e85
AH
10151 (ashrdi3): Same.
10152
280e63ec
KG
101532004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10154
10155 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
10156 builtins.
10157
86da66b5
HPN
101582004-03-08 Hans-Peter Nilsson <hp@axis.com>
10159
10160 PR target/14471
10161 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
10162 case, checking for -no-mul-bug-abort option.
10163 * configure, config.in: Regenerate.
10164 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
10165 and -mno-mul-bug-workaround.
10166 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
10167 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
10168 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
10169 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
10170 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
10171 sure mulu.d is not last on cache-line.
10172 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
10173 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
10174 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
10175 (TARGET_SWITCHES): New options -mmul-bug-workaround and
10176 -mno-mul-bug-workaround.
10177 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
10178 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
10179 * config/cris/cris.c (cris_operand_extend_operator): Clarify
10180 relation to MULT in head comment.
10181 (cris_op_str): Abort for MULT.
10182 (cris_print_operand) <case '!'>: New case.
10183
e7ee3914
AM
101842004-03-08 Alan Modra <amodra@bigpond.net.au>
10185
10186 PR debug/11983
10187 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
10188 dw_val_class_vec. Replace use throughout file.
10189 (dw_float_const): Delete.
10190 (dw_vec_const): New.
10191 (dw_val_struct_union): Rename val_float to val_vec. Replace use
10192 throughout file.
10193 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
10194 (same_dw_val_p): Adjust vec comparison. Use memcmp.
10195 (size_of_die): Adjust dw_val_class_vec sizing.
10196 (output_die): Output dw_val_class_vec.
10197 (insert_int, extract_int, insert_float): New functions.
10198 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
10199 Handle CONST_VECTOR.
10200 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
5cc73f91
AH
10201
102022004-03-07 Aldy Hernandez <aldyh@redhat.com>
10203
10204 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
10205 AltiVec abi cannot co-exist.
10206
10207 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
10208
a61bf177
JH
102092004-03-07 Jan Hubicka <jh@suse.cz>
10210
10211 * except.c (emit_to_new_bb_before): Break fallthru edges.
10212
17c60946
SC
102132004-03-07 Stephane Carrez <stcarrez@nerim.fr>
10214
10215 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
10216 ("*lshrsi3"): Also accept an immediate for 68HC12.
10217 ("*ashrsi3_const"): Likewise.
10218 ("*ashrsi3"): Likewise.
10219 ("*ashlsi3_const"): Likewise.
10220 ("*ashlsi3"): Likewise.
10221 ("cmphi_1_hc12"): Compare two hard register by pushing them and
10222 comparing with a pop; don't use a split for that.
10223 ("cmphi split"): Disable compare split for 68HC12.
10224
10225 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
10226 the status operands if they have side effects.
10227
3e759eda
KH
102282004-03-07 Kazu Hirata <kazu@cs.umass.edu>
10229
10230 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
10231 definition.
10232 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
10233 config/h8300/h8300.h, config/ia64/ia64.h,
10234 config/mcore/mcore.h, config/mmix/mmix.h,
10235 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10236 config/stormy16/stormy16.h, config/v850/v850.h,
10237 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
10238 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
10239 definition.
10240
cd2f1c7a
RS
102412004-03-07 Roger Sayle <roger@eyesopen.com>
10242
10243 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
10244 <XOR_EXPR>: Fold x ^ x as zero.
10245 <AND_EXPR>: Fold x & x as x.
10246
350f4ea8
RS
102472004-03-07 Roger Sayle <roger@eyesopen.com>
10248
10249 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
10250 "foo++ == const" into "++foo == const+incr".
10251
91455597
RS
102522004-03-07 Richard Sandiford <rsandifo@redhat.com>
10253
10254 * config/mips/mips.c (mips_in_small_data_p): Return false if
10255 TARGET_ABICALLS.
10256
a75ea627
SC
102572004-03-06 Stephane Carrez <stcarrez@nerim.fr>
10258
10259 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
10260 the stack register.
10261 (expand_prologue): Don't make an interrupt or a trap handler a far
10262 symbol.
10263 (m68hc11_initial_elimination_offset): Likewise.
10264
7179b6db
RH
102652004-03-06 Richard Henderson <rth@redhat.com>
10266
10267 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
10268
eff3c926
KH
102692004-03-06 Kazu Hirata <kazu@cs.umass.edu>
10270
10271 * config/ns32k/ns32k-protos.h: Add a prototype for
10272 ns32k_notice_update_cc.
10273 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
10274 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
10275 ns32k_notice_update_cc.
10276
22ea6b4f
UW
102772004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
10278
10279 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
10280 "*load_multiple_si"): Allow only if reload_completed.
10281 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
10282 Likewise.
10283
af0ec113
KH
102842004-03-06 Kazu Hirata <kazu@cs.umass.edu>
10285
10286 * config/vax/vax-protos.h: Add a prototype for
10287 vax_notice_update_cc.
10288 * config/vax/vax.c (vax_notice_update_cc): New.
10289 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
10290 vax_notice_update_cc.
10291
aaef9b06
DE
102922004-03-06 David Edelsohn <edelsohn@gnu.org>
10293
10294 * collect2.c (main): Only export initfunc and finifunc if
10295 LD_INIT_SWITCH not defined.
10296 (scan_prog_file): Only export constructors and destructors if
10297 LD_INIT_SWITCH not defined. Only export symbols not found in
10298 shared objects.
10299
7a9a5a44
JDA
103002004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10301
10302 * pa.md (icacheflush): Reorder operands to make match_scratch operand
10303 last.
10304 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
10305 from calls to gen_icacheflush.
10306
0f15adbd
RH
103072004-03-06 Richard Henderson <rth@redhat.com>
10308
10309 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
10310 (TARGET_LONG_DOUBLE_128): New.
10311 (TARGET_SWITCHES): Add long-double-{128,64}.
10312 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
10313 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
10314 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
10315 (WIDEST_HARDWARE_FP_SIZE): New.
10316 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
10317 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
10318 if TARGET_VAX_FLOAT.
10319 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
10320 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
10321
b9c685ae
RH
103222004-03-06 Richard Henderson <rth@redhat.com>
10323
10324 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
10325 botched rtx class conversion.
10326
82b4201f
KG
103272004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10328
10329 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
10330 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
10331
10332 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
10333 macros.
10334 * fold-const.c (fold_mathfn_compare, fold): Likewise.
10335
84289c76
EB
103362004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
10337
10338 PR target/14343
10339 * config/i386/i386.md (movv2di_internal): Conditionalize on
10340 TARGET_SSE, not TARGET_SSE2.
10341
3fdf09a1
CD
103422004-03-05 Chris Demetriou <cgd@broadcom.com>
10343
10344 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
10345 duplicated line.
10346
f2f4e976
KG
103472004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10348
10349 * builtins.c: Consistently use logN not log* in comments.
10350
2b3493c8
AK
103512004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
10352
10353 * rtl.h (mem_expr_equal_p): Function prototype added.
10354 * cfgcleanup.c (merge_memattrs): New function.
10355 (flow_find_cross_jump): Call merge_memattrs for matching insns.
10356 * emit-rtl.c (mem_expr_equal_p): New function.
10357
1a4a7065
ZL
103582004-03-05 Ziemowit Laski <zlaski@apple.com>
10359
10360 * objc/objc-act.c (synth_module_prologue): Const-qualify
10361 objc_selector type if using the GNU runtime; fix generated
10362 signatures for objc_msg_lookup and objc_msg_lookup_super
10363 to match what GNU ObjC headers provide; reformat and clean up.
10364 (synth_self_and_ucmd_args): Use previously constructed (and
10365 hence possibly const-qualified) objc_selector type.
10366
150c9fe8
KH
103672004-03-05 Kazu Hirata <kazu@cs.umass.edu>
10368
10369 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
10370
fd917e0d
JM
103712004-03-05 Jason Merrill <jason@redhat.com>
10372
10373 * tree.h (TYPE_HASH): Use TYPE_UID.
10374 (TREE_HASH): New macro with old definition of TYPE_HASH.
10375 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
10376 (build_array_type, build_function_type): Likewise.
10377 (build_method_type_directly): Likewise.
10378 (build_offset_type, build_complex_type): Likewise.
10379 (type_hash_list, attribute_hash_list): Likewise. Now static.
10380 * except.c: s/TYPE_HASH/TREE_HASH/.
10381
822e895c
BW
103822004-03-05 Bob Wilson <bob.wilson@acm.org>
10383
10384 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
10385 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
10386 __va_ndx by 2 words when referencing an argument on the stack.
10387 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
10388 words when an arg on the stack is first seen.
10389
2eb83715
PB
103902004-03-05 Paul Brook <paul@codesourcery.com>
10391
10392 * arm.h (ARM_FLAG_VFP): Remove.
10393 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
10394 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
10395
ce407aa9
PB
103962004-03-05 Paul Brook <paul@codesourcery.com>
10397
10398 * function.c (assign_parms): Include pretend alignment offset.
10399
019dd4ec
RK
104002004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10401
10402 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
10403 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
10404
33e70558
ILT
104052004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
10406
10407 * configure.ac: When passing --enable-languages to subdir
10408 configure when host != build, make sure we don't pass an empty
10409 value.
10410 * configure: Regenerate.
10411
ab786753
NS
104122004-03-05 Nathan Sidwell <nathan@codesourcery.com>
10413
10414 PR 13577
10415 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
10416 options.
10417
d2782048
PB
104182004-03-05 Paolo Bonzini <bonzini@gnu.org>
10419
10420 * simplify-rtx.c (simplify_relational_operation): If
10421 flag_wrapv is set, do not move terms between the two
10422 side of a relational operator.
10423
f894b69b
PB
104242004-03-05 Paolo Bonzini <bonzini@gnu.org>
10425
10426 * rtlanal.c: Include target.h and output.h
10427 (rtx_cost, address_cost, default_address_cost): Move from...
10428 * cse.c (rtx_cost, address_cost, default_address_cost):
10429 ... this file.
10430 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
10431 * Makefile.in: Adjust dependencies.
10432
86caf04d
PB
104332004-03-05 Paolo Bonzini <bonzini@gnu.org>
10434
10435 * cse.c (cse_end_of_basic_block): Make static.
10436 * local-alloc.c (function_invariant_p): Move to
10437 reload1.c.
10438 * loop.c (libcall_other_reg, record_excess_regs):
10439 Make static.
10440 * reload1.c (function_invariant_p): Moved here
10441 from local-alloc.c, made static.
10442 * rtl.h (cse_end_of_basic_block, function_invariant_p,
10443 libcall_other_reg, record_excess_regs): Remove
10444 declarations.
10445
d0fe265e
KH
104462004-03-05 Kazu Hirata <kazu@cs.umass.edu>
10447
10448 * config/m32r/m32r.c (signed_comparison_operator): Add a
10449 missing parenthesis.
10450
ee0d75ef
ILT
104512004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
10452
10453 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
10454 going to call mmap again. Read the file into the right place.
10455 Give a fatal error if we have to relocate.
10456
6e5ff6e7
BW
104572004-03-04 Bob Wilson <bob.wilson@acm.org>
10458
10459 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
10460 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
10461
fc7b80e4
HPN
104622004-03-05 Hans-Peter Nilsson <hp@axis.com>
10463
fd9361f7 10464 PR other/14354
fc7b80e4
HPN
10465 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
10466 round the same. When rounding, clear bits that would cause a
10467 second rounding in pack_d.
10468 (_fpmul_parts): Ditto. Remove #if 0:d code.
10469
b9e4e5d1
ZL
104702004-03-04 Ziemowit Laski <zlaski@apple.com>
10471
10472 PR c++/14425, c++/14426
10473 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
10474 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
10475 Change C++ definitions to accept a 'const int' argument;
10476 the prototypes already do.
10477 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
10478 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
10479 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
10480 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
10481 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
10482 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
10483 end in ..._int; change them to accept an int instead of a char
10484 as the last parameter.
10485
8653fed7
PE
104862004-03-04 Phil Edwards <phil@codesourcery.com>
10487
10488 * genmultilib: Change '=' to '-' when translating option names
10489 to directory names.
10490
daae8185
RK
104912004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10492
10493 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
10494 stack slot for temp used for result of BLKmode but in integral mode.
10495
f345f21a
JH
104962004-03-04 Jan Hubicka <jh@suse.cz>
10497
10498 * reload.c (find_reloads): Reorganize if seqeunce to switch.
10499
10500 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
10501 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
10502
aa42f99d
SE
105032004-03-04 Steve Ellcey <sje@cup.hp.com>
10504
10505 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
10506 * testsuite/gcc.dg/20040303-1.c: New test.
10507
56bab446
SB
105082004-03-04 Steven Bosscher <stevenb@suse.de>
10509
10510 * ppro.md: Rewrite as a DFA pipeline description.
10511 * i386.md: Remove all uses of the ppro_uops attribute.
10512 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
10513 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
10514 ix86_sched_reorder, ix86_variable_issue,
10515 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
10516 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
10517 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
10518 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
10519 * athlon.md (athlon_ssecmp_load): Fix comment
10520
5a26b329 105212004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 10522
5a26b329
SH
10523 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
10524
2e5d2af9 105252004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 10526
2e5d2af9
SH
10527 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
10528 686, tell Darwin assembler to allow prefetch insns, non-empty def
10529 of SUBTARGET_OPTION_TRANSLATE_TABLE.
10530
58f206d6
DD
105312004-03-04 DJ Delorie <dj@redhat.com>
10532
10533 PR optimization/14282
10534 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
10535 between a call and the assignment of its return value.
10536
e9eba255
KH
105372004-03-04 Kazu Hirata <kazu@cs.umass.edu>
10538
10539 * config/h8300/h8300.c: Put a comment for every function.
10540
d3c40837
KH
105412004-03-04 Kazu Hirata <kazu@cs.umass.edu>
10542
10543 * config/h8300/h8300.md: Add comments about peephole2's.
10544
eb3d7f9d
SB
105452004-03-04 Steven Bosscher <stevenb@suse.de>
10546
10547 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
10548
463301c3
JH
105492004-03-04 Jan Hubicka <jh@suse.cz>
10550
10551 * cfgcleanup.c (thread_jump): Update call of cselib_init.
10552 * cselib.c (cselib_record_memory): New static variable.
10553 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
10554 Give up on memories when asked for.
10555 (cselib_init): Accept new argument.
10556 * cselib.h (cselib_init): Update prototype.
10557 * gcse.c (local_cprop_pass): Update call of cselib_init.
10558 * loop.c (load_mems): Update call of cselib_init.
10559 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
10560 * sched-deps.c (sched_analyze): Update call of cselib_init.
10561
3b6ce0af
DE
105622004-03-04 David Edelsohn <edelsohn@gnu.org>
10563 GP <gp@qnx.com>
10564
10565 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
10566 when compiling PIC.
10567
af931390
JZ
105682004-03-04 Josef Zlomek <zlomekj@suse.cz>
10569
10570 PR/14362
10571 * var-tracking.c (track_expr_p): Do not track variables which
10572 should be ignored for debugging purposes.
10573
ddc68564
AM
105742004-03-04 Alan Modra <amodra@bigpond.net.au>
10575
10576 * real.c (encode_ibm_extended): Don't bother rounding low double.
10577 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
10578 when fmt->pnan < fmt->p.
10579
ca87076c
EC
105802004-03-04 Eric Christopher <echristo@redhat.com>
10581
10582 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
10583 only range of valid arg registers and fixed_regs.
10584
1a402dc1
AM
105852004-03-04 Alan Modra <amodra@bigpond.net.au>
10586
10587 PR target/14406
10588 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
10589 (abstf2, abstf2_internal): New define_expand.
10590
6a2d136b
EB
105912004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
10592
10593 PR optimization/14235
10594 * expr.c (convert_move): Copy the source to a new pseudo
10595 when converting from a sub-word source to a larger-than-word
10596 register which conflicts with the source.
10597
3205a71e
ZW
105982004-03-03 Zack Weinberg <zack@codesourcery.com>
10599
10600 PR 13728
10601 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
10602 parameters with the same name, unless one is a forward decl.
10603 Do not issue a redundant-redeclaration warning for forward
10604 decls of parameters.
10605
e8d8a034
DE
106062004-03-04 David Edelsohn <edelsohn@gnu.org>
10607
10608 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
10609 configuration.
10610
ebe29bbf
ILT
106112004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
10612
10613 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
10614
7cd60054
AM
106152004-03-04 Alan Modra <amodra@bigpond.net.au>
10616
10617 * target-def.h (TARGET_OPTF): Delete.
10618 * c-opts.c (TARGET_OPTF): Define.
10619
e654c19e
JH
106202004-03-04 Jan Hubicka <jh@suse.cz>
10621
10622 * cselib.c (cselib_finish): Fix another miss-application of my previous
10623 patch.
10624
94d1613b
MS
106252004-03-03 Mike Stump <mrs@apple.com>
10626
10627 Add framework support for darwin.
10628
10629 * c-incpath.c: Include target.h and machmode.h.
10630 (add_path): Use a consistent style for cpp_dir. Initialize
10631 p->construct to 0.
10632 (add_cpp_dir_path): New.
10633 (register_include_chains): Add use of extra_includes callback.
10634 (hook_void_int): Add.
10635 (target_c_incpath): Add.
10636 * c-incpath.h (add_cpp_dir_path): New.
10637 (target_c_incpath_s): Add.
10638 (target_c_incpath): Add.
10639 (C_INCPATH_INIT): Add.
10640 * c-opts.c (c_common_missing_argument,
10641 c_common_handle_option): Add -F argument processing.
10642 * c.opt: Add -F argument processing.
10643 * gcc.c (trad_capable_cpp): Add -F argument processing.
10644 * cppfiles.c (find_file_in_dir): Update to use construct
10645 callback.
10646 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10647 cpp_get_prev): New.
10648 (_cpp_find_file): Use search_path_exhausted.
10649 (make_cpp_dir): Initialize construct to 0.
10650 * cpplib.h (missing_header_cb
10651 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10652 (cpp_callbacks): Add missing_header
10653 (cpp_dir): Add construct.
10654 * target-def.h: (TARGET_OPTF): New.
10655 * hooks.c (hook_void_int, hook_void_charptr): Add.
10656 * hooks.h (hook_void_int, hook_void_charptr): Add.
10657 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10658 $(MACHMODE_H) dependencies.
10659 * doc/invoke.texi (Darwin Options): Document -F.
10660 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10661 (TARGET_OPTF): Add.
10662 * fix-header.c (target_c_incpath): Add.
10663
10664 * config/darwin-c.c: Add c-incpath.h include.
10665 (using_frameworks, find_subframework_file,
10666 find_subframework_header, add_system_framework_path,
10667 frameworks_in_use, num_frameworks, max_frameworks,
10668 add_framework, find_framework, struct framework_header,
10669 framework_header_dirs, framework_construct_pathname,
10670 find_subframework_file, add_system_framework_path,
10671 add_framework_path, framework_defaults,
10672 darwin_register_frameworks, find_subframework_header): Add.
10673 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10674 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10675 (CPP_SPEC): Add __APPLE_CC__ support.
10676 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10677
0fc0c4c9
JH
106782004-03-04 Jan Hubicka <jh@suse.cz>
10679
10680 * cselib.c (cselib_finish): Fix miss-application of my previous
10681 patch.
10682
67dfe110
KH
106832004-03-03 Kazu Hirata <kazu@cs.umass.edu>
10684
10685 * hooks.c (hook_tree_tree_identity): New.
10686 * hooks.h: Add a prototype for hook_tree_tree_identity.
10687 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10688 instead of MD_ASM_CLOBBERS.
10689 * system.h (MD_ASM_CLOBBERS): Poison.
10690 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10691 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10692 * target.h (gcc_target): Add md_asm_clobbers.
10693 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10694 (ix86_md_asm_clobbers): New.
10695 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10696 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10697 TARGET_MD_ASM_CLOBBERS.
10698
d79944f4 106992004-03-03 Stuart Hastings <stuart@apple.com>
67dfe110 10700
d79944f4 10701 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3205a71e 10702
fc9232c9
EB
107032004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
10704
10705 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10706
10707 * config/sparc/sparc.h (ASM_FLOAT): Delete.
10708 (ASM_DOUBLE): Likewise.
10709 (ASM_LONGDOUBLE): Likewise.
10710 * config/sparc/pbd.h (ASM_INT_OP): Delete.
10711
94632047 107122004-03-03 Richard Henderson <rth@redhat.com>
b7048ab7
RH
10713
10714 PR opt/13862
10715 * cselib.c (cselib_record_sets): Don't record multiple sets in
10716 asm insns.
10717
f9957958
MH
107182004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
10719
10720 * common.opt: Add description of the new -fgcse-after-reload flag.
10721
10722 * flags.h (flag_gcse_after_reload): Declaration of global variable.
10723
10724 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10725 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10726 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10727 get_bb_avail_insn, hash_scan_set_after_reload,
10728 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10729 gcse_after_reload, get_bb_avail_insn): New functions to implement
10730 gcse-after-reload.
10731 (gcse_after_reload_main): New function, the main entry point to
10732 gcse-after-reload.
10733
10734 * rtl.h (gcse_after_reload_main): Declaration of the new function.
10735
10736 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10737
10738 * toplev.c (flag_gcse_after_reload): Initialization.
10739
10740 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10741
10742 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10743 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10744 the gcse after reload optimization.
10745
10746 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10747 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10748 parameters.
10749
10750 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10751
6f6dedf5
NP
107522004-03-03 Nicolas Pitre <nico@cam.org>
10753
10754 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10755 small negative values.
10756
6790d1ab
JH
107572004-03-03 Jan Hubicka <jh@suse.cz>
10758
10759 * cselib.c (hash_table): Remove GTY marker.
10760 (reg_values): Turn into array.
10761 (used_regs): Likewise.
10762 (n_used_regs): New static variable.
10763 (reg_values_old): Kill.
10764 (clear_table): Update uses of arrays.
10765 (cselib_lookup): Likewise.
10766 (cselib_record_set): Likewise.
10767 (cselib_init): Likewise.
10768 (cselib_finish): Likewise.
10769 (cselib_udpate_varray_sizes): Kill.
10770 * cselib.h (cselib_update_varray_sizes): Kill.
10771
33e6a97a
PB
107722004-03-03 Paul Brook <paul@codesourcery.com>
10773
10774 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10775
b9dcdee4
JH
107762004-03-03 Jan Hubicka <jh@suse.cz>
10777
10778 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10779 Rename from ...; make statistics transparent.
10780 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10781 (loc_descriptor): New structure.
10782 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10783 add_statistics):
10784 New static function.
10785 (ggc_record_overhead, dump_statistics): New global function.
10786 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10787 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10788 from ...; accept locations
10789 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10790 ggc_realloc, ggc_alloc_typed): ... this one.
10791 from ...; accept locations
10792 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10793 ggc_alloc_stat): Rename from ... ; pass locations
10794 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10795 ... this one.
10796 (ggc_alloc_stat): Record overehead.
10797 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10798 ggc_realloc, ggc_alloc_typed): Turn to macros
10799 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10800 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10801 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10802 * langhooks.h (lhd_make_node): Declare.
10803 (LANG_HOOKS_MAKE_TYPE): Default to new function,
10804 * langhooks.c (lhd_make_node): New.
10805 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10806 locations.
10807 (rtx_alloc, swallow_copy_rtx): ... this one.
10808 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10809 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10810 * toplpev.c (finalize): Dump stats.
10811 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10812 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10813 Rename from ... ; pass locators.
10814 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10815 build?, build_decl): Declare.
10816 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10817 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
10818 Declare.
10819 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10820 build?, build_decl): New macros.
10821 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10822 * statistics.h: New file.
10823
6ba7b547
MR
108242004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10825 Richard Sandiford <rsandifo@redhat.com>
10826
10827 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10828 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10829 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10830 * config/mips/mips.c (mips_output_division): Fill the branch delay
10831 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
10832 TARGET_FIX_R4400.
10833 (mips_output_division): Adjust accordingly.
10834 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10835 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10836
ec8e098d
PB
108372004-03-03 Paolo Bonzini <bonzini@gnu.org>
10838
10839 * alias.c (rtx_equal_for_memref_p): Use predicates
10840 to test rtx classes and new rtx class codes, possibly
10841 splitting conditionals that tested against '<' and 'o'.
10842 * caller-save.c (save_call_clobbered_regs): Likewise.
10843 * combine.c (contains_muldiv, find_split_point, subst,
10844 combine_simplify_rtx, simplify_if_then_else,
10845 simplify_set, simplify_logical, expand_compound_operation,
10846 make_compound_operation, if_then_else_cond, known_cond,
10847 apply_distributive_law, cached_nonzero_bits,
10848 cached_num_sign_bit_copies, simplify_shift_const,
10849 gen_binary, simplify_comparison, update_table_tick,
10850 record_value_for_reg, get_lsat_value_validate): Likewise.
10851 * cse.c (mention_regs, find_best_addr, find_comparison_args,
10852 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10853 Likewise.
10854 * emit-rtl.c (copy_insn_1): Likewise.
10855 * expr.c (force_operand): Likewise.
10856 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10857 * flow.c (notice_stack_pointer_modification_1,
10858 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10859 and_reg_cond, elim_reg_cond): Likewise.
10860 * function.c (update_epilogue_consts): Likewise.
10861 * genattrtab.c (attr_rtx_1): Likewise.
10862 * genopinit.c (gen_insn): Likewise.
10863 * integrate.c (subst_constants): Likewise.
10864 * jump.c (reversed_comparison_code_parts,
10865 reversed_comparison_code, delete_related_insns,
10866 rtx_renumbered_equal_p): Likewise.
10867 * local-alloc.c (block_alloc): Likewise.
10868 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10869 canonicalize_condition): Likewise.
10870 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10871 Likewise.
10872 * optabs.c (add_equal_node, expand_binop): Likewise.
10873 * predict.c (estimate_probability): Likewise.
10874 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10875 * recog.c (validate_replace_rtx_1, comparison_operator,
10876 offsettable_address_p, constrain_operands): Likewise.
10877 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10878 Likewise.
10879 * regclass.c (scan_one_insn): Likewise.
10880 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10881 * regrename.c (kill_autoinc_value): Likewise.
10882 * reload.c (find_reusable_reload, find_reloads,
10883 reg_overlap_mentioned_for_reload_p): Likewise.
10884 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10885 * rtl.c (copy_rtx): Likewise.
10886 * rtl.h (CONSTANT_P, INSN_P): Likewise.
10887 * rtlanal.c (commutative_operand_precedence): Likewise.
10888 * sched-deps.c (conditions_mutex_p): Likewise.
10889 * sched-rgn.c (is_cfg_nonregular): Likewise.
10890 * simplify-rtx.c (simplify_gen_binary,
10891 simplify_gen_relational, simplify_replace_rtx,
10892 simplify_unary_operation, simplify_binary_operation,
10893 simplify_ternary_operation, simplify_rtx): Likewise.
10894 * unroll.c (reg_dead_after_loop): Likewise.
10895 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10896 print_operand): Likewise.
10897 * config/arc/arc.c (proper_comparison_operator): Likewise.
10898 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10899 Likewise.
10900 * config/avr/avr.c (_reg_unused_after): Likewise.
10901 * config/frv/frv.c (frv_ifcvt_modify_tests,
10902 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10903 * config/i386/i386.c (ix86_comparison_operator,
10904 ix86_carry_flag_operator, fcmov_comparison_operator,
10905 arith_or_logical_operator, print_operand,
10906 ix86_expand_binary_operator, ix86_binary_operator_ok):
10907 Likewise.
10908 * config/i386/i386.md: Likewise.
10909 * config/ia64/ia64.c (not_postinc_memory_operand,
10910 ia64_print_operand, update_set_flags, errata_emit_nops):
10911 Likewise.
10912 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10913 CONSTRAINT_OK_FOR_S): Likewise.
10914 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10915 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10916 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10917 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10918 Likewise.
10919 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10920 eqne_comparison_operator, signed_comparison_operator):
10921 Likewise.
10922 * config/mips/mips.c (cmp_op, symbolic_expression_p):
10923 Likewise.
10924 * config/mmix/mmix (mmix_foldable_comparison_operator,
10925 mmix_comparison_operator): Likewise.
10926 * config/pa/pa.c (hppa_legitimize_address): Likewise.
10927 * config/rs6000/rs6000.c (stmw_operation,
10928 branch_comparison_operator, trap_comparison_operator,
10929 ccr_bit): Likewise.
10930 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10931 * config/s390/s390.c (s390_alc_comparison,
10932 s390_slb_comparison):L Likewise.
10933 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10934 Likewise.
10935 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10936 noov_compare_op, noov_compare64_op, v9_regcmp_op,
10937 emit_hard_tfmode_operation, reg_unused_after)
10938 * doc/md.texi, doc/rtl.texi: Likewise.
10939
10940 * ra-debug.c: Add 2004 to list of copyright years.
10941 * unroll.c: Likewise.
10942
10943 * combine.c (simplify_logical): Remove dummy test,
10944 (apply_distributive_law): Fix typo in comment.
10945 GET_CODE (x) == AND so x is a commutative binary op.
10946 * jump.c (delete_related_insns): simplify loop
10947 condition, move testing of RTX codes inside the loop.
10948 (rtx_renumbered_equal_p): do not use RTX_CODE.
10949 * rtl.c (rtx_class): Declare as enum rtx_class.
10950 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10951 Move to RTX_COMM_COMPARE class.
10952 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10953 Move to RTX_CONST_OBJ class.
10954 * rtl.h (enum rtx_class): New declaration,
10955 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10956 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10957 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10958 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10959 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10960 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10961 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10962 OBJECT_P): New macros.
10963 * config/sparc/sparc.c (noov_compare_op): Remove register
10964 from parameter.
10965
a841ab8b
KH
109662004-03-03 Kazu Hirata <kazu@cs.umass.edu>
10967
10968 * target.h: Remove texi jargons in comments.
10969
cb36ddba
KH
109702004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10971
10972 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10973 threshold to 0x4f.
10974
10975 Revert:
10976 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10977 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10978 as well.
10979 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10980 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10981
66c87bae
KH
109822004-03-02 Kazu Hirata <kazu@cs.umass.edu>
10983
10984 * doc/md.texi (cbranchmode4): New.
10985
91e01231
EC
109862004-03-02 Eric Christopher <echristo@redhat.com>
10987
10988 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10989 fix_trunc.
10990 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10991 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10992 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10993 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10994
27ab3e91
RH
109952004-03-02 Richard Henderson <rth@redhat.com>
10996
3205a71e
ZW
10997 PR middle-end/11767
10998 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10999 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
11000 before the compare, if flag_non_call_exceptions.
27ab3e91 11001
0eadce52
RH
110022004-03-02 Richard Henderson <rth@redhat.com>
11003
11004 PR middle-end/14327
11005 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
11006 emitting the label, not after.
11007
de70723b
SC
110082004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11009
11010 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
11011 (m68hc11_mov_addr_mode): Likewise.
11012 (m68hc11_override_options): Initialize them based on target.
11013 (register_indirect_p): Allow a MEM for indirect addressing modes and
11014 use flags to control what is allowed.
11015 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
11016 supported addressing modes.
11017 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
11018 (go_if_legitimate_address_internal): Likewise.
11019 (m68hc11_indirect_p): Likewise and check the mode.
11020 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
11021
d6da68b9
KH
110222004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11023
11024 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
11025 (expand_builtin_setjmp_setup): Use
11026 targetm.builtin_setjmp_frame_value instead of
11027 BUILTIN_SETJMP_FRAME_VALUE.
11028 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
11029 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
11030 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11031 * target.h (gcc_target): Add builtin_setjmp_frame_value.
11032 * targhooks.c (default_builtin_setjmp_frame_value): New.
11033 * targhooks.h: Add a prototype for
11034 default_builtin_setjmp_frame_value.
11035 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
11036 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
11037
d87e83b9
SC
110382004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11039
11040 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
11041 sequences of moves.
11042 (add peepholes): New peepholes to optimize sequences adding small
11043 constants.
11044 (bset peepholes): New peepholes to transform an OR in a bset form
11045 (bclr peepholes): Likewise for bclr form.
11046 (cmp peepholes): New peepholes to avoid register copies when comparing.
11047
d5111c9c
SC
110482004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11049
11050 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
11051 to separate push from moves.
11052 ("*pushdf_internal"): Likewise.
11053 ("*pushsf_internal"): Likewise.
11054 ("*pushsi_internal"): Likewise.
11055 ("movdi_internal"): Use define_insn_and_split; non push operand.
11056 ("movdf_internal"): Likewise.
11057 ("movsf_internal"): Likewise.
11058 ("movsi_internal"): Likewise.
11059 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
11060 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
11061 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
11062
9449502d
SC
110632004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11064
11065 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
11066 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
11067 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
11068 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
11069 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
11070 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
11071 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
11072 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
11073 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
11074 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
11075 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
11076
b90f3299
SC
110772004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11078
11079 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
11080 (SOFT_XY_REGNUM): Define.
11081 (cmp split): Use the above instead of hard coded numbers.
11082 (8-bit op split): No need to check the mode; allow Q_REG.
11083 (ashift split): Adjust the first operand if it uses the SP and we
11084 are pushing the shifted value.
11085 (plus shift split): Fix when a source is in register D+X.
11086 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
11087
77d2a36d
SC
110882004-03-02 Stephane Carrez <stcarrez@nerim.fr>
11089
11090 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
11091 comparing with Z register.
11092
f2dca510
ZD
110932004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11094
11095 * cfgloop.h (struct loop_desc): Removed.
11096 (struct loop): Fields simple, desc and has_desc removed.
11097 (simple_loop_p, count_loop_iterations): Declaration removed.
11098 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
11099 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
11100 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
11101 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
11102 simple_loop_exit_p, variable_initial_value, variable_initial_values,
11103 simple_condition_p, simple_increment, count_strange_loop_iterations,
11104 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
11105 Removed.
11106 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
11107
87ca8b8c
KH
111082004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11109
11110 * genattrtab.c: Don't handle MATCH_INSN.
11111 * genrecog.c: Likewise.
11112 * gensupport.c: Likewise.
11113 * rtl.def (match_insn): Remove.
11114 * doc/md.texi (match_insn, match_insn2): Remove.
11115
bdc2893c
MM
111162004-03-02 Mark Mitchell <mark@codesourcery.com>
11117
11118 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
11119 macro results in memory allocation.
11120
2de2f846
DB
111212004-03-02 David O'Brien <obrien@FreeBSD.org>
11122
11123 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
11124 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
11125 %(fbsd_dynamic_linker),
11126 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
11127 config/i386/freebsd.h
11128 * config/arm/freebsd.h: Ditto.
11129 * config/i386/freebsd.h: Ditto.
11130 * config/i386/freebsd64.h: Ditto.
11131 * config/ia64/freebsd.h: Ditto.
11132 * config/rs6000/sysv4.h: Ditto.
11133 * config/sparc/freebsd.h: Ditto.
11134
f08dc6c1
LR
111352004-03-02 Loren James Rittle <ljrittle@acm.org>
11136
11137 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
11138
c24938d4
KH
111392004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11140
11141 * rtl.def (define_combine): Remove.
11142
ba29f5de
KH
111432004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11144
11145 * config/h8300/h8300.md: Tweak formatting.
11146
a5a0ab45
KH
111472004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11148
11149 * config/h8300/h8300.md (*cmphi_h8300): Rename to
11150 *cmphi_h8300_znvc.
11151 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
11152
e451301f
MM
111532004-03-01 Mark Mitchell <mark@codesourcery.com>
11154
11155 PR bootstrap/14356
11156 * gcc.c (process_command): Remove const-qualification from argv.
11157 (main): Likewise.
11158
b698e58b
KH
111592004-03-02 Kazu Hirata <kazu@cs.umass.edu>
11160
11161 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
11162 pushqi1_h8300hs_advanced. Adjust its caller.
11163 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
11164 Adjust its caller.
11165
a5c40cfb 111662004-03-02 Nicolas Roche <roche@act-europe.fr>
3a41db81
NR
11167
11168 * Makefile.in (install-libgcc, install-multilib): Pass
11169 mkinstalldirs var to libgcc.mk.
11170
fdf89bf5
KH
111712004-03-01 Kazu Hirata <kazu@cs.umass.edu>
11172
11173 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
11174 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
11175
0e26895c
KH
111762004-03-01 Kazu Hirata <kazu@cs.umass.edu>
11177
11178 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
11179 * config/h8300/h8300.md: Split several peephole2's, each into
11180 two.
11181
738ed977
ZD
111822004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11183
11184 * dominance.c (recount_dominator): Handle postdominators.
11185
e245bd81
RS
111862004-03-01 Richard Sandiford <rsandifo@redhat.com>
11187
11188 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
11189 (NUM_SYMBOL_TYPES): Likewise.
11190 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
11191 (mips_unspec_address): Declare.
11192 (mips_gotoff_page, mips_gotoff_global): Delete.
11193 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
11194 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
11195 (mips_symbolic_constant_p, mips_symbolic_address_p)
11196 (mips_symbol_insns): Handle new symbol types.
11197 (general_symbolic_operand): New predicate.
11198 (mips_unspec_address): Make extern.
11199 (mips_gotoff_page, mips_gotoff_global): Delete.
11200 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
11201 Handle new symbol types.
11202 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
11203 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
11204 mips_unspec_address directly.
11205 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
11206 the documentation of -mexplicit-relocs.
11207
9bf793f9
JL
112082004-03-01 Jeff Law <law@redhat.com>
11209
11210 * fold-const.c (fold): An equality comparison of a non-weak object
11211 against zero has a known result. Similarly an equality comparison
11212 of the address of two non-weak, unaliased symbols has a known result.
91e01231 11213
9bf793f9
JL
11214 * ggc-page.c (struct page_entry): New field PREV.
11215 (ggc_alloc): Update PREV field appropriately.
11216 (sweep_pages): Likewise.
11217 (ggc_free): Likewise. Use PREV field rather than loop to
11218 improve ggc_free performance.
91e01231 11219
c9e0ce37
RS
112202004-03-01 Richard Sandiford <rsandifo@redhat.com>
11221
11222 * config/mips/mips.c (mips_output_division): Use the division
11223 instruction to fill the delay slot of a zero check.
11224 (mips_idiv_insns): Adjust accordingly.
11225
65d151a7
NN
112262004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
11227
11228 * config.gcc: Create a default tmake_file for linux, and use
11229 it in all but two linux clauses. Comment those two.
11230
9a5a17f3
PB
112312004-03-01 Paolo Bonzini <bonzini@gnu.org>
11232
11233 * combine.c (try_combine): Do not refer to is_replaced.
11234 (gen_lowpart_for_combine): Perverse subregs now have a
11235 more politically correct name.
11236 * cse.c (cse_insn): Likewise.
11237 * jump.c: Fix bogus reference to delete_insn.
11238
c5b6f18e
MM
112392004-02-29 Mark Mitchell <mark@codesourcery.com>
11240
5bb2ed2c
MM
11241 PR debug/14328
11242 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
11243 constants as signed values.
11244
c5b6f18e
MM
11245 PR middle-end/13448
11246 * c-tree.h (readonly_warning): Rename to ...
11247 (readonly_error): ... this.
11248 * c-typeck.c (build_unary_op): Adjust accordingly.
11249 (readonly_warning): Rename to ...
11250 (readonly_error): ... this and issue errors, not warnings.
11251 (build_modify_expr): Call readonly_error, not readonly_warning.
11252 (c_expand_asm_operands): Likewise.
11253 * tree-inline.c (optimize_inline_calls): Do not inline functions
11254 after errors have occurred.
11255
8bb915b6
NN
112562004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
11257
11258 * configure.ac: Rearrange some threading code for clarity;
11259 add section comment.
11260 * configure: Regenerate.
11261
4ee31f1e
KH
112622004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11263
11264 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
11265 typos.
11266 * doc/cppopts.texi: Fix a typo.
11267
15ec19b9
KH
112682004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11269
11270 * config/i386/i386.md: Fix formatting.
11271
cbff2c1c
NN
112722004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
11273
630327c3
NN
11274 * configure.ac: Add some comments delineating sections of code.
11275
38fe9090
NN
11276 * doc/install.texi: Note that libada uses autoconf 2.57 also.
11277
42fce956
NN
11278 * doc/install.texi: Fix idiot typo in previous commit.
11279
cbff2c1c
NN
11280 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
11281
c8574b54
KH
112822004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11283
11284 * config/h8300/h8300.md: Add comments about peephole2's.
11285
2f537af9
KH
112862004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11287
11288 * config/h8300/h8300.md: Tweak operand numbers of some
11289 peephole2's.
11290
a207f649
KH
112912004-02-29 Kazu Hirata <kazu@cs.umass.edu>
11292
11293 * config/h8300/h8300.md: Tweak comments about peephole2's.
11294
bc41842b
RS
112952004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
11296
11297 PR middle-end/14203
11298 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
11299 instead of testing whether DECL_RTL is not NULL.
11300
832a3292
KH
113012004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11302
11303 * config/sh/sh.c: Fix formatting.
11304
508ea1c5
KH
113052004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11306
11307 * config/sh/sh.c: Convert to ISO-C.
11308
dd833c7b 113092004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
91e01231 11310
8cd6bdd1
AP
11311 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
11312 my previous patch.
dd833c7b
AP
11313
11314 * config/darwin.h (machopic_finish): Output stub even if the
11315 symbol is already defined.
11316
5f190838
JDA
113172004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11318
11319 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
11320
c1a41c2f
KH
113212004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11322
11323 * genattr.c (main): Don't define
11324 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
11325 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
11326 (DFA_PIPELINE_INTERFACE): Likewise.
11327 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
11328 (DFA_PIPELINE_INTERFACE): Likewise.
11329
757f9053
RS
113302004-02-28 Richard Sandiford <rsandifo@redhat.com>
11331
11332 * config/mips/mips.md (tstsi, tstdi): Delete.
11333
23cf6987
MR
113342004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11335
91e01231 11336 * config/mips/mips.c (override_options): Remove an obsolete
23cf6987
MR
11337 duplicate definition of the "e" constraint.
11338 * config/mips/mips.h: Update a comment accordingly.
11339
bddbfe5f
MR
113402004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11341
11342 * config/mips/mips.md: Complete the unfinished R4000
11343 multiply/shift errata workaround. Improve documentation.
11344 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
11345 has a hilo hazard.
11346 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
11347 (muldi3, muldi3_internal): Likewise.
11348 (muldi3_internal2): Remove, replacing with...
11349 (muldi3_mult3, muldi3_r4000): ...these new patterns.
11350 (mulsidi3): Take the errata into account.
11351 (mulsidi3_32bit): Remove, replacing with...
11352 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
11353 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
11354 (umulsidi3): Take the errata into account.
11355 (umulsidi3_32bit): Remove, replacing with..
11356 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
11357 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
11358 TARGET_FIX_R4000.
11359 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
11360 (smuldi3_highpart, umuldi3_highpart): Likewise.
11361 * doc/invoke.texi: Document the errata workaround.
11362
46490403
MR
113632004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11364
11365 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
11366 * config/mips/mips.h (MASK_FIX_SB1): Bump.
11367 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
11368 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
11369 * config/mips/mips.c (mips_idiv_insns): New function.
11370 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
11371 (mips_output_division): Add a workaround for the R4000 divide/shift
11372 errata.
11373 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
11374 the length of an "idiv" instruction.
11375 * doc/invoke.texi: Document the new switches.
11376
1b2c3767
KH
113772004-02-28 Kazu Hirata <kazu@cs.umass.edu>
11378
11379 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
11380 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
11381
79771cc4
ZD
113822004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11383
11384 PR optimization/14229
11385 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
11386
68a1a5da
EB
113872004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
11388
11389 * fold-const.c (fold): Strip NOPs that change the signedness
11390 for RSHIFT too. Expand comment.
11391
a10016d3
ILT
113922004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
11393
11394 PR optimization/7871
11395 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
68a1a5da 11396 from or to call insns.
a10016d3
ILT
11397
113982004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
11399
11400 PR optimization/7871
11401 * flow.c (propagate_one_insn): Interpret calls as setting global
11402 registers, not merely clobbering them.
11403
b30e1617 114042004-02-27 Dale Johannesen <dalej@apple.com>
a10016d3 11405
b30e1617
DJ
11406 * config/darwin.c (machopic_output_possible_stub_label): Remove.
11407 config/darwin-protos.h: Ditto.
11408 config/darwin.h: Remove call to it.
11409 * combine.c (distribute_notes): Do not place a REG_DEAD note
11410 when value is both set and used.
11411
bbc51dc2
KH
114122004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11413
11414 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
11415 as well.
11416 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
11417 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
11418
dedbabed
AP
114192004-02-27 Andrew Pinski <apinski@apple.com>
11420
11421 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
11422 Speedup common case of the type values being in the same order.
11423
b6b979d4
SE
114242004-02-27 Steve Ellcey <sje@cup.hp.com>
11425
11426 * config/ia64/ia64.h (no-inline-float-divide): New option.
11427 * config/ia64/ia64.h (no-inline-int-divide): New option.
11428 * config/ia64/ia64.h (no-inline-sqrt): New option.
11429 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
11430 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
11431 * config/ia64/ia64.c (ia64_override_options): Modify error
11432 checking for inlined division/sqrt.
11433
88462c42
KH
114342004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11435
11436 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
11437 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
11438 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
11439 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
11440 copyright.
11441
53c428d0
PB
114422004-02-27 Paul Brook <paul@codesourcery.com>
11443
11444 * function.c (assign_parms): Don't count pretend args for alignment.
11445
f6db1481
RH
114462004-02-27 Richard Henderson <rth@redhat.com>
11447
11448 * passes.c: New file.
11449 * Makefile.in (OBJS-common): Add it.
11450 * diagnostic.c (rtl_dump_and_exit): Move decl ...
11451 * flags.h (rtl_dump_and_exit): ... here.
91e01231 11452 * output.h (size_directive_output, last_assemble_variable_decl):
f6db1481
RH
11453 Move from toplev.c.
11454 * rtl.h (reg_alloc): Move from toplev.c.
11455 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
11456 struct dump_file_info, enum dump_file_index, dump_file_tbl,
11457 open_dump_file, close_dump_file, rest_of_decl_compilation,
11458 rest_of_type_compilation, rest_of_handle_final,
91e01231 11459 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
f6db1481
RH
11460 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
11461 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
11462 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
11463 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
91e01231 11464 rest_of_handle_tracer, rest_of_handle_if_conversion,
f6db1481
RH
11465 rest_of_handle_if_after_combine, rest_of_handle_web,
11466 rest_of_handle_branch_prob,
11467 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
91e01231 11468 rest_of_handle_addressof, rest_of_handle_sibling_calls,
f6db1481
RH
11469 rest_of_handle_jump_bypass, rest_of_handle_inlining,
11470 rest_of_handle_null_pointer, rest_of_handle_combine,
11471 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
91e01231 11472 rest_of_handle_gcse, rest_of_handle_loop_optimize,
f6db1481
RH
11473 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
11474 (decode_d_option): Use enable_rtl_dump_file.
11475 (compile_file, finalize, do_compile): Move profile+combine+graph
11476 cleanup to finish_optimization_passes.
11477 * toplev.h (init_optimization_passes, finish_optimization_passes,
11478 enable_rtl_dump_file): Declare.
11479
288dc1ea 114802004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
3205a71e 11481 Roger Sayle <roger@eyesopen.com>
288dc1ea
EB
11482
11483 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
11484 operands to build a tree with swapped operands.
11485 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
11486 'unsignedp' predicate to specify the signedness.
11487
a1105617
KH
114882004-02-27 Kazu Hirata <kazu@cs.umass.edu>
11489
11490 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
11491 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
11492 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
11493 comment typos and formatting. Follow spelling conventions.
11494
d095928f
AH
114952004-02-26 Aldy Hernandez <aldyh@redhat.com>
11496
11497 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
11498 fix_truncsfsi2.
11499
11500 * config/rs6000/spe.md: Delete spe_efsctuiz.
11501 Add spe_fixuns_truncsfsi2.
11502 Add spe_fix_truncsfsi2.
91e01231 11503
21526606
EC
115042004-02-26 Eric Christopher <echristo@redhat.com>
11505
11506 * c-lex.c (c_lex_string_translate): New variable.
11507 (lex_string): Use to determine string translation.
11508 * c-pragma.h: Prototype.
11509 * c-parse.in (start_string_translation): New. Set above.
11510 (stop_string_translation): Ditto.
11511 (attribute, attribute_list, asm_def, asm_stmt,
11512 asm_operand): Use above functions.
11513 * cp/parser.c (cp_parser_declaration): Translate strings
11514 unless token is RID_EXTERN. Set c_lex_string_translate
11515 for recursive use.
11516 (cp_parser_asm_definition): Only translate argument strings
11517 to asms.
11518 (cp_parser_asm_operand_list): Ditto.
11519 (cp_parser_attribute_list): Do not translate attribute strings.
11520
e8eebd31
KH
115212004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11522
11523 * stmt.c (expand_start_case_dummy): Remove.
11524 * tree.h: Remove the corresponding prototype.
11525
8f2de5f1
KH
115262004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11527
11528 * builtins.c (apply_args_register_offset): Remove.
11529 * tree.h: Remove the corresponding prototype.
11530
c7924937
KH
115312004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11532
11533 * stor-layout.c (is_pending_size): Remove.
11534 * tree.h: Remove the corresponding prototype.
11535
ca0afc29
KH
115362004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11537
11538 * recog.c (validate_replace_src): Remove.
11539 * recog.h: Remove the corresponding prototype.
11540
6c5caf00
KH
115412004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11542
11543 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
11544 MAYBE_REG_PARM_STACK_SPACE.
11545 * function.c: Likewise.
11546 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
11547 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11548 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
11549 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
11550
17fd9cb9
KH
115512004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11552
11553 * c-decl.c (c_expand_deferred_function): Remove.
11554 * c-tree.h: Remove the corresponding prototype.
11555
ec5de8d8
KH
115562004-02-26 Kazu Hirata <kazu@cs.umass.edu>
11557
11558 * postreload.c (reload_cse_move2add): Generate just a PLUS
11559 instead of an entire SET.
11560
5bbeea44
JH
115612004-02-26 Jan Hubicka <jh@suse.cz>
11562
11563 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
11564 /pentium4m.
11565 * i386.c (override_options): Add support for new CPUs.
11566 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
11567 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
11568 constants.
11569 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
11570
48c0150c
BW
115712004-02-26 Bob Wilson <bob.wilson@acm.org>
11572
11573 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
11574
b178305d
EB
115752004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
11576
11577 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
11578 (sparc_emit_fixunsdi): New prototype.
11579 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
11580 (sparc_emit_fixunsdi): New function.
11581 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
11582 operand 1. Pass SFmode to sparc_emit_floatunsdi.
11583 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
11584 to sparc_emit_floatunsdi.
11585 (fixuns_truncsfdi2): New expander.
11586 (fixuns_truncdfdi2): Likewise.
11587
fb643f64
AM
115882004-02-26 Alan Modra <amodra@bigpond.net.au>
11589
11590 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
11591 unless HAVE_cc0.
11592
4a4f95d9
RH
115932004-02-25 Richard Henderson <rth@redhat.com>
11594
11595 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
11596 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
11597 use (op0-op1) == 0 if op0 is a pointer.
11598 * config/alpha/alpha.md (cmpdi): Use some_operand.
11599 (three comparison combine splits): Remove.
11600
f6a76b9f
RH
116012004-02-25 Richard Henderson <rth@redhat.com>
11602
0d593f31 11603 PR c/12794
f6a76b9f
RH
11604 * c-common.c (handle_alias_attribute): Reject the attribute if
11605 current_function_decl is set.
11606
30500d84
KC
116072004-02-25 Kelley Cook <kcook@gcc.gnu.org>
11608
11609 * config.gcc: Add comment describing extra_gcc_objs.
11610 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
11611 * configure.ac (extra_gcc_objs): New substitution variable.
11612 (host_extra_gcc_objs): Don't substitute.
11613 * configure: Regenerate.
11614 * Makefile.in: Use extra_gcc_objs.
11615
ed80fa2e
KC
116162004-02-25 Kelley Cook <kcook@gcc.gnu.org>
11617
11618 * doc/contrib.texi: Add an entry for myself.
11619
12c3874e
JH
116202004-02-25 Jan Hubicka <jh@suse.cz>
11621
11622 * basic-block.h (make_eh_edge, break_superblocks): Declare.
11623 * cfgbuild.c (make_eh_edge): Make global.
11624 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
11625 * except.c (build_post_landing_pads, connect_post_landing_pads,
11626 dw2_build_landing_pads, sjlj_emit_function_enter,
21526606 11627 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12c3874e
JH
11628 sjlj_build_landing_pads): Update CFG.
11629 (emit_to_new_bb_before): New function.
11630 (finish_eh_generation): Do not rebuild the CFG.
11631
7b79fe71
JDA
116322004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11633
11634 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
11635 target_cpu_default defines.
11636 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
11637 * pa.h (TARGET_DEFAULT): Likewise.
11638
81fbecac
EB
116392004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
11640
11641 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11642 comparisons with regard to signedness.
11643
6f5b4f3e
RE
116442004-02-25 Richard Earnshaw <rearnsha@arm.com>
11645
11646 * arm.c (thumb_legitimize_address): New function.
11647 * arm-protos.h: Prototype it.
11648 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11649 (LEGITIMIZE_ADDRESS): Use it.
11650
4ab51fb5
R
116512004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
11652
11653 * reload1.c (reload): Only spill eliminable register with multiple
11654 adjacent elimination alternatives if all alternatives fail.
11655
e1471c91
RE
116562004-02-25 Richard Earnshaw <rearnsha@arm.com>
11657
11658 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11659 is -4095...+4095 inclusive.
11660
94b18ec1
EB
116612004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
11662
11663 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11664 the bootstrap failure with Sun CC 5.4 and 5.5.
11665
2e802a6f
KH
116662004-02-24 Kazu Hirata <kazu@cs.umass.edu>
11667
11668 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11669 which modifies NEWREG.
11670 (cse_condition_code_reg): Update the mode of CC_REG in
11671 CC_SRC_INSN on our own.
11672
89ab2b79
MM
116732004-02-24 Michael Matz <matz@suse.de>
11674
11675 * config/i386/i386.c (ix86_comp_type_attributes): Check for
11676 regparm attributes.
11677
c263766c
RH
116782004-02-24 Richard Henderson <rth@redhat.com>
11679
11680 * toplev.c (dump_file_tbl): Rename from dump_file.
11681 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
c53bdcf5 11682 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
c263766c
RH
11683 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11684 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11685 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11686 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11687 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11688 s/rtl_dump_file/dump_file/g.
11689
dba2921d
AH
116902004-02-24 Aldy Hernandez <aldyh@redhat.com>
11691
3205a71e
ZW
11692 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11693 (spe_fixuns_truncsfsi2): Delete.
dba2921d 11694
3205a71e
ZW
11695 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11696 (fixuns_truncsfsi2): Delete.
dba2921d 11697
173cd571
JZ
116982004-02-24 Josef Zlomek <zlomekj@suse.cz>
11699
11700 PR/14240
11701 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11702
8db4d7a1
GK
117032004-02-24 Geoffrey Keating <geoffk@apple.com>
11704
11705 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11706
896c3aa3
JM
117072004-02-24 Jason Merrill <jason@redhat.com>
11708
11709 * tree.c (check_qualified_type): New fn.
11710 (get_qualified_type): Use it. If type already has the desired
11711 quals, just return it.
11712 * tree.h: Declare it.
896c3aa3 11713
94632047 117142004-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
58565a33
SKG
11715
11716 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11717 TARGET_SCHED_FINISH_GLOBAL): New macros.
11718
11719 * target.h (md_init_global, md_finish_global): Function
11720 declarations corresponding to new target macros.
11721
11722 * haifa-sched.c (sched_init, sched_finish): Allow target to
11723 call the new schedular hooks.
11724
11725 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11726 call to update_life_info.
11727
11728 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11729 flag_schedule_insns for SH4.
11730
11731 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11732 find_set_regmode_weight, find_insn_regmode_weight,
11733 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11734 sh_variable_issue, high_pressure, ready_reorder,
11735 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11736 functions used to throttle the insn movement in first
11737 scheduling pass for SH.
11738
11739 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11740 TARGET_SCHED_FINISH_GLOBAL.
11741
34208acf
AO
117422004-02-24 Alexandre Oliva <aoliva@redhat.com>
11743
11744 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11745 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
11746 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11747 symbols in sections named by the user.
11748 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
11749 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11750 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
11751 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11752 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11753 the above.
11754 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
11755 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11756 one more pseudo to further improve code generation.
11757 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
11758 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11759 inside UNSPEC.
11760 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
11761 * config/frv/frv.c (frv_legitimate_address_p): Added
11762 allow_double_reg_p argument. Adjust all callers. Use it to
11763 decide whether to enable double-register indirect addressing.
11764 (frv_funcdesc_alias_set): Remove.
11765 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11766 register. Emit movdi_ldd.
11767 (ldd_address_operand): New.
11768 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11769 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11770 (PREDICATE_CODES): Add ldd_address_operand.
11771 * config/frv/frv.md (movdi_ldd): New.
11772 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11773 intermediate computations if possible.
11774 (symGOTOFF2reg_i): Fix harmless typo.
11775 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
11776 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11777 relocated p_vaddr to vaddr type.
11778 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11779 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11780 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11781 MEM, or use a funcdesc alias set. Use regular move instead of
11782 ldd.
11783 (dbl_memory_one_insn_operand): Recognize function descriptors by
11784 type or by alias set, and don't split them.
11785 * config/frv/frv.md (call, call_value): Never use call_internal
11786 for fdpic.
11787 (call_internal, call_value_internal): Never match for FDPIC.
11788 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11789 call_value_fdpicsi): Require FDPIC.
11790 (ldd): Removed.
11791 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
11792 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11793 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11794 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11795 FDPIC. Compute data base address.
11796 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11797 before the other self-specs are processed.
11798 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11799 Build with -fPIC.
11800 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
11801 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11802 inhibit_libc is defined.
11803 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
11804 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11805 __FRV_FDPIC__.
11806 (__RELOC_POINTER): Define.
11807 (_Unwind_IteratePhdrCallback): Use it.
11808 * config/frv/frv.h (Twrite): Define.
11809 (TRANSFER_FROM_TRAMPOLINE): Use it.
11810 * config/frv/linux.h (INVOKE__main): Undefine.
11811 (Twrite): Override.
11812 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
11813 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11814 (-mlibrary-pic): Emphasize that this option generates EABI code.
11815 (-mcpu): Add fr550.
11816 (-mpack): Remove.
11817 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
11818 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11819 and CONSTs in FDPIC mode.
11820 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11821 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11822 * config/frv/frv.c (move_source_operand): Don't accept symbolic
11823 constants.
11824 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11825 rather than 'i' constraint for the 2-instruction alternative.
11826 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11827 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
11828 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11829 EXTRA_CONSTRAINT_FOR_Y.
11830 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11831 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11832 (addsi3): Change 'Y' constraint to 'Q'.
11833 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
11834 * reload.c (CONST_POOL_OK_P): New macro.
11835 (find_reloads): Use it to decide whether a constant can be forced
11836 into memory.
11837 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11838 constant satisfies got12_operand.
11839 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11840 (frv_legitimate_address_p): Check for valid unspec offsets using
11841 got12_operand rather than frv_legitimate_fdpic_operand_p.
11842 (frv_legitimate_fdpic_operand_p): Delete.
11843 (frv_emit_movsi): Abort if we try to use the FDPIC register during
11844 or after reload.
11845 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11846 TARGET_FDPIC.
11847 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11848 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
11849 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11850 (frv_fdpic_fptr_operand): Don't declare here.
11851 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11852 rather than fdpic_got12_operand.
11853 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
11854 got12_operand and const_unspec_operand.
11855 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11856 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11857 (symbolic_operand): Remove.
11858 (const_unspec_operand): New predicate.
11859 * config/frv/frv.md (*movsi_got): Use got12_operand.
11860 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11861 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
11862 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11863 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11864 * config/frv/frv.c (frv_unspec): New structure.
11865 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11866 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11867 validate CONST indices. Use frv_output_const_unspec to print them.
11868 (frv_print_operand): Update call to unspec_got_name. Use
11869 frv_output_const_unspec to print constant unspecs.
11870 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11871 Reject UNSPECs otherwise.
11872 (unspec_got_name): Take the relocation number as argument, not an
11873 rtx containing it.
11874 (frv_output_addr_const_extra): Remove, replacing with...
11875 (frv_output_const_unspec): ...this new function.
11876 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11877 (gpr_or_int12_operand): Use fdpic_got12_operand.
11878 (dbl_memory_one_insn_operand): Likewise.
11879 (fdpic_got12_operand): Use frv_const_unspec_p.
11880 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11881 are already legitimate. Use frv_small_data_reloc_p when deciding
11882 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11883 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
11884 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11885 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
11886 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11887 label, for real this time.
11888 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11889 representation of visibility.
11890 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11891 such.
11892 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
11893 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11894 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11895 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11896 it was explicitly disabled.
11897 (frv_stack_info): There is no need to save the link register in every
11898 frame unless TARGET_LINKED_FP is true.
11899 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11900 frame pointer if the stack pointer might change value.
11901 (frv_return_addr_rtx): Check and process "count" argument.
11902 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
11903 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11904 (frv_find_base_term): Declare.
11905 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11906 (FIND_BASE_TERM): Define.
11907 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11908 small_data_register_operand, small_data_symbolic_operand. Add
11909 symbolic_operand.
11910 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11911 (frv_print_operand_memory_reference, output_move_single): Remove
11912 special handling for unlegitimized sdata addresses.
11913 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11914 and symbolic addresses.
11915 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11916 (frv_find_base_term): New function.
11917 (int_2word_operand): Check specifically for symbolic address constants.
11918 (pic_register_operand, pic_symbolic_operand): Delete.
11919 (small_data_register_operand, small_data_symbolic_operand): Delete.
11920 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11921 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11922 (move_source_operand): Only accept CONSTs if they're a two-insn
11923 symbolic constant.
11924 (fdpic_got12_operand): Don't require TARGET_FDPIC.
11925 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11926 using gen_symGOTOFF2reg*.
11927 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11928 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
11929 themselves a cost of 3 insns.
11930 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11931 Change predicate to symbolic_operand.
11932 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11933 (*movsi_lda_sdata): Delete.
11934 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11935 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
11936 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11937 frv-*-*linux*.
11938 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11939 label.
11940 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11941 -multilib-library-pic.
11942 (LINK_SPEC): Add -z text for -mfdpic.
11943 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11944 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11945 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11946 Override.
11947 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11948 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11949 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11950 crtstuff-generated files.
11951 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
11952 * config.gcc: Add frv-*-*linux*.
11953 * config/frv/linux.h, config/frv/t-linux: New.
11954 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
11955 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11956 when -mfdpic even if a linker script is explicitly listed.
11957 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
11958 * config/frv/frv.c (frv_override_options): Clear asm_out
11959 unaligned_op for SImode on FDPIC.
11960 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11961 argument passed to decl_readonly_section.
11962 (frv_assemble_integer): Revert 2003-09-30's change, but make the
11963 whole block run with FDPIC even with -fno-PIC.
11964 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
11965 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11966 symbol or label plus offset to memory.
11967 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
11968 GOTOFF and GPREL for LABEL_REF.
11969 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11970 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11971 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11972 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11973 * doc/invoke.texi: Document them.
11974 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
11975 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11976 (frv_splittable_got_operand): Removed.
11977 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11978 LO_SUM. Add comments.
11979 (frv_override_options): Moved enabling of FDPIC to
11980 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
11981 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11982 (frv_legitimize_fdpic_address): Don't duplicate logic in
11983 frv_emit_movsi.
11984 (frv_gen_GPsym2reg): New.
11985 (unspec_got_name): Added gprel.
11986 (frv_expand_fdpic_call): Add support for inlining PLTs.
11987 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11988 (gpr_or_int12_operand): Added GPREL12.
11989 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11990 (small_data_symbolic_operand): Fail if FDPIC.
11991 (fdpic_splittable_got_operand): Removed.
11992 (fdpic_got12_operand): Added GPREL12.
11993 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
11994 when appropriate. Fix sdata GOTOFF.
11995 (frv_legitimate_constant_p): Require legitimate PIC operand for
11996 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11997 (frv_assemble_integer): Move FDPIC funcdesc handling out of
11998 flag_pic case.
11999 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
12000 frv_assemble_integer fails.
12001 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
12002 (SUBTARGET_DRIVER_SELF_SPECS): New.
12003 (ASM_SPEC): Don't pass -mno-fdpic.
12004 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
12005 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
12006 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
12007 -multilib-library-pic.
12008 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
12009 condexec_si_media_operator, condexec_sf_add_operator and
12010 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
12011 and condexec_sf_unary_operator.
12012 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
12013 New.
12014 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
12015 movsi_internal. Give them internal names. movsi_got has type
12016 int.
12017 (fdpic got splitters): Remove.
12018 (symGPREL2reg, symGPREL2reg_hilo): New.
12019 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
12020 to -mlibrary-pic. Map -multilib-library-pic to it.
12021 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
12022 Document.
12023 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
12024 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
12025 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
12026 (frv_cannot_force_const_mem): New function.
12027 (const_small_data_p, plus_small_data_p): Update comments on sdata
12028 on FDPIC.
12029 (frv_override_options): Set flag_pie for FDPIC too.
12030 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
12031 call-saved registers on FDPIC.
12032 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
12033 don't force LR to be preserved.
12034 (frv_expand_prologue): Likewise.
12035 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
12036 (frv_frame_pointer_required): Don't force it just because the
12037 FDPIC register is used.
12038 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
12039 operand only if !condexec_p.
12040 (frv_legitimize_address): Return the FDPIC-legitimized address.
12041 Don't match small data here on FDPIC.
12042 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
12043 symbols. Use TRUE/FALSE instead of 1/0.
12044 (frv_local_funcdesc_p): New.
12045 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
12046 immediates when possible.
12047 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
12048 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
12049 an UNSPEC_GOT.
12050 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
12051 12-bit immediates when possible.
12052 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
12053 are not legitimate pic operands.
12054 (frv_in_small_data_p): Re-enable for FDPIC.
12055 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
12056 (FRV_GLOBAL_P): Removed.
12057 * config/frv/frv.md: Add modes to CONSTs.
12058 (movsi_got): New.
12059 (movsi_lo_sum_got): Use separate matches instead of match_dup.
12060 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
12061 (fdpic splittable operations): Match on flag_pic != 1.
12062 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
12063 * config/frv/frv.c (frv_asm_out_constructor,
12064 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
12065 bytes, not bits.
12066 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
12067 * config/frv/frv.c (frv_assemble_integer): Reject complex
12068 expressions referencing function SYMBOL_REFs.
12069 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
12070 (move_source_operand): Reject CONSTs that reference function
12071 SYMBOL_REFs on FDPIC.
12072 (frv_emit_movsi): If we get such a CONST, break it up.
12073 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
12074 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
12075 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
12076 MEM.
12077 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
12078 (frv_trampoline_size): Increase for FDPIC.
12079 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
12080 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
12081 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
12082 Disable use of GOTOFF for now.
12083 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
12084 Disable use of small data in FDPIC for now.
12085 (frv_asm_output_mi_thunk): Implement for FDPIC.
12086 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
12087 * config/frv/frv.c (frv_asm_out_constructor): Use
12088 frv_assemble_integer for FDPIC pointers.
12089 (frv_asm_out_destructor): Likewise.
12090 * config/frv/frv.md (ldd): Fix order of operands. Use
12091 address_operand for input.
12092 2003-09-18 DJ Delorie <dj@redhat.com>
12093 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
12094 (unspec_got_name): Correct typo.
12095 (frv_emit_movsi): Pre-expand splittable GOTs.
12096 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
12097 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
12098 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
12099 * config/frv/t-frv: Add -mfdpic multilibs.
12100 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
12101 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
12102 * config/frv/frv.c (frv_override_options): -mfdpic assumes
12103 flag_pic, default to 32-bit pics, require DWORD ops.
12104 (frv_override_options): Add W and Z constraints.
12105 (frv_expand_prologue): No pic prologue for -mfdpic.
12106 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
12107 (frv_print_operand_memory_reference): Handle GOT constants.
12108 (frv_legitimate_address_p): Allow GOT constants.
12109 (frv_legitimize_address): Handle GOT addresses too.
12110 (frv_legitimate_fdpic_operand_p): New.
12111 (frv_legitimize_fdpic_address): New.
12112 (unspec_got_name): New.
12113 (frv_output_addr_const_extra): New.
12114 (frv_expand_fdpic_call): New.
12115 (frv_fdpic_fptr_operand): New.
12116 (gpr_or_int12_operand): Handle GOT operands.
12117 (int_2word_operand): Handle GOT operands.
12118 (fdpic_operand): New.
12119 (fdpic_splittable_got_operand): New.
12120 (fdpic_got12_operand): New.
12121 (frv_emit_movsi): Handle GOT operands.
12122 (frv_assemble_integer): -mfdpic doesn't use rofixups.
12123 (frv_print_operand): Support 'g' code for GOT operands.
12124 * config/frv/frv-protos.h: Add prototypes as needed.
12125 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
12126 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
12127 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
12128 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
12129 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
12130 R_FRV_GOTOFFLO): New.
12131 (movsi_high_got, movsi_lo_sum_got): New.
12132 (*movsi_pic): Don't use this splitter for -mfdpic.
12133 (addsi3): Allow GOT references also.
12134 (call, call_value): Handle -mfdpic separately.
12135 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
12136 call_value_fdpicsi): New.
12137 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
12138 symGOTOFF2reg_i): New.
12139 * config/frv/frv.h (MASK_FDPIC): New.
12140 (TARGET_FDPIC): New.
12141 (TARGET_SWITCHES): Add -mfdpic.
12142 (FDPIC_FPTR_REGNO): New.
12143 (FDPIC_REGNO): New.
12144 (OUR_FDPIC_REG): New.
12145 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
12146 FDPIC_CALL_REGS.
12147 (REG_CLASS_NAMES): Likewise.
12148 (REG_CLASS_CONTENTS): Likewise.
12149 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
12150 (EXTRA_CONSTRAINT): Add it here.
12151 (FRV_GLOBAL_P): New.
12152 (OUTPUT_ADDR_CONST_EXTRA): New.
12153
7e26b0e3
KH
121542004-02-24 Kazu Hirata <kazu@cs.umass.edu>
12155
12156 * config/sparc/sparc.h: Remove commented-out definitions of
12157 TARGET_EDOM and GEN_ERRNO_RTX.
12158
b57f2e10
KH
121592004-02-24 Kazu Hirata <kazu@cs.umass.edu>
12160
12161 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
12162 df_analyse with df_analyze.
12163
cb7c3c3f
AM
121642004-02-24 Alan Modra <amodra@bigpond.net.au>
12165
12166 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
12167 beginning of block.
12168
3638733b
JW
121692004-02-23 James E Wilson <wilson@specifixinc.com>
12170
238470bd 12171 * calls.c (precompute_arguments): Update comment.
3638733b 12172
fa0ac78a
KH
121732004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12174
12175 * et-forest.c: Replace et_occurences with et_occurrences.
12176
6d4e0ecc
KH
121772004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12178
12179 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
12180 with iv_analyze.
12181
9e200aaf
KC
121822004-02-23 Kelley Cook <kcook@gcc.gnu.org>
12183
12184 * config/i386/i386.c: Rename pni to sse3.
12185 * config/i386/i386.h: Likewise.
3205a71e 12186 * config/i386/i386.md: Likewise.
9e200aaf
KC
12187 * config/i386/pmmintrin.h: Likewise.
12188 * doc/extend.texi: Likewise.
12189 * doc/invoke.texi: Likewise.
12190
3521b33c
ZW
121912004-02-23 Zack Weinberg <zack@codesourcery.com>
12192 Kazu Hirata <kazu@cs.umass.edu>
12193
12194 Remove -fwritable-strings.
12195 * c-common.c (fix_string_type): Don't check
12196 flag_writable_strings.
12197 (fix_string_type): Likewise.
12198 * c-opts.c (set_std_c89): Don't initialize
12199 flag_writable_strings.
12200 (set_std_c99): Likewise.
12201 * common.opt (fwritable-strings): Remove.
12202 * flags.h: Remove the external declaration of
12203 flag_writable_strings.
12204 * opts.c (common_handle_option) <OPT_fwritable_strings>:
12205 Remove.
12206 * toplev.c (flag_writable_strings): Remove.
12207 (f_options): Remove an entry for writable-strings.
12208 * varasm.c (const_hash_1) <STRING_CST>: Don't check
12209 flag_writable_strings.
12210 (compare_constant) <STRING_CST>: Likewise.
12211 (build_constant_desc): Likewise.
12212 * config/darwin.c (machopic_select_section): Likewise.
12213 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
12214 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
12215 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
12216 * config/mips/mips.c (mips_select_section): Likewise.
12217 (mips_encode_section_info): Likewise.
12218 * config/pa/pa.c (pa_select_section): Likewise.
12219 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
12220 * config/v850/v850.c (v850_select_section): Likewise.
12221 * doc/invoke.texi (-fwritable-strings): Remove.
12222 (-fno-const-strings): Don't mention -fwritable-strings.
12223 * doc/trouble.texi: Don't mention -fwritable-strings.
12224
94632047 122252004-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
eb6bddf6
NN
12226
12227 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
12228
e0740893
DJ
122292004-02-23 Dale Johannesen <dalej@apple.com>
12230
12231 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
12232 (movdf_hardfloat64): Ditto.
12233 (movdf_softfloat64): Ditto.
12234
e91fa876 122352004-02-23 Fariborz Jahanian <fjahanian@apple.com>
3205a71e 12236 * config/rs6000/rs6000.c (function_arg): call to
e91fa876 12237 rs6000_mixed_function_arg for DFmode moved to allow
21526606 12238 normal DFmode incoming register assignment.
e91fa876 12239
ae6669e7
DJ
122402004-02-23 Dale Johannesen <dalej@apple.com>
12241
12242 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
12243 (movdf_hardfloat64): Ditto.
12244
2a9f2ad3
KH
122452004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12246
12247 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
12248 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
12249 copyright.
12250
aa5fa0fc
AP
122512004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
12252
a2f1f4c3
AP
12253 PR c/14156
12254 * c-typeck.c (c_expand_return): Change check for VAR_DECL
12255 to use DECL_P instead.
12256
aa5fa0fc
AP
12257 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
12258 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
12259
221ee7c9
KH
122602004-02-23 Kazu Hirata <kazu@cs.umass.edu>
12261
12262 * Makefile.in (opts.o): Depend on target.h.
12263 * opts.c (decode_options): Use targetm.default_short_enums
12264 instead of DEFAULT_SHORT_ENUMS.
12265 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12266 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
12267 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
12268 * target.h (gcc_target): Add default_short_enums.
12269 * config/cris/cris.h: Remove a comment about
12270 DEFAULT_SHORT_ENUMS.
12271 * config/ip2k/ip2k.h: Likewise.
12272 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
12273 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
12274
bba745c1 122752004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3205a71e 12276 Falk Hueffner <falk@debian.org>
bba745c1
EB
12277
12278 PR c/14188
12279 * builtins.c (expand_builtin_va_arg): Emit an informative message
12280 if a trap is generated.
12281 * c-typeck.c (build_function_call): Likewise.
12282
c2cd64b5
JJ
122832004-02-22 Jakub Jelinek <jakub@redhat.com>
12284
12285 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
12286 fopen.
12287 * libgcov.c: Include sys/stat.h.
12288 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
12289 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
12290 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
12291 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
12292
fcfcb20e
KH
122932004-02-22 Kazu Hirata <kazu@cs.umass.edu>
12294
12295 * reorg.c: Remove comments about dead ports.
12296
56d03a40
CF
122972004-02-22 Christopher Faylor <cgf@redhat.com>
12298
12299 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
12300 extra host object file when targetting cygwin rather than generic
12301 object files.
12302
5e20bdd7
JZ
123032004-02-22 Josef Zlomek <zlomekj@suse.cz>
12304
12305 Merge from tree-ssa:
12306 2003-11-20 Richard Henderson <rth@redhat.com>
12307
12308 * tree-inline.c (insert_decl_map): New.
12309 (remap_decl, remap_type, remap_block, copy_body_r,
12310 initialize_inlined_parameters, declare_return_variable,
12311 remap_save_expr): Use it.
12312
12313 * function.c (copy_body_r): Add mapping from id->ret_label to
12314 id->ret_label. Revert test for ret_label.
12315
4112be4a
JJ
123162004-02-22 Jakub Jelinek <jakub@redhat.com>
12317
12318 * genoutput.c (process_template): Strip trailing whitespace in @
12319 templates and issue a warning if there was any.
12320
3a6efa98 123212004-02-21 Christopher Faylor <cgf@redhat.com>
dc4a2f32
CF
12322
12323 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
12324 object file when targetting cygwin.
12325 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
12326 overridden by top-level Makefile.
12327
22cc69c4
RS
123282004-02-21 Roger Sayle <roger@eyesopen.com>
12329
12330 * config/i386/i386.c (standard_80387_constant_p): Also prefer
12331 the x87's load constant instructions when optimizing for size.
12332
bee07d3f
KH
123332004-02-21 Kazu Hirata <kazu@cs.umass.edu>
12334
12335 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
12336 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
12337 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
12338 * fold-const.c: Likewise.
12339 * simplify-rtx.c: Likewise.
12340
da6fdad3
AM
123412004-02-21 Alan Modra <amodra@bigpond.net.au>
12342
12343 * combine.c (can_combine_p): Don't ignore SETs marked with
12344 REG_EH_REGION notes.
12345 (try_combine): When attemting to fix unrecognized insns, don't
12346 split a PARALLEL that contains the original i2.
12347
8bb418a3
ZL
123482004-02-21 Ziemowit Laski <zlaski@apple.com>
12349
12350 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
12351 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
12352 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
12353 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
12354 (vector, pixel, bool): #define to __vector, __pixel and __bool.
12355 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
12356 portion of header.
12357 (__altivec_link_error_invalid_argument): Remove prototype; will use
12358 __builtin_altivec_compiletime_error("vec_*") instead.
12359 (vec_*): Fix/complete set of available operation overloads given the
12360 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
12361 cv-correctness of pointer arguments; in C, always check for correct
12362 argument types before macro expansion.
12363 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
12364 defining Darwin/PowerPC-specific '-f[no-]altivec' and
12365 '-W[no-]altivec-long-deprecated' switches.
12366 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
12367 '__vector', '__pixel' and '__bool' macros using
12368 '__attribute__((altivec(...)))' types.
12369 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
12370 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
12371 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
12372 New type nodes.
12373 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
12374 handling '-W[no-]altivec-long-deprecated'.
12375 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
12376 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
12377 altivec_expand_dst_builtin): Remove casts from integer literals.
12378 (altivec_expand_builtin): Likewise; handle expansion of new
12379 '__builtin_altivec_compiletime_error' function.
12380 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
12381 types, and make them distinct from other vector types; register
12382 '__builtin_altivec_compiletime_error' function.
12383 (print_operand): For 'P', print a full target register name instead of
12384 merely its number.
12385 (rs6000_attribute_table): Add "altivec" attribute.
12386 (rs6000_handle_altivec_attribute): New function.
21526606 12387 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8bb418a3
ZL
12388 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
12389 maps to).
12390 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
12391 declare.
12392 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
12393
06a419ff
JW
123942004-02-20 James E Wilson <wilson@specifixinc.com>
12395
12396 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
12397 check.
12398 (shift_mix4left+2): Delete redundant pattern.
12399
d220de0e
KH
124002004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12401
12402 * alias.c (OUTGOING_REGNO): Don't define the default.
12403 * builtins.c (OUTGOING_REGNO): Likewise.
12404 (INCOMING_REGNO): Likewise.
12405 (apply_args_register_offset): Always use OUTGOING_REGNO.
12406 * combine.c (OUTGOING_REGNO): Likewise.
12407 * sibcall.c (OUTGOING_REGNO): Likewise.
12408 * defaults.h (INCOMING_REGNO): Provide the default.
12409 (OUTGOING_REGNO): Likewise.
12410
701ad47e
JH
124112004-02-21 Jan Hubicka <jh@suse.cz>
12412
12413 * params.def (max-peeled-insns, max-completely-peeled-insns,
12414 max-once-peeled-insns): Set to 400.
12415
7a3e01c4
JDA
124162004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12417
3205a71e 12418 PR c++/12007
7a3e01c4
JDA
12419 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
12420 are set for parameters before outputing debugging information.
12421
f4d9988b
FH
124222004-02-20 Falk Hueffner <falk@debian.org>
12423
12424 PR target/14201
12425 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
12426 numbers.
12427
2ae5c785
PB
124282004-02-20 Per Bothner <per@bothner.com>
12429
12430 * input.h: Don't #include line-map.h. It may cause link problems
12431 with undefined linemap_line_start when line-map.h is included but
12432 line-map.o is not linked, as currently happens with gengtype on
12433 compilers that don't support inline.
12434 * toplev.c: So we do have to explicitly #include line-map.h here.
12435
7c4d376d
RH
124362004-02-20 Richard Henderson <rth@redhat.com>
12437
12438 * doc/invoke.texi: Add -Wvariadic-macros.
12439
2c598860
KH
124402004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12441
12442 * haifa-sched.c (sched_emit_insn): Remove.
12443 * sched-int.h: Remove the corresponding prototype.
12444
35afa569
KH
124452004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12446
12447 Revert:
12448 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12449 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12450 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12451 * config/cris/cris.h: Remove a comment about
12452 DEFAULT_SHORT_ENUMS.
12453 * config/ip2k/ip2k.h: Likewise.
12454 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12455
c1c3bb0c
ME
124562004-02-20 Mohan Embar <gnustuff@thisiscool.com>
12457 Tom Tromey <tromey@redhat.com>
12458
12459 * doc/install.texi: Moved --disable-libgcj and
12460 --with-system-zlib documentation to new section for
12461 Java-specific options.
12462 Added explicit Cross-Compiler-Specific Options subheading.
12463 Added section for Java-specific options.
12464
ee095310
MK
124652004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
12466
12467 * doc/install.texi (Building the Ada compiler): Remove
3205a71e 12468 example.
ee095310 12469
15316a6f
JW
124702004-02-20 James E Wilson <wilson@specifixinc.com>
12471
12472 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
12473
9f76f909
KH
124742004-02-20 Kazu Hirata <kazu@cs.umass.edu>
12475
12476 * gcc.c (process_command): Allow translation of the copyright
12477 symbol but not the rest of the copyright message.
12478 * gcov.c (print_version): Likewise. Allow translation of the
12479 message about warranty.
12480
f38a62ff
HPN
124812004-02-20 Hans-Peter Nilsson <hp@axis.com>
12482
12483 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
12484 predicate.
12485 ("*andsi_clear"): Tweak constraints to not match postincrement.
12486 Adjust the predicate to exclude a volatile memory reference.
12487 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
12488 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
12489
88e3a2a3
MK
124902004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
12491
12492 * move-if-change: Remove.
12493 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
12494 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
12495 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
12496 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
12497 (s-gtyp-gen, s-iov): Use the top level move-if-change.
12498 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
12499
e0c34369
JW
125002004-02-19 James E Wilson <wilson@specifixinc.com>
12501
12502 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
12503 for operand2. Add condition that requires register_operand operand2
12504 before reload.
12505
656f37ee 125062004-02-19 Richard Sandiford <rsandifo@redhat.com>
2b5f287b 12507 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
656f37ee
RS
12508
12509 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
12510 * config/mips/mips.md: Expand comment above unaligned loads and stores.
12511
4221057e
RH
125122004-02-19 Richard Henderson <rth@redhat.com>
12513
12514 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
12515 * tree.c (build0, build1, build2, build3, build4): Split out from...
12516 (build): ... here. Call them.
12517 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
12518
12519 * convert.c (convert_to_integer): Remove extra build argument.
12520 * tree-inline.c (expand_call_inline): Likewise.
12521
e5b79219
RH
125222004-02-19 Richard Henderson <rth@redhat.com>
12523
12524 * c-opts.c (warn_variadic_macros): New.
12525 (c_common_handle_option): Set it.
12526 (sanitize_cpp_opts): Copy it to cpp_opts.
12527 * c.opt (Wvariadic-macros): New.
12528 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
12529 * cppinit.c (cpp_create_reader): Initialize it.
12530 * cppmacro.c (parse_params): Check it.
12531
18586cb7
DD
125322004-02-19 David Daney <ddaney@avtrex.com>
12533
12534 PR preprocessor/14198
12535 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
12536 builtin_assert ("machine=mips")
12537
37a46828
KH
125382004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12539
12540 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
12541 * system.h (DEFAULT_SHORT_ENUMS): Poison.
12542 * config/cris/cris.h: Remove a comment about
12543 DEFAULT_SHORT_ENUMS.
12544 * config/ip2k/ip2k.h: Likewise.
12545 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
12546
f9c887ac
ZW
125472004-02-19 Zack Weinberg <zack@codesourcery.com>
12548
12549 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
12550 when passing single SFmode quantities in general registers,
12551 put them in the high half.
12552
0e1d7f32 125532004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
12554
12555 * doc/md.texi (Standard Names): Document additional dependency on
12556 fix pattern.
12557
12558 * optabs.c (ftruncify): Remove.
12559 (expand_fix): Manually inline ftruncify above.
12560 (can_fix_p): Add FIXME note.
0e1d7f32 12561
c6e9f0eb 125622004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
12563
12564 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
12565 spe_fixuns_truncsfsi2.
12566
12567 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
12568 fixuns_truncsfsi2.
c6e9f0eb 12569
919b531d
SE
125702004-02-19 Steve Ellcey <sje@cup.hp.com>
12571
12572 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
12573 * testsuite/gcc.dg/20040219-1.c: New test.
12574
4dbb5970
UW
125752004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
12576
12577 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
12578 "*subsf3_cconly"): Subtraction is not commutative.
12579
16edbbf0
ZW
125802004-02-19 Zack Weinberg <zack@codesourcery.com>
12581
12582 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
12583 (sdbout_symbol): If called before sdbout_init, queue DECL for
12584 later and return.
12585 (sdbout_init): Set sdbout_initialized true, process decls
12586 queued earlier by sdbout_symbol.
12587 (sdbout_finish): Use size_t for index variable.
12588
f46e5baa 125892004-02-19 Jeff Law <law@redhat.com>
16edbbf0 12590
f46e5baa
JL
12591 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
12592 for unordered comparison codes.
12593
d754127f
ILT
125942004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
12595
12596 * reload1.c (reload): Correct comment.
12597 (scan_paradoxical_subregs): Remove #if 0 and old comment.
12598 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
12599 register variables are not used by reload.
12600
428eae94
HPN
126012004-02-19 Hans-Peter Nilsson <hp@axis.com>
12602
12603 PR target/14209
12604 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
12605 constraints to not match postincrement. Adjust the predicate to
12606 exclude a volatile memory reference.
12607
a5ee8d80
KH
126082004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12609
12610 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
12611
45ea6431
KH
126122004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12613
12614 * hooks.c (hook_void_tree_int): Remove.
12615 (hook_void_constcharptr): Likewise.
12616 (hook_int_void_0): Likewise.
12617 * hooks.h: Remove the prototypes for the above three
12618 functions.
12619 * targhooks.c (hook_bool_machine_mode_true): Remove.
12620 * targhooks.h: Remove the prototype for
12621 hook_bool_machine_mode_true.
12622
c59102b4
KH
126232004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12624
12625 * emit-rtl.c (subreg_realpart_p): Remove.
12626 (reorder_insns_with_line_notes): Likewise.
12627 (end_full_sequence): Likewise.
12628 * rtl.h: Remove the prototype for the above functions.
12629
3ad17f7b
KH
126302004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12631
12632 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
12633 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12634 config/iq2000/iq2000.h, config/m32r/m32r.h,
12635 config/pdp11/pdp11.h, config/sparc/sparc.h,
12636 config/xtensa/xtensa.h: Remove commented-out or useless
12637 definitions of CASE_VECTOR_PC_RELATIVE.
12638
a3b182a7
KH
126392004-02-19 Kazu Hirata <kazu@cs.umass.edu>
12640
12641 * loop.c (all_sets_invariant_p): Remove.
12642
1b5963f7
EB
126432004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
12644
12645 PR target/12916
12646 * config/sparc/sparc.h (NPARM_REGS): Delete.
12647 (BASE_RETURN_VALUE_REG): Likewise.
12648 (BASE_OUTGOING_VALUE_REG): Likewise.
12649 (BASE_PASSING_ARG_REG): Likewise.
12650 (BASE_INCOMING_ARG_REG): Likewise.
12651 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12652 TARGET_ARCH64, not TARGET_V9.
12653 (function_arg_slotno): Dispatch based on the mode class.
12654 Handle vector modes like floating-point modes.
12655 (function_arg_record_value_1): Handle vector types like
12656 floating-point types.
12657 (function_arg_record_value_2): Likewise.
12658 Calculate regno after mode transformation.
12659 (function_arg): Handle vector modes like floating-point modes.
12660 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12661 If ARCH64, do not recheck alignment.
12662 (function_arg_pass_by_reference): Reorder the conditions.
12663 (sparc_return_in_memory): Move after function_arg_padding.
12664 Implement calling conventions for vector modes.
12665 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12666 (function_value): Move scope of 'regbase'.
12667 Implement calling conventions for vector modes.
12668 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12669 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12670 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12671 the argument is passed by reference.
12672 (sparc_type_code): Handle vector types.
12673
196c42cd
AM
126742004-02-19 Alan Modra <amodra@bigpond.net.au>
12675
12676 * function.c (assign_parms): When building decl_rtl for
12677 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12678
c0cfc691
OH
126792004-02-19 Olivier Hainque <hainque@act-europe.fr>
12680
12681 * expr.c (is_aligning_offset): Check if we are aligning the
12682 expressions's address over BIGGEST_ALIGNMENT in bytes, not
12683 in bits.
12684
94632047 126852004-02-18 Matt Austern <austern@apple.com>
328163dc
MA
12686
12687 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12688 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12689 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12690 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12691 spec string.
12692 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
16edbbf0 12693
57d4f65c
ZW
126942004-02-18 Zack Weinberg <zack@codesourcery.com>
12695
12696 * dwarf2out.c (loclabel_num): Move outside #ifdef
12697 DWARF2_DEBUGGING_INFO and mark with GTY(()).
12698 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12699 Mark with GTY(()).
12700 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12701 Allocate memory with ggc_alloc. No need to copy anything.
12702 (ia64_hpux_file_end): Update to match.
12703
3fec9fa9
JJ
127042004-02-18 Jakub Jelinek <jakub@redhat.com>
12705
12706 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12707 by default.
12708
5665e398
UW
127092004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
12710
12711 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12712 ("divmodtisi3"): Likewise.
12713 ("udivmoddi4", "udivmodtidi3"): Likewise.
12714 ("divmodsi4", "divmoddisi3"): Likewise.
12715 ("udivmodsi4", "udivmoddisi3"): Likewise.
12716 ("udivsi3", "umodsi3"): Likewise.
12717
d76e8439
UW
127182004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
12719
12720 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12721 placeholder insn when chunkifying the pool.
12722
3cf7104e
JDA
127232004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12724
12725 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12726 generating PIC code.
12727
8981ecd3
KH
127282004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12729
12730 * config/h8300/h8300-protos.h: Add a prototype for
12731 h8300_expand_branch.
12732 * config/h8300/h8300.c (h8300_expand_branch): New.
12733 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12734 bgtu, beq, bne): Call h8300_expand_branch().
12735
07ee3b58
KH
127362004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12737
12738 * config/h8300/h8300-protos.h: Add prototypes for
12739 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12740 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12741 (h8300_hard_regno_mode_ok): Likewise.
12742 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12743 h8300_hard_regno_nregs().
12744 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12745
22234f56
PB
127462004-02-18 Per Bothner <per@bothner.com>
12747
12748 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
12749 partly reverts my 2003-10-01 change, because we're back to logically
12750 including <command line> inside the main line.
12751 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
12752 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
12753 Fixes PR preprocessor/14103.
12754
12755 * cppfiles.c (_cpp_stack_include): When appropriate decrement
12756 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12757 (cpp_push_include): Don't need to increment pfile's line field.
12758 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
12759
12760 * c-ppoutput.c (print struct): New first_time field.
12761 (init_pp_output): Set print.first_time.
12762 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
12763 which is set also for (say) <command line>. Clear print.first_time.
12764
12765 * cppfiles.c (struct _cpp_file): Comment and type for pch field
12766 does not match the code, so fix both.
12767 (should_stack_file): Inline include_pch_p function.
12768 (include_pch_p): Remove pointless function.
12769
12770 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
12771
5a6d9a81
KH
127722004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12773
12774 * config/h8300/h8300.md (four define_peephole2's): Use
12775 h8300_regs_ok_for_stm().
12776
3d2e90d6
KH
127772004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12778
12779 * config/h8300/h8300-protos.h: Update the prototype for
12780 expand_a_rotate().
12781 * config/h8300/h8300.c (expand_a_rotate): Remove the first
12782 argument.
12783 * config/h8300/h8300.md: Update all callers.
12784
79ae63b1
JH
127852004-02-18 Jan Hubicka <jh@suse.cz>
12786
12787 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12788 floats.
12789 (simplify_binary_operation): Deal with logicals on floats.
12790
12791 * i386.md (SSE fabs splitters): Emit new patterns.
12792 (SSE cmov splitters): Likewise.
12793 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12794 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12795 subregs.
12796 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12797 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12798
01ab5574
KH
127992004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12800
12801 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12802 by hand.
12803 (output_a_rotate): Tweak a comment.
12804 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12805 (*rotlhi3_1): Change to rotlhi3_1.
12806 (*rotlsi3_1): Change to rotlsi3_1.
12807
d5f7d2d0
RE
128082004-02-18 Richard Earnshaw <rearnsha@arm.com>
12809
12810 PR target/13866
12811 * arm.c (load_multiple_operation): Don't insist that the source reg
12812 of a post-increment component is the same as the destination.
12813 (store_multiple_operation): Likewise.
12814
b0c8a821
KH
128152004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12816
12817 * config/h8300/h8300.md: Move movsf patterns into one section
12818 of the file.
12819
aa335b76
KH
128202004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12821
12822 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12823 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12824 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12825 config/mips/linux64.h, config/pa/pa-64.h,
12826 config/rs6000/aix51.h, config/rs6000/aix52.h,
12827 config/rs6000/spe.md, config/sparc/linux.h,
12828 config/sparc/linux64.h: Update copyright.
12829
5a64541a
KH
128302004-02-18 Kazu Hirata <kazu@cs.umass.edu>
12831
12832 * config/h8300/h8300.md: Move push patterns into one
12833 section of the file.
12834
8d04e6db
MM
128352004-02-18 Mark Mitchell <mark@codesourcery.com>
12836
12837 PR c++/11326
12838 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12839 fntype.
12840
e978d62e
PB
128412004-02-18 Paul Brook <paul@codesourcery.com>
12842
12843 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12844
cdbafce1
PB
128452004-02-18 Paul Brook <paul@codesourcery.com>
12846
c5fe5036 12847 PR debug/12934
cdbafce1
PB
12848 * dwarf2out.c (loc_descriptor_from_tree): Handle
12849 EXPR_WITH_FILE_LOCATION.
12850
5a0855a0
JJ
128512004-02-18 Jakub Jelinek <jakub@redhat.com>
12852
12853 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12854 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12855 trailing whitespace from instructions.
12856
9c56033f
GK
128572004-02-17 Geoffrey Keating <geoffk@apple.com>
12858
12859 * configure.ac: When generating auto-build.h, pass
12860 --enable-languages to the sub-configure.
12861 Put quotes around ${program_transform_name} when generating
12862 name of as, ld, nm, objdump.
12863 * configure: Regenerate.
12864
80bcb4d2
MK
128652004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
12866
12867 * Makefile.in (s-check, s-config, s-conditions, s-flags)
12868 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12869 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12870 (s-preds, s-iov): Do not depend on move-if-change.
12871
ce7b36a4
JW
128722004-02-17 James E Wilson <wilson@specifixinc.com>
12873
12874 * caller-save.c (insert_restore): Pass mem through copy_rtx.
12875 (insert_save): Likewise.
12876
f8b58e56
KH
128772004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12878
12879 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12880 warning.
12881
8d82e1d8
KH
128822004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12883
12884 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12885 *one_cmplsi2_h8300.
12886 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12887
4093985c
KH
128882004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12889
12890 * config/h8300/h8300-protos.h: Update the prototype of
12891 fix_bit_operand().
12892 * config/h8300/h8300.c (fix_bit_operand): Remove the second
12893 argument "what".
12894 * config/h8300/h8300.md: Update all callers.
12895
fd57a6e4
KH
128962004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12897
12898 * config/h8300/h8300.c (fix_bit_operand): Change the name of
12899 the last argument to "code" from "type".
12900
6a415867
KH
129012004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12902
12903 * config/h8300/h8300.c: Remove an extern declaration of
12904 rtx_equal_function_value_matters.
12905
a3579575
KH
129062004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12907
12908 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12909 by hand.
12910 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12911 (*iorqi3_1): Change to iorqi3_1.
12912 (*xorqi3_1): Change to xorqi3_1.
12913
321440fd
KH
129142004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12915
12916 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12917 typos.
12918
7b50a809
JH
129192004-02-17 Jan Hubicka <jh@suse.cz>
12920
12921 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12922
8051c2eb
AM
129232004-02-18 Alan Modra <amodra@bigpond.net.au>
12924
12925 PR optimization/14119
12926 * combine.c (try_combine): When attemting to fix unrecognized insns,
12927 don't delete SETs marked with REG_EH_REGION notes.
12928
db33236e
UW
129292004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
12930
57d4f65c 12931 * combine.c (simplify_if_then_else): Do not replace
db33236e
UW
12932 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12933 modes differ.
12934
1da326c3
SB
129352004-02017 Steven Bosscher <stevenb@suse.de>
12936
12937 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12938 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12939 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12940 * ada/utils.c: Likewise.
12941 * cp/decl.c: Likewise.
12942 * f/com.c: Likewise.
12943 * java/class.c: Likewise.
12944
65c07641
KH
129452004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12946
12947 * config/h8300/h8300.md: Fix comment typos.
12948
3e35cb0c
RO
129492004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12950
12951 * config/mips/t-iris6gld: Renamed to ...
12952 * config/mips/t-irix-gld: ... this.
12953 * config.gcc (mips-sgi-irix6*): Reflect this
12954 (mips-sgi-irix5*): Use it with GNU ld.
57d4f65c 12955
3e35cb0c
RO
12956 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12957 to ...
12958 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12959 * config/mips/t-irix-gld: Reflect this.
12960 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 12961
3e35cb0c
RO
12962 * config/mips/iris5gld.h: New file.
12963 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12964 Only use collect2 without gas.
57d4f65c 12965
3e35cb0c
RO
12966 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12967 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12968 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12969 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 12970
3e35cb0c
RO
12971 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12972 * config/mips/iris5.h: ... here.
12973
12974 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
57d4f65c 12975 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
3e35cb0c 12976 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
57d4f65c 12977
3e35cb0c
RO
12978 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12979 using irix_startfile_spec, irix_endfile_spec.
12980
1f0282cb
GN
129812004-02-16 Gunther Nikl <gni@gecko.de>
12982
12983 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12984
6552458a
KH
129852004-02-17 Kazu Hirata <kazu@cs.umass.edu>
12986
12987 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12988 insns by hand.
12989
017b3258
ZD
129902004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12991
12992 * cfghooks.c (split_edge): Speed up updating of dominators.
12993
57782ad8
MM
129942004-02-17 Mark Mitchell <mark@codesourcery.com>
12995
12996 PR c++/11326
12997 * c-common.c (flag_abi_version): Remove.
12998 * c-common.h (flag_abi_version): Likewise.
12999 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
13000 * c.opt (fabi-version): Remove.
13001 * calls.c (expand_call): Always pass a function type to
13002 struct_value_rtx. Use convert_memory_address.
13003 * common.opt (fabi-version): Add it.
13004 * flags.h (flag_abi_version): Likewise.
13005 (abi_version_at_least): New macro.
13006 * opts.c (common_handle_option): Add OPT_fabi_version.
13007 * toplev.c (flag_abi_version): Define it.
13008 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
13009 New function.
13010 (ia64_output_mi_thunk): Use it.
13011 (ia64_struct_value_rtx): Likewise.
57d4f65c 13012
72b1de44
KH
130132004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13014
13015 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
13016 Don't generate insns by hand.
13017
d150ccef
AP
130182004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
13019
13020 PR c++/14178
13021 * doc/invoke.texi (fabi-version): The default is 2 now.
13022
50654f6c
ZD
130232004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13024
13025 * loop-iv.c: New file.
13026 * Makefile.in (loop-iv.o): New.
13027 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
13028 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
13029 num_loop_branches): New functions.
13030 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
13031 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
13032 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
13033 get_simple_loop_desc, free_simple_loop_desc): Declare.
13034 (simple_loop_desc): New inline function.
13035 (struct rtx_iv, struct niter_desc): New.
13036 * cfgloopmanip.c (loopify): Specify semantics more precisely.
13037 * expr.c (force_operand): Handle subregs of expressions created by
13038 loop unroller.
13039 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
13040 parts of the initialization to toplev.c
13041 * loop-unroll.c (loop_exit_at_end_p): New.
13042 (unroll_and_peel_loops): Call iv_analysis_done.
13043 (decide_peel_once_rolling, decide_peel_completely,
13044 decide_unroll_stupid, decide_unroll_constant_iterations,
13045 decide_unroll_runtime_iterations, decide_peel_simple,
13046 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
13047 unroll_loop_runtime_iterations): Use new simple loop analysis.
13048 * loop-unswitch.c (compare_and_jump_seq): New.
13049 (may_unswitch_on_p): Renamed to ...
13050 (may_unswitch_on): Use new iv analysis.
13051 (reversed_condition): Export.
13052 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
13053 * predict.c (estimate_probability): Use new simple loop analysis.
13054 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
13055 canon_condition, simplify_using_condition): Declare.
13056 * stor-layout.c (get_mode_bounds): New.
13057 * toplev.c (rest_of_handle_loop2): Some parts of
13058 initialization/finalization moved here from loop-init.c.
13059
ef3f573f
KH
130602004-02-17 Kazu Hirata <kazu@cs.umass.edu>
13061
13062 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
13063 pointer.
13064 (CALL_USED_REGISTERS): Likewise.
13065 (REG_ALLOC_ORDER): Likewise.
13066 (REG_CLASS) <GENERAL_REGS>: Likewise.
13067
e3d6e740
GK
130682004-02-16 Geoffrey Keating <geoffk@apple.com>
13069
13070 * doc/md.texi (Insn Canonicalizations): Document left-chaining
13071 in associative operators.
13072 * rtlanal.c (commutative_operand_precedence): Create some new
13073 variables. Prefer a commutative operand on the left, then
13074 binary expressions, then NEG and NOT.
13075
8c958ed2
MK
130762004-02-16 Matthias Klose <doko@debian.org>
13077
57d4f65c
ZW
13078 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
13079 in terms of SHLIB_SOVERSION.
13080 * config/m68k/t-slibgcc-elf-ver: New file.
13081 * config/pa/t-slibgcc-elf-ver: New file.
13082 * config.gcc (m68k-linux, parisc-linux): Use them when not
8c958ed2
MK
13083 sjlj exceptions are not configured.
13084
42a5f3c0
EB
130852004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
13086
13087 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
13088
1729e46c
ZW
130892004-02-16 Zack Weinberg <zack@codesourcery.com>
13090
13091 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
13092
0acdc221
JM
130932004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
13094
13095 * doc/sourcebuild.texi: Mention backends.html.
13096
9ac97460
KH
130972004-02-16 Kazu Hirata <kazu@cs.umass.edu>
13098
13099 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
13100 line-map.c, line-map.h, var-tracking.c: Fix comment
13101 formatting.
13102
9dcb4381
RH
131032004-02-16 Richard Henderson <rth@redhat.com>
13104
13105 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
13106
1729e46c 13107 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
875427f0 13108
1472042a
KH
131092004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13110
13111 * config/h8300/h8300.md: Remove unnecessary parallels from
13112 all define_insn and define_split patterns.
13113
24f29b06
KH
131142004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13115
13116 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
13117 "clobber").
13118
ac5f9961
BI
131192004-02-15 Bernardo Innocenti <bernie@develer.com>
13120
13121 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
13122 '%#'.
13123
68776c43
KH
131242004-02-15 Kazu Hirata <kazu@cs.umass.edu>
13125
13126 * config/ia64/ia64.c, config/mips/mips.c,
13127 config/mmix/mmix-modes.def: Fix comment typos.
13128
7501c4e4
RS
131292004-02-15 Roger Sayle <roger@eyesopen.com>
13130
13131 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
13132 (get_directive_line): Remove unused function prototype.
13133
5852680b
JZ
131342004-02-14 Josef Zlomek <zlomekj@suse.cz>
13135
13136 * tree-inline.c (copy_body_r): Do not replace ret_label.
13137
be04394b
JH
131382004-02-14 Jan Hubicka <jh@suse.cz>
13139
13140 * i386.c (x86_four_jump_limit): New variable.
13141 (k8_avoid_jump_misspredicts): Rename to ...
13142 (ix86_avoid_jump_misspredicts): .. this one.
13143 (ix86_pad_returns): Break out from ...
13144 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
13145 to.
13146 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
13147
d4afac5b
JZ
131482004-02-14 Josef Zlomek <zlomekj@suse.cz>
13149
13150 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
13151 PARALLEL is NULL.
13152
c7762b44
PB
131532004-02-14 Per Bothner <per@bothner.com>
13154
13155 * fix-header.c (line_table): Move local variable in main to global.
13156 * scan.h (line_table): Use it.
13157 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
13158 line (recently renamed to src_loc) before calling recognized_function.
13159
cb7c0b5a
MK
131602004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
13161
13162 * Makefile.in: Fix comment typos.
13163
45f9877a
EB
131642004-02-14 Olivier Hainque <hainque@act-europe.fr>
13165
13166 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
13167 for start_value when it is directly moved into reg, and factorize
13168 the retrieval of GET_MODE (reg).
13169
544142d8
RS
131702004-02-14 Richard Sandiford <rsandifo@redhat.com>
13171
13172 * config/mips/mips-protos.h (mips_load_got_page): Delete.
13173 (mips_load_got_global): Delete.
13174 (mips_gotoff_page): Declare.
13175 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
13176 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
13177 UNSPEC_LOAD_GOT pattern rather than a MEM.
13178 (*load_got[sd]i): New patterns.
13179 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
13180 (mips_load_got_page, mips_load_got_global): Delete.
13181 (mips_gotoff_page): New function.
13182 (override_options): Don't initialize mips_got_alias_set.
13183
d2888f1d
RS
131842004-02-14 Richard Sandiford <rsandifo@redhat.com>
13185
13186 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
13187 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
13188 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
13189 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
13190 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
13191 * config/mips/mips.c: Fix some overly-long lines.
13192 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
13193 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
13194
19baba0b
RO
131952004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13196
13197 * configure.ac: Search for as, ld below libexec/gcc.
13198 * configure: Regenerate.
13199
f07a6b21
BE
132002004-02-14 Ben Elliston <bje@wasabisystems.com>
13201
13202 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
13203 __builtin_arm_setwcx ().
13204 * config/arm/arm.c (arm_expand_builtin): Generate operands
13205 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
13206
132072004-02-14 Ben Elliston <bje@wasabisystems.com>
13208
13209 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
13210 and "wmuluh" to "wmulsm" and "wmulum", respectively.
13211 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
13212 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
13213 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
13214 (_mm_mulhi_pu16): Likewise.
13215
f433554b
ZW
132162004-02-13 Zack Weinberg <zack@codesourcery.com>
13217
13218 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
13219 DECL_NAME != 0 before dereferencing.
13220
faeb9bb6
UW
132212004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
13222
13223 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
13224 (s390_output_addr_const_extra): Declare.
13225 (s390_output_pool_entry): Remove FILE * argument.
13226 * config/s390/s390.c (s390_output_symbolic_const): Remove.
13227 (s390_output_addr_const_extra): New function.
13228 (print_operand_address): Call output_addr_const instead of
13229 s390_output_symbolic_const.
13230 (print_operand): Likewise.
13231 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
13232 Remove FILE * argument.
13233 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
13234 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
13235 call.
13236
cfbe3efe
ZD
132372004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
13238
13239 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
13240 (struct edge, struct vertex, struct graph): New.
13241 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
13242 free_graph): New functions.
13243
d349192c
CD
132442004-02-12 Chris Demetriou <cgd@broadcom.com>
13245
13246 * config/mips/mips.md (casesi_internal, casesi_internal_di):
13247 Use ".set macro" to avoid warnings about multi-instruction
13248 macros, since they're intentional.
13249
52ccb3d2
GK
132502004-02-12 Geoffrey Keating <geoffk@apple.com>
13251
213c4a8a
GK
13252 * config/darwin.h: Add include guards. Remove old, now incorrect,
13253 comment about STANDARD_EXEC_PREFIX.
13254
52ccb3d2
GK
13255 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
13256 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
13257 for installing .1 manpages. Add rules for installing cpp
13258 and gcov manpages under their installed names.
13259
1a543d25
AO
132602004-02-12 Alexandre Oliva <aoliva@redhat.com>
13261
13262 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
13263 host, but try LD_FOR_TARGET first.
13264 * configure: Rebuilt.
13265
8507c40a
ZW
132662004-02-12 Zack Weinberg <zack@codesourcery.com>
13267
13268 * dbxout.c: Move declaration of dbxout_type_decl outside
13269 #ifdef DBX_DEBUGGING_INFO.
13270 * c-parse.in: Don't give the asmdef production a type.
13271
21d13d83
ZW
132722004-02-12 Zack Weinberg <zack@codesourcery.com>
13273
13274 * debug.h (struct gcc_debug_hooks): Add type_decl field.
13275 (debug_nothing_tree_int): Prototype.
13276 (dwarf_debug_hooks): Delete, unused.
13277 * debug.c (do_nothing_debug_hooks): Update.
13278 (debug_nothing_tree_int): New function.
13279 * langhooks.h (struct lang_hooks_for_decls):
13280 Remove builtin_type_decls field.
13281 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
13282 (LANG_HOOKS_DECLS): Update.
13283 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
13284 Use debug_hooks->type_decl.
13285 * dbxout.c (preinit_symbols): New static.
13286 (dbx_debug_hooks, xcoff_debug_hooks): Update.
13287 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
13288 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
13289 for symbols to output.
13290 (dbxout_type_decl): New function.
13291 (dbxout_symbol): If called before dbxout_init has run, queue
13292 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
13293 to TYPE_DECLs before emitting them.
13294 * xcoffout.c (assign_type_number): Delete.
13295 (xcoff_type_numbers): New static table.
13296 (xcoff_assign_fundamental_type_number): New function.
13297 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
13298 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
13299 * sdbout.c: Include varray.h.
13300 (deferred_global_decls): New static.
13301 (sdb_debug_hooks): Update.
13302 (sdbout_global_decl): If we can't emit something right now,
13303 remember it in deferred_global_decls.
13304 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
13305 (sdbout_init): Initialize deferred_global_decls.
13306 * Makefile.in: Update dependencies of sdbout.o.
13307 * dwarf2out.c (dwarf2out_type_decl): New function.
13308 (dwarf2_debug_hooks): Update.
13309 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
13310 * c-decl.c (getdecls): Just return 0.
13311 (check_for_loop_decls): Don't use getdecls.
13312 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
13313 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
13314
a90a16f3
UW
133152004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
13316
13317 * config/s390/s390.c (s390_sched_reorder2): Remove.
13318 (TARGET_SCHED_REORDER2): Do not redefine.
13319
9f0e2d86
ZW
133202004-02-12 Zack Weinberg <zack@codesourcery.com>
13321
13322 * c-parse.in (maybe_type_qual): Delete.
13323 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
13324 (asm_argument): New grammar rules.
13325 (extdef_1): Use asmdef.
13326 (maybeasm): Move down with other asm rules; use simple_asm_expr.
13327 (xexpr): Move up with other expression rules.
13328 (stmt): Use asm_stmt.
13329
13330 * c-typeck.c (build_asm_expr): New function - body mostly
13331 pulled from build_asm_stmt.
13332 (build_asm_stmt): Just handle tacking on the volatile qualifier.
13333 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
13334
35f5add9
RS
133352004-02-12 Richard Sandiford <rsandifo@redhat.com>
13336
13337 PR bootstrap/13617
13338 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
13339 (mips_declare_object): Make variadic.
13340 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
13341 mips_output_aligned_decl_common.
13342 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
13343 (mips_declare_object): Make variadic.
13344
a5e9c810
RK
133452004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13346
8fbc67c0
RK
13347 * function.c (update_epilogue_consts): Teach about binary operations.
13348
a5e9c810
RK
13349 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
13350 previous MEM_VOLATILE in REF.
13351 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
13352 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
13353
7ea98c5a
GN
133542004-02-12 Gunther Nikl <gni@gecko.de>
13355
13356 * config.gcc: Restore support for m68k-openbsd.
13357
8f6a8d03
JH
133582004-02-12 Jan Hubicka <jh@suse.cz>
13359
13360 * tree-optimize.c (tree_rest_of_compilation): Do not release
13361 DECL_ARGUMENTS.
13362
c2910edf
MK
133632004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
13364
13365 * doc/install.texi: Fix the spelling of "explicitly".
13366
423e95e2
EC
133672004-02-11 Eric Christopher <echristo@redhat.com>
13368
13369 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
13370 duplicate argument structure of cpp_interpret_string.
13371 * cpphash.h: Move prototype...
13372 * cpplib.h: Here.
13373 * cpplib.c: Fix calls to match new function signature.
13374
32e8aa9a
JM
133752004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
13376
13377 PR c/456
13378 * cppexp.c (num_binary_op): Don't allow comma operators in #if
13379 constant expressions at all outside C99 mode if pedantic.
13380
3b8e0c91
UB
133812004-02-11 Uros Bizjak <uros@kss-loka.si>
13382
13383 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
13384 (log10_optab, log2_optab): Define corresponding macros.
13385 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
13386 * genopinit.c (optabs): Implement log10_optab and log2_optab
13387 using log10?f2 and log2?f2 patterns.
13388 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
13389 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
13390 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
13391 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
13392
13393 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
13394 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
13395 log2, log2f and log2l built-ins as inline x87 intrinsics.
13396
a6abdce3
RH
133972004-02-11 Richard Henderson <rth@redhat.com>
13398
888ff7a1 13399 PR target/1532
a6abdce3
RH
13400 * flow.c (insn_dead_p): A clobber of a dead hard register is a
13401 dead insn after reload.
13402
05ac140e
UW
134032004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
13404
13405 * tree.h (frame_base_decl): Add GTY marker.
13406 * var-tracking.c (frame_base_decl): Likewise.
13407
e193b408
DB
134082004-02-11 Daniel Berlin <dberlin@dberlin.org>
13409
13410 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
13411 incorrect, hunk.
13412 (add_location_or_const_value_attribute): Use text_section_label,
13413 not TEXT_SECTION_NAME.
12f9df4e
PB
13414
134152004-02-11 Per Bothner <per@bothner.com>
13416
13417 Represent column numbers using line-map's source_location.
13418 The "next available source_location" is now managed internally by
13419 line-maps.c rather than by clients.
13420 * line-map.h (struct line_map): New field column_bits.
13421 <from_line>: Rename field to start_location.
13422 (struct line_maps): New fields highest_location and max_column_hint.
13423 (linemap_check_files_exited): New declaration.
13424 (linemap_line_start): New declaration.
13425 (linemap_add): Remove from_line parameter; use highest_location field.
13426 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
13427 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
13428 (CURRENT_LINE_MAP): Remove macro.
13429 (linemap_position_for_column): New inline function.
13430 * line-map.c (linemap_init): Clear new fields.
13431 (linemap_check_files_exited): New function, extracted from ...
13432 (linemap_free): Use linemap_check_files_exited.
13433 (linemap_add): Remove from_line parameter. Various updates.
13434 (linemap_line_start): New function.
13435 (linemap_lookeup): Update for new field names.
13436 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
13437 linemap_position_for_column may unpredictably change the current map,
13438 it is cleaner and simpler for us to not cache it in cpp_reader.
13439 (struct cpp_buffer): New sysp field.
13440 Changed warned_cplusplus_comments and from_stage3 to bitfields.
13441 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
13442 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
13443 current map using linemap_lookup.
13444 (do_linemarker): Also set buffer's sysp field.
13445 (destringize_and_run): No longer need to decrement current line.
13446 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
13447 (search_path_head, open_file_failed): Use buffer's sysp.
13448 (cpp_make_system_header): Get current map using linemap_lookup.
13449 Also set buffer's sysp flag.
13450 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
13451 * cpphash.h (CPP_INCREMENT_LINE): New macro.
13452 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
13453 (struct cpp_reader): ... and adding saved_line_base field.
13454 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
13455 Update accordingly. Don't adjust line.
13456 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
13457 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
13458 (cpp_in_system_header): ... new inline function, using buffer's sysp.
13459 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
13460 * cpplex.c (_cpp_lex_direct): Likewise.
13461 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
13462 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
13463 * cpplib.h (struct cpp_token): Rename line field to src_loc.
13464 Remove col field as it is now subsumed by src_loc.
13465 * cpperror.c: Update various field, parameter, and macro names.
13466 (print_location): If col==0, try SOURCE_COLUMN of line.
13467 (cpp_error): Use cur_token's src_loc field, rather than line+col.
13468 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
13469 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
13470 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
13471 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
13472 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
13473 (_cpp_lex_direct): Use linemap_position_for_column.
13474 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
13475 parameter. Instead get it from the line_table global. Adjust callers.
13476 (print): Remove map field. Replace line field to src_line.
13477 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
13478 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
13479 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
13480 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
13481 * cpptrad.c (copy_comment): Rename variable.
13482 * c-lex.c (map): Remove static variable, for same reason we removed
13483 cpp_reader's map field.
13484 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
13485 to call linemap_lookup.
13486 (cb_line_change): Token's line field replaced by src_loc.
13487 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
13488 Don't save new_map.
13489
13490 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
13491 source_location.
13492
e086f51d 134932004-02-11 Hartmut Penner <hpenner@de.ibm.com>
423e95e2 13494
e086f51d
HP
13495 * config/rs6000/altivec.md (*movv4si_internal): At least one
13496 operand must be register_operand.
13497 (*movv8hi_internal1): Likewise.
13498 (*movv16qi_internal1): Likewise.
13499 (*movv4sf_internal1): Likewise.
13500
e66b2fcf 135012004-02-10 Aldy Hernandez <aldyh@redhat.com>
8914b65e
AH
13502
13503 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
13504 operand.
13505 (movv4hi_internal): Same.
13506 (movv2sf_internal): Same.
13507 (movv1di_internal): Same.
e66b2fcf 13508
7f9be256
TS
135092004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
13510
13511 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
c0689841 13512 TARGET_OLDABI consistently.
7f9be256
TS
13513 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
13514 mips_va_arg,override_options,compute_frame_size,
13515 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
13516 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
c0689841 13517 and TARGET_OLDABI consistently.
7f9be256
TS
13518 * config/mips/mips.md (exception_receiver): Likewise.
13519 * config/mips/linux64.h: Likewise.
13520
6d0ef01e
HP
135212004-02-11 Hartmut Penner <hpenner@de.ibm.com>
13522
13523 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
13524 Set AltiVec ABI and vrsave as default for ppc64 linux.
13525 (init_cumulative_args): Post error, if try to return
13526 value in AltiVec register without enable AltiVec.
423e95e2 13527 (function_arg_advance): Ditto for passing arguments.
6d0ef01e 13528
7537fc90
RS
135292004-02-11 Richard Sandiford <rsandifo@redhat.com>
13530
13531 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
13532 a label before updating its usage count.
13533
1e9f1674
MK
135342004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
13535
9f0e2d86 13536 * doc/install.texi: Remove extra cd.
1e9f1674 13537
b34417a4
ZL
135382004-02-10 Ziemowit Laski <zlaski@apple.com>
13539
13540 * c-common.c (vector_size_helper): Remove; call
13541 reconstruct_complex_type() instead.
13542 * tree.c (reconstruct_complex_type): New function
13543 (formerly vector_size_helper() in c-common.c).
13544 (make_vector): Make externally visible.
13545 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
13546
a466bea3
KH
135472004-02-10 Kazu Hirata <kazu@cs.umass.edu>
13548
13549 * config/h8300/h8300-protos.h: Add a prototype for
13550 h8300_regs_ok_for_stm.
13551 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
13552 * config/h8300/h8300.md (stm_h8300s_2_advanced,
13553 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
13554 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
13555 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
13556 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
13557 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
13558 ldm_h8300s_4_normal, ldm_h8300s_4): Use
13559 h8300_regs_ok_for_stm().
13560
52bac949
DS
135612004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
13562
13563 PR c/14088
896c3aa3 13564 * real.c (real_from_string): Look for 'X' as well as 'x' in
52bac949
DS
13565 hexfloat strings.
13566
2493deee
KH
135672004-02-10 Kazu Hirata <kazu@cs.umass.edu>
13568
13569 * config/h8300/h8300.md: Remove an incorrect comment about
13570 peephole2. Add comments.
13571
fbe6ec81
JZ
135722004-02-10 Josef Zlomek <zlomekj@suse.cz>
13573
13574 PR/14058
13575 * emit-rtl.c (set_decl_incoming_rtl): New.
13576 * tree.h (set_decl_incoming_rtl): New.
13577 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
13578 DECL_INCOMING_RTL.
13579 * ada/misc.c (adjust_decl_rtl): Likewise.
13580
8a4baa83
PB
135812004-02-10 Per Bothner <per@bothner.com>
13582
13583 * c-opts.c (c_common_post_options): Don't emit working directory
13584 in cpp output if -P was specified.
13585
31cc6081
PB
135862004-02-10 Paolo Bonzini <bonzini@gnu.org>
13587
13588 PR c/14092
13589 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
13590 negate_expr back to the original type.
13591
d1d5c836
AM
135922004-02-10 Alan Modra <amodra@bigpond.net.au>
13593
13594 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
13595 bump retaddr here.
13596
dad822d3
PB
135972004-02-10 Paolo Bonzini <bonzini@gnu.org>
13598
13599 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
13600 gen_lowpart_SUBREG): Move under the file in which they
13601 are actually declared.
13602
cd271054
AC
136032004-02-10 Arnaud Charlet <charlet@act-europe.fr>
13604
13605 * doc/sourcebuild.texi: Add libada documentation.
13606
13607 * doc/install.texi: Update documentation on Ada build, now
13608 that the GNAT lib and tools are built automatically.
13609
117c5858
RS
136102004-02-10 Richard Sandiford <rsandifo@redhat.com>
13611
13612 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
13613 && TARGET_IRIX.
13614
42a1b62e
ZL
136152004-02-09 Ziemowit Laski <zlaski@apple.com>
13616
13617 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
13618 boundaries outside build_component_ref() call (a macro in ObjC++).
13619
997b8b4d
BW
136202004-02-09 Bob Wilson <bob.wilson@acm.org>
13621
13622 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
13623 (init_cumulative_args): Likewise.
13624 (a7_overlap_mentioned_p): Delete prototype.
13625 * config/xtensa/xtensa.c (struct machine_function): Replace
13626 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
13627 Add set_frame_ptr_insn field.
13628 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
13629 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
13630 if the operand is an argument in a7. If so, copy a7 to a new pseudo
13631 at the function entry and replace the operand with the pseudo.
13632 (init_cumulative_args): Remove unused arguments. Add new "incoming"
13633 argument and record this flag in CUMULATIVE_ARGS.
13634 (function_arg): Remove result_mode and special-case code to handle
13635 arguments in a7. Instead, set need_a7_copy flag when there is an
13636 incoming argument in a7.
13637 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
13638 and use the value recorded in cfun->machine->set_frame_ptr_insn.
13639 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
13640 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
13641 special-case code.
13642 (a7_overlap_mentioned_p): Delete.
13643 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13644 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13645 arguments to init_cumulative_args and pass "incoming" flag instead.
13646 (BLOCK_REG_PADDING): Delete.
13647 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13648 checks for reload_in_progress and reload_completed. Update calls to
13649 xtensa_copy_incoming_a7.
13650 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
13651 to call xtensa_copy_incoming_a7.
13652
10709fbf
DD
136532004-02-09 DJ Delorie <dj@redhat.com>
13654
13655 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13656 longer modify standard_exec_prefix, standard_bindir_prefix, or
13657 standard_startfile_prefix.
13658
c76362b4
JW
136592004-02-09 James E Wilson <wilson@specifixinc.com>
13660
228ae085
JW
13661 PR c++/11295
13662 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13663 to expand_expr_real call, and pass in alt_rtl as last argument.
13664
c76362b4
JW
13665 PR libstdc++/5625
13666 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13667 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13668 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13669 * except.c (expand_builtin_extend_pointer): New.
13670 * except.h (expand_builtin_extend_pointer): Declare.
13671
d886a041
DE
136722004-02-09 David Edelsohn <edelsohn@gnu.org>
13673
13674 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13675 unaligned loads and stores.
13676
756f76d0
RO
136772004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13678
13679 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13680 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13681
13682 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13683 * config/mips/iris5.h: ... here.
13684 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13685
13686 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13687 * config/mips/iris5.h: ... here.
13688
426ca3ca
RO
136892004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13690
13691 * configure.ac: Remove default executable files before AC_PROG_CC.
13692 * configure: Regenerate.
13693
500fc80f
KH
136942004-02-09 Kazu Hirata <kazu@cs.umass.edu>
13695
13696 PR target/13721
13697 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13698 print a operand other than a register.
13699
b83c4036
RS
137002004-02-09 Roger Sayle <roger@eyesopen.com>
13701
13702 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13703 tree code rather than call fold_convert, which doesn't specify a
13704 default floating point to integer conversion.
13705
3b4b85c9
BI
137062004-02-08 Bernardo Innocenti <bernie@develer.com>
13707
13708 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13709 code to support SGS assembler. Reformat adjacent code where possible.
b83c4036
RS
13710 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13711 definition.
13712 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13713 for '%#'.
3b4b85c9 13714 * config/m68k/linux.h, config/m68k/m68k.c,
b83c4036
RS
13715 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13716 macros and asm_printf() format strings.
3b4b85c9
BI
13717 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13718 * config/m68k/linux.h: Update copyright.
13719 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13720
01bbf777 137212004-02-08 Andreas Schwab <schwab@suse.de>
9f0e2d86 13722 Bernardo Innocenti <bernie@develer.com>
01bbf777
AS
13723
13724 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13725 REGISTER_PREFIX.
13726 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13727 frame pointer register, overridable by OS targets.
13728 * (M68K_REGNAME): Macro to obtain register name for asm output,
13729 eventually replacing %a6 with M68K_FP_REG_NAME.
13730 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13731 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13732 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13733 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13734 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13735
1f6acb82
KH
137362004-02-08 Kazu Hirata <kazu@cs.umass.edu>
13737
13738 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13739 hook_rtx_tree_int_null.
13740 * targhooks.c (default_struct_value_rtx): Remove.
13741 * targhooks.h: Remove the prototype for
13742 default_struct_value_rtx.
13743 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13744 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13745 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13746 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13747 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13748 config/rs6000/rs6000.c, config/s390/s390.c,
13749 config/stormy16/stormy16.c, config/v850/v850.c,
13750 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13751 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13752
b46b8fb4
JM
137532004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
13754
13755 * README.Portability: Change "ISO C89" to "ISO C90".
13756 * c-parse.in (primary, initelt): Likewise.
13757
7c476bde
RS
137582004-02-08 Richard Sandiford <rsandifo@redhat.com>
13759
13760 * real.c (encode_ibm_extended): Normalize the input value before
13761 converting it to a double. Handle the case where a normal value
13762 rounds to infinity.
13763
56ae04af
KH
137642004-02-08 Kazu Hirata <kazu@cs.umass.edu>
13765
f934561e
KH
13766 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13767 warning.
56ae04af
KH
13768 * cse.c (preferrable): Change to preferable. Update all of its
13769 callers.
13770 * genautomata.c (ainsn): Change
13771 first_ainsn_with_given_equialence_num to
13772 first_ainsn_with_given_equivalence_num. Update all of its
13773 references.
13774
ec1dbfca
JH
137752004-02-08 Jan Hubicka <jh@suse.cz>
13776
13777 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13778
f276fb54
DE
137792004-02-07 David Edelsohn <edelsohn@gnu.org>
13780
13781 * function.c (assign_parms): Fix formatting.
13782
fefcb65c
KH
137832004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13784
13785 * default.h (PROMOTE_PROTOTYPES): Remove.
13786 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13787 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13788 EXPAND_BUILTIN_SAVEREGS): Poison.
13789 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13790 hook_bool_tree_false.
13791 (TARGET_PROMOTE_PROTOTYPES): Likewise.
13792 * target.h: Replace SETUP_INCOMING_VARARGS with
13793 targetm.calls.setup_incoming_varargs().
13794 * targhooks.c (default_promote_function_return): Remove.
13795 (default_promote_prototypes): Likewise.
13796 (default_struct_value_rtx): Always abort().
13797 (default_expand_builtin_saveregs): Always print an error
13798 message.
13799 (default_setup_incoming_varargs): Do nothing.
13800 (default_pretend_outgoing_varargs_named): Don't depend on
13801 SETUP_INCOMING_VARARGS.
13802 * targhooks.h: Remove the prototype for
13803 default_promote_function_return and
13804 default_promote_prototypes.
13805
dc79b3b8
KH
138062004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13807
13808 * system.h (SHARED_SECTION_ASM_OP): Poison.
13809 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13810 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13811
a6f78652
ZW
138122004-02-07 Zack Weinberg <zack@codesourcery.com>
13813
13814 Bug 13856
13815 * c-decl.c (diagnose_mismatched_decls): Only give special
13816 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13817 is also true.
13818 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13819 DECL_FUNCTION_CODE when defining a built-in function.
13820 Don't update DECL_ESTIMATED_INSNS.
13821 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13822 FUNCTION_DECLs.
13823 * tree.h: Delete DECL_ESTIMATED_INSNS.
13824 * tree-inline.c (struct inline_data): Delete inlined_insns field.
13825 (expand_call_inline, optimize_inline_calls): Don't update
13826 DECL_ESTIMATED_INSNS nor inlined_insns.
13827 * cgraphunit.c (cgraph_analyze_function): Don't update
13828 DECL_ESTIMATED_INSNS.
13829
138302004-02-07 Zack Weinberg <zack@codesourcery.com>
13831
13832 * c-common.c (shadow_warning): Delete.
13833 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13834 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13835 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13836 * c-parse.in (free_parser_stacks): Delete.
13837
947c6b00
NN
138382004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
13839
13840 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13841 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13842 Use the top level mkinstalldirs, not the one in the gcc subdir.
13843 * mkinstalldirs: Remove (from the gcc subdir).
13844
088414c1
RS
138452004-02-07 Roger Sayle <roger@eyesopen.com>
13846
13847 PR middle-end/13696
13848 * fold-const.c (fold_convert): New function to provide type
13849 conversion to the middle-end without using convert.
13850 (negate_expr, associate_trees, size_diffop, omit_one_operand,
13851 operand_equal_for_comparison_p, pedantic_omit_one_operand,
13852 invert_truthvalue, optimize_bit_field_compare, range_binop,
13853 decode_field_reference, make_range, build_range_check, unextend,
13854 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13855 fold_binary_op_with_conditional_arg, fold_inf_compare,
13856 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13857 convert with calls to fold_convert.
13858
076963eb
JH
138592004-02-07 Jan Hubicka <jh@suse.cz>
13860
13861 * genrecog.c (find_operand): add extra argument stop.
13862 (validate_pattern): Verify that mach_dup is duplicating operand
13863 defined lexically earlier.
13864
1197924d
KH
138652004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13866
13867 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13868 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13869 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13870 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13871 config/ia64/ia64.h, config/ip2k/ip2k.h,
13872 config/iq2000/iq2000.h, config/mips/iris5.h,
13873 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13874 config/rs6000/aix51.h, config/rs6000/aix52.h,
13875 config/rs6000/darwin.h, config/rs6000/rs6000.h,
13876 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13877 config/sparc/linux.h, config/sparc/linux64.h,
13878 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13879 config/xtensa/xtensa.h: Remove the definitions of
13880 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13881 MAX_WCHAR_TYPE_SIZE.
13882 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13883 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13884
883899ee
SC
138852004-02-07 Stephane Carrez <stcarrez@nerim.fr>
13886
13887 PR bootstrap/13990
13888 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13889 gen_rtx_NE.
13890
f6e215cc
JZ
138912004-02-07 Josef Zlomek <zlomekj@suse.cz>
13892
13893 * var-tracking.c (vt_add_function_parameters): Surround checkings by
13894 #ifdef ENABLE_CHECKING and #endif.
13895
dfb36f9b
RS
138962004-02-07 Roger Sayle <roger@eyesopen.com>
13897
13898 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13899 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13900 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13901 integer types and floating point with unsafe_math_optimizations.
13902 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13903 Optimize A - B as A + (-B), if B is easily negated.
13904
0ea5865c
KH
139052004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13906
13907 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13908 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13909 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13910 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13911 Update copyright.
13912
fb0840fc
KH
139132004-02-07 Kazu Hirata <kazu@cs.umass.edu>
13914
13915 * c-ppoutput.c, var-tracking.c: Fix comment typos.
13916
468c45a3
JW
139172004-02-06 James E Wilson <wilson@specifixinc.com>
13918
13919 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13920 glibc 2.3 or better.
13921
9c917669
KH
139222004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13923
13924 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13925 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13926
fb7e4164
AM
139272004-02-07 Alan Modra <amodra@bigpond.net.au>
13928
13929 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13930 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13931 (SHLIB_MKMAP_OPTS): Delete.
13932 (TARGET_LIBGCC2_CFLAGS): Add -specs.
13933 (bispecs): Add rule.
13934 * config/rs6000/libgcc-ppc64.ver: New file.
13935 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13936 (__floatdidf, __floatdisf): Optimize multiply.
13937 (__fixunstfdi): New function.
13938 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13939 real and imag parts larger than one register.
13940 (function_arg): Correct type of reg used when fp arg split partially
13941 to stack.
13942 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13943 and __MACH__ or __powerpc64__.
13944
254878ea
RS
139452004-02-06 Roger Sayle <roger@eyesopen.com>
13946 Ulrich Weigand <uweigand@de.ibm.com>
13947
13948 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13949 of gen_highpart or gen_lowpart when the floating point format is
13950 wider than the result mode.
13951
b1053160
AP
139522004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
13953
a6f78652 13954 * dwarf2out.c (loclabel_num): Move into #ifdef
b1053160
AP
13955 DWARF2_DEBUGGING_INFO.
13956
25fe8680
ZL
139572004-02-06 Ziemowit Laski <zlaski@apple.com>
13958
13959 * objc/objc-act.c (build_super_template) the 'class' field of
13960 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13961 (get_super_receiver): Likewise.
13962
761fa0f7
KH
139632004-02-06 Kazu Hirata <kazu@cs.umass.edu>
13964
13965 * reload1.c (check_eliminable_occurrences): Optimize the reset
13966 of can_eliminate.
13967 (eliminate_regs_in_insn): Likewise.
13968
0a2d3d69 139692004-02-06 Daniel Berlin <dberlin@dberlin.org>
a6f78652 13970 Josef Zlomek <zlomekj@suse.cz>
0a2d3d69
DB
13971
13972 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13973 at the beginning of function, call dwarf2out_var_location for
13974 NOTE_INSN_VAR_LOCATION note.
13975 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13976 decl_loc_table): New.
13977 (lookup_decl_loc): New function.
13978 (add_var_loc_to_decl): New function.
13979 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13980 only if can_use_fbreg.
13981 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13982 functions.
13983 (loc_descriptor): Likewise. Process VAR_LOCATION.
13984 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13985 (loc_descriptor_from_tree): Call mem_loc_descriptor with
13986 can_use_fbreg == true.
13987 (add_location_or_const_value_attribute): Added parameter enum
13988 dwarf_attribute attr, generate attribute ATTR. Create the location list.
13989 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13990 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13991 with attr == DW_AT_location.
13992 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13993 if frame_base_decl is defined and has a location list.
13994 (gen_variable_die): Call add_location_or_const_value_attribute with
13995 attr == DW_AT_location.
13996 (dwarf2out_var_location): New function.
13997 (dwarf2out_begin_function): New function.
13998 (dwarf2out_init): Create decl_loc_table.
13999
1f0db3df
UW
140002004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14001
14002 * loop.c (force_movables): Transitively increase the priorities of
14003 all insns forces by an insn, not just the first one.
14004
014a1138 140052004-02-06 Josef Zlomek <zlomekj@suse.cz>
a6f78652 14006 Daniel Berlin <dberlin@dberlin.org>
014a1138
JZ
14007
14008 Josef Zlomek <zlomekj@suse.cz>
14009 * Makefile.in (var-tracking.o): New.
14010 * common.opt (fvar-tracking): New.
14011 * flags.h (flag_var_tracking): New.
14012 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
14013 * opts.c (common_handle_option): Add OPT_fvar_tracking.
14014 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
a6f78652
ZW
14015 * rtl.c (note_insn_name): Likewise.
14016 * rtl.def (VAR_LOCATION): New.
14017 * rtl.h (NOTE_VAR_LOCATION): New.
14018 (NOTE_VAR_LOCATION_DECL): New.
14019 (NOTE_VAR_LOCATION_LOC): New.
14020 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
14021 (variable_tracking_main): New exported function.
14022 * timevar.def (TV_VAR_TRACKING): New.
14023 * toplev.c (enum dump_file_index): Added DFI_vartrack.
14024 (dump_file): "vartrack" was added (-dV).
14025 (flag_var_tracking): New.
14026 (f_options): "var-tracking" was added.
014a1138 14027 (rest_of_handle_variable_tracking): New function.
a6f78652 14028 (rest_of_compilation): Run variable tracking.
014a1138
JZ
14029 (process_options): If user has not specified flag_var_tracking set it
14030 according to optimize, debug_info_level and debug_hooks.
14031 * tree.h (frame_base_decl): New.
a6f78652 14032 * var-tracking.c: New file.
014a1138
JZ
14033 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
14034 (ia64_override_options): Set flags to run variable tracking in machine
14035 dependent reorg instead of toplev.c.
14036 (ia64_reorg): Run variable tracking if wanted.
a6f78652 14037 * doc/invoke.texi: Mention variable tracking in -dV,
014a1138 14038 add and -fvar-tracking.
a6f78652 14039 * doc/passes.texi: Added variable tracking pass.
014a1138
JZ
14040
14041 Daniel Berlin <dberlin@dberlin.org>
14042 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
14043 * dbxout.c (dbx_debug_hooks): Likewise.
14044 (xcoff_debug): Likewise.
14045 * debug.c (do_nothing_debug_hooks): Likewise.
14046 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14047 * dwarfout.c (dwarf_debug_hooks): Likewise.
14048 * sdbout.c (sdb_debug_hooks): Likewise.
14049 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
a6f78652
ZW
14050 * final.c (final_scan_insn): Call var_location debug hook for each
14051 NOTE_INSN_VAR_LOCATION.
014a1138 14052
298c28a8
JH
140532004-02-06 Jan Hubicka <jh@suse.cz>
14054
14055 * flow.c (update_life_info): Allocate reg_deaths when called from
14056 scheudler.
14057 (attempt_auto_inc): Update life ranges accordingly.
14058
3199cb41
UW
140592004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14060
14061 PR debug/11816
14062 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
14063
1a6dd8a2
UW
140642004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
14065
14066 * cfganal.c (flow_call_edges_add): Never split a libcall block.
14067
1711adc2
DB
140682004-02-06 Daniel Berlin <dberlin@dberlin.org>
14069
14070 * dwarf2out.c (output_loc_list): Don't use deltas if we have
14071 a separate line info table in use.
14072 Use the correct size for terminators.
14073 (output_die): Use offset, not delta.
14074
b1e5a971
L
140752004-02-06 H.J. Lu <hongjiu.lu@intel.com>
14076
14077 * doc/invoke.texi: Remove the pni option from -mfpmath=.
14078
736b64dd
JH
140792004-02-06 Jan Hubicka <jh@suse.cz>
14080
14081 * recog.c (split_all_insns): Do not update reg info.
14082 * regrename.c (regrename_optimize): Likewise.
14083 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
14084 * flow.c (struct propagate_block_info): Add insn_num field.
14085 (reg_deaths): New array.
14086 (life_analysis): Free reg_deaths info.
14087 (allocate_reg_life_data): Allocate reg_deaths array.
14088 (propagate_one_insn): Use new array.
14089 (init_propagate_block): Initialize it.
14090 (free_propagate_block_info): Finish compuation of
14091 REG_LIVE_LENGTH
14092 (attempt_auto_inc): Sanity check that REG_INFO is not
14093 computed at same time.
14094 (mark_used_regs): Update new array.
14095
14096 * reg-stack.c (subst_stack_regs): Unshare clobbers before
14097 substitution.
14098
eb457a7a
KH
140992004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14100
14101 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
14102 *extendqisi2_short_displ.
14103
0f6937fe
AM
141042004-02-06 Alan Modra <amodra@bigpond.net.au>
14105
14106 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
14107 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
14108 (emit_library_call_value_1): Likewise pass nargs.
14109 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
14110 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
14111 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
14112 parameter instead of scanning TYPE_ARGS_TYPES to count args.
14113 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
14114 prototype.
14115 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
14116 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
14117 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
14118 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
14119 INIT_CUMULATIVE_ARGS.
14120 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
14121 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
14122 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
14123 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
14124 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14125 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
14126 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14127 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
14128 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
07711f53 14129 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
0f6937fe
AM
14130 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
14131 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
14132
11b635fe
KH
141332004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14134
14135 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
14136 possible.
14137
ace3ffcd
KH
141382004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14139
14140 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
14141 note containing (plus (reg) (const_int)), where reg is an
14142 eliminable reg, then perform the register elimination without
14143 depending on eliminate_regs().
14144
78bc94a2
KH
141452004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14146
14147 * config/arc/arc.c (arc_return_in_memory): Check the return
14148 value of int_size_in_bytes against -1. Don't check
14149 TREE_ADDRESSABLE.
14150 * config/avr/avr.c (avr_return_in_memory): Check the return
14151 value of int_size_in_bytes against -1.
14152 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
14153 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
14154 Likewise.
14155 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
14156 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
14157 Likewise.
14158
d8c2bed3
KH
141592004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14160
14161 * config/frv/frv-protos.h: Remove the prototype for
14162 frv_setup_incoming_varargs.
14163 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
14164 (frv_setup_incoming_varargs): Make it static.
14165 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
14166
3e29e2aa
KH
141672004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14168
14169 * config/fr30/fr30-protos.h: Remove the prototype for
14170 fr30_setup_incoming_varargs.
14171 Update the prototypes for fr30_num_arg_regs and
14172 fr30_function_arg_partial_nregs.
14173 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
14174 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14175 (fr30_setup_incoming_varargs): Make it static.
14176 Add argument second_time. Don't do anything when second_time
14177 is nonzero.
14178 (fr30_num_arg_regs): Change the type of the first argument to
14179 enum machine_mode.
14180 (fr30_function_arg_partial_nregs): Change the type of the
14181 second argument to enum machine_mode.
14182 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
14183 (SETUP_INCOMING_VARARGS): Remove.
14184
07ba2efb
KH
141852004-02-06 Kazu Hirata <kazu@cs.umass.edu>
14186
14187 * config/arc/arc-protos.h: Remove the prototype for
14188 arc_setup_incoming_varargs.
14189 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14190 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14191 (arc_setup_incoming_varargs): Make it static.
14192 (arc_external_libcall): Likewise.
14193 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
14194 Remove the commented-out definition of
14195 ASM_OUTPUT_EXTERNAL_LIBCALL.
14196
f4954ff1
ST
141972004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
14198
14199 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
14200 to $$(slibdir) in the installation commands.
14201
403c659c
DE
142022004-02-05 David Edelsohn <edelsohn@gnu.org>
14203
14204 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
14205 with inner_regno, not regno.
14206 * rtlanal.c (refers_to_regno_p): Same.
14207
5b547172
KH
142082004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14209
14210 * config.gcc: Remove i370 support.
14211
ce5c1cf3
KC
142122004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14213
14214 * doc/install.texi: Update automake and autoconf version
14215 requirements. Note where to find gcj automake version.
14216
142172004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14218
14219 * Makefile.in (generate-manpages): Move dependencies to ...
14220 (man): here.
14221 * doc/makefile.texi: Document new targets.
14222 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
14223
02ba6b22
KC
142242004-02-05 Kelley Cook <kcook@gcc.gnu.org>
14225
14226 PR/13485
14227 Makefile.in (srcextra): Add a level of indirection to ...
14228 (gcc.srcextra): ... here.
14229 (po-generated): Delete.
14230 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
14231 options.c.
14232 (start.encap): Remove superfluous lang.srcextra dependency.
14233 objc/Make-lang.in (po-generated): Delete.
14234
66fcab25
KH
142352004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14236
14237 * config/ia64/ia64.c (REG_GP): Remove.
14238
89a95129
RO
142392004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14240
14241 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
14242
9733d507
DP
142432004-02-05 Devang Patel <dpatel@apple.com>
14244
14245 * dwarf2out.c (force_type_die): Look up input type itself
14246 instead of root_type() of type.
a6f78652 14247
19796784
AK
142482004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
14249
14250 * config/s390/s390.md ("*tmqidi_ext"): New insn.
14251 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
14252 pre-reload splitters are transformed to post-reload
14253 define_insn_and_split patterns.
14254 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
14255
136e64db
KH
142562004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14257
14258 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
14259 TARGET_PROMOTE_PROTOTYPES.
14260
839ee4bc
RO
142612004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14262
14263 PR middle-end/13750
14264 Revert:
14265 2004-01-15 Geoffrey Keating <geoffk@apple.com>
14266 PR pch/13361
14267 * c-typeck.c (constructor_asmspec): Delete.
14268 (struct initializer_stack): Delete field 'asmspec'.
14269 (start_init): Delete saving of asmspec.
14270 (finish_init): Don't update constructor_asmspec.
14271 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
14272 * stmt.c (expand_asm): Duplicate strings from tree.
14273 (expand_asm_operands): Likewise.
14274 * tree.c (tree_size): Update computation of size of STRING_CST.
14275 (make_node): Don't make STRING_CST nodes.
14276 (build_string): Allocate string with tree node.
14277 * tree.def (STRING_CST): Update comment.
14278 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
14279 (tree_string): Place contents of string in tree node.
14280 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
14281 from tree.
14282
687d688e
JM
142832004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
14284
14285 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
14286 msgid.
14287
20a20bf0
DN
142882004-02-05 Dorit Naishlos <dorit@il.ibm.com>
14289
14290 * config/rs6000/altivec.md (*movv4si_internal): At least one
14291 operand must be altivec_register_operand.
14292 (*movv8hi_internal1): Likewise.
14293 (*movv16qi_internal1): Likewise.
14294 (*movv4sf_internal1): Likewise.
14295
6b37db3c
DE
142962004-02-05 David Edelsohn <edelsohn@gnu.org>
14297
14298 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
14299 * configure: Regenerate.
14300
e0b24bce
JW
143012004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
14302
14303 * doc/install.texi: Update description of --gxx-include-dir to
14304 give correct default value.
14305
2dca8ddb
KH
143062004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14307
14308 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
14309 8 with MAC_REG.
14310
92fd5e41
KH
143112004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14312
14313 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
14314 gen_rtx_PARALLEL.
14315
f822fcf7
KH
143162004-02-05 Kazu Hirata <kazu@cs.umass.edu>
14317
14318 * emit-rtl.c: Update the comment about the file.
14319
4ef84575
JM
143202004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
14321
14322 * sourcebuild.texi (Test Idioms): Update testcase naming
14323 conventions.
14324
8e9ea4d7
PB
143252004-02-04 Per Bothner <per@bothner.com>
14326
14327 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
14328 * c-ppoutput.c (pp_dir_change): New function.
14329 * c-common.h (pp_dir_change): New declaration.
14330 * cpplib.h (struct cpp_options): Remove working_directory field.
14331 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
14332 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
14333 Don't handle -fworking_directory here, but in c_common_post_options.
14334 (read_original_directory): Don't back up when done.
14335 Don't clear no-longer used working_directory flag.
14336 * cpplib.h: Update declarations to match.
14337 * c-lex.c (cb_dir_change): Move to c-opts.c.
14338 (init_c_lex): Don't set dir_change callback here, since we want
14339 to set it even if flag_preprocess_only.
14340 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
14341 (c_common_post_options): Set dir_change callback.
14342 Call pp_dir_change if approporiate.
14343 (finish_options): Don't call cpp_find_main_file here. Hence remove
14344 unneeded parameter and result. Do LC_RENAME for <built-in>.
14345 (c_common_post_options): Call cpp_read_main_file here instead.
14346 (c_common_init): Update accordingly.
14347 (push_command_line_include): Don't cpp_push_main_file.
14348 Do LC_RENAME rather than LC_LEASE to get back to main file.
14349 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
14350 (c_common_parse_file): Call cpp_read_main_file for subsequent main
14351 files, but call finish_options for all files.
14352 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
14353 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
14354 cpp_find_main_file + cpp_push_main_file.
14355 * c-lex.c (fe_file_change): Don't set main_input_filename here.
14356 * opts.c (handle_options): Only set main_input_filename first time.
14357
5384443a
ILT
143582004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
14359
14360 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
14361
3c241c19
GK
143622004-02-04 Geoffrey Keating <geoffk@apple.com>
14363
14364 * reload.c (find_equiv_reg): When checking for register overlap,
14365 don't index hard_regno_nregs with a pseudo-reg.
14366
a322288b
UW
143672004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
14368
14369 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
14370
859b9c1d
DE
143712004-02-04 David Edelsohn <edelsohn@gnu.org>
14372
14373 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
14374 against FIRST_PSEUDO_REGISTER.
14375
7e63a64e
RO
143762004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14377
14378 * Makefile.in: Move target, host overrides after per-language
14379 fragments.
14380
14381 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
14382 (GNATLIBCFLAGS): Remove -g.
14383
5efb1046
KH
143842004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14385
14386 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14387 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14388 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14389 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
14390 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
14391 config/sparc/sparc.c, config/vax/vax.c: Revert the
14392 replacements of "FALLTHRU" with "Fall through" done in the
14393 previous patch.
14394
ff482c8d
KH
143952004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14396
14397 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
14398 config/arm/arm.c, config/arm/arm.md,
14399 config/cris/cris-protos.h, config/fr30/fr30.c,
14400 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
14401 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
14402 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
14403 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
14404 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
14405 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14406 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
14407 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
14408 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
14409 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
14410 config/s390/s390.md, config/sparc/netbsd-elf.h,
14411 config/sparc/openbsd.h, config/sparc/sparc.c,
14412 config/xtensa/lib2funcs.S: Fix comment formatting.
14413
59b9a953
KH
144142004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14415
14416 * config/alpha/alpha.c, config/arc/arc.c,
14417 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
14418 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
14419 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
14420 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
14421 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
14422 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
14423 config/iq2000/iq2000.c, config/m32r/m32r.c,
14424 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
14425 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
14426 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
14427 config/rs6000/rs6000.h, config/sparc/sparc.c,
14428 config/vax/vax.c: Fix comment typos. Follow spelling
14429 conventions.
14430
e146f815
KH
144312004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14432
14433 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
14434 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
14435 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
14436 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
14437 config/arm/fpa.md, config/arm/iwmmxt.md,
14438 config/arm/netbsd-elf.h, config/arm/netbsd.h,
14439 config/m68hc11/m68hc11.md, config/mips/iris5.h,
14440 config/mn10300/mn10300.md, config/rs6000/altivec.md,
14441 config/sparc/netbsd-elf.h: Update copyright.
14442
e2a17f6e
EB
144432004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
14444
14445 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14446 for all modes whose size is greater than 8 bytes if ARCH32.
14447 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
14448 by reference if ARCH32.
14449
e0cc7f73 144502004-02-04 Aldy Hernandez <aldyh@redhat.com>
a6f78652
ZW
14451
14452 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
e0cc7f73 14453
7bdff56f
UW
144542004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
14455
14456 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
14457 to before adddi3 insn patterns.
14458 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
14459 "reload_insi"): Move to before addsi3 insn patterns.
14460
dd292d0a
MM
144612004-02-04 Mark Mitchell <mark@codesourcery.com>
14462
14463 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
14464 parameter. Use it instead of current_function_is_thunk.
14465 * function.h (struct function): Update documentation for is_thunk.
14466 * tree.h (CALL_FROM_THUNK_P): New macro.
14467 * config/alpha/alpha.c (alpha_sa_mask): Do not check
14468 no_new_pseudos when testing current_function_is_thunk.
14469 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
14470
c2379679
KH
144712004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14472
14473 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
14474 TARGET_SETUP_INCOMING_VARARGS.
14475
a2a8cc44
KH
144762004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14477
14478 * emit-rtl.c (gen_rtx): Remove.
14479 * genattrtab.c: Don't mention gen_rtx in a comment.
14480 * rtl.h: Remove the prototype for gen_rtx.
14481 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
14482
f61c92c3
KH
144832004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14484
14485 * config/arc/arc.h, config/fr30/fr30.h
14486 (SETUP_INCOMING_VARARGS): Remove the target-independent
14487 comments.
14488 * doc/tm.texi: Don't mention deprecated target macros.
14489
c35c17c1
KH
144902004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14491
14492 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
14493 target-independent comment.
14494
cea28603
KH
144952004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14496
14497 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
14498 mention deprecated target macros.
14499
a4a4b1d3
KH
145002004-02-04 Kazu Hirata <kazu@cs.umass.edu>
14501
14502 * config.gcc: Remove obsolete ports and configurations.
14503 * config/linux-aout.h, config/netware.h,
14504 config/t-linux-gnulibc1, config/d30v/abi,
14505 config/d30v/d30v-protos.h, config/d30v/d30v.c,
14506 config/d30v/d30v.h, config/d30v/d30v.md,
14507 config/d30v/libgcc1.asm, config/d30v/t-d30v,
14508 config/dsp16xx/dsp16xx-modes.def,
14509 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
14510 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
14511 config/i370/README, config/i370/i370-c.c,
14512 config/i370/i370-protos.h, config/i370/i370.c,
14513 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
14514 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
14515 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
14516 config/i386/moss.h, config/i386/netware.h,
14517 config/i386/svr3.ifile, config/i386/svr3dbx.h,
14518 config/i386/svr3gas.h, config/i386/svr3z.ifile,
14519 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
14520 config/i960/i960-c.c, config/i960/i960-coff.h,
14521 config/i960/i960-modes.def, config/i960/i960-protos.h,
14522 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
14523 config/i960/rtems.h, config/i960/t-960bare,
14524 config/m68k/hp310.h, config/m68k/hp320.h,
14525 config/m68k/hp320base.h, config/m68k/m68kv4.h,
14526 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
14527 Remove.
14528 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
14529 doc/md.texi: Remove mentions of obsolete ports.
14530
40e02b4a
JH
145312004-02-04 Jan Hubicka <jh@suse.cz>
14532
14533 * alias.c (find_base_term, get_addr): Do not dereference NULL
14534 pointer when all VALUE's locations has been invalidated.
14535 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
14536
a6f78652 145372004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
1c02f6f2
WB
14538
14539 * doc/invoke.texi (x86 options): Fix spelling/wording.
14540
584e5527
RS
145412004-02-03 Richard Sandiford <rsandifo@redhat.com>
14542
14543 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
14544 put the original string in a comment.
14545 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
14546 * config/mips/mips.c (mips_output_ascii): Likewise.
14547 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
14548
9b2b3375
KH
145492004-02-03 Kazu Hirata <kazu@cs.umass.edu>
14550
14551 * system.h (GIV_SORT_CRITERION): Poison.
14552 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
14553 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
14554
888d65b5
RS
145552004-02-03 Roger Sayle <roger@eyesopen.com>
14556
14557 PR target/9348
14558 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
14559 multiplies with a multiplication of the wrong signedness, its the
14560 signedness of the multiplication that we've performed that needs to
14561 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
14562 if expand_mult_highpart_adjust places the result in target.
14563
a8c0bbc7
RH
145642004-02-03 Richard Henderson <rth@redhat.com>
14565
14566 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
14567
a8f0f22e
R
145682004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
14569
14570 * config.gcc (sh[234]l): Use little endian fragments.
14571
e621b588
PK
145722004-02-03 Paul Koning <pkoning@equallogic.com>
14573
14574 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
14575 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
14576 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
14577 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
14578 floating point format.
14579 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
14580 the above functions.
14581 (output_move_quad): Output float values in correct target format.
14582 (legitimate_const_double_p): New function.
14583 * config/pdp11/pdp11.h: Fix typos.
14584 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
14585 (TARGET_FLOAT_FORMAT): Ditto.
14586 (pdp11_f_format, pdp11_d_format): Add external declarations.
14587 (MAX_REGS_PER_ADDRESS): Corrected.
14588 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
14589 (PRINT_OPERAND): Output float literals in target format.
14590
5a98fa7b
MM
145912004-02-03 Mark Mitchell <mark@codesourcery.com>
14592
14593 PR c++/13975
14594 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
14595 TI_PRIVATE.
14596 (access_public_node): Redefine.
14597 (access_protected_node): Likewise.
14598 (access_private_node): Likewise.
14599 * tree.c (build_common_tree_nodes): Create access_public_node,
14600 access_protected_node, and access_private_node.
14601
0263e6bf
SE
146022004-02-03 Steve Ellcey <sje@cup.hp.com>
14603
14604 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
14605 (MASK_INLINE_INT_DIV_THR): Ditto.
14606 (MASK_INLINE_SQRT_LAT): Ditto.
14607 (MASK_INLINE_SQRT_THR): Ditto.
14608 (MASK_DWARF2_ASM): Ditto.
14609 (MASK_EARLY_STOP_BITS): Ditto.
14610
9b66ebb1
PB
146112004-02-02 Paul Brook <paul@codesourcery.com>
14612
14613 Merge from csl-arm-branch.
14614
14615 2004-01-30 Paul Brook <paul@codesourcery.com>
14616
14617 * aof.h (REGISTER_NAMES): Add vfp reg names
14618 (ADDITIONAL_REGISTER_NAMES): Ditto.
14619 * aout.h (REGISTER_NAMES): Ditto.
14620 (ADDITIONAL_REGISTER_NAMES): Ditto.
14621 * arm-protos.h: Update/Add Prototypes.
14622 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
14623 Only allow 0.0 for VFP.
14624 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
14625 (values_fp): Rename from values_fpa. Update Users.
14626 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
14627 Update users. Only check valid constants for this hardware.
14628 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
14629 Only allow consts for FPA.
14630 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
14631 Only allow consts for FPA.
14632 (use_return_insn): Check for saved VFP regs.
14633 (arm_legitimate_address_p): Handle VFP DFmode addressing.
14634 (arm_legitimize_address): Ditto.
14635 (arm_general_register_operand): New function.
14636 (vfp_mem_operand): New function.
14637 (vfp_compare_operand): New function.
14638 (vfp_secondary_reload_class): New function.
14639 (arm_float_compare_operand): New function.
14640 (vfp_print_multi): New function.
14641 (vfp_output_fstmx): New function.
14642 (vfp_emit_fstm): New function.
14643 (arm_output_epilogue): Output VPF reg restore code.
14644 (arm_expand_prologue): Output VFP reg save code.
14645 (arm_print_operand): Add 'P'.
14646 (arm_hard_regno_mode_ok): Return modes for VFP regs.
14647 (arm_regno_class): Return classes for VFP regs.
14648 (arm_compute_initial_elimination_offset): Include space for VFP regs.
14649 (arm_get_frame_size): Ditto.
14650 * arm.h (FIXED_REGISTERS): Add VFP regs.
14651 (CALL_USED_REGISTERS): Ditto.
14652 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14653 (FIRST_VFP_REGNUM): Define.
14654 (LAST_VFP_REGNUM): Define.
14655 (IS_VFP_REGNUM): Define.
14656 (FIRST_PSEUDO_REGISTER): Include VFP regs.
14657 (HARD_REGNO_NREGS): Handle VFP regs.
14658 (REG_ALLOC_ORDER): Add VFP regs.
14659 (enum reg_class): Add VFP_REGS.
14660 (REG_CLASS_NAMES): Ditto.
14661 (REG_CLASS_CONTENTS): Ditto.
14662 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14663 (REG_CLASS_FROM_LETTER): Add 'w'.
14664 (EXTRA_CONSTRAINT_ARM): Add 'U'.
14665 (EXTRA_MEMORY_CONSTRAINT): Define.
14666 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14667 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14668 (REGISTER_MOVE_COST): Ditto.
14669 (PREDICATE_CODES): Add arm_general_register_operand,
14670 arm_float_compare_operand and vfp_compare_operand.
14671 * arm.md (various): Rename as above.
14672 (divsf3): Enable when TARGET_VFP.
14673 (divdf3): Ditto.
14674 (movdfcc): Ditto.
14675 (sqrtsf2): Ditto.
14676 (sqrtdf2): Ditto.
14677 (arm_movdi): Disable when TARGET_VFP.
14678 (arm_movsi_insn): Ditto.
14679 (movsi): Only split with general regs.
14680 (cmpsf): Use arm_float_compare_operand.
14681 (push_fp_multi): Restrict to TARGET_FPA.
14682 (vfp.md): Include.
14683 * vfp.md: New file.
14684 * fpa.md (various): Rename as above.
14685 * doc/md.texi: Document ARM w and U constraints.
14686
14687 2004-01-15 Paul Brook <paul@codesourcery.com>
14688
14689 * config.gcc: Add with_fpu. Allow with-float=softfp.
14690 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14691 Break out of loop when we find a float-abi. Fix typo.
14692 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14693 Set -mfloat-abi=.
14694 * doc/install.texi: Document --with-fpu.
14695
14696 2003-01-14 Paul Brook <paul@codesourcery.com>
14697
14698 * config.gcc (with_arch): Add armv6.
14699 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14700 * config/arm/arm.c (arm_overrride_options): Ditto.
14701
14702 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
14703
14704 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14705 (FL_ARCH6): Renamed from FL_ARCH6J.
14706 (arm_arch3m): Renamed from arm_fast_multiply.
14707 (arm_arch6): Renamed from arm_arch6j.
14708 * arm.h: Update all uses of above.
14709 * arm-cores.def: Likewise.
14710 * arm.md: Likewise.
14711
14712 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14713 not arm6j. Add entry for arch armv6.
14714
14715 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
14716
14717 * arm.c (arm_emit_extendsi): Delete.
14718 * arm-protos.h (arm_emit_extendsi): Delete.
14719 * arm.md (zero_extendhisi2): Also handle zero-extension of
14720 non-subregs.
14721 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14722 (thumb_zero_extendhisi2): Only match if not v6.
14723 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14724 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14725 (thumb_extendqisi2): Likewise.
14726 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14727 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14728 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14729 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14730 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14731 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14732 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
14733 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14734 (arm_extendqisi2addsi): Likewise.
14735
14736 2003-12-31 Mark Mitchell <mark@codesourcery.com>
14737
14738 Revert this change:
14739 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14740 + REG addressing modes.
14741
14742 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14743 + REG addressing modes.
14744
14745 2003-12-30 Mark Mitchell <mark@codesourcery.com>
14746
14747 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14748 CONSTANT_P_RTX.
14749
14750 2003-30-12 Paul Brook <paul@codesourcery.com>
14751
14752 * longlong.h: protect arm inlines with !defined (__thumb__)
14753
14754 2003-30-12 Paul Brook <paul@codesourcery.com>
14755
14756 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14757
14758 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
14759
14760 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14761 change.
14762
14763 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
14764
14765 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14766 to the virtual incoming args pointer for downward stacks.
14767
14768 2003-12-29 Paul Brook <paul@codesourcery.com>
14769
14770 * config/arm/arm-cores.def: Add cost function.
14771 * config/arm/arm.c (arm_*_rtx_costs): New functions.
14772 (arm_rtx_costs): Remove
14773 (struct processors): Add rtx_costs field.
14774 (all_cores, all_architectures): Ditto.
14775 (arm_override_options): Set targetm.rtx_costs.
14776 (thumb_rtx_costs): New function.
14777 (arm_rtx_costs_1): Remove cases handled elsewhere.
14778 * config/arm/arm.h (processor_type): Add COSTS parameter.
14779
14780 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
14781
14782 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14783 (arm926ejs.md): Include it.
14784 * config/arm/arm926ejs.md: New pipeline description.
14785
14786 2003-12-24 Paul Brook <paul@codesourcery.com>
14787
14788 * config/arm/arm.c (arm_arch6j): New variable.
14789 (arm_override_options): Set it.
14790 (arm_emit_extendsi): New function.
14791 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14792 * config/arm/arm.h (arm_arch6j): Declare.
14793 * config/arm/arm.md: Add sign/zero extend insns.
14794
14795 2003-12-23 Paul Brook <paul@codesourcery.com>
14796
14797 * config/arm/arm.c (all_architectures): Add armv6.
14798 * doc/invoke.texi: Document it.
14799
14800 2003-12-19 Paul Brook <paul@codesourcery.com>
14801
14802 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
14803 insn patterns to match.
14804 * config/arm/arm-generic.md: Ditto.
14805 * config/arm/cirrus.md: Ditto.
14806 * config/arm/fpa.md: Ditto.
14807 * config/amm/iwmmxt.md: Ditto.
14808 * config/arm/arm1026ejs.md: Ditto.
14809 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
14810 for 11_loadb.
14811
14812 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
14813
14814 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14815 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14816 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14817 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14818 arm_no_early_mul_dep): Correctly deal with conditional execution,
14819 parallels and single shift operations.
14820 (arm_no_early_alu_shift_value_dep): Define.
14821 * arm.md (attr type): Replace 'normal' with 'alu',
14822 'alu_shift' and 'alu_shift_reg'.
14823 (attr core_cycles): Adjust.
14824 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14825 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14826 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14827 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14828 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14829 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14830 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14831 attribute appropriately.
14832 * config/arm/arm1026ejs.md (alu_op): Adjust.
14833 (alu_shift_op, alu_shift_reg_op): New.
14834 * config/arm/arm1136.md: Add better bypasses for early
14835 registers. Remove load[234] and store[234] bypasses.
14836 (11_alu_op): Adjust.
14837 (11_alu_shift_op, 11_alu_shift_reg_op): New.
14838
14839 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
14840
14841 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14842 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14843 * config/arm/arm.c (arm_no_early_store_addr_dep,
14844 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14845 * config/arm/arm1026ejs.md: Add load-store bypass.
14846 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14847 Add bypasses between instructions.
14848
14849 2003-12-10 Paul Brook <paul@codesourcery.com>
14850
14851 * config/arm/arm.c (arm_fpu_model): New variable.
14852 (arm_fload_abi): New variable.
14853 (target_fpe_name): Rename from target_fp_name.
14854 (target_fpu_name): New variable.
14855 (arm_is_cirrus): Remove.
14856 (fpu_desc): New struct.
14857 (all_fpus): Define.
14858 (pf_model_for_fpu): Define.
14859 (all_loat_abis): Define.
14860 (arm_override_options): Set fp arch flags based on -mfpu=
14861 and -float-abi=.
14862 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14863 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14864 (*): Use new TARGET_* flags.
14865 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14866 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14867 (TARGET_SOFT_FLOAT): Ditto.
14868 (TARGET_SOFT_FLOAT_ABI): New.
14869 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
14870 TARGET_HARD_FLOAT.
14871 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14872 (TARGET_OPTIONS): Add -mfpu=.
14873 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14874 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14875 (arm_pf_model): Define.
14876 (arm_float_abi_type): Define.
14877 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
14878 * config/arm/arm.md: Use new TARGET_* flags.
14879 * config/arm/cirrus.md: Ditto.
14880 * config/arm/fpa.md: Ditto.
14881 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14882 * config/arm/semi.h (ASM_SPEC): Ditto.
14883 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14884 (FPUTYPE_DEFAULT): Set to VFP.
14885 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14886
14887 2003-11-22 Phil Edwards <phil@codesourcery.com>
14888
14889 PR target/12476
14890 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
14891 'bx' instead of 'b' to avoid branch range restrictions. Output
14892 the thunk immediately before the thunked-to function.
14893 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
14894 .thumb_func if a thunk is being generated. Emit .code 16 along
14895 with .thumb_func if a thunk is not being generated.
14896
14897 2003-11-15 Nicolas Pitre <nico@cam.org>
14898
14899 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14900 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14901 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14902 (lshrdi3_iwmmxt): Renamed from lshrdi3.
14903 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14904
14905 2003-11-12 Steve Woodford <scw@wasabisystems.com>
14906 Ian Lance Taylor <ian@wasabisystems.com>
14907
14908 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14909 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14910
14911 2003-11-05 Phil Edwards <phil@codesourcery.com>
14912
14913 * config/arm/arm.md (insn): Add new V6 instruction names.
14914 (generic_sched): New attr.
14915 * config/arm/arm-generic.md: Use generic_sched here.
14916 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
14917 stages of pipeline. Adjust latency counts accordingly.
14918 * config/arm/arm1136jfs.md: New file.
14919
14920 2003-10-28 Mark Mitchell <mark@codesourcery.com>
14921
14922 * config/arm/arm.h (processor_type): New enumeration type.
14923 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14924 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14925 (CPP_CPU_ARCH_SPEC): Likewise.
14926 * config/arm/arm.c (arm_tune): New variable.
14927 (all_cores): Use cores.def.
14928 (all_architectures): Add representative processor.
14929 (arm_override_options): Restructure way in which tuning
14930 information is deduced.
14931 * arm.md: Update "insn" and "type" attributes throughout.
14932 (insn): New attribute.
14933 (type): Compute "mult" from "insn" attribute. Add load2,
14934 load3, load4 alternatives.
14935 (arm automaton): Move to arm-generic.md.
14936 * config/arm/arm-cores.def: New file.
14937 * config/arm/arm-generic.md: Likewise.
14938 * config/arm/arm1026ejs.md: Likewise.
14939
60b85c4c
EB
149402004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
14941
14942 * doc/invoke.texi (SPARC options): Remove -mflat and
14943 all -mxxx (xxx:chip) options.
14944 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14945 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14946 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14947 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14948 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14949 * config/sparc/sparc.c: Likewise.
14950 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14951 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14952 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14953 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14954 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14955 (sparc_flat_must_save_register_p): Likewise.
14956 (sparc_flat_compute_frame_size): Likewise.
14957 (sparc_flat_save_restore): Likewise.
14958 (sparc_flat_function_prologue): Likewise.
14959 (sparc_flat_function_epilogue): Likewise.
14960 (sparc_flat_epilogue_delay_slots): Likewise.
14961 (sparc_flat_eligible_for_epilogue_delay): Likewise.
14962 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14963 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14964 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14965 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14966 (CONDITIONAL_REGISTER_USAGE): Likewise.
14967 (FRAME_POINTER_REQUIRED): Likewise.
14968 (INITIAL_ELIMINATION_OFFSET): Likewise.
14969 (BASE_RETURN_VALUE_REG): Likewise.
14970 (BASE_OUTGOING_VALUE_REG): Likewise.
14971 (BASE_PASSING_ARG_REG): Likewise.
14972 (BASE_INCOMING_ARG_REG): Likewise.
14973 (INCOMING_REGNO): Likewise.
14974 (OUTGOING_REGNO): Likewise.
14975 (LOCAL_REGNO): Likewise.
14976 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14977 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14978 (EPILOGUE_USES): Likewise.
14979 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14980 ("flat" attribute): Delete.
14981 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14982 handling.
14983 (call followed by jump define_peephole's): Delete.
14984 (exception_receiver): Likewise.
14985 (builtin_setjmp_receiver): Likewise.
14986 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14987
e57e265b
PB
149882004-02-03 Paolo Bonzini <bonzini@gnu.org>
14989
14990 PR c/11658
14991 PR c/13994
14992 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14993 on langhooks.h.
14994 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14995 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14996 Include langhooks.h. Replace c_common_truthvalue_conversion
14997 with the truthvalue_conversion language hook throughout.
14998 (expr_no_commas): Call default_conversion before save_expr
14999 for the first term of the production 'x ? : y'.
15000 * c-common.c (c_common_truthvalue_conversion): Remove
15001 obsolete block. Invoke recursively the hook instead
15002 of this function.
15003 * c-convert.c (convert): handle ERROR_MARK_NODE.
15004 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
15005 returned by the truthvalue_conversion language hook.
15006 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15007 c_objc_common_truthvalue_conversion.
15008 * c-objc-common.c (c_objc_common_truthvalue_conversion):
15009 New function.
15010 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
15011 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
15012 c_objc_common_truthvalue_conversion.
15013
a7a2225a
KH
150142004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15015
15016 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
15017 of gen_rtx.
15018 (LIBCALL_VALUE): Likewise.
15019 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
15020 gen_rtx_CC0 instead of gen_rtx.
15021 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
15022 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
15023 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
15024 gen_rtx.
15025 (m68hc11_emit_logical): Likewise.
15026
a556fd39
KH
150272004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15028
15029 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
15030 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
15031 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
15032 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
15033 config/mips/mips.md, config/mmix/mmix.c,
15034 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
15035 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
15036 config/rs6000/altivec.md, config/s390/s390.c,
15037 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
15038 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
15039 Use const0_rtx instead of GEN_INT (0). Do the same for other
15040 constants that are readily available.
15041
60c81c89
KH
150422004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15043
15044 * doloop.c, optabs.c, regmove.c, sched-deps.c,
15045 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
15046 instead of GEN_INT (0). Do the same for other constants that
15047 are readily available.
15048
2fb00d7f
KH
150492004-02-03 Kazu Hirata <kazu@cs.umass.edu>
15050
15051 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
15052 gen_rtx.
15053 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
15054 instead of gen_rtx.
15055 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
15056 gen_rtx.
15057 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
15058 gen_rtx_ASHIFT instead of gen_rtx.
15059 (udivmodqi4): Likewise.
15060
b0dccb00
RH
150612004-02-02 Richard Henderson <rth@redhat.com>
15062
a6f78652
ZW
15063 PR target/13789
15064 * expr.c (store_expr): Use force_operand before emit_move_insn.
b0dccb00 15065
3168cb99
JL
150662004-02-02 Jeff Law <law@redhat.com>
15067 Roger Sayle <roger@eyesopen.com>
15068
15069 * tree.c (commutative_tree_code, associative_tree_code): New
15070 functions.
15071 (iterative_hash_expr): Use commutative_tree_code.
15072 * tree.h (commutative_tree_code, associative_tree_code): Declare.
15073 * fold-const.c (operand_equal_p): Use commutative_tree_code
15074 rather than inlining the commutativity check.
15075 (fold): Likewise.
15076
040333a7
KH
150772004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15078
15079 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
15080 * config/frv/frv-protos.h: Remove the prototype for
15081 frv_function_arg_keep_as_reference.
15082 * config/frv/frv.c (frv_function_arg_keep_as_reference):
15083 Remove.
15084 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
15085 * config/stormy16/stormy16.h: Remove the commented-out
15086 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
15087
79d69d75
AM
150882004-02-03 Alan Modra <amodra@bigpond.net.au>
15089
15090 PR target/13914
15091 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
15092 for retaddr_column.
15093
600555f5
KH
150942004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15095
15096 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
15097 gen_rtx.
15098
16dd5cfe 150992004-02-02 Eric Christopher <echristo@redhat.com>
a6f78652 15100 Zack Weinberg <zack@codesourcery.com>
16dd5cfe
EC
15101
15102 * c-opts.c (c_common_handle_option): Add -finput-charset.
a6f78652
ZW
15103 * c.opt: Ditto.
15104 * cppcharset.c (one_iso88591_to_utf8): Remove.
15105 (convert_iso88591_utf8): Ditto.
15106 (conversion_tab): Remove 8859-1 converter.
15107 (_cpp_input_to_utf8): Remove.
15108 (_cpp_init_iconv_buffer): Ditto.
15109 (_cpp_close_iconv_buffer): Ditto.
15110 (_cpp_convert_input): New function.
15111 (_cpp_default_encoding): Ditto.
15112 * cpphash.h: Add/remove prototypes for above.
15113 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
15114 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
15115 for narrow execution and input character sets.
15116 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
15117 * doc/cppopts.texi: Document -finput-charset.
16dd5cfe 15118
8ad0d964
DE
151192004-02-02 David Edelsohn <edelsohn@gnu.org>
15120
15121 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
15122 against FIRST_PSEUDO_REGISTER.
15123
238b11b5
EB
151242004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15125
15126 * doc/invoke.texi (SPARC options): Further improve.
15127
0f4c242b
KH
151282004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15129
15130 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
15131 config/h8300/h8300.c, config/ip2k/ip2k.md,
15132 config/iq2000/iq2000.c, config/mips/mips.c,
15133 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
15134 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
15135 config/v850/v850.md: Fix indentation.
15136
d560b0aa
EB
151372004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15138
15139 * config/sparc/sparc.c (function_arg_slotno): Align TImode
15140 arguments on a 16-byte boundary in the parameter array if ARCH64.
15141 Split handling of TFmode.
15142
6f626d1b
PB
151432004-02-02 Paolo Bonzini <bonzini@gnu.org>
15144
15145 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
15146 Don't test CONSTANT_P (x).
15147 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
15148 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
15149 Fix misindentation.
15150
e789e9c4
EB
151512004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
15152
15153 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
15154
1c563bed
KH
151552004-02-02 Kazu Hirata <kazu@cs.umass.edu>
15156
15157 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
15158 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
15159 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
15160 config/iq2000/iq2000.c, config/m32r/m32r.c,
15161 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
15162 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
15163 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
15164 config/stormy16/stormy16.c, config/v850/v850.md,
15165 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
15166
67245ad3
KH
151672004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15168
15169 * config/mcore/mcore.c (block_move_sequence): Replace
15170 gen_rtx_CONST_INT with GEN_INT.
15171
66fd46b6
JH
151722004-02-02 Jan Hubicka <jh@suse.cz>
15173
15174 * alias.c (record_set): Use hard_regno_nregs.
15175 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
15176 * builtins.c (apply_args_size): Likewise.
15177 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
15178 mark_set_regs, add_stored_regs, mark_referenced_regs,
15179 insert_restore, insert_save, insert_one_insn): Likewise.
15180 * cfgcleanup.c: Include regs.h
15181 (mark_effect, mentions_nonequal_regs): Likewise.
15182 * cfgrtl.c (mark_killed_regs): Likewise
15183 * combine.c (update_table_tick, record_value_for_reg,
15184 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
15185 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
15186 reg_bitfield_target_p, distribute_notes): Likewise.
15187 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
15188 exp_equiv_p, cse_insn): Likewise.
15189 * cselib.c (cselib_lookup): Likewise.
15190 (cselib_invalidate_regno, cselib_record_set): Likewise.
15191 * df.c (df_ref_record): Likewise.
15192 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
15193 Likewise.
15194 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
15195 count_or_remove_death_notes_bb): Likewise.
15196 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
15197 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
15198 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
15199 * integrate.c (mark_stores): Likewise.
15200 * jump.c (delete_prior_computation): Likewise.
15201 * lcm.c (reg_dies, reg_becomes_live): Likewise.
15202 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
15203 * loop.c (LOOP_REGNO_NREGS): Likewise.
15204 * postreload.c (reload_combine, reload_combine_note_store,
15205 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
15206 * ra-colorize.c (combine, color_usable_p, get_free_reg,
16dd5cfe 15207 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
66fd46b6
JH
15208 try_recolor_web, insert_coalesced_conflicts, check_colors,
15209 break_precolored_alias): Likewise.
15210 * ra-debug.c: Include regs.h
15211 (ra_print_rtx_object): Likewise.
15212 * ra-rewrite (choose_spill_colors): Likewise.
15213 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
15214 * ra.c (init_ra): Likewise.
15215 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
15216 peep2_find_free_register): Likewise.
15217 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
15218 * regclass.c (hard_regno_nregs): New array.
15219 (init_reg_modes_once): Initialize it.
15220 (choose_hard_reg_mode): Use it.
15221 (record_reg_classes): Likewise.
15222 * regmove.c (mark_flags_life_zones): Likewise.
15223 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
15224 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
15225 copy_value, maybe_mode_change, find_oldest_value_reg,
15226 copyprop_hardreg_forward_1):
15227 * regs.h (hard_regno_nregs): Declare.
15228 * realod.c (reload_inner_reg_of_subreg): Use it.
15229 (push_reload, combine_reloads, find_dummy_reload,
15230 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
15231 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
15232 reload_adjust_reg_for_mode): Likewise.
15233 * reload1.c (compute_use_by_pseudos, count_pseudo,
15234 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
15235 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
15236 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
15237 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
15238 delete_output_reload): Likewise.
15239 * resource.c (update_live_status, mark_referenced_resources,
15240 mark_set_resources, mark_target_live_regs): Likewise.
15241 * rtlanal.c: Include regs.h
15242 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
15243 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
15244 subreg_regno_offset, subreg_offset_representable_p,
15245 hoist_test_store): Likewise.
15246 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
15247 * sched-rgn.c (check_live_1, update_live_1): Likewise.
15248 * stmt.c: Include regs.h
15249 (decl_conflicts_with_clobbers_p): Likewise.
15250 * varasm.c (make_decl_rtl): Likewise.
15251 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
15252
f1c25d3b
KH
152532004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15254
15255 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
15256 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15257 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
15258 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
15259 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
15260 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15261 config/iq2000/iq2000.h, config/m32r/m32r.c,
15262 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15263 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
15264 config/mcore/mcore.c, config/mcore/mcore.h,
15265 config/mcore/mcore.md, config/mips/mips.c,
15266 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
15267 config/rs6000/rs6000.c, config/s390/s390.c,
15268 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
15269 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
15270 "gen_rtx (FOO, " with "gen_rtx_FOO (".
15271
e0a24727
KH
152722004-02-01 Kazu Hirata <kazu@cs.umass.edu>
15273
15274 * config/h8300/h8300.md (two peephole2's): New.
15275
5202c5fe
EB
152762004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
15277
15278 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
15279 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
15280 (ASM_CPU_SPEC): Likewise
15281 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
15282 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
15283
13b59849
RS
152842004-02-01 Roger Sayle <roger@eyesopen.com>
15285
15286 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
15287 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
15288 (expand_builtin): Always call expand_builtin_pow.
15289
ef79730c
RS
152902004-02-01 Roger Sayle <roger@eyesopen.com>
15291
15292 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
15293 BUILT_IN_SIGNBITL): New GCC builtins.
15294 * builtins.c (expand_builtin_signbit): New function to RTL expand
15295 calls to signbit, signbitf and signbitl as inline intrinsics.
15296 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
15297 (fold_builtin_signbit): New function to perform constant folding
15298 of signbit, signbitf and signbitl.
15299 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
15300
15301 * doc/extend.texi: Document new signbit{,f,l} builtins.
15302
a80cdb0f
RS
153032004-02-01 Richard Sandiford <rsandifo@redhat.com>
15304
15305 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
15306
2efe2033
CD
153072004-02-01 Chris Demetriou <cgd@broadcom.com>
15308
15309 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
15310 "mips_const_double_ok" and "simple_memory_operand", which were
15311 removed from the MIPS port with the mips-3_4-rewrite branch merge.
15312 * config/mips/mips.c (mips16_lay_out_constants): Update comment
15313 for removal of simple_memory_operand.
15314
d37eb705
KH
153152004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15316
15317 * config/c4x/c4x.md: Use GEN_INT instead of
15318 gen_rtx (CONST_INT, ...).
15319
fadeed3b
RH
153202004-01-31 Richard Henderson <rth@redhat.com>
15321
15322 * varasm.c (output_constant_pool): Don't zap the pool.
15323
ccdc1703
KH
153242004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15325
15326 * genrecog.c (decision_type): Add DT_const_int.
15327 (write_cond) [DT_const_int]: Print a comparison against small
15328 constant.
15329 (write_node): Simplify comparisons against small constants
15330 before printing tests.
16dd5cfe 15331
aeba8f80
KH
153322004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15333
15334 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
15335 instead of gen_rtx_CONST_INT.
15336
400ce94c
KH
153372004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15338
15339 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
15340 instead of gen_rtx_CONST_INT.
15341
8dfa8fcd
KH
153422004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15343
15344 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
15345 hook_bool_CUMULATIVE_ARGS_false.
15346 * targhooks.c (default_strict_argument_naming): Rename to
15347 hook_bool_CUMULATIVE_ARGS_false.
15348 * targhooks.h: Update the prototype for
15349 default_strict_argument_naming.
15350
c0d4e710
KH
153512004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15352
15353 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15354 * config/sh/sh.h: Likewise.
15355 * config/sh/sh.md: Likewise.
15356
fdf064f2
EB
153572004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
15358
15359 * doc/invoke.texi (SPARC options): Restructure and update.
15360
b602b7b6
KH
153612004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15362
15363 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
15364 STRICT_ARGUMENT_NAMING): Poison.
15365 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
15366 hook_bool_tree_false.
15367 * targhooks.c (default_promote_function_args): Remove.
15368 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
15369 Don't check incoming.
15370 (default_strict_argument_naming): Don't use
15371 STRICT_ARGUMENT_NAMING.
15372 * targhooks.h: Remove the prototype for
15373 default_promote_function_args.
15374
a0524eb3
KH
153752004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15376
15377 * config/i386/i386-protos.h: Remove the prototype for
15378 ix86_setup_incoming_varargs.
15379 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
15380 (ix86_setup_incoming_varargs): Make it static.
15381 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
15382
a457ee07
KH
153832004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15384
15385 * alloc-pool.c: Fix comment typos.
15386 * builtin-types.def: Likewise.
15387 * builtins.def: Likewise.
15388 * c-pretty-print.c: Likewise.
15389 * df.h: Likewise.
15390 * reload1.c: Likewise.
15391
a451b0bd
KH
153922004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15393
15394 * doc/invoke.texi: Follow spelling conventions.
15395 * doc/tm.texi: Likewise.
15396
e53e0c56
KH
153972004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15398
15399 * doc/install.texi: Fix typos.
15400 * doc/invoke.texi: Likewise.
15401
025b17a4
UW
154022004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
15403
15404 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
15405 registers as pointers.
15406 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
15407
4de249d9
PB
154082004-01-31 Paolo Bonzini <bonzini@gnu.org>
15409
c53bdcf5 15410 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
4de249d9
PB
15411 and restore it to gen_lowpart_general on exit.
15412 (gen_lowpart_for_combine): Adjust all callers to go through
15413 gen_lowpart.
15414 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
15415 and restore it to gen_lowpart_general on exit.
15416 (gen_lowpart_if_possible): Adjust all callers to go through
15417 gen_lowpart.
15418 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
15419 (gen_lowpart): Declare as pointer to function, initialized to
15420 gen_lowpart_general.
15421 * rtl.h (gen_lowpart): Declare as pointer to function.
15422
f84d109f
KH
154232004-01-31 Kazu Hirata <kazu@cs.umass.edu>
15424
15425 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
15426 * calls.c: Likewise.
15427 * emit-rtl.c: Likewise.
15428 * function.c: Likewise.
15429 * reload1.c: Likewise.
15430 * config/i386/cygming.h: Likewise.
15431 * config/i386/i386.c: Likewise.
15432 * config/i386/winnt.c: Likewise.
15433
354b7da5
DH
154342004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
15435
15436 PR bootstrap/9249
15437 * doc/install.texi: document --enable-__cxa_atexit option.
15438 * configure.ac: Disable __cxa_atexit if not supported.
15439 * configure: Regenerate.
15440
94632047 154412004-01-30 Daniel Berlin <dberlin@dberlin.org>
9781b6da
DB
15442
15443 * ggc-zone.c (ggc_free): New function.
15444
283334f0
KH
154452004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15446
15447 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
15448 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
15449 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
15450 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
15451 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
15452 config/alpha/alpha.c, config/alpha/alpha.h,
15453 config/alpha/alpha.md, config/alpha/unicosmk.h,
15454 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
15455 config/c4x/c4x-protos.h, config/c4x/c4x.md,
15456 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
15457 config/frv/frvend.c, config/i386/cygming.h,
15458 config/i386/djgpp.h, config/i386/emmintrin.h,
15459 config/i386/gthr-win32.c, config/i386/i386-interix.h,
15460 config/i386/i386-protos.h, config/i386/openbsd.h,
15461 config/i386/winnt.c, config/i386/xm-mingw32.h,
15462 config/i386/xmmintrin.h, config/ia64/ia64.md,
15463 config/iq2000/iq2000.md, config/m32r/m32r.md,
15464 config/m68k/m68k.md, config/mcore/mcore-elf.h,
15465 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
15466 config/mips/iris5gas.h, config/mips/iris6.h,
15467 config/mips/iris6gas.h, config/mips/linux.h,
15468 config/mips/mips.md, config/mips/netbsd.h,
15469 config/mips/openbsd.h, config/mips/windiss.h,
15470 config/pa/fptr.c, config/rs6000/aix.h,
15471 config/rs6000/altivec.h, config/rs6000/darwin.h,
15472 config/rs6000/xcoff.h, config/s390/s390-protos.h,
15473 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
15474 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
15475 config/sparc/sol2.h: Update copyright.
15476
71cbe2c1
KC
154772004-01-30 Kelley Cook <kcook@gcc.gnu.org>
15478
15479 * Makefile.in (abs_docdir, abs_srcdir): Define.
15480 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
15481
bfb2d661
KH
154822004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15483
15484 * genconfig.c (main): Have CC0_P check its operand even on a
15485 target without cc0.
15486
bd5bd7ac
KH
154872004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15488
15489 * config/alpha/alpha.c: Remove mentions of deprecates macros
15490 in comments, remove some target-independent comments about target
15491 macros, and/or add minimal function comments for target hook
15492 implementations.
15493 * config/avr/avr.c: Likewise.
15494 * config/ia64/ia64.h: Likewise.
15495 * config/ip2k/ip2k.c: Likewise.
15496 * config/iq2000/iq2000.c: Likewise.
15497 * config/m32r/m32r.h: Likewise.
15498 * config/m68hc11/m68hc11.c: Likewise.
15499 * config/mcore/mcore.c: Likewise.
15500 * config/mmix/mmix.c: Likewise.
15501 * config/mn10300/mn10300.c: Likewise.
15502 * config/pa/pa.c: Likewise.
15503 * config/pdp11/pdp11.c: Likewise.
15504 * config/rs6000/rs6000.h: Likewise.
15505 * config/sh/sh.c: Likewise.
15506 * config/sh/sh.h: Likewise.
15507 * config/sparc/sparc.c: Likewise.
15508 * config/sparc/sparc.h: Likewise.
15509 * config/stormy16/stormy16.c: Likewise.
15510 * config/xtensa/xtensa.c: Likewise.
15511
808ededc
UW
155122004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
15513
15514 PR optimization/12147
15515 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
15516 RELOAD_FOR_OPADDR_ADDR.
15517 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
15518 might be reused as RELOAD_FOR_OPADDR_ADDR register.
15519
98e5e087
JH
155202004-01-30 Jan Hubicka <jh@suse.cz>
15521
bd5bd7ac 15522 * reload.c (get_secondary_mem): Fix updating of
98e5e087
JH
15523 secondary_memlocs_elim_used.
15524
3234b52d
RH
155252004-01-30 Richard Henderson <rth@redhat.com>
15526
15527 * varasm.c (struct rtx_const, struct pool_constant): Remove.
15528 (MAX_RTX_HASH_TABLE): Remove.
15529 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
15530 (first_pool, last_pool, pool_offset): Remove.
15531 (struct rtx_constant_pool): Split out from ...
15532 (struct varasm_status): ... here. Reference one via pointer.
15533 (struct constant_descriptor_rtx): Merge struct pool_constant.
15534 (SYMHASH): Remove.
15535 (decode_rtx_const): Remove.
15536 (const_hash_rtx, compare_constant_rtx): Remove.
15537 (record_constant_rtx): Remove.
15538 (const_desc_rtx_hash, const_desc_rtx_eq): New.
15539 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
15540 (const_rtx_hash_1, const_rtx_hash): New.
15541 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
15542 (simplify_subtraction): Use simplify_rtx.
15543 (force_const_mem): Rewrite to use new data structures.
15544 (find_pool_constant): Likewise.
15545 (get_pool_constant, get_pool_constant_mark,
15546 get_pool_constant_for_function, get_pool_mode,
15547 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
15548 (output_constant_pool_2): Split out from output_constant_pool.
15549 (output_constant_pool_1): Likewise. Use new pool datastructures.
15550 (output_constant_pool): Zap entire pool datastructure.
15551 (mark_constant): Use new pool datastructures.
15552 (mark_constants): Use for_each_rtx.
15553 (mark_constant_pool): Use new pool datastructures.
15554
be77d9e7 155552004-01-30 Fariborz Jahanian <fjahanian@apple.com>
16dd5cfe 15556
a6f78652 15557 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
be77d9e7
FJ
15558 Copy operands[1] to pseudo for simplify_gen_subreg.
15559
f0cad2d5
KH
155602004-01-30 Kazu Hirata <kazu@cs.umass.edu>
15561
15562 * gcse.c (bypass_block): Fix a typo in the previous check-in
15563 to the file.
15564
40ca90bf
AP
155652004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
15566
15567 * toplev.c: Include alloc-pool.h.
16dd5cfe 15568 * Makefile.in (toplev.c): Update dependencies.
40ca90bf 15569
39a44a4e
RK
155702004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15571
15572 * combine.c (simplify_shift_const, case XOR): Be careful when
15573 commuting XOR with ASHIFTRT.
15574
3e2cc1d1 155752004-01-30 Kazu Hirata <kazu@cs.umass.edu>
a6f78652 15576 Eric Botcazou <ebotcazou@libertysurf.fr>
3e2cc1d1
KH
15577
15578 * config/sparc/sparc-protos.h: Remove the prototype for
15579 sparc_builtin_saveregs.
15580 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15581 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15582 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15583 (TARGET_STRUCT_VALUE_RTX): Likewise.
15584 (TARGET_RETURN_IN_MEMORY): Likewise.
15585 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15586 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15587 (sparc_builtin_saveregs): Make it static.
15588 (sparc_promote_prototypes): New.
15589 (sparc_struct_value_rtx): Likewise.
15590 (sparc_return_in_memory): Likewise.
15591 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
15592 (PROMOTE_FUNCTION_RETURN): Likewise.
15593 (RETURN_IN_MEMORY): Likewise.
15594 (STRUCT_VALUE): Likewise.
15595 (STRUCT_VALUE_INCOMING): Likewise.
15596 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15597 (STRICT_ARGUMENT_NAMING): Likewise.
15598 (PROMOTE_PROTOTYPES): Likewise.
15599
15600 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
15601
5e9295fa
EB
156022004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
15603
15604 PR c/12818
15605 * varasm.c (const_hash_1) <STRING_CST>: Use the
15606 address to compute the hash value if flag_writable_strings.
15607 (compare_constant) <STRING_CST>: Compare the addresses
15608 if flag_writable_strings.
15609 (build_constant_desc): Do not copy the expression for a
15610 STRING_CST if flag_writable_strings.
15611
1f2eae8d
JH
156122004-01-30 Jan Hubicka <jh@suse.cz>
15613
1e0f41c9
JH
15614 * alloc-pool.c: Include hashtab.h
15615 (alloc_pool_descriptor): New structure
15616 (alloc_pool_hash): New global variable.
15617 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
15618 (create_alloc_pool): Update statistics.
15619 (free_alloc_pool): Likewise.
15620 (pool_alloc): Likewise.
15621 (output_info): New structure
15622 (print_statistics, dump_alloc_pool_statistics): New function.
15623 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
15624 (dump_alloc_pool_statistics): Declare.
15625 * toplev.c (finalize): Dump statistics.
15626
1f2eae8d
JH
15627 * reload.c (secondary_memlocs_elim_used): New static variable.
15628 (get_secondary_mem): Update it.
15629 (find_reloads): Use it.
15630
80a08664
SB
156312004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
15632
15633 * toplev.c: Fix broken checkin of 2003-12-30, again.
15634
57116d8d
UW
156352004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
15636
15637 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15638 s390*-*-* targets by specifying a 'nop' insn.
15639 * configure: Regenerate.
15640
5fddd9fe
EB
156412004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
15642
15643 PR target/11475
15644 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15645
64fc7c00
JJ
156462004-01-29 Jakub Jelinek <jakub@redhat.com>
15647
15648 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15649 of addr when creating MEM copy.
15650
ed672aa8
DP
156512004-01-29 Devang Patel <dpatel@apple.com>
15652
15653 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
16dd5cfe 15654
7e3aa041
ILT
156552004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
15656
15657 PR inline-asm/6162
15658 * reload.c (find_reloads): Only support one pair of commutative
15659 operands.
15660
06f12aa0
RS
156612004-01-29 Roger Sayle <roger@eyesopen.com>
15662
15663 PR java/13824
15664 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15665 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15666 recursion.
15667
b88cf82e
KH
156682004-01-29 Kazu Hirata <kazu@cs.umass.edu>
15669
15670 * config/frv/frv.c: Don't mention deprecated macros in
15671 comments. Remove some target-independent comments about
15672 target macros.
15673 * config/frv/frv.h: Likewise.
15674
3ae4a5b1
ZD
156752004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
15676
15677 * cfghooks.c (split_block): Set probability and count of the
15678 new edge.
15679
94632047 156802004-01-29 Josef Zlomek <zlomekj@suse.cz>
636c7bc4
JZ
15681
15682 * dwarf2out.c (struct die_struct): Added field decl_id.
15683 (decl_die_table): Changed to hash table.
15684 (decl_die_table_allocated): Deleted.
15685 (decl_die_table_in_use): Deleted.
15686 (DECL_DIE_TABLE_INCREMENT): Deleted.
15687 (decl_die_table_hash): New function.
15688 (decl_die_table_eq): New function.
15689 (lookup_decl_die): Lookup in a hash table.
15690 (equate_decl_number_to_die): Insert into a hash table.
15691 (dwarf2out_init): Init hash table decl_die_table.
15692
4e44c1ef
JJ
156932004-01-29 Jakub Jelinek <jakub@redhat.com>
15694
15695 PR optimization/13424
15696 * expr.c (store_constructor): Revert 2003-12-03 change.
15697
15698 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15699 expected before returning early. Avoid sharing RTL if they
15700 need to be changed.
15701
15702 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15703 handling so that memory attributes are preserved. Don't call
15704 ix86_set_move_mem_attrs.
15705 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15706 (ix86_expand_clrstr): Rename src argument to
15707 dst. Rework rep_stos and strset handling so that memory attributes
15708 are preserved.
15709 (ix86_expand_strlen): Pass src argument to
15710 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
15711 memory attributes are preserved.
15712 (ix86_expand_strlensi_unroll_1): Add src argument. Use
15713 change_address instead of gen_rtx_MEM.
15714 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15715 expanders.
15716 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15717 strmovqi, strmovqi_rex64): Remove.
15718 (rep_mov*, strmov*): Prefix insn names with *.
15719 (strset, strset_singleop, rep_stos): New expanders.
15720 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15721 strsetqi, strsetqi_rex64): Remove.
15722 (rep_stos*, strset*): Prefix insn names with *.
15723 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
15724 to SImode.
15725 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15726 are preserved.
15727 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15728 Prefix insn names with *.
15729 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15730 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15731 (strlenqi_1): New expander.
15732 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15733
f470c378
ZD
157342004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
15735
15736 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15737 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15738 verify_flow_info): Declaration removed.
15739 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15740 (debug_bb, debug_bb_n): Add argument to dump_bb call.
15741 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15742 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15743 instead of delete_block.
15744 * cfghooks.c: Include timevar.h and toplev.h.
15745 (cfg_hooks): Define here.
15746 (verify_flow_info, dump_bb): Moved from cfg.c.
15747 (redirect_edge_and_branch, redirect_edge_and_branch_force,
15748 split_block, split_block_after_labels, move_block_after,
15749 delete_basic_block, split_edge, create_basic_block,
15750 create_empty_bb, can_merge_blocks_p, merge_blocks,
15751 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15752 New functions.
15753 * cfghooks.h (struct cfg_hooks): Added fields name,
15754 make_forwarder_block, tidy_fallthru_edge and
15755 move_block_after. Changed type of verify_flow_info, dump_bb,
15756 split_block fields. Renamed cfgh_split_edge and delete_block
15757 fields.
15758 (redirect_edge_and_branch, redirect_edge_and_branch_force,
15759 split_block, delete_block, split_edge, create_basic_block,
15760 can_merge_blocks_p, merge_blocks): Macros removed.
15761 (cfg_hooks): Do not export.
15762 (verify_flow_info, dump_bb, redirect_edge_and_branch,
15763 redirect_edge_and_branch_force, split_block, split_block_after_labels,
15764 move_block_after, delete_basic_block, split_edge, create_basic_block,
15765 create_empty_bb, can_merge_blocks_p, merge_blocks,
15766 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15767 Declare.
15768 (cfg_layout_rtl_cfg_hooks): Declare.
15769 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15770 New functions.
15771 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15772 (redirect_edge_with_latch_update): Removed.
15773 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15774 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15775 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15776 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15777 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15778 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15779 cfghooks.c.
15780 (rtl_create_basic_block): Coding style fix.
15781 (rtl_tidy_fallthru_edge, rtl_move_block_after,
15782 rtl_make_forwarder_block): New functions.
15783 (update_cfg_after_block_merging): Removed.
15784 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15785 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15786 to dump_bb.
15787 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15788 find_if_case_2): Don't update dominators.
15789 * timevar.def (TV_CFG_VERIFY): New.
15790 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15791 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15792 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15793 (remove_bbs): Don't call remove_bbs.
15794 (create_preheader): Use make_forwarder_block.
15795 (mfb_keep_just, mfb_update_loops): New static functions.
15796
3cea4788
KH
157972004-01-29 Kazu Hirata <kazu@cs.umass.edu>
15798
15799 * config/avr/avr.h: Remove target-independent comments about
15800 target macros.
15801
75e853f2 158022004-01-28 Daniel Berlin <dberlin@dberlin.org>
16dd5cfe 15803
75e853f2
DB
15804 * timevar.c (timevar_print): Mention when checking is enabled.
15805
7625e73d
GB
158062004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
15807
15808 * c-lex.c (c_lex): Rename to...
15809 (c_lex_with_flags): Add new parameter to get CPP flags.
15810 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15811 * c-pragma.h (c_lex_with_flags): Declare.
15812
dc7efe6e
KH
158132004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15814
15815 * config/mcore/mcore.c (mcore_external_libcall): Add a
15816 comment.
15817 (mcore_return_in_memory): Likewise.
15818
09a2b93a
KH
158192004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15820
15821 * config/mcore/mcore-protos.h: Remove the prototype for
15822 mcore_setup_incoming_varargs.
15823 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15824 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15825 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15826 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15827 (TARGET_STRUCT_VALUE_RTX): Likewise.
15828 (TARGET_RETURN_IN_MEMORY): Likewise.
15829 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15830 (mcore_setup_incoming_varargs): Make it static. Receive the
15831 first argument by reference. Add argument second_time.
15832 (mcore_external_libcall): New.
15833 (mcore_return_in_memory): Likewise.
15834 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15835 (PROMOTE_FUNCTION_RETURN): Likewise.
15836 (STRUCT_VALUE): Likewise.
15837 (RETURN_IN_MEMORY): Likewise.
15838 (SETUP_INCOMING_VARARGS): Likewise.
15839 (PROMOTE_PROTOTYPES): Likewise.
15840 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15841
a7ed00da
KH
158422004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15843
15844 * config/m32r/m32r-protos.h: Remove the prototype for
15845 m32r_setup_incoming_varargs.
15846 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15847 (TARGET_STRUCT_VALUE_RTX): Likewise.
15848 (TARGET_RETURN_IN_MEMORY): Likewise.
15849 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15850 (m32r_return_in_memory): New.
15851 (m32r_setup_incoming_varargs): Make it static.
15852 * config/m32r/m32r.h: Remove #undef of
15853 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
15854 definitions of PROMOTE_FUNCTION_ARGS and
15855 PROMOTE_FUNCTION_RETURN.
15856 (PROMOTE_PROTOTYPES): Remove.
15857 (RETURN_IN_MEMORY): Likewise.
15858 (STRUCT_VALUE): Likewise.
15859
8636be86
KH
158602004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15861
15862 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15863 (TARGET_STRUCT_VALUE_RTX): Likewise.
15864 (m68k_struct_value_rtx): Likewise.
15865 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15866 STRUCT_VALUE_REGNUM.
15867 (PROMOTE_PROTOTYPES): Remove.
15868 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15869 STRUCT_VALUE_REGNUM.
15870 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15871 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15872
f2f61ee7
KH
158732004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15874
15875 * config/stormy16/stormy16.c
15876 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15877 TARGET_BUILD_BUILTIN_VA_LIST.
15878
fb7bc7fb
KH
158792004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15880
15881 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15882 (TARGET_STRUCT_VALUE_RTX): Likewise.
15883 (TARGET_RETURN_IN_MEMORY): Likewise.
15884 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15885 (v850_return_in_memory): Likewise.
15886 (v850_setup_incoming_varargs): Likewise.
15887 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15888 (SETUP_INCOMING_VARARGS): Likewise.
15889 (RETURN_IN_MEMORY): Likewise.
15890 (STRUCT_VALUE): Likewise.
15891
0fd818e7
KH
158922004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15893
15894 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15895 (fr30_setup_incoming_varargs): Don't use
15896 STRICT_ARGUMENT_NAMING.
15897 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15898 (STRICT_ARGUMENT_NAMING): Likewise.
15899
8ac411c7
KH
159002004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15901
15902 * config/frv/frv-protos.h: Remove the prototype for
15903 frv_expand_builtin_saveregs.
15904 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15905 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15906 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15907 STRUCT_VALUE_REGNUM.
15908 (frv_expand_builtin_saveregs): Make it static.
15909 (frv_struct_value_rtx): New.
15910 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15911
d173e685
JH
159122004-01-29 Jan Hubicka <jh@suse.cz>
15913
15914 PR c++/12850
15915 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15916 initial pointers.
15917 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15918 for functions that will be only inlined.
15919 (cgraph_mark_function_to_output): Likewise.
15920 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15921 do not clear function body.
15922 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15923 (tree_rest_of_compilation): Reorganize the logic releasing function
15924 body to use callgraph datastructure.
15925
f7a1010e
JDA
159262004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15927
15928 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15929 to register_operand.
15930
e7f47f83
ZW
159312004-01-28 Zack Weinberg <zack@codesourcery.com>
15932
15933 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15934 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15935 match_operand expressions so that all match_dups appear
15936 lexically after their corresponding match_operands.
15937
1807b726
KH
159382004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15939
15940 * config/h8300/h8300.c (WORD_REG_USED): Use
15941 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15942 (compute_saved_regs): Likewise.
15943 (h8300_expand_prologue): Likewise. Allocate locals after
15944 saving registers.
15945 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15946 of FRAME_POINTER_REGNUM. Deallocate locals before saving
15947 registers.
15948 (h8300_initial_elimination_offset): Adjust for the new frame
15949 layout, which swaps flips the order of locals and saved
15950 registers.
15951 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15952 (HARD_FRAME_POINTER_REGNUM): New.
15953 (ELIMINABLE_REGS): Add an elimination rule from
15954 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15955 (REGISTER_NAMES): Add fp.
15956 * config/h8300/h8300.md (FP_REG): Change to 11.
15957 (HFP_REG): New.
15958
be2c39f8
KH
159592004-01-28 Kazu Hirata <kazu@cs.umass.edu>
15960
15961 * genrecog.c (write_node): Remove a useless local variable.
15962
469ef4a3
ILT
159632004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
15964
15965 * Makefile.in (options.c options.h): Use stamp file s-options to
15966 avoid unnecessary rebuilds.
15967 (options.o): New target listing dependencies.
15968 (gtyp-gen.h): Use stamp file s-gtyp-gen.
15969 (STAGESTUFF): Add s-gtyp-gen.
15970
685fe032
RH
159712004-01-28 Richard Henderson <rth@redhat.com>
15972
15973 * ggc.h (ggc_free): Declare.
15974 * ggc-common.c (ggc_realloc): Use it.
15975 * ggc-page.c: Remove lots of inline markers.
15976 (globals): Add free_object_list.
15977 (ggc_alloc): Tidy.
15978 (ggc_free, validate_free_objects): New.
15979 (poison_pages): Provide default.
15980 (ggc_collect): Call validate_free_objects; emit markers to
15981 the debug file.
15982
2ffe0e02
ZW
159832004-01-28 Zack Weinberg <zack@codesourcery.com>
15984 Jim Wilson <wilson@specifixinc.com>
15985
15986 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15987 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15988 scratch pointer.
15989 (ia64_secondary_reload_class): Delete case GR_REGS.
15990 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15991 Do not allocate a scratch register.
15992 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15993
a544524a
JH
159942004-01-28 Jan Hubicka <jh@suse.cz>
15995
15996 * gcse.c (bypass_block): Prevent edges to be unified when we are
15997 about to emit compenstation code.
15998
1b8f8174
NC
159992004-01-28 Nick Clifton <nickc@redhat.com>
16000
16001 * config/arm/arm.c (arm_expand_builtin): Force second argument of
16002 the setcwx insn into a register.
16003
faceece3
RS
160042004-01-28 Richard Sandiford <rsandifo@redhat.com>
16005
16006 * config/fp-bit.c (pack_d): When using paired doubles to implement
16007 a long double, round the high part separately.
16008 (unpack_d): Fix the case in which the high part is a power of two
16009 and the low part is a nonzero value of the opposite sign.
16010
28b24176
KH
160112004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16012
16013 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16014 (TARGET_STRUCT_VALUE_RTX): Likewise.
16015 (c4x_external_libcall): Likewise.
16016 (c4x_struct_value_rtx): Likewise.
16017 * config/c4x/c4x.h: Remove.
16018 (STRUCT_VALUE_REGNUM): Likewise.
16019 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16020
9184f892
KH
160212004-01-28 Kazu Hirata <kazu@cs.umass.edu>
16022
16023 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
16024 (TARGET_STRUCT_VALUE_RTX): Likewise.
16025 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
16026 (STRUCT_VALUE): Likewise.
16027 (PROMOTE_PROTOTYPES): Likewise.
16028
4cce9dd8
RS
160292004-01-27 Roger Sayle <roger@eyesopen.com>
16030
16031 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
16032 CONST_INT before using INTVAL.
16033
590fcf48
UW
160342004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
16035
16036 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
16037 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
16038 frame if !TARGET_BACKCHAIN.
2ffe0e02 16039 * config/s390/s390.md ("allocate_stack"): Use pattern only if
590fcf48
UW
16040 TARGET_BACKCHAIN.
16041 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
16042
826b47cc
ZW
160432004-01-27 Zack Weinberg <zack@codesourcery.com>
16044
16045 * ia64.c (ia64_function_arg): When placing HFAs in integer
16046 registers, do not special case the mode used for complex
16047 types. Do not advance int_regs until the current register
16048 is full.
16049
83810fcb
RS
160502004-01-27 Richard Sandiford <rsandifo@redhat.com>
16051
16052 PR target/7297
16053 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
16054
2d9db8eb
DE
160552004-01-27 David Edelsohn <edelsohn@gnu.org>
16056
16057 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
16058 slow, unaligned loads and stores while debugging. Fix formatting.
16059
39e453d7
DE
160602004-01-27 David Edelsohn <edelsohn@gnu.org>
16061
16062 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
16063 of computing wmode.
16064 (restore_stack_nonlocal): Same.
16065
6097b0c3 160662004-01-27 Devang Patel <dpatel@apple.com>
826b47cc 16067
6097b0c3 16068 * Makefile.in (dwarf2out.o): Depend on input.h
826b47cc 16069 * dbxout.c (dbx_debug_hooks): Add new empty hook for
6097b0c3
DP
16070 imported_module_or_decl.
16071 (xcoff_debug_hooks): Same.
16072 * sdbout.c (sdb_debug_hooks): Same.
16073 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
16074 * debug.c (do_nothing_debug_hooks): Same.
16075 (debug_nothing_tree_tree): New function.
16076 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
16077 * dwarf2out.c: Include input.h.
16078 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
16079 (remove_child_TAG): New function.
16080 (dwarf_tag_name): Handle DW_TAG_imported_module.
16081 (gen_subprogram_die): Equate decl number to declaration die. Do not
16082 remove all children dies while reusing declaration die for definition.
16083 Instead, selectively remove only formal parameters.
16084 (gen_variable_die): Equate variable decl to declaration die.
16085 (gen_field_die): Equate field decl to line number.
16086 (force_namespace_die): Replace it with ...
16087 (force_decl_die): ... this.
16088 (force_type_die): New function.
16089 (setup_namespace_context): Replace use of force_namespace_die() with
16090 force_decl_die().
16091 (gen_namespace_die): Same.
16092 (dwarf2out_imported_module_or_decl): New function.
16093
e6aecf8e 160942004-01-27 Bob Wilson <bob.wilson@acm.org>
826b47cc 16095
e6aecf8e
BW
16096 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
16097 on CQImode and CHImode incoming arguments in register a7.
16098 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
16099 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
16100 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
16101 xtensa_copy_incoming_a7 before reload.
826b47cc 16102
02307675
R
161032004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
16104
16105 * coverage.c (get_coverage_counts): Give a different message
16106 if flag_guess_branch_prob is set.
16107 * predict.c (counts_to_freqs): Return an int.
16108 (estimate_bb_frequencies): If counts_to_freqs returns zero,
16109 calculate estimates.
16110
69a45040
KH
161112004-01-27 Kazu Hirata <kazu@cs.umass.edu>
16112
16113 * config/iq2000/iq2000-protos.h: Remove the prototype for
16114 iq2000_setup_incoming_varargs.
16115 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16116 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16117 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16118 (TARGET_STRUCT_VALUE_RTX): Likewise.
16119 (TARGET_RETURN_IN_MEMORY): Likewise.
16120 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16121 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16122 (iq2000_return_in_memory): Likewise.
16123 (iq2000_setup_incoming_varargs): Make it static. Receive the
16124 first argument by reference.
16125 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
16126 (PROMOTE_FUNCTION_RETURN): Likewise.
16127 (PROMOTE_PROTOTYPES): Likewise.
16128 (RETURN_IN_MEMORY): Likewise.
16129 (STRUCT_VALUE): Likewise.
16130 (SETUP_INCOMING_VARARGS): Likewise.
16131 (STRICT_ARGUMENT_NAMING): Likewise.
16132
9cdfc8e7
JM
161332004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
16134
826b47cc 16135 * fixinc/fixinc.c (test_test): Initialize res.
9cdfc8e7
JM
16136 (start_flexer): Initialize pz_cmd_save.
16137
60ffd2fe
ZW
161382004-01-27 Zack Weinberg <zack@codesourcery.com>
16139
16140 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
16141 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
16142
52ad4d7b
ZW
161432004-01-27 Zack Weinberg <zack@codesourcery.com>
16144
16145 PR 7198
16146 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
16147 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
16148 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
16149 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
16150 Possibly rename pattern for consistency.
16151 Remove ??? comments suggesting that this be done.
16152 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
16153 New patterns.
16154 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
16155 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
16156 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
16157 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
16158 Update to match.
16159
b034930f
ILT
161602004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
16161
16162 * config/arm/arm.c (output_return_instruction): Only restore IP
16163 into SP if frame_pointer_needed.
16164
be446dfc
EB
161652004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
16166
16167 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16168 for SCmode and DCmode if ARCH32.
16169 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
16170 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
16171 if ARCH32.
16172 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
16173 if ARCH32.
16174 (BASE_OUTGOING_VALUE_REG): Likewise.
16175
1b4bda70
EB
161762004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
16177
16178 PR target/10904
16179 PR target/13058
16180 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
16181 Forbid mode changes from SImode for lower FP regs if ARCH64.
16182
1194fc79
R
161832004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
16184
16185 * Makefile.in (bt-load.o): Depend on except.h.
16186 * bt-load.c (except.h): #include.
16187 (compute_defs_uses_and_gen): If insn at end of BB can throw
16188 within this function, consider registers used by it unavailable for
16189 btr migration.
16190 (move_btr_def): If insn at end of BB can throw, insert before rather
16191 than after.
16192
16193 * flags.h (flag_btr_bb_exclusive): Declare.
16194 * toplev.c (flag_btr_bb_exclusive): New variable.
16195 (f_options): Add btr-bb-exclusive.
16196 * bt-load.c (augment_live_range): Restore old behaviour if
16197 flag_btr_bb_exclusive is set.
16198 * common.opt: Add entry for -fbtr-bb-exclusive.
16199 * opts.c (common_handle_options): Same.
16200 * doc/invoke.texi: Document -fbtr-bb-exclusive.
52ad4d7b 16201
1194fc79
R
16202 * bt-load.c (btrs_live_at_end): New variable.
16203 (compute_defs_uses_and_gen): Compute its pointed-to array.
16204 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
16205 (augment_live_range): When augmenting with a new dominator,
16206 use only its btrs_live_at_end set, but also add in the full set
16207 of the old dominator.
16208 (btr_def_live_range): Use btrs_live_at_end.
16209 (move_btr_def): Set other_btr_uses_before_def, and move new set
16210 to the end of the basic block, if appropriate.
16211 (migrate_btr_defs): Allocate and free btrs_live_at_end.
52ad4d7b 16212
1194fc79
R
16213 * bt-load.c (basic_block_freq): Remove outdated comment.
16214
895ea8f0
AM
162152004-01-27 Alan Modra <amodra@bigpond.net.au>
16216
16217 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
16218 (PREDICATE_CODES): Remove duplicate.
16219 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
16220 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
16221 (MASK_PROFILE_KERNEL): Adjust define.
16222
4137ba7a
JJ
162232004-01-27 Jakub Jelinek <jakub@redhat.com>
16224
16225 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
16226 of long string literals from 32 bytes to sizeof (void *) when !-Os
16227 and to 1 with -Os.
16228
a4bb41cc
KH
162292004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16230
16231 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
16232 constant addresses in the normal mode.
16233
1c62e7b2
KG
162342004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16235
16236 * system.h (CHAR_BITFIELD): Delete.
16237 (BOOL_BITFIELD): New.
16238 * c-decl.c (c_scope): Use BOOL_BITFIELD.
16239 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
16240
96ab60fc
KH
162412004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16242
16243 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16244 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16245 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16246 (TARGET_STRUCT_VALUE_RTX): Likewise.
16247 (TARGET_RETURN_IN_MEMORY): Likewise.
16248 (arc_return_in_memory): Likewise.
16249 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
16250 (PROMOTE_FUNCTION_RETURN): Likewise.
16251 (RETURN_IN_MEMORY): Likewise.
16252 (STRUCT_VALUE): Likewise.
16253
6d4b0a5d
RH
162542004-01-26 Richard Henderson <rth@redhat.com>
16255
16256 * c-parse.in (extension): Use itype.
16257 (SAVE_EXT_FLAGS): Don't allocate a tree.
16258 (RESTORE_EXT_FLAGS): Don't read a tree.
16259
18874af6
JH
162602004-01-26 Jan Hubicka <jh@suse.cz>
16261
16262 * cselib.c (discard_useless_values): Clear out value pointer pointing
16263 to datastructure to be recycled.
16264
501f88de
JH
162652004-01-25 Jan Hubicka <jh@suse.cz>
16266
16267 * genextract.c (main): Do not output the memset when not checking.
16268
d6456562
KH
162692004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16270
16271 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
16272 switch statement instead of a chain of if statements.
16273
5cea9d5d
JL
162742004-01-26 Jeff Law <law@redhat.com>
16275
16276 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
16277 acute accents for Petur Runolfsson's entry.
16278
04e9daaf
KH
162792004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16280
16281 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
16282 (TARGET_RETURN_IN_MEMORY): Likewise.
16283 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
16284 (RETURN_IN_MEMORY): Likewise.
16285
40ca90bf 162862004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 16287
52ad4d7b
ZW
16288 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
16289 unaligned load/store into smaller loads and stores.
6c8066b9 16290
40ca90bf 162912004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 16292
52ad4d7b
ZW
16293 * function.c (assign_parms): Do not assign
16294 long long argument to memory in prologue if
16295 is it loaded into register.
6c8066b9 16296
40ca90bf 162972004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
16298
16299 PR middle-end/13779
52ad4d7b
ZW
16300 * expr.c (emit_group_load): split constant
16301 correctly into register components of PARALLEL insn.
6c8066b9 16302
40ca90bf 163032004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
16304
16305 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
16306 Use adjust_address_nv directly with appropriate mode.
16307 (restore_stack_nonlocal): Ditto.
16308
4c45af42
KH
163092004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16310
16311 * config/xtensa/xtensa-protos.h: Remove the prototype for
16312 xtensa_builtin_saveregs.
16313 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16314 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16315 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16316 (TARGET_STRUCT_VALUE_RTX): Likewise.
16317 (TARGET_RETURN_IN_MEMORY): Likewise.
16318 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16319 (xtensa_builtin_saveregs): Make it static.
16320 (xtensa_return_in_memory): New.
16321 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
16322 (PROMOTE_FUNCTION_RETURN): Likewise.
16323 (PROMOTE_PROTOTYPES): Likewise.
16324 (STRUCT_VALUE): Likewise.
16325 (RETURN_IN_MEMORY): Likewise.
16326 (EXPAND_BUILTIN_SAVEREGS): Likewise.
16327
1cc9f5f5
KH
163282004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16329
16330 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
16331 (arm_setup_incoming_varargs): Likewise.
16332 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
16333
558d352a
KH
163342004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16335
16336 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
16337 (cris_setup_incoming_varargs): Likewise.
16338 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
16339
2001a5cf
KH
163402004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16341
16342 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
16343 (ns32k_struct_value_rtx): Likewise.
16344 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
16345 NS32K_STRUCT_VALUE_REGNUM.
16346
f9ba5949
KH
163472004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16348
16349 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16350 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16351 (TARGET_STRUCT_VALUE_RTX): Likewise.
16352 (arm_struct_value_rtx): Likewise.
16353 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
16354 (STRUCT_VALUE): Likewise.
16355 (STRUCT_VALUE_REGNUM): Likewise.
16356 (PROMOTE_PROTOTYPES): Likewise.
16357
351a758b
KH
163582004-01-26 Kazu Hirata <kazu@cs.umass.edu>
16359
16360 * config/ia64/ia64-protos.h: Remove the prototype for
16361 ia64_setup_incoming_varargs and ia64_return_in_memory.
16362 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
16363 (TARGET_RETURN_IN_MEMORY): Likewise.
16364 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16365 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16366 (ia64_setup_incoming_varargs): Adjust the arguments to meet
16367 the requirement of TARGET_SETUP_INCOMING_VARARGS.
16368 (ia64_return_in_memory): Make it static. Change the return
16369 type to bool from int. Add an argument.
16370 (ia64_struct_value_rtx): New.
16371 * config/ia64/ia64.h: Remove commented-out definitions of
16372 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
16373 PROMOTE_PROTOTYPES.
16374 (RETURN_IN_MEMORY): Remove.
16375 (STRUCT_VALUE_REGNUM): Likewise.
16376 (STRICT_ARGUMENT_NAMING): Likewise.
16377
a7bba6ca
EB
163782004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
16379
16380 PR target/13666
16381 * config/sparc/sparc.c (function_arg_union_value): New function.
16382 (function_arg): Use it to deal with unions.
16383 (function_value): Likewise. Define 'regbase' only for ARCH64.
16384 Replace a conditional statement by a simpler one.
16385
6865f4cd
RS
163862004-01-26 Richard Sandiford <rsandifo@redhat.com>
16387
16388 * config/mips/mips.c (mips16_optimize_gp): Delete.
16389 (mips_reorg): Don't call it.
16390
2d6d0eb5
MH
163912004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16392
16393 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
16394 (floatunsqihf2): Remove operand 6.
16395 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
16396 fix patterns.
16397 (ldi_conditional, ldf_conditional): Validate operands.
16398
8f422192
MH
163992004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16400
16401 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
16402 (HAVE_GAS_HIDDEN): Undefine as interim measure.
52ad4d7b 16403
9c3602e4
MH
164042004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16405
16406 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
16407 memory references if TARGET_EXPOSE_LDP nonzero.
16408
a026b9d6
MH
164092004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16410
16411 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
52ad4d7b 16412
b7bbb574
MH
164132004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16414
16415 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
16416 invalid operand combinations.
16417
1e903c61
MH
164182004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16419
16420 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
16421 c4x_legitimate_address_p. Fix post_modify check.
b7bbb574 16422
1e903c61
MH
16423 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
16424 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
52ad4d7b 16425
3f12cd9b
KH
164262004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16427
16428 * config/pa/pa-protos.h: Remove the prototype for
16429 hppa_builtin_saveregs. Add a prototype for
16430 pa_return_in_memory.
16431 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
16432 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16433 (TARGET_STRUCT_VALUE_RTX): Likewise.
16434 (TARGET_RETURN_IN_MEMORY): Likewise.
16435 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16436 (pa_struct_value_rtx): Likewise.
16437 (pa_return_in_memory): Likewise.
16438 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
16439 PA_STRUCT_VALUE_REGNUM.
16440 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
16441 (EXPAND_BUILTIN_SAVEREGS): Remove.
16442 (PROMOTE_PROTOTYPES): Likewise.
16443 (PROMOTE_FUNCTION_RETURN): Likewise.
16444
f289e226
KH
164452004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16446
16447 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
16448 (TARGET_STRUCT_VALUE_RTX): Likewise.
16449 (vax_struct_value_rtx): Likewise.
16450 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
16451 VAX_STRUCT_VALUE_REGNUM.
16452 (PROMOTE_PROTOTYPES): Remove.
16453
12fb52cf 164542004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
52ad4d7b
ZW
16455
16456 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
16457
94632047 164582004-01-25 Chris Demetriou <cgd@broadcom.com>
fdcf1e1e
CD
16459
16460 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
16461 and MIPS64 have HI/LO interlocks. Update comment.
16462
7e43c821
KH
164632004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16464
16465 * config/stormy16/stormy16-protos.h: Remove the prototype for
16466 xstormy16_setup_incoming_varargs.
16467 * config/stormy16/stormy16.c
16468 (xstormy16_setup_incoming_varargs): Remove.
16469 (xstormy16_return_in_memory): New.
16470 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16471 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16472 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16473 (TARGET_STRUCT_VALUE_RTX): Likewise.
16474 (TARGET_RETURN_IN_MEMORY): Likewise.
16475 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
16476 (PROMOTE_FUNCTION_RETURN): Likewise
16477 (PROMOTE_PROTOTYPES): Likewise
16478 (RETURN_IN_MEMORY): Likewise
16479 (STRUCT_VALUE): Likewise
16480 (SETUP_INCOMING_VARARGS): Likewise
16481
62973ffe
RS
164822004-01-25 Richard Sandiford <rsandifo@redhat.com>
16483
16484 * config/mips/mips.c (mips_offset_within_object_p): New function.
16485 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
16486 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
16487 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
16488
8e67da21
KH
164892004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16490
16491 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
16492 (PROMOTE_FUNCTION_RETURN): Likewise.
16493
9024ea92
KH
164942004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16495
16496 * config/mn10300/mn10300-protos.h: Remove the prototype for
16497 mn10300_builtin_saveregs.
16498 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
16499 (TARGET_STRUCT_VALUE_RTX): Likewise.
16500 (TARGET_RETURN_IN_MEMORY): Likewise.
16501 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16502 (mn10300_return_in_memory): Likewise.
16503 (mn10300_builtin_saveregs): Make it static.
16504 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
16505 (RETURN_IN_MEMORY): Likewise.
16506 (STRUCT_VALUE): Likewise.
16507 (EXPAND_BUILTIN_SAVEREGS): Likewise.
16508
20b4e8ae
EB
165092004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
16510
16511 PR bootstrap/13853
16512 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
16513
cff555dc
KH
165142004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16515
16516 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
16517 using ccr.
16518
30f58b01
KH
165192004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16520
16521 * config/i860/i860-protos.h: Remove the prototype for
16522 i860_saveregs.
16523 * config/i860/i860.c (i860_saveregs): Make it static.
16524 (i860_struct_value_rtx): New.
16525 (TARGET_STRUCT_VALUE_RTX): Likewise.
16526 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16527 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
16528 I860_STRUCT_VALUE_REGNUM.
16529 (EXPAND_BUILTIN_SAVEREGS): Remove.
16530
341ec191
KH
165312004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16532
16533 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
16534 (TARGET_RETURN_IN_MEMORY): Likewise.
16535 (m68hc11_struct_value_rtx): Likewise.
16536 (m68hc11_return_in_memory): Likewise.
16537 * config/m68hc11/m68hc11.h: Remove a commented-out definition
16538 of PROMOTE_PROTOTYPES.
16539 (RETURN_IN_MEMORY): Remove.
16540 (STRUCT_VALUE_REGNUM): Likewise.
16541
344caf1b
KH
165422004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16543
16544 * config/mmix/mmix-protos.h: Remove the prototype for
16545 mmix_setup_incoming_varargs.
16546 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16547 (TARGET_STRUCT_VALUE_RTX): Likewise.
16548 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16549 (mmix_setup_incoming_varargs): Make it static.
16550 (mmix_struct_value_rtx): New.
16551 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
16552 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
16553 (STRUCT_VALUE_REGNUM): Remove.
16554 (SETUP_INCOMING_VARARGS): Likewise.
16555
0c8da560
KH
165562004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16557
16558 * config/mips/mips-protos.h: Remove the prototypes for
16559 mips_setup_incoming_varargs and mips_return_in_memory.
16560 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16561 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16562 (TARGET_PROMOTE_PROTOTYPES): Likewise.
16563 (TARGET_STRUCT_VALUE_RTX): Likewise.
16564 (TARGET_RETURN_IN_MEMORY): Likewise.
16565 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16566 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16567 (mips_setup_incoming_varargs): Match the prototype for
16568 TARGET_SETUP_INCOMING_VARARGS.
16569 (mips_return_in_memory): Make it static. Add argument fntype.
16570 (mips_strict_argument_naming): New.
16571 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
16572 (PROMOTE_FUNCTION_ARGS): Likewise.
16573 (PROMOTE_FUNCTION_RETURN): Likewise.
16574 (STRUCT_VALUE): Likewise.
16575 (RETURN_IN_MEMORY): Likewise.
16576 (SETUP_INCOMING_VARARGS): Likewise.
16577 (STRICT_ARGUMENT_NAMING): Likewise.
16578
49ca372c
KH
165792004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16580
16581 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
16582 (TARGET_RETURN_IN_MEMORY): Likewise.
16583 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16584 (ip2k_return_in_memory): Likewise.
16585 (ip2k_setup_incoming_varargs): Likewise.
16586 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
16587 (STRUCT_VALUE): Likewise.
16588 (STRUCT_VALUE_INCOMING): Likewise.
16589 (SETUP_INCOMING_VARARGS): Likewise.
16590
b069302c
KH
165912004-01-25 Kazu Hirata <kazu@cs.umass.edu>
16592
16593 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
16594 (TARGET_RETURN_IN_MEMORY): Likewise.
16595 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16596 (avr_return_in_memory): Remove.
16597 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
16598 (STRUCT_VALUE): Likewise.
16599 (STRUCT_VALUE_INCOMING): Likewise.
16600 (STRICT_ARGUMENT_NAMING): Likewise.
16601
e6d83128
JH
166022004-01-25 Jan Hubicka <jh@suse.cz>
16603
16604 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
16605
bcbc6b7f
RS
166062004-01-25 Richard Sandiford <rsandifo@redhat.com>
16607
16608 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
16609 (mips_regno_mode_ok_for_base_p): Declare.
16610 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
16611 (FRAME_POINTER_REGNUM): Renumber to 78.
16612 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
16613 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
16614 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
16615 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
16616 (REG_MODE_OK_FOR_BASE_P): Likewise.
16617 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
16618 entry for 77 to "$arg" and entry for 78 to "$frame".
16619 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
16620 (mips_reg_mode_ok_for_base_p): Remove.
16621 (mips_regno_mode_ok_for_base_p): New function, derived from old
16622 BASE_REG_P macro. Don't enforce the mips16 stack pointer
16623 restrictions unless we're being strict.
16624 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
16625
1f52178b
KH
166262004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16627
16628 * c-common.h: Fix comment typos.
16629 * c-decl.c: Likewise.
16630 * cgraphunit.c: Likewise.
16631 * combine.c: Likewise.
16632 * et-forest.c: Likewise.
16633 * flow.c: Likewise.
16634 * function.c: Likewise.
16635 * ifcvt.c: Likewise.
16636 * integrate.c: Likewise.
16637 * jump.c: Likewise.
16638 * postreload.c: Likewise.
16639 * varray.c: Likewise.
16640
56ae1316
KH
166412004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16642
16643 * doc/frontends.texi: Update copyright.
16644 * doc/gcov.texi: Likewise.
16645 * doc/gty.texi: Likewise.
16646 * doc/sourcebuild.texi: Likewise.
16647 * doc/standards.texi: Likewise.
16648
b1dccb28
HB
166492004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
16650
16651 PR target/12978
16652 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16653 Remove movstrqi_small because it conflicts with movstrqi_large.
16654
a2fef3a4
KH
166552004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16656
16657 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16658 (TARGET_STRUCT_VALUE_RTX): Likewise.
16659 (cris_struct_value_rtx): Likewise.
16660 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16661 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16662 STRUCT_VALUE_REGNUM.
16663 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16664
1f44254c
ILT
166652004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
16666
16667 PR bootstrap/13848
16668 * cse.c (cse_cc_succs): Change the mode of the source expression
16669 as soon as decide we need a new mode. Don't permit changing modes
16670 if we found a match in a successor block.
16671 (cse_condition_code_reg): Save original mode of source expression
16672 so that we know whether we have to change the mode in other
16673 insns.
16674
fdb1c7b3
JH
166752004-01-24 Jan Hubicka <jh@suse.cz>
16676
16677 * emit-rtl.c (change_address, adjust_address_1, offset_address,
16678 widen_memory_access): Return early when there is nothing to change.
16679
5473cfa7
JJ
166802004-01-24 Jakub Jelinek <jakub@redhat.com>
16681
16682 * simplify-rtx.c (simplify_relational_operation): Don't
16683 simplify address == constant into address + -constant == 0.
16684
a5153056
KH
166852004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16686
16687 * gcc.c (process_command): Don't internationalize the
16688 Copyright message.
16689 * mips-tfile.c (main): Likewise.
16690
174b84e5
AT
166912004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
16692
16693 * cse.c: (cse_cc_succs) Fix comparison warning.
16694
16537909
KH
166952004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16696
16697 * config/h8300/h8300.md: Remove extraneous USE in expanders.
16698
d0022200
KH
166992004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16700
16701 * config/h8300/h8300-protos.h: Provide prototypes for
16702 h8300_legitimate_constant_p and h8300_legitimate_address_p.
16703 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16704 (h8300_rtx_ok_for_base_p): Likewise.
16705 (h8300_legitimate_address_p): Likewise.
16706 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16707 h8300_legitimate_constant_p.
16708 (RTX_OK_FOR_BASE_P): Remove.
16709 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16710
ca04c5a9
KH
167112004-01-24 Kazu Hirata <kazu@cs.umass.edu>
16712
16713 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16714 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16715 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16716 (REG_OK_FOR_BASE_STRICT_P): Likewise.
16717 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16718 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16719 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16720 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16721
3e2a0bd2
JH
167222004-01-24 Jan Hubicka <jh@suse.cz>
16723
16724 * cselib.c (remove_useless_values): Do not access discarded values.
16725
b1adf557
JM
167262004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
16727
16728 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16729 arrays.
16730
55cd4633
KH
167312004-01-23 Kazu Hirata <kazu@cs.umass.edu>
16732
16733 * recog.c: Fix a typo in copyright.
16734
bbf294a5
AP
167352004-01-23 Andrew Pinski <apinski@apple.com>
16736
16737 * config/rs6000/rs6000.md (call): Fix misappiled patch.
16738 (call_value): Likewise.
16739
a475bff7
RH
167402004-01-23 Richard Henderson <rth@redhat.com>
16741
52ad4d7b
ZW
16742 PR opt/12941
16743 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16744 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16745 if SHIFT_COUNT_TRUNCATED is set.
a475bff7 16746
3712281f
BW
167472004-01-23 Bob Wilson <bob.wilson@acm.org>
16748
16749 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16750 separate real and imaginary parts.
16751 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16752
99e5c00b
HP
167532004-01-23 Hartmut Penner <hpenner@de.ibm.com>
16754
16755 PR target/13674
16756 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16757 loading into GPR.
16758
8b07361e
JH
167592004-01-23 Jan Hubicka <jh@suse.cz>
16760
a74ff877
JH
16761 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
16762 change.
16763
8b07361e
JH
16764 * alloc-pool.c (align_four): Kill.
16765 (create_alloc_pool): Align size to eight.
16766 (free_alloc_pool, free_pool): Invalidate deallocated data.
16767
e129d93a
ILT
167682004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
16769
16770 PR gcc/1532
16771 * cse.c (cse_change_cc_mode): New static function.
16772 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16773 (cse_condition_code_reg): New function.
16774 * rtl.h (cse_condition_code_reg): Declare.
16775 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16776 * target.h (struct gcc_target): Add fixed_condition_code_regs and
16777 cc_modes_compatible.
16778 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16779 (TARGET_CC_MODES_COMPATIBLE): Define.
16780 (TARGET_INITIALIZER): Add new initializers.
16781 * targhooks.c (default_cc_modes_compatible): New function.
16782 * targhooks.c (default_cc_modes_compatible): Declare.
16783 * hooks.c (hook_bool_intp_intp_false): New function.
16784 * hooks.h (hook_bool_intp_intp_false): Declare.
16785 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16786 (TARGET_CC_MODES_COMPATIBLE): Define.
16787 (ix86_fixed_condition_code_regs): New static function.
16788 (ix86_cc_modes_compatible): Likewise.
16789 * doc/tm.texi (Condition Code): Document new hooks.
16790
f6c930a3
RO
167912004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16792
16793 * fixinc/inclhack.def (bad_lval): Renamed to ...
16794 (alpha_bad_lval): ... this.
16795 Removed file list.
16796 Restrict to alpha*-dec-osf*.
16797 * fixinc/fixincl.x: Regenerate.
16798 * fixinc/tests/base/dirent.h: Remove, moving test ...
16799 * fixinc/tests/base/testing.h: ... here, reflecting new name.
16800
04b8f97f
ZW
168012004-01-23 Zack Weinberg <zack@codesourcery.com>
16802
30cab869 16803 PR c/13814
04b8f97f
ZW
16804 * c-decl.c (diagnose_mismatched_decls): Also discard a
16805 built-in if we encounter an old-style definition with the
16806 same name.
16807
1ab1739c
JJ
168082004-01-23 Jakub Jelinek <jakub@redhat.com>
16809
16810 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16811 set to default{32,64}.
16812
02731d29
JJ
168132004-01-21 Jakub Jelinek <jakub@redhat.com>
16814
16815 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16816 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16817
0a944ef6 168182004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
04b8f97f 16819 Olivier Hainque <hainque@act-europe.fr>
0a944ef6
EB
16820
16821 * fold-const.c (fold_binary_op_with_conditional_arg): Only
16822 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16823
0bfb39ef
DJ
168242004-01-23 Daniel Jacobowitz <drow@mvista.com>
16825
16826 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16827 size for minipool references.
16828
25348c94
RS
168292004-01-23 Roger Sayle <roger@eyesopen.com>
16830
16831 * real.c (real_floor, real_ceil): Tweak to allow input and output
16832 arguments to overlap.
16833 (real_round): New function to implement round(3m) semantics.
16834 * real.h (real_round): Prototype here.
16835 * builtins.c (fold_builtin_round): New function to constant fold
16836 round, roundf and roundl.
16837 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16838
0f2b41b2
AO
168392004-01-23 Alexandre Oliva <aoliva@redhat.com>
16840
16841 PR optimization/13819
04b8f97f 16842 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
0f2b41b2
AO
16843 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16844 (sh_handle_sp_switch_attribute): Remove warning.
16845
94632047 168462004-01-23 Jan Hubicka <jh@suse.cz>
72613dfa
JH
16847
16848 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
16849
7be4d808
R
168502004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
16851
16852 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16853 may or may not return non-NIL.
16854 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16855 check CANNOT_CHANGE_MODE_CLASS
16856
23bd7a93
JH
168572004-01-23 Jan Hubicka <jh@suse.cz>
16858
16859 * basic-block.h (PROP_POSTRELOAD): New macro.
16860 (CLEANUP_LOG_LINKS): New.
16861 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16862 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
16863
16864 * cselib.c (value_pool): New.
16865 (new_cselib_val): Use pool.
16866 (cselib_init): Initialize value_pool
16867 (cselib_finish): Free pool.
16868
5c4f4b18
EB
168692004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
16870
16871 * config/sparc/sparc.c (scan_record_type): New function.
16872 (function_arg_slotno): Use it to determine which kinds of
16873 registers the record can be passed in.
16874
95f576c1
JM
168752004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
16876
16877 * config/pa/fptr.c: Fix old-style definition.
16878
4c442790
PB
168792004-01-22 Paolo Bonzini <bonzini@gnu.org>
16880
16881 PR optimization/13724
16882 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
16883 represents the zero bits produced by a ZERO_EXTEND operation.
16884
dc4bbaf7
RS
168852004-01-22 Roger Sayle <roger@eyesopen.com>
16886
16887 PR optimization/13821
16888 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16889 correctly calculate the lowpart offset of the contracted subreg.
16890
b00567b0
ILT
168912004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
16892
16893 * doc/invoke.texi (Optimize Options): Note that --param arguments
16894 are subject to change without notice.
16895
d0d969f8
RO
168962004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16897
16898 * config.gcc (mips-sgi-irix6*o32): Removed.
16899 * config/mips/iris6-o32-as.h: Likewise.
16900 * config/mips/iris6-o32-gas.h: Likewise.
16901 * config/mips/iris6-o32.h: Likewise.
16902
7cf240d5
JH
169032004-01-22 Jan Hubicka <jh@suse.cz>
16904
16905 * cfgcleanup.c (first_pass): New static variable.
16906 (try_forward_edges): Add work limiting check for threading.
16907 (try_crossjump_bb): Add work limiting check for crossjumping.
16908 (try_optimize_cfg): Maintain first pass variable.
16909
b16417d6
BW
169102004-01-22 Bob Wilson <bob.wilson@acm.org>
16911
16912 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16913 handles complex and vector modes.
16914
c8796654
KH
169152004-01-22 Kazu Hirata <kazu@cs.umass.edu>
16916
16917 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16918 (REG_OK_FOR_BASE_P_STRICT): Likewise.
16919 (STRICT): Likewise.
16920
10176e28
DJ
169212004-01-22 Daniel Jacobowitz <drow@mvista.com>
16922
16923 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16924 (genrtl_for_stmt): Remove emit_nop calls.
16925
7bff636b
JDA
169262004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16927
16928 PR target/13713
16929 PR target/13324
16930 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16931 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16932 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16933
980e61bb
DJ
169342004-01-22 Daniel Jacobowitz <drow@mvista.com>
16935
16936 * config/arm/arm.c: Include "debug.h".
04b8f97f 16937 (thumb_pushpop): Take two new arguments. Add some commentary.
980e61bb
DJ
16938 Output frame information when pushing.
16939 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16940 thumb_pushpop.
16941 (thumb_output_function_prologue): Likewise. Accumulate a CFA
16942 offset, and pass it to thumb_pushpop. Output CFI information.
16943 (thumb_expand_prologue): Add some frame-related markers and notes.
16944
0067d121
UW
169452004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
16946
16947 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16948 for TARGET_64BIT.
16949 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16950 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16951
bb51e270
RS
169522004-01-22 Roger Sayle <roger@eyesopen.com>
16953 Paolo Bonzini <bonzini@gnu.org>
16954
16955 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16956 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16957 * rtl.h (subreg_lsb_1): Prototype here.
16958 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16959 sign extensions.
16960
9c49953c
KH
169612004-01-22 Kazu Hirata <kazu@cs.umass.edu>
16962
16963 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16964 macro need not be defined if jump-tables should contain
16965 relative addresses only when -fPIC or -fPIC is in effect.
16966
c582d54a
JH
169672004-01-22 Jan Hubicka <jh@suse.cz>
16968
16969 * alias.c (reg_base_value): Turn into varray.
16970 (reg_base_value_size): Kill.
16971 (old_reg_base_value): New deletable varray.
16972 (alias_invariant_size): New variable.
16973 (REG_BASE_VALUE): Update to use varray.
16974 (find_base_value): Likewise.
16975 (record_set): Likewise.
16976 (record_base_value): Likewise.
16977 (memrefs_conflict_p): Likewise.
16978 (record_set): Likewise
16979 (record_base_value): Likewise.
16980 (memrefs_conflict_p): Use alias_invariant_size.
16981 (init_alias_analysis): Use varray; set alias_invariant_size;
16982 rescale other arrays to be sized by maxreg.
16983 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16984
8a98812c
EB
169852004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
16986
16987 * config/sparc/sparc.c (function_arg_slotno): Use
16988 FLOAT_TYPE_P to detect FP fields in structures.
16989 (function_arg_record_value_1): Likewise.
16990 (function_arg_record_value_2): Likewise.
16991
0de456a5
JH
169922004-01-22 Jan Hubicka <jh@suse.cz>
16993
16994 * function.c (allocate_struct_function): Do not initialize expr, emit
16995 and varasm.
16996 (prepare_function_start): Do it here.
16997 * c-parse.in (maybe_type_qual): Do not produce line number notes.
16998
1fd05073
EB
169992004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
17000
17001 PR target/13559
17002 * config/sparc/sparc.c (function_arg_record_value_3): Revert
17003 to 'word_mode' once the first slot has been filled.
17004
b2f24c85
EB
170052004-01-22 Olivier Hainque <hainque@act-europe.fr>
17006
17007 * config/sparc/sparc.c (function_arg_record_value_1): Fix
17008 computation of the number of integer registers required.
17009
b4e0dd8e
KH
170102004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17011
17012 * config/i386/i386.md: Simplify certain comparisons of
17013 const_int.
17014
5cc5eddc
AP
170152004-01-21 Andrew Pinski <apinski@apple.com>
17016
17017 PR target/13785
04b8f97f 17018 * config/rs6000/rs6000.md (call_value): Force operand
5cc5eddc
AP
17019 1 not operand 0 into a register.
17020
711d8c91
KH
170212004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17022
17023 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
17024 unwind-dw2-fde.h: Update copyright.
17025
d1885651
JDA
170262004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17027
17028 * pa-protos.h: Update copyright.
17029 * pa.h: Likewise.
17030 * pa.md: Likewise.
17031
40ca90bf 170322004-01-21 Caroline Tice <ctice@apple.com>
ec13ba83 17033
6ed854f1 17034 PR target/12308
04b8f97f 17035 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
ec13ba83
CT
17036 flags register.
17037 (fix_truncdfdi2): Likewise.
17038 (fix_truncsfdi2): Likewise.
17039 (*fix_truncdi_1): Likewise.
17040 (fix_truncxfsi2): Likewise.
17041 (fix_truncdfsi2): Likewise.
17042 (fix_truncsfsi2): Likewise.
17043 (*fix_truncsi_1): Likewise.
17044 (fix_truncxfhi2): Likewise.
17045 (fix_truncdfhi2): Likewise.
17046 (fix_truncsfhi2): Likewise.
17047 (*fix_trunchi_1): Likewise.
04b8f97f 17048
d9221e01
KH
170492004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17050
17051 * alias.c, basic-block.h, c-common.c, c-common.h,
17052 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
17053 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
17054 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
17055 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
17056 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
17057 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
17058 genautomata.c, genconditions.c, genemit.c, genflags.c,
17059 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
17060 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
17061 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
17062 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
17063 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
17064 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
17065 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
17066 unwind.h, varray.c, varray.h: Update copyright.
17067
6d6b0a12
KH
170682004-01-21 Kazu Hirata <kazu@cs.umass.edu>
17069
17070 * config/h8300/coff.h: Update copyright.
17071 * config/h8300/elf.h: Likewise.
17072 * config/h8300/h8300-protos.h: Likewise.
17073 * config/h8300/h8300.c: Likewise.
17074 * config/h8300/h8300.h: Likewise.
17075 * config/h8300/h8300.md: Likewise.
17076
4b60eb3b
JDA
170772004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17078
17079 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
17080 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
17081 ultrix_unistd): New hacks.
17082 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
17083 ULTRIX_CONST2_CHECK): Add checks.
17084 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
17085 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
17086 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
17087 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
17088 * fixinc/tests/base/locale.h: New file.
17089 * fixinc/fixincl.x: Rebuilt.
17090
bbf5a54d
AJ
170912004-01-21 Andreas Jaeger <aj@suse.de>
17092 Michael Matz <matz@suse.de>
17093
17094 * doc/extend.texi (Extended Asm): Clarify memory clobber.
17095
bfccaa6f
JJ
170962004-01-21 Jakub Jelinek <jakub@redhat.com>
17097
17098 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
17099 _Jv_RegisterClasses through a function pointer.
17100
c3cda381
FH
171012004-01-21 Falk Hueffner <falk@debian.org>
17102
17103 PR target/12898
17104 * config/alpha/alpha.c (alpha_emit_set_const_1): If
17105 no_new_pseudos, use gen_rtx_SET directly for SImode constants
17106 which need multiple instructions to emit.
17107
2a2001be
IK
171082004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
17109
17110 * config/m32r/m32r.h (CPP_SPEC): Define.
17111
1ef82ef2
ZW
171122004-01-21 Zack Weinberg <zack@codesourcery.com>
17113
17114 * c-decl.c (merge_decls): Kill different_binding_level and
17115 different_tu arguments; simplify throughout.
17116 (duplicate_decls): Likewise.
17117 (pushdecl, merge_translation_unit_decls): Update calls to
17118 duplicate_decls.
17119
13544b81
KG
171202004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17121
17122 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
17123 $(SYSTEM_H).
17124 (print-rtl1.o): Depend on $(SYSTEM_H).
17125
a541f69d
KC
171262004-01-20 Kelley Cook <kcook@gcc.gnu.org>
17127
17128 PR bootstrap/12730
17129 * configure.ac: Delete definition and subsitution of docdir.
17130 Add info, man, srcman and srcinfo to target hooks. Create doc/
17131 directory.
17132 * configure: Regenerate.
17133 * Makefile.in: Don't substitute docdir and delete all references
17134 throughout.
17135 (MAKEINFOFLAGS): Define.
17136 (stmp-docobjdir): Delete.
17137 (INFOFILES, MANFILES): Define.
17138 (info): Call lang.info, srcinfo and lang.srcinfo.
17139 (generated-manpages): Call lang.man, srcman and lang.srcman.
17140 (srcinfo, srcman): New rules to copy back files to source directory.
17141 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
17142 (install-man): Revamp rule.
17143 (clean): Update dvi directory.
17144 (distclean): Delete TAGS from front end directorys.
17145 (maintainer-clean): Delete all document files in source directory.
17146
17147 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
17148 (objc.srcman, objc.srcinfo): Likewise.
17149
793146e3
BK
171502004-01-20 Bruce Korb <bkorb@gnu.org>
17151
17152 * fixinc/inclhack.def(math_exception): bypass only for glibc.
17153 (matherr_decl): rename & relocate as exception_structure.
17154 This fix must precede the math_exception fix.
17155
fdb33708
RS
171562004-01-20 Roger Sayle <roger@eyesopen.com>
17157
17158 * fold-const.c (fold_convert): Rename to fold_convert_const.
17159 (fold_convert_const): Change arguments to take a tree_code,
17160 a type and the operand/expression to be converted. Return
17161 NULL_TREE if no simplification is possible. Add support for
17162 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
17163 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
17164 Adjust call to fold_convert to match new fold_convert_const.
17165 Avoid modifying the tree passed to fold in-place.
17166
34c80057
AM
171672004-01-21 Alan Modra <amodra@bigpond.net.au>
17168
17169 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
17170 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
17171 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
17172
a4295210
JDA
171732004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17174
17175 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
17176 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
17177 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
17178 (emit_move_sequence): Check scratch_reg first in various if statements.
17179 Extend source simplification to handle all 64-bit CONST_INTs.
17180 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
17181 frame size.
17182 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
17183 frame offset calculations.
17184 * pa.h (NEW_HP_ASSEMBLER): Add comment.
17185 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
17186 LEGITIMATE_64BIT_CONST_INT_P): Define.
17187 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
17188 any CONST_INT as legitimate during and after reload.
17189 (VAL_32_BITS_P, INT_32_BITS): Define.
17190 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
17191
3e89ed8d
JH
171922004-01-20 Jan Hubicka <jh@suse.cz>
17193
17194 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
17195 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
17196 containing hard regs are shared.
17197 (gen_hard_reg_clobber): New function.
17198 (hard_reg_clobbers): New array.
17199 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
17200 (copy_rtx): Do not copy clobbers containing hard regs.
17201 * rtl.h (gen_hard_reg_clobber): Declare.
17202
9b57b627
JH
172032004-01-20 Jan Hubicka <jh@suse.cz>
17204
17205 * varray.c: Include hashtab.h
17206 (varray_descriptor): New structure.
17207 (hash_descriptor, eq_descriptor, varray_descriptor,
17208 print_statistics): New static functions
17209 (varray_init, varray_grow): Update statistics
17210 (dump_varray_statistics): New function.
17211 * varray.h (dump_varray_statistics): Declare.
17212 * toplev.c (finalize): Call it.
17213 * Makefile.in (varray.o): Add dependency.
17214
6a59927d
JH
172152004-01-20 Jan Hubicka <jh@suse.cz>
17216
17217 * cselib.c: Include alloc-pool.h
17218 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
17219 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
17220 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
17221 unchain_one_elt_loc_list_pool, unchain_one_value,
17222 new_cselib_val): Simplify using allocpool.
17223 (cselib_init): Initialize allocpools.
17224 (cselib_finish): Finish allocpools.
17225 * Makefile.in (cselib.o): Depend on alloc-pool.h
17226
3c53850d
RS
172272004-01-20 Richard Sandiford <rsandifo@redhat.com>
17228
17229 * config/mips/mips.c (mips_load_call_address): Make the call insn
17230 use $gp if it could be calling a lazy binding stub.
17231
101ad855
KH
172322004-01-20 Kazu Hirata <kazu@cs.umass.edu>
17233
17234 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
17235 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17236 (TARGET_STRUCT_VALUE_RTX): Likewise.
17237 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
17238 (PROMOTE_FUNCTION_RETURN): Remove.
17239 (STRUCT_VALUE): Remove.
17240
c099ba28
DC
172412004-01-20 Denis Chertykov <denisc@overta.ru>
17242
03b82c00 17243 PR bootstrap/13735
c099ba28
DC
17244 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
17245 register as pointer after reload.
17246
c8b6fae3
ZD
172472004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
17248
17249 PR optimization/12440
17250 * loop.c: Include ggc.h.
17251 (loop_optimize): Run garbage collector between optimization of loops.
17252 * Makefile.in (loop.o): Add GGC_H dependency.
17253
c72d6c26
HP
172542004-01-20 Hartmut Penner <hpenner@de.ibm.com>
17255
1ef82ef2 17256 * gcc/config/rs6000/rs6000.c (function_arg) Handle
c72d6c26
HP
17257 vector register special in function without prototype.
17258 (function_arg_advance): Vector parameters get always
17259 GPRs allocated for the linux64 target.
17260
91e736f9
KI
172612004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17262
17263 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
17264 not TARGET_M32RX_MASK.
17265
4043d6fb
EB
172662004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
17267
17268 PR target/13557
17269 * config/sparc/sparc.c (function_arg): Reorder the cases.
17270
50f59cd7
PB
172712004-01-19 Per Bothner <per@bothner.com>
17272
17273 Move cpp_reader's line_maps field to a shared global.
17274 * cpphash.h (cpp_reader): Rename line_maps field to line_table
17275 and change the type to a pointer rather than a struct.
17276 * cppinit.c (cpp_push_main_field): Adjust accordingly.
17277 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
17278 Likewise.
17279 * cppfiles.c (validate_pch): Likewise.
17280 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
17281 Likewise.
17282 * cpperror.c (print_location): Likewise.
17283 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
17284 * cppinit.c (cpp_create_reader): Handle new parameter.
17285 (cpp_destroy): Don't free line_maps - that's no longer our job.
17286 * input.h (line_table): New variable.
17287 * toplev.c (line_table): Declare variable.
17288 (general_init): Initialize line_table.
17289 * c-opts.c (c_common_init_options): Pass line_table to
17290 cpp_create_reader.
17291 * fix-header.c (read_scan_file): New local variable line_table.
17292 Initialize, and pass it to cpp_create_reader.
17293 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
17294 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
17295
172962004-01-19 Per Bothner <per@bothner.com>
9132fbb7
PB
17297
17298 Implement a cache for linemap_lookup.
17299 * line-map.h (struct_line_maps): Add cache field.
17300 * line-map.c (linemap_init): Zero cache field.
17301 (linemap_add): Set cache field to offset of newly allocated map.
17302 (linemap_lookup): Use and set cache field.
17303
26d107db
KK
173042004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
17305
17306 PR optimization/13567
17307 * cse.c (cse_basic_block): Call cse_insn with a non-null
17308 libcall_insn for the last SET insn of a no-confilict block.
17309
e165d61b
KC
173102004-01-20 Kelley Cook <kcook@gcc.gnu.org>
17311
1ef82ef2 17312 * Makefile.in (target_noncanonical, program_transform_name): Use
e165d61b 17313 immediate define instead of deferred.
1ef82ef2 17314 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
e165d61b
KC
17315 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
17316 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
17317 deferred backquote.
17318
53cd18ec
JM
173192004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
17320
17321 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
17322 true unconditionally.
17323 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
17324 Remove.
17325 (build_unary_op, build_modify_expr): Don't handle extended
17326 lvalues.
17327 (build_component_ref, build_conditional_expr): Call non_lvalue
17328 instead of pedantic_non_lvalue.
17329 (build_c_cast): Don't condition use of non_lvalue on pedantic.
17330 * fold-const.c (fold): Don't check pedantic directly for
17331 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
17332 passed to pedantic_non_lvalue.
17333 * doc/extend.texi: Remove documentation of extended lvalues.
17334
9ce79a7a
RS
173352004-01-19 Roger Sayle <roger@eyesopen.com>
17336
17337 PR optimization/5263
17338 * simplify-rtx.c (associative_constant_p): Delete.
17339 (simplify_associative_operation): Rewrite to linearize terms, and
17340 attempt to simplify new term against both left and right subterms.
17341 (simplify_binary_operation): Call swap_commutative_operands_p on
17342 op0 and op1, not trueop0 and trueop1. Move the initialization of
17343 trueop0 and trueop1 down to where first needed.
17344 (simplify_relational_operation): Likewise.
17345 * rtlanal.c (commutative_operand_precedence): Also order constant
17346 operands using avoid_constant_pool_reference.
17347
62e88293
RH
173482004-01-19 Richard Henderson <rth@redhat.com>
17349
1ef82ef2
ZW
17350 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
17351 don't check memory mode.
17352 (unaligned_memory_operand): Likewise.
17353 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
17354 abort for op0 not MEM.
62e88293 17355
1ef82ef2
ZW
17356 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
17357 is not a reg, copy to a scratch first.
17358 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
17359 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
17360 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
17361 (reload_inqi, reload_inhi): Fix mode of op0.
17362 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
17363 reload_outhi_help): Likewise. Use define_insn_and_split.
62e88293 17364
1ef82ef2
ZW
17365 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
17366 as well as $29 dead.
62e88293 17367
2f3321ca
EB
173682004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
17369
17370 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
17371 "tls_object" for thread-local objects.
17372 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
17373 "#tls" for thread-local sections.
17374 * configure.ac (thread-local checks): Specify --fatal-warnings in
17375 every binutils-specific checks. For sparc*-*-*, test whether the
17376 OS is Solaris and the tools are native and act accordingly.
17377 * configure: Rebuild.
17378
6fe37bc4
JL
173792004-01-19 Jeff Law <law@redhat.com>
17380
17381 * contrib.texi: Update Paolo Carlini's entry. New entries for
17382 Jerry Quinn and Petur Runolfsson.
1ef82ef2 17383
68f48f39
RS
173842004-01-19 Roger Sayle <roger@eyesopen.com>
17385
17386 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
17387 size, don't use the larger zero-extending loads.
17388
5c9948f4
RH
173892004-01-19 Richard Henderson <rth@redhat.com>
17390
17391 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
17392 * alpha.md (UNSPEC_NT_LDA): Remove.
17393 (UNSPEC_CVTLQ, cvtlq): New.
17394 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
17395 (extendsidi2_fix): Remove.
17396 (extendsidi2 splitter): Use cvtlq.
17397 (extendsidi2 fp peepholes): Remove.
17398 (cvtql): Use SFmode instead of SImode.
17399 (fix_trunc?fsi): Update to match.
17400 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
17401 (movsi): Rename from movsi_nofix, remove f alternatives.
17402 (movsi_nt_vms): Similarly.
17403 (movsi_fix, movsi_nt_vms_fix): Remove.
17404 (nt_lda): Remove.
17405 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
17406
9b0436b7
JH
174072004-01-19 Jan Hubicka <jh@suse.cz>
17408
17409 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
17410 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
17411 list.
17412 (cgraph_remove_unreachable_nodes): New function
17413 (cgraph_decide_inlining_of_small_function): Fix pasto.
17414 (cgraph_decide_inlining_incrementally): Fix pasto.
17415 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
17416
8c80adb7
SB
174172004-01-19 Steven Bosscher <stevenb@suse.de>
17418
17419 * gengtype.c (header_file): Make it static.
17420 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
17421 * gengtype.h (header_file): No longer extern.
17422
0ede749d
KH
174232004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17424
17425 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
17426 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
17427 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
17428
41cbdcd0
KH
174292004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17430
17431 * stmt.c (HAVE_casesi): Define it not already defined.
17432 (HAVE_tablejump): Likewise.
17433 (expand_end_case_type): Resort to the binary tree method if
17434 neither casesi or tablejump is available.
17435
5cfc5f84
DJ
174362004-01-18 Daniel Jacobowitz <drow@mvista.com>
17437
17438 * final.c (final_scan_insn): Make non-static again.
17439 * output.h (final_scan_insn): Re-add prototype.
17440 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
17441 to final_scan_insn call.
17442 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
17443 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
17444 * config/pa/pa.c (output_lbranch, output_call): Likewise.
17445 * config/sh/sh.c (print_slot): Likewise.
17446 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
17447 (output_sibcall, sparc_flat_function_epilogue): Likewise.
17448
3348b696
JH
174492004-01-18 Jan Hubicka <jh@suse.cz>
17450
17451 * basic-block.h (try_redirect_by_replacing_jump): Declare.
17452 * cfgcleanup.c (try_optimize_cfg): Use it.
17453 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
17454 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
17455 Kill hack.
17456 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
17457
17458 Revert:
17459 2004-01-16 Geoffrey Keating <geoffk@apple.com>
17460
17461 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17462 even after reload, just don't remove the actual jump tables.
17463
72d89d35
KH
174642004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17465
17466 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
17467
07b50aad
KH
174682004-01-18 Kazu Hirata <kazu@cs.umass.edu>
17469
17470 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
17471 the size of a pointer in bytes.
17472
6e46ab25
RS
174732004-01-18 Roger Sayle <roger@eyesopen.com>
17474
17475 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
17476 live "next" variable, which could lead to an infinite loop.
17477
3ce5437a
AP
174782004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
17479
b4be9e8e
AP
17480 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
17481 block.
17482
3ce5437a
AP
17483 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17484 Check for NULL in the chain and remove repeated code.
17485
20c361f3
JH
174862004-01-18 Jan Hubicka <jh@suse.cz>
17487
17488 * coverage.c (checksum_string): Rename to ...
17489 (coverage_checksum_string): ... this one, Use crc32_string; recognize
17490 names containing random number and zero the number out in order to get
17491 match.
17492
cacb5bba
RS
174932004-01-18 Richard Sandiford <rsandifo@redhat.com>
17494
17495 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
17496
daf2f129
JM
174972004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17498
17499 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
17500 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
17501 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
17502 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
17503 doc/trouble.texi: Remove trailing whitespace.
17504
b85aed9e
RS
175052004-01-18 Richard Sandiford <rsandifo@redhat.com>
17506
1c0f3fac 17507 PR target/7618
b85aed9e
RS
17508 * config/mips/mips.c: Include cfglayout.h.
17509 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17510 (mips_unspec_offset_high): Add temporary register argument.
17511 (mips_load_call_address): New function, split out from...
17512 (mips_expand_call): ...here.
17513 (mips_output_cplocal): New function.
17514 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
17515 (mips_emit_loadgp): New function, split out from...
17516 (mips_expand_prologue): ...here.
17517 (mips_output_mi_thunk): New function.
17518
e5d95b69
BI
175192004-01-17 Bernardo Innocenti <bernie@develer.com>
17520
17521 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
17522 mcpu32): Remove redundant checks for implied target predefines.
17523
19d66194
AP
175242004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
17525
17526 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17527 Return type is unsigned int not int.
17528 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17529 Likewise.
17530
95fef11f
JM
175312004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17532
17533 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
17534 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
17535 "GNU/Linux" and "Microsoft Windows" terminology.
17536
3ab51846
JM
175372004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
17538
17539 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
17540 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
17541 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
17542 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
17543 @smallexample instead of @example.
17544
cfbed37c
ZL
175452004-01-17 Ziemowit Laski <zlaski@apple.com>
17546
17547 * objc/objc-act.c (build_objc_method_call): Use target
1ef82ef2 17548 hooks instead of macros to determine if ..._stret
cfbed37c
ZL
17549 dispatchers should be used (NeXT runtime only).
17550
bef5105b
RS
175512004-01-17 Roger Sayle <roger@eyesopen.com>
17552
17553 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
17554 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
17555
dd3adcf8
DJ
175562004-01-17 Daniel Jacobowitz <drow@mvista.com>
17557
17558 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
17559 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
17560 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
17561 macros.
17562 * reload1.c (emit_reload_insns): Use them.
17563 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
17564 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
17565 for NULL PATTERN.
17566
589fe865
DJ
175672004-01-17 Daniel Jacobowitz <drow@mvista.com>
17568
17569 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
17570 (final_scan_insn): Update to take an additional SEEN argument. Emit
17571 a line note after the prologue. Make static.
17572 (line_note_exists): Remove.
17573 (final): Don't initialize line_note_exists. Update call to
17574 final_scan_insn.
17575 * output.h (final_scan_insn): Remove prologue.
17576 * function.c (set_insn_locators): Update comment.
17577 (thread_prologue_and_epilogue_insns): Add a comment.
17578
95727fb8
AP
175792004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
17580
17581 PR target/10781
17582 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
17583 Prototype.
17584 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17585 New function.
17586 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
17587 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
17588 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
17589
f2e16e97
JH
175902004-01-17 Jan Hubicka <jh@suse.cz>
17591
26c0473b
JH
17592 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
17593 commit.
17594
f2e16e97
JH
17595 * toplev.c (HAVE_conditional_execution): Provide default.
17596 (rest_of_handle_reorder_blocks): For conditional_execution target
17597 update liveness once after all transformations
17598 (rest_of_compilation): Do crossjumping before ce3.
17599
f103e34d
GK
176002004-01-17 Geoffrey Keating <geoffk@apple.com>
17601
17602 * alias.c (new_alias_set): Mark last_alias_set for PCH.
17603 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
17604 for PCH.
17605 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
17606 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
17607 (get_TOC_alias_set): Mark 'set' for PCH.
17608
ab530ea8
GK
176092004-01-16 Geoffrey Keating <geoffk@apple.com>
17610
17611 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
17612 even after reload, just don't remove the actual jump tables.
17613
53dd3be3 176142004-01-17 J. Brobecker <brobecker@gnat.com>
e7d23ce3
B
17615
17616 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
17617 Remove checks for is_ada() and TREE_UNSIGNED.
17618 (subrange_type_die): Emit a byte_size attribute if the subrange
17619 type size is different from the base type size.
17620 (modified_type_die): Replace call to is_ada_subrange_type() by
17621 call to is_subrange_type().
17622
8582b18a
AP
176232004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
17624
17625 * config/sh/sh.c: Include ggc.h.
17626
73e61092
GK
176272004-01-16 Geoffrey Keating <geoffk@apple.com>
17628
17629 * Makefile.in (MD5_H): New.
17630 (fold-const.o): Depend on md5.h.
17631 (dwarf2out.o): Likewise.
17632 (cppfiles.o): Likewise.
17633 * cppfiles.c: Include md5.h.
17634 (should_stack_file): Check against list read from PCH file.
17635 (struct pchf_data): New.
17636 (pchf): New variable.
17637 (struct pchf_adder_info): New.
17638 (pchf_adder): New.
17639 (pchf_save_compare): New.
17640 (_cpp_save_file_entries): New.
17641 (_cpp_read_file_entries): New.
17642 (struct pchf_compare_data): New.
17643 (pchf_compare): New.
17644 (check_file_against_entries): New.
17645 * cpphash.h (_cpp_save_file_entries): Prototype.
17646 (_cpp_read_file_entries): Prototype.
17647 * cpppch.c (cpp_write_pch_state): Write the list of headers.
17648 (cpp_read_state): Read the list of headers.
17649
3b75d796
JH
176502004-01-17 Jan Hubicka <jh@suse.cz>
17651
17652 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17653 builtin_expect specially.
17654 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17655 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17656 * invoke.texi (max-inline-insns-single): Set to 100.
17657 (large-function-insns): Set to 3000.
17658
cf551fba
EC
176592004-01-16 Eric Christopher <echristo@redhat.com>
17660 Chandrakala Chavva <cchavva@redhat.com>
17661
17662 * cppcharset.c (one_iso88591_to_utf8): New function.
17663 (convert_iso88591_utf8): Ditto. Use.
17664 (conversion_tab): Use.
17665 (_cpp_input_to_utf8): New function.
17666 (_cpp_init_iconv_buffer): Ditto.
17667 (_cpp_close_iconv_buffer): Ditto.
17668 * cpphash.h: Prototype new functions.
17669 (cpp_buffer): Add input_cset_desc.
17670 * cppinit.c: Add input_charset default.
17671 * cpplib.c (cpp_push_buffer): Support init and
17672 close of iconv.
17673 * cpplib.h (cpp_options): Add input_charset.
17674
510d1e80
KH
176752004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17676
17677 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17678 * config/alpha/unicosmk.h: Remove a commented-out definition
17679 of ASM_OUTPUT_SECTION_NAME.
17680 * config/stormy16/stormy16.h: Likewise.
17681
fb2c2608
RO
176822004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
17683
17684 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17685 (alpha___extern_prefix_sys_stat): ... this.
17686 Apply to <sys/mount.h>, too.
17687 Tweak to match more variations.
17688 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17689
17690 * fixinc/inclhack.def (alpha___extern_prefix,
cf551fba 17691 alpha___extern_prefix_standards): New hacks to obey
c53bdcf5 17692 __PRAGMA_EXTERN_PREFIX.
fb2c2608
RO
17693 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17694 test.
17695 * fixinc/tests/base/standards.h: Likewise.
cf551fba 17696
fb2c2608
RO
17697 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17698 variations.
17699 New testcase.
17700 * fixinc/tests/base/pthread.h: Handle it.
cf551fba 17701
fb2c2608
RO
17702 * fixincl/inclhack.def (bad_lval): Sort file list.
17703 Add many missing files up to Tru64 UNIX V5.1B.
17704 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17705 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17706 order.
cf551fba 17707
fb2c2608
RO
17708 * fixinc/fixincl.x: Regenerate.
17709
79a76d65
MM
177102004-01-16 Mark Mitchell <mark@codesourcery.com>
17711
17712 * version.c (version_string): Change to 3.5.0.
17713 * doc/include/gcc-common.texi (version-GCC): Likewise.
17714
965514bd
JH
177152004-01-16 Jan Hubicka <jh@suse.cz>
17716
17717 * i386.md (load_tp_di): Fix pasto.
17718
17719 PR opt/13608
17720 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17721
17722 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17723 pp_c_character_constant, pp_c_floating_constant,
17724 pp_c_additive_expression, pp_c_shift_expression,
17725 pp_c_equality_expression, pp_c_and_expression,
17726 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17727 pp_c_logical_and_expression): Remove inline modifier.
17728 * dwarf2out.c (get_AT): Likewise.
17729 * et-forest.c (et_splay): Likewise.
17730 * ra.h (ra_alloc, ra_calloc): Likewise
17731
87b483a1
KH
177322004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17733
17734 * config/frv/frv-protos.h: Fix comment formatting.
17735 * config/frv/frv.c: Likewise.
17736 * config/frv/frv.h: Likewise.
17737 * config/frv/frv.md: Likewise.
17738 * config/frv/frvbegin.c: Likewise.
17739 * config/frv/frvend.c: Likewise.
17740
16201823
KH
177412004-01-16 Kazu Hirata <kazu@cs.umass.edu>
17742
17743 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17744 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17745 LINKER_DOES_NOT_WORK_WITH_DWARF2.
17746 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17747
115df136
R
177482004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
17749
5ed5fd90 17750 PR 11864
115df136
R
17751 * postreload.c (reload_cse_simplify_operands): Don't remove
17752 implicit extension from LOAD_EXTEND_OP.
17753
e24e7211
JH
177542004-01-16 Jan Hubicka <jh@suse.cz>
17755
8c80adb7
SB
17756 PR opt/11350
17757 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
e24e7211 17758 after reload.
8c80adb7
SB
17759 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17760 rtl_try_redirect_by_replacing_branch): Likewise.
e24e7211 17761
b0fadda7
GK
177622004-01-15 Geoffrey Keating <geoffk@apple.com>
17763
b604074c
GK
17764 PR pch/13689
17765 * alias.c (struct alias_set_entry): Mark for GC.
17766 (alias_sets): Make static, mark for GC.
17767 (record_alias_subset): Use GC to allocate alias structures.
17768 * varray.c (element): Make generic varrays GCed.
17769
a6dd4094
GK
17770 PR pch/13361
17771 * c-typeck.c (constructor_asmspec): Delete.
17772 (struct initializer_stack): Delete field 'asmspec'.
17773 (start_init): Delete saving of asmspec.
17774 (finish_init): Don't update constructor_asmspec.
17775 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17776 * stmt.c (expand_asm): Duplicate strings from tree.
17777 (expand_asm_operands): Likewise.
17778 * tree.c (tree_size): Update computation of size of STRING_CST.
17779 (make_node): Don't make STRING_CST nodes.
17780 (build_string): Allocate string with tree node.
17781 * tree.def (STRING_CST): Update comment.
17782 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17783 (tree_string): Place contents of string in tree node.
17784 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17785 from tree.
17786
b0fadda7
GK
17787 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17788 altivec operands.
17789
e0a21ab9
KH
177902004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17791
17792 * c-common.h: Fix comment formatting.
17793 * c-cppbuiltin.c: Likewise.
17794 * c-pragma.c: Likewise.
17795 * calls.c: Likewise.
17796 * collect2.c: Likewise.
17797 * cppcharset.c: Likewise.
17798 * cpptrad.c: Likewise.
17799 * dbxout.c: Likewise.
17800 * defaults.h: Likewise.
17801 * dwarf2out.c: Likewise.
17802 * fold-const.c: Likewise.
17803 * genautomata.c: Likewise.
17804 * genconditions.c: Likewise.
17805 * genflags.c: Likewise.
17806 * gengtype.c: Likewise.
17807 * integrate.c: Likewise.
17808 * loop.c: Likewise.
17809 * predict.c: Likewise.
17810 * sdbout.c: Likewise.
17811
f57fc998
ZW
178122004-01-15 Zack Weinberg <zack@codesourcery.com>
17813
17814 * config/ia64/ia64.md (*movti_internal): C output template
17815 extracted to ia64.c.
17816 (*movti_internal_reg): Delete.
17817 (reload_inti, reload_outti): Use the correct mode on operand 2
17818 in the first place, don't fix it up in the output template.
17819 (movtf, reload_ointf, reload_outtf): New expanders.
17820 (*movtf_internal): New define_insn_and_split.
17821 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17822 make static; do not hand TFmode CONST_DOUBLEs to split_double.
17823 (ia64_split_tmode_move): New function, body mostly pulled
17824 from ia64.md:*movti_internal.
17825 (ia64_function_arg_words): New function, extracted common
17826 logic from ia64_function_arg et seq.
17827 (ia64_function_arg_offset): Likewise. Handle correctly the
17828 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17829 (ia64_function_arg, ia64_function_arg_partial_nregs)
17830 (ia64_function_arg_advance): Use ia64_function_arg_words and
17831 ia64_function_arg_offset.
17832 (ia64_function_value): TCmode does not go in float regs.
17833 (ia64_secondary_reload_class): Also handle TFmode.
17834 * config/ia64/ia64-protos.h: Remove prototype for
17835 ia64_split_timode; add prototype for ia64_split_tmode_move.
17836
e9c4897b
KC
178372004-01-15 Kelley Cook <kcook@gcc.gnu.org>
17838
17839 * Makefile.in (MAINT): Make it an immediate assignment.
17840
5a67e41f
KH
178412004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17842
17843 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17844
340f6494
KH
178452004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17846
17847 * config/h8300/coff.h: Replace Hitachi with Renesas.
17848 * config/h8300/elf.h: Likewise.
17849 * config/h8300/h8300-protos.h: Likewise.
17850 * config/h8300/h8300.c: Likewise.
17851 * config/h8300/h8300.h: Likewise.
17852 * config/h8300/h8300.md: Likewise.
17853 * config/h8300/lib1funcs.asm: Likewise.
17854
c954844a
AP
178552004-01-15 Andrew Pinski <apinski@apple.com>
17856
17857 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17858 around it.
17859
34bf1fe3
KH
178602004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17861
17862 * config/h8300/h8300.c (h8300_return_in_memory): New.
17863 (TARGET_STRUCT_VALUE_RTX): Likewise.
17864 (TARGET_RETURN_IN_MEMORY): Likewise.
17865 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17866 (RETURN_IN_MEMORY): Likewise.
17867
e5396f90
RE
178682004-01-15 Richard Earnshaw <rearnsha@arm.com>
17869
17870 PR optimization/13375
17871 * gcse.c (handle_avail_expr): Just return if the source is not a
17872 single set.
17873
46049cff
RE
178742004-01-15 Richard Earnshaw <rearnsha@arm.com>
17875 Daniel Jacobowitz <drow@mvista.com>
17876
17877 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17878 (EQUIV): Define.
17879 (ARM_FUNC_ALIAS): New macro.
17880 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17881 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17882
2fabc3d6
JDA
178832004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17884
17885 PR optimization/12372
17886 * calls.c (expand_call): Add call_fusage data for stack arguments in
17887 constant calls.
17888
3c9eb5f4
AM
178892004-01-15 Alan Modra <amodra@bigpond.net.au>
17890
17891 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
17892 (rs6000_elf_declare_function_name): Formatting.
17893 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17894
c7866154
JH
178952004-01-15 Jan Hubicka <jh@suse.cz>
17896
17897 PR bootstrap/13692
17898 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17899 previous patch.
17900
ad5d827d
RH
179012004-01-15 Richard Henderson <rth@redhat.com>
17902
17903 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17904 integer regs of the same call-savedness.
17905
66e07510
AS
179062004-01-15 Andreas Schwab <schwab@suse.de>
17907
17908 PR bootstrap/13562
17909 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17910 status for NOTB/NOTW/NEGW methods.
17911
7c12f388
KH
179122004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17913
17914 * doc/invoke.texi: Update dump file names. Fix a typo.
17915
4a7bb550
KH
179162004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17917
17918 * builtins.c (expand_builtin_va_end): Don't use
17919 EXPAND_BUILTIN_VA_END.
17920 * system.h (EXPAND_BUILTIN_VA_END): Poison.
17921 * config/d30v/d30v.h: Remove a commented-out definition of
17922 EXPAND_BUILTIN_VA_END.
17923 * config/stormy16/stormy16.h: Likewise.
17924
430fff02
KH
179252004-01-15 Kazu Hirata <kazu@cs.umass.edu>
17926
17927 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17928 * targhooks.c (default_struct_value_rtx): Don't use
17929 STRUCT_VALUE_INCOMING_REGNUM.
17930
03787dfd
KC
179312004-01-15 Kelley Cook <kcook@gcc.gnu.org>
17932
17933 PR bootstrap/12744
17934 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17935 GENINSRC and not parsedir. Define srcextra as a langhook.
17936 * configure: Regenerate.
17937 * Makefile.in: Suppress default .l.c rule. Don't substitute
17938 parsedir and delete all references throughout. Conditionally define
17939 rule for srcextra dependent on GENINSRC.
17940 (stmp-docobjdir): Delete.
17941 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17942 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17943 and gengtype-yacc.h back to source directory.
17944 (maintainer-clean): Delete all parse files in source directory.
17945 (distclean): Delete generated files.
17946
17947 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17948 (objc-parse.c, objc-parse.y): Don't use parsedir.
17949 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17950 directory if requested.
17951 (po-generated): Don't use parsedir.
17952 (objc.maintainer-clean): Delete above files from source directory.
17953
04ab46a4
KH
179542004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17955
17956 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17957
d624465f
KH
179582004-01-14 Kazu Hirata <kazu@cs.umass.edu>
17959
17960 * doc/tm.texi: Replace RETURN_IN_MEMORY with
17961 TARGET_RETURN_IN_MEMORY.
17962
e1be55d0
JH
179632004-01-15 Jan Hubicka <jh@suse.cz>
17964
17965 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17966 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17967 functions accepting SSE arguments
17968 (function_arg): Warn only when asked to warn.
17969 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17970
f560bf91
JM
179712004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
17972
17973 * c-parse.in (stmts_and_decls): Make label at end of compound
17974 statement a hard error.
17975
95c755e9
JH
179762004-01-14 Jan Hubicka <jh@suse.cz>
17977
17978 * cgraph.c (create_edge): Use local.redefined_extern_inline.
17979 * cgraph.h (cgraph_local_info): Sort fields by size; add
17980 redefined_extern_inline
17981 (cgraph_global_info): Sort fields by size.
17982 (cgraph_node): Likewise.
17983 * cgraphunit.c (cgraph_finalize_function): Se
17984 local.redefined_extern_inline on redefinition.
17985 (cgraph_analyze_function): Use it; fix formating.
17986
84568e14
JH
179872004-01-14 Jan Hubicka <jh@suse.cz>
17988
17989 PR c++/10776
17990 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17991 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17992 bitmaps
17993 (cache_size): New variable
17994 (add_dependence): Update use; canonize early memory locations
17995 (sched_analyze_1): Likewise.
17996 (sched_analyze_2): Likewise.
17997 (init_dependency_caches): Initialize bitmaps.
17998 (free_dependency_caches): Free bitmaps
17999
3a179764
KH
180002004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18001
18002 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
18003 targetm.calls.strict_argument_naming().
18004 * target.h: Likewise.
18005
b298f00f
RH
180062004-01-14 Richard Henderson <rth@redhat.com>
18007
18008 PR debug/13231
18009 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
18010 instructions.
18011
1bddbeb4
RH
180122004-01-14 Richard Henderson <rth@redhat.com>
18013
18014 PR c++/12491
18015 * except.c (struct eh_region): Add u.fixup.resolved.
18016 (resolve_one_fixup_region): Split out from ...
18017 (resolve_fixup_regions): ... here.
18018
4eb31d4f
KH
180192004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18020
18021 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
18022
16f425fc
KH
180232004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18024
18025 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
18026 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
18027 (STRUCT_VALUE): Remove.
18028
4850c982 180292004-01-14 Steven Bosscher <stevenb@suse.de>
616f6d84
SB
18030
18031 * system.h: Poison PROMOTED_MODE
18032 * integrate.c (expand_inline_function): Don't mention the
18033 PROMOTED_MODE.
18034 * loop.c (update_giv_derive): Same.
18035 * tree.h (DECL_RTL): Same.
18036
f9654065
R
180372004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
18038
18039 PR target/9365
18040 * sh.c (gen_block_redirect): Add special handling of RETURN.
18041 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
18042 far branch target (i.e. it's a return).
18043
abbe8578
KH
180442004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18045
18046 * regrename.c (find_oldest_value_reg): Fix a warning.
18047
192c8d78
RE
180482004-01-14 Richard Earnshaw <rearnsha@arm.com>
18049
18050 PR bootstrap/12527
18051 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
18052 Move linux-gas.h and linux-elf.h before aout.h.
18053 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
18054 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
18055
e512ab39
KH
180562004-01-14 Kazu Hirata <kazu@cs.umass.edu>
18057
18058 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
18059 (CONST_INT, VOIDmode, ...).
18060
684bcee5
RE
180612004-01-14 Richard Earnshaw <rearnsha@arm.com>
18062
f57fc998 18063 * regrename.c (find_oldest_value_reg): If the replacement uses
684bcee5
RE
18064 multiple hard registers, check that all of them are in CLASS.
18065
e7844ffb
JH
180662004-01-14 Jan Hubicka <jh@suse.cz>
18067
18068 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
18069 impossible.
18070
73e232f0
KC
180712004-01-14 Kelley Cook <kcook@gcc.gnu.org>
18072
18073 * Makefile.in: Define MAINT from --enable-maintainer-mode.
18074
4d774ff8
HP
180752004-01-14 Hartmut Penner <hpenner@de.ibm.com>
18076
18077 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
18078 Calculate always vrsave_mask if TARGET_ALTIVEC.
18079 (rs6000_emit_prologue): Emit code for vrsave
18080 only if TARGET_ALTIVEC_VRSAVE.
18081 (rs6000_emit_epilogue): Likewise.
18082
fa1090f5
EB
180832004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
18084
18085 * config/sparc/sparc.md (tie_add32): Fix pasto.
18086 (tie_add64): Likewise.
18087
79551a56
ZD
180882004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
18089
18090 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
18091
5b8d96f1
KH
180922004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18093
18094 * config/iq2000/iq2000-protos.h: Fix comment formatting.
18095 * config/iq2000/iq2000.c: Likewise.
18096 * config/iq2000/iq2000.md: Likewise.
18097
b98d154e
B
180982004-01-14 J. Brobecker <brobecker@gnat.com>
18099
18100 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
18101 (subrange_type_die): Add handle for nameless subrange types.
18102
1a793acf
KH
181032004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18104
18105 * config/h8300/h8300-protos.h: Replace do_movsi with
18106 h8300_expand_movsi.
18107 * config/h8300/h8300.c (do_movsi): Change to
18108 h8300_expand_movsi.
18109 * config/h8300/h8300.md (movsi): Replace do_movsi with
18110 h8300_expand_movsi.
18111 (movsf): Likewise.
18112
81ad9ded
KH
181132004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18114
18115 * config/h8300/h8300.c (dosize): Change to
18116 h8300_emit_stack_adjustment. Update callers.
18117
3f0063ab
KH
181182004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18119
18120 * config/h8300/h8300.md (movstrictqi): Add an alternative with
18121 the source being post_inc. Tighten the predicate for the
18122 destination to register_operand.
18123 (movstricthi): Likewise.
18124
abf843c4
KH
181252004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18126
18127 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
18128 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
18129 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
18130
4b589eab
JH
181312004-01-14 Jan Hubicka <jh@suse.cz>
18132
d34cb6a1
JH
18133 Partial fix PR c++/12850
18134 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
18135 at zero nest level.
4b589eab 18136
9ff2cabc
BI
181372004-01-13 Bernardo Innocenti <bernie@develer.com>
18138
18139 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
f57fc998 18140 pseudo-register.
9ff2cabc 18141
a4d8ec65
DP
181422004-01-13 Devang Patel <dpatel@apple.com
18143
18144 PR debug/7078
f57fc998 18145 * dbxout.c (dbxout_symbol_name): Emit mangled names for
a4d8ec65 18146 NAMESPACE_DECL memebers.
f57fc998 18147
bfaba7a9
AP
181482004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
18149
18150 PR c++/12709
18151 * c-common.c (finish_fname_decls): Use the chain only if the
18152 tree is an expr_stmt.
18153
dfa849f3
VM
181542004-01-13 Vladimir Makarov <vmakarov@redhat.com>
18155
616f6d84 18156 * rtl.def: Add comment about new option in automata_option.
f57fc998 18157
dfa849f3
VM
18158 * genautomata.c (PROGRESS_OPTION): New macro.
18159 (progress_flag): New global variable.
18160 (gen_automata_option): Process `progress'.
18161 (transform_insn_regexps, check_unit_distributions_to_automata,
18162 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
18163 expand_automata, write_automata): Print about the progress only if
18164 progress_flag. Remove fflush.
18165 (initiate_automaton_gen): Process command line flag `-progress'.
18166
18167 * doc/md.texi: Describe the new option.
f57fc998 18168
9405162e
ZD
181692004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
18170
18171 * cfg.c (dump_bb): Dump entry edges.
18172
f954388e
RE
181732004-01-13 Richard Earnshaw <rearnsha@arm.com>
18174
f57fc998 18175 * arm.c (thumb_legitimate_address_p): Only allow constant pool
f954388e
RE
18176 references from SImode.
18177 * arm.md (thumb_movhi_insn): Don't allow minipool references.
18178
0fe7abcc
KH
181792004-01-13 Kazu Hirata <kazu@cs.umass.edu>
18180
18181 * system.h (TEXT_SECTION): Poison.
18182 * varasm.c (text_section): Don't use TEXT_SECTION.
18183 * config/sh/sh.c (sh_file_start): Fix a comment typo.
18184 * doc/tm.texi (TEXT_SECTION): Remove.
18185
fdb07791
BE
181862004-01-13 Ben Elliston <bje@wasabisystems.com>
18187
18188 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
18189
56067bbe
JW
181902004-01-12 James E Wilson <wilson@specifixinc.com>
18191
18192 * unwind-libunwind.c: Delete.
18193
bc298aa7
ZW
181942004-01-12 Zack Weinberg <zack@codesourcery.com>
18195
18196 PR 13656
18197 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
18198 oldtype is set, set *newtypep or *oldtypep too. Do not set
18199 them at the very end.
18200 (validate_proto_after_old_defn): Restructure for comprehensibility;
18201 make error messages clearer.
18202
12a08b40
ZW
182032004-01-12 Zack Weinberg <zack@codesourcery.com>
18204
18205 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
18206 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
18207 * varray.c: No need to prototype error.
18208 (varray_check_failed): Wrap long string onto two lines.
18209 (varray_underflow): New function.
18210
faed5cc3
SB
182112004-01-13 Steven Bosscher <stevenb@suse.de>
18212
18213 PR c++/13376
18214 * function.h (struct function): Kill `name' field.
18215 (current_function_name): Make it an extern function.
18216 * function.c (current_function_name): New function.
18217 * graph.c: Update all uses of current_function_name.
18218 * gcse.c: Likewise.
18219 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
18220 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
18221 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
18222 instead of a strcmp with "main".
18223
2d327012
JH
182242004-01-13 Jan Hubicka <jh@suse.cz>
18225
0bb03c11
JH
18226 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
18227
2d327012
JH
18228 * cgraphunit.c (cgraph_optimize_function): Always do
18229 optimize_inline_calls when there is always_inline callee.
18230 (cgraph_decide_inlining): Fix formating.
18231 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
18232 functions.
18233 (expand_call_inline): Likewise.
18234 * toplev.h (sorry): Fix prototype.
18235
04cc79bb
RS
182362004-01-12 Roger Sayle <roger@eyesopen.com>
18237
18238 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
18239 conditional jumps that drop through to unconditional jumps or the
18240 end of the sequence.
18241
3416f5c2
JH
182422004-01-13 Jan Hubicka <jh@suse.cz>
18243
18244 * alias.c (new_alias_set): Construct the alias_set varray.
18245 (init_alias_once): Don't do it here.
18246
f92ed976
ME
182472004-01-12 Marc Espie <espie@openbsd.org>
18248
18249 * system.h: handle YYBYACC like YYBISON.
18250
ff2aaa93
JM
182512004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
18252
18253 PR target/10847
18254 * config.gcc: No longer includes conflicting header sparc/sol2.h when
18255 building on sparc64-*-openbsd*.
18256
c5ff9123
AP
182572004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
18258
18259 PR debug/13539
18260 * dbxout.c (dbxout_type): Protected inheritance is not
18261 private but protected.
18262
3cd2a183
RS
182632004-01-12 Richard Sandiford <rsandifo@redhat.com>
18264
18265 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
18266
5c881655
KH
182672004-01-12 Kazu Hirata <kazu@cs.umass.edu>
18268
18269 PR optimization/12508.
18270 * combine.c (try_combine): Remove a dead set in a parallel
18271 even if its destination is a subreg.
18272
18273 Revert:
18274 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
18275 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
18276 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
18277
a42f8ae7 182782004-01-12 Geoffrey Keating <geoffk@apple.com>
affad9a4
GK
18279
18280 * real.c: Update copyright date.
18281 * emit-rtl.c: Likewise.
18282 * rtl.h: Likewise.
18283 * dwarf2out.c: Likewise.
18284 * config/rs6000/darwin-ldouble.c: Likewise.
18285 * config/rs6000/rs6000.md: Likewise.
18286
4274207b
DE
182872004-01-12 David Edelsohn <edelsohn@gnu.org>
18288
18289 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
18290 TFmode to SImode libfuncs.
18291
06e4eab5
RS
182922004-01-12 Roger Sayle <roger@eyesopen.com>
18293
18294 PR middle-end/11397
18295 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
18296
432f982f
JH
182972004-01-12 Jan Hubicka <jh@suse.cz>
18298
18299 PR opt/12826
18300 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
18301 stored.
18302
18303 PR opt/12863
18304 * cfgcleanup.c (label_is_jump_target_p): Move to...
18305 * rtlanal.c (label_is_jump_target_p): ... here.
18306 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
18307 edges unified with branch edges.
18308
8064d930
RE
183092004-01-12 Richard Earnshaw <rearnsha@arm.com>
18310
18311 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
18312 high word of an integral CONST_DOUBLE.
18313
1c48f4be 183142004-01-12 Paul Brook <paul@codesourcery.com>
0786ca87
PB
18315
18316 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
18317
68d2b0bb 183182004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
07d7d2f4
R
18319
18320 PR target/13585
18321 * sh-protos.h (check_use_sfunc_addr): Declare.
18322 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
18323 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
18324
c65ecebc
JH
183252004-01-12 Jan Hubicka <jh@suse.cz>
18326
9ddb66ca
JH
18327 * alias.c: Invlude varray.h
18328 (alias_sets): Turn into varray.
18329 (get_alias_set_entry): Use VARRAY; mark inline.
18330 (mems_in_disjoint_alias_sets_p): Mark inline.
18331 (record_alias_subset): Use varray.
18332 (init_alias_once): Initialize varray.
18333 (new_alias_set): Grow array.
18334 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
18335
183362004-01-12 Jan Hubicka <jh@suse.cz>
18337
18338 Partial fix for PR opt/10776 II
c65ecebc
JH
18339 * cselib.c: Include params.h
18340 (cselib_invalidate_mem): Limit amount of nonconflicting memory
18341 locations.
18342 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
18343 * Makefile.in (cselib.o): Depend on params.h
18344
c0657872
RS
183452004-01-12 Richard Sandiford <rsandifo@redhat.com>
18346
18347 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
18348 simplify_unary_operation if the operand has a known mode.
18349
d2288d5d
HP
183502004-01-12 Hartmut Penner <hpenner@de.ibm.com>
18351
b40ee5d6 18352 PR target/13534
d2288d5d
HP
18353 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
18354 predicate to handle 'ld' conform addresses.
18355 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
18356 contraint.
18357 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
18358 are memory contraints.
12a08b40 18359 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
d2288d5d 18360 New prototype.
12a08b40 18361 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
d2288d5d
HP
18362 Change 'o' to 'Y' constraint.
18363 (*movdf_softfloat64): Ditto.
12a08b40 18364
c223cf45
BI
183652004-01-12 Bernardo Innocenti <bernie@develer.com>
18366
18367 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
18368 brace-enclosed syntax in all C output statements.
18369
5fc921c1
DE
183702004-01-12 David Edelsohn <edelsohn@gnu.org>
18371
18372 PR target/13401
18373 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18374 Objective-C language type value is 14.
18375
48568ec7
MO
183762004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
18377
18378 PR c/12148
18379 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
18380 `int' in a number of places to make sure we always have a SImode
18381 and not a HImode. Add a 'L' suffix to a number of constants.
18382
124c9423
JDA
183832004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18384
18385 * pa.c: Don't include obstack.h.
18386
18387 * pa.md: Correct constraint in pattern for loading PIC label address.
18388
c924f70c
KK
183892004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
18390
18391 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
18392 before defining.
18393
53efeb8d
SB
183942004-01-11 Steven Bosscher <stevenb@suse.de>
18395
1eee14b9 18396 PR fortran/9972
53efeb8d
SB
18397 * toplev.c (rest_of_handle_inline): Also consider functions
18398 for deferral if the language is GNU F77.
18399
d4968a11
ZW
184002004-01-11 Zack Weinberg <zack@codesourcery.com>
18401
18402 * c-decl.c (diagnose_arglist_conflict): Add missing space to
18403 diagnostic messages.
18404
1759c760
JJ
184052004-01-11 Jakub Jelinek <jakub@redhat.com>
18406
18407 PR middle-end/13392
18408 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
18409 to drop through label. Don't fall back to SCC even when conditional
18410 jump has not been found.
18411
0bcf8261
JH
184122004-01-11 Jan Hubicka <jh@suse.cz>
18413
fb544601
JH
18414 * invoke.texi: Fix syntax error in previous patch.
18415
0bcf8261
JH
18416 Partial fix for PR opt/10776
18417 * Makefile.in (reload.o): Include param.h
18418 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
18419 * reload.c: Include params.h.
18420 (find_equiv_reg): Work limiting check.
18421 * invoke.texi: Document.
18422
bd9131c0
RS
184232004-01-11 Richard Sandiford <rsandifo@redhat.com>
18424
18425 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
18426 out-of-bounds accesses to string constants. Simplify mips16
18427 case accordingly.
18428
6732ee60
RS
184292004-01-11 Richard Sandiford <rsandifo@redhat.com>
18430
18431 PR optimization/13469
18432 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
18433 reload_cse_regs (-fnon-call-exceptions only).
18434
14bc6742
KH
184352004-01-11 Kazu Hirata <kazu@cs.umass.edu>
18436
18437 * config/mcore/lib1.asm: Fix comment formatting.
18438 * config/mcore/mcore-elf.h: Likewise.
18439 * config/mcore/mcore.c: Likewise.
18440 * config/mcore/mcore.h: Likewise.
18441 * config/mcore/mcore.md: Likewise.
18442
3c6e6fbf
ZW
184432004-01-10 Zack Weinberg <zack@codesourcery.com>
18444
18445 * c-decl.c (duplicate_decls): Break apart into...
18446 (diagnose_arglist_conflict, validate_proto_after_old_defn)
18447 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
18448 ... these new functions. Restructure for comprehensibility.
18449 Remove various archaic special cases. Always report the
18450 location of the previous declaration when a diagnostic is issued.
18451 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
18452 (match_builtin_function_types): Delete unnecessary forward declaration.
18453
1e8dcb41
ZW
184542004-01-10 Zack Weinberg <zack@codesourcery.com>
18455
18456 * genautomata.c (make_automaton, NDFA_to_DFA):
18457 Print progress bars with '.' characters instead of '*'.
18458 (build_automaton): Change notes to match.
18459
a2ab189d
KH
184602004-01-10 Kazu Hirata <kazu@cs.umass.edu>
18461
18462 * config/m32r/m32r.md: Use define_constants for unspec and
18463 unspec_volatile.
18464
cf7cb67e
JH
184652004-01-10 Jan Hubicka <jh@suse.cz>
18466
c8fdcfae 18467 PR opt/11635
cf7cb67e
JH
18468 * expr.c (expand_expr_real): More curefully expand union casts.
18469
0574200c
KH
184702004-01-10 Kazu Hirata <kazu@cs.umass.edu>
18471
18472 * config/m32r/m32r.md (flush_icache): Use 1 for
18473 unspec_volatile.
18474
a2a0019f
DE
184752004-01-10 David Edelsohn <edelsohn@gnu.org>
18476 James E Wilson <wilson@specifixinc.com>
18477
18478 PR debug/12860
18479 * dbxout.c (dbxout_symbol): Remove initialization of
18480 current_sym_code, current_sym_value, and current_sym_addr.
18481 (dbxout_symbol_location): Same.
18482 (dbxout_prepare_symbol): Zero current_sym_code,
18483 current_sym_value, and current_sym_addr.
18484
bb3f5384
RS
184852004-01-10 Richard Sandiford <rsandifo@redhat.com>
18486
18487 * tree.c (get_unwidened): Reorder conditions so that the null pointer
18488 check is done first.
18489
fbfb16e2
EC
184902004-01-09 Eric Christopher <echristo@redhat.com>
18491
18492 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
18493 if we're running mark_constant_function.
18494
cc23f3c7
JB
184952004-01-09 Jeff Bailey <jbailey@nisa.net>
18496
18497 PR target/12561
18498 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
18499
975421be
AP
185002004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
18501
18502 PR debug/11231
a2a0019f
DE
18503 * dbxout.c (dbxout_type_fields): Return if any item is
18504 error_mark_node or the type is error_mark_node.
975421be 18505
7e4bd541
GK
185062004-01-09 Geoffrey Keating <geoffk@apple.com>
18507
f01519dd
GK
18508 * config/rs6000/darwin-ldouble.c: Add big comment explaining
18509 exactly what is expected as a 'long double'.
18510 (_xlqadd): When a value to be returned is representable as a
18511 'double', just return it directly, do not construct it using a union.
18512 Also, correct final fixup.
18513 (_xlqmul): Likewise.
18514 (_xlqdiv): Likewise.
18515 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
18516
7e4bd541
GK
18517 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
18518
47069ecb
RH
185192004-01-09 Richard Henderson <rth@redhat.com>
18520
18521 * recog.c (constrain_operands): Validate mem operands.
18522
9813058e
JW
185232004-01-09 James E Wilson <wilson@specifixinc.com>
18524
18525 * gcc.c (init_spec): Remove -lunwind from shared case.
18526 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
18527
b0fd7d27
SE
185282004-01-09 Steve Ellcey <sje@cup.hp.com>
18529
18530 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
18531 * configure: Regenerate
18532
3897f229
JM
185332004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
18534
18535 PR c/11234
18536 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
18537 between function and object pointers.
18538 (digest_init): When comparing a pointer to function type to the
18539 target type, only apply TREE_TYPE once to the pointer to function
18540 type.
18541 * except.c (for_each_eh_label_1): Treat data as a pointer to a
18542 function pointer rather than casting it to a function pointer.
18543 (for_each_eh_label): Update caller.
18544 * recog.h (struct insn_data): Use a struct or union for output.
18545 * genoutput.c (output_insn_data): Update.
18546 * final.c (get_insn_template): Update.
18547
0fab64a3
MM
185482004-01-09 Mark Mitchell <mark@codesourcery.com>
18549
18550 * expr.h (expand_expr): Make it a macro, not a function.
18551 (expand_expr_real): New function.
18552 * expr.c (store_expr): Adjust logic for deciding whether or not to
18553 copy the value returned by expand_expr.
18554 (expand_expr): Rename to ...
18555 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
18556 calls to language hooks.
18557 * c-common.h (c_expand_expr): Adjust prototype.
18558 * c-common.c (c_expand_expr): Add alt_rtl parameter.
18559 * langhooks-def.h (lhd_expand_expr): Change prototype.
18560 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
18561 * langhooks.h (lang_hooks): Change type of expand_expr.
18562 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
18563 (last_expr_alt_rtl): Likewise.
18564 (expand_expr_stmt_value): Set last_expr_alt_rtl.
18565 (clear_last_expr): Clear it.
18566 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
18567 (expand_end_bindings): Save and restor last_expr_alt_rtl.
18568 * tree.def (RTL_EXPR): Give it an additional operand.
18569 * tree.h (RTL_EXPR_ALT_RTL): New macro.
9813058e 18570
df68f43b
KI
185712004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18572
18573 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
900a35c8 18574 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
df68f43b 18575
58ebda9c
KH
185762004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18577
18578 PR target/13380.
18579 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
18580 or (ne:SI (reg:CC 17) (const_int 0)).
18581 Be specific about modes wherever possible.
18582
81ad38a6
KH
185832004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18584
18585 * config/m32r/m32r.c (m32r_expand_block_move): Call
18586 gen_movestrsi_internal with two more arguments.
18587 (m32r_output_block_move): Adjust operand numbers.
18588 Properly update the source and destination pointers.
18589 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
18590 'r+'. Change the set detinations to match_operand.
18591
b816f339
KH
185922004-01-09 Kazu Hirata <kazu@cs.umass.edu>
18593
18594 * final.c (FIRST_INSN_ADDRESS): Remove.
18595 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
18596 * system.h (FIRST_INSN_ADDRESS): Poison.
18597 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
18598 * config/m32r/m32r-protos.h: Remove the prototype for
18599 m32r_first_insn_address.
18600 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
18601 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
18602 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
18603
de99511b
B
186042004-01-09 J. Brobecker <brobecker@gnat.com>
18605
18606 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
18607 we just created.
18608 (is_ada_subrange_type): DIEs for enumeration subtypes should be
18609 emitted as subrange types too.
18610 (subrange_type_die): Add handling of enumeration subtypes.
18611
90e4e4c5
RH
186122004-01-08 Richard Henderson <rth@redhat.com>
18613
18614 PR opt/12441
18615 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
9813058e
JW
18616 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
18617 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
18618 (ix86_address_cost): Be prepared for SUBREGed registers.
18619 (legitimate_address_p): Accept SUBREGed registers.
90e4e4c5 18620
a6a5e4c9
KC
186212004-01-08 Kelley Cook <kcook@gcc.gnu.org>
18622
18623 * Makefile.in: Rename configure.in to configure.ac
18624 * doc/sourcebuild.texi: Likewise.
18625 * configure: Regenerate.
18626 * config.in: Regenerate.
18627
588f75d0
SH
186282004-01-08 Stuart Hastings <stuart@apple.com>
18629
18630 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
18631
6242fcd8
JH
186322004-01-08 Jan Hubicka <jh@suse.cz>
18633
18634 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
18635
a29077da
GK
186362004-01-08 Geoffrey Keating <geoffk@apple.com>
18637
ecb62ae7
GK
18638 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
18639 (UNSPEC_FIX_TRUNC_TF): New constant.
18640 (movtf_internal): Make splitter active only when insn is active.
18641 (extenddftf2): Rewrite to properly load zero into low part.
18642 (extenddftf2_internal): New.
18643 (extendsftf2): Rewrite.
18644 (truncdftf2): Correct length.
18645 (floatditf2): Delete.
18646 (fix_trunc_helper): New.
18647 (fix_trunctfdi2): Use fix_trunc_helper.
18648 (fix_trunctfsi2): Likewise.fix_trunc
18649 (fix_trunctfsi2_internal): New.
18650
a29077da
GK
18651 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18652 addresses are legitimate on Darwin even when flag_pic.
18653 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18654 non-offsettable addresses for loads of TFmode constants.
18655
cb1f9d03
KI
186562004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18657
18658 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18659 variables in the appropriate bss section.
18660
7ddb6568
AM
186612004-01-09 Alan Modra <amodra@bigpond.net.au>
18662
18663 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18664 target_flags has MASK_POWERPC64 when -m64.
18665 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18666 to 620, 630, power3, power4 and rs64a entries.
18667 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18668
effdb493
RS
186692004-01-08 Richard Sandiford <rsandifo@redhat.com>
18670
18671 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18672 floating-point constants.
18673
fbfd77b8
JB
186742004-01-08 J. Brobecker <brobecker@gnat.com>
18675
18676 * dwarf2out.c (subrange_type_die): Add context_die parameter.
18677 Create the subrange_type DIE using the given context DIE.
18678 (modified_type_die): Update call to subrange_type_die.
18679
186802004-01-08 Zack Weinberg <zack@codesourcery.com>
7ce27103
ZW
18681
18682 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18683 Add multiple-include guard.
18684
ce1f50b2
HP
186852004-01-08 Hartmut Penner <hpenner@de.ibm.com>
18686
7ce27103
ZW
18687 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18688 all vector constant loadable by vsplt*.
ce1f50b2
HP
18689 (output_vec_const_move): Likewise.
18690
bca63328
JM
186912004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
18692
18693 PR c/6024
18694 * c-typeck.c (comptypes): Only treat enumerated types in the same
18695 translation unit as compatible with each other when they are the
18696 same type.
18697 * doc/extend.texi: Update.
18698
85b58ca5
JM
186992004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
18700
18701 PR c/12165
18702 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18703 array type from the array element type.
18704
93c9d1ba
AM
187052004-01-07 Alan Modra <amodra@bigpond.net.au>
18706
18707 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18708 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18709 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18710 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18711 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18712
deae8de6
EC
187132004-01-06 Eric Christopher <echristo@redhat.com>
18714
18715 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18716 (DWARF2_DEBUGGING_INFO): Define.
18717 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18718 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18719 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18720 for irix as.
18721 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18722 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18723 * config/mips/iris5gas.h: Ditto.
18724 (DBX_DEBUGGING_INFO): Remove.
18725 (DWARF2_DEBUGGING_INFO): Ditto.
18726 (MIPS_DEBUGGING_INFO): Ditto.
18727 (PREFERRED_DEBUGGING_TYPE): Ditto.
18728 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18729 (PREFERRED_DEBUGGING_TYPE): Ditto.
18730 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18731 * config/mips/elf64.h: Ditto.
18732
fed2b316
JH
187332004-01-06 Jan Hubicka <jh@suse.cz>
18734
18735 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18736 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18737
64d961b8
GK
187382004-01-06 Geoffrey Keating <geoffk@apple.com>
18739
084f5a35
GK
18740 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18741 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18742 * config/rs6000/darwin-ldouble.c: New.
deae8de6 18743
550d1387
GK
18744 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18745 for constants.
18746 (constant_subword): Delete.
18747 * rtl.h (constant_subword): Delete prototype.
18748 (immed_double_const): Is not in varasm.c.
18749 * simplify-rtx.c (simplify_immed_subreg): New.
18750 (simplify_subreg): Use simplify_immed_subreg.
18751
0c90aa3c
GK
18752 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18753 than trying to generate RTL directly.
18754 (fix_trunctfsi2): Use expand_fix rather than trying to generate
18755 RTL directly.
18756
64d961b8
GK
18757 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18758
72b38561
DE
187592004-01-06 David Edelsohn <edelsohn@gnu.org>
18760
18761 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18762 function into a separate macro.
18763 (read_only_data_section): Add void argument.
18764 (private_data_section): Same.
18765 (read_only_private_data_section): Same.
18766 (toc_section): Same.
18767
9a609388
JH
187682004-01-06 Jan Hubicka <jh@suse.cz>
18769
0aaae060
JH
18770 * invoke.texi: Remove typo in last change.
18771
9a609388
JH
18772 PR target/10301
18773 * config.gcc: Accept opteron and athlon-64 as variants
18774 of k8.
18775 * i386.c (override_options): Likewise.
18776 * invoke.texi (i386 -mtune): Expand documentation.
18777
5d3cc252
KH
187782004-01-06 Kazu Hirata <kazu@cs.umass.edu>
18779
18780 * alias.c: Fix comment typos.
18781 * builtins.c: Likewise.
18782 * cfg.c: Likewise.
18783 * df.c: Likewise.
18784 * dominance.c: Likewise.
18785 * dwarf2out.c: Likewise.
18786 * emit-rtl.c: Likewise.
18787 * expr.c: Likewise.
18788 * final.c: Likewise.
18789 * fold-const.c: Likewise.
18790 * gcse.c: Likewise.
18791 * genattrtab.c: Likewise.
18792 * genrecog.c: Likewise.
18793 * gensupport.c: Likewise.
18794 * ggc-zone.c: Likewise.
18795 * integrate.c: Likewise.
18796 * local-alloc.c: Likewise.
18797 * loop.c: Likewise.
18798 * recog.c: Likewise.
18799 * regmove.c: Likewise.
18800 * reg-stack.c: Likewise.
18801 * reorg.c: Likewise.
18802 * rtlanal.c: Likewise.
18803 * rtl.h: Likewise.
18804 * sched-ebb.c: Likewise.
18805 * simplify-rtx.c: Likewise.
18806 * toplev.c: Likewise.
18807 * varasm.c: Likewise.
18808
95ea367d
KH
188092004-01-06 Kazu Hirata <kazu@cs.umass.edu>
18810
18811 * doc/install.texi: Fix typos.
18812 * doc/invoke.texi: Likewise.
18813 * doc/md.texi: Likewise.
18814
f26ef713
KI
188152004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
18816
18817 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18818
bcf17554
JH
188192004-01-06 Jan Hubicka <jh@suse.cz>
18820
18821 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
18822 (function_arg_advance): Do not pass aggregates in SSE; deal handling
18823 of MMX_REGPARM.
18824 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
18825 add MMX_REGPARM.
18826 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18827 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18828 (MMX_REGPARM_MAX): Similarly for -mmmx.
18829
24746a42
KH
188302004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18831
18832 * config/sh/linux.h: Fix comment formatting.
18833 * config/sh/netbsd-elf.h: Likewise.
18834 * config/sh/sh.c: Likewise.
18835 * config/sh/sh.h: Likewise.
18836 * config/sh/vxworks.h: Likewise.
18837
f7e7e318
KH
188382004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18839
18840 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18841 * toplev.c (output_file_directive): Don't use
18842 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18843
80a08664
SB
188442004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
18845
18846 * toplev.c: Fix broken checkin of 2003-12-30.
18847
02fef853 188482004-01-05 Daniel Berlin <dberlin@dberlin.org>
deae8de6 18849
02fef853
DB
18850 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18851 (USING_MMAP): We don't support non-mmap.
18852 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18853 large objects.
18854 (struct page_entry): Remove bytes_free.
18855 (struct page_table_chain): Remove.
18856 (struct globals): Remove page_table member.
18857 (loookup_page_table_entry): Function deleted.
18858 (set_page_table_entry): Ditto.
18859 (ggc_allocated_p): No longer need page table lookups.
18860 (ggc_marked_p): Ditto.
18861 (alloc_small_page): Don't care about bytes_free anymore.
18862 (alloc_large_page): Round up size.
18863 (ggc_alloc_zone_1): Mark large objects as such, and calculate
deae8de6 18864 their size the new way.
02fef853
DB
18865 Remove page table lookups and setting.
18866 (ggc_get_size): Calculate large object size the new way.
18867 (sweep_pages): Redo to account for fact that we no longer have
18868 bytes_free.
18869 (ggc_collect): No longer need to reincrement bytes_free.
18870 (ggc_pch_alloc_object): Handle new large objects properly.
18871 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18872
60b799fd
KH
188732004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18874
18875 * doc/invoke.texi: Remove a page break.
18876
908c8c7e
KH
188772004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18878
18879 * config/avr/avr.c (avr_output_function_prologue): Remove an
18880 extra pair of curly braces.
18881
8596d0a1
KH
188822004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18883
18884 * config/mn10300/mn10300.c: Fix comment formatting.
18885 * config/mn10300/mn10300.h: Likewise.
18886
1e2d4dc1
RK
188872004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18888
18889 * tree.h: Update documentation on nothrow_flag.
18890 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18891 types.
18892
b6e69d94
KH
188932004-01-05 Kazu Hirata <kazu@cs.umass.edu>
18894
18895 * doc/invoke.texi: Remove traces of dead ports.
18896
1cf959cb
RS
188972004-01-05 Richard Sandiford <rsandifo@redhat.com>
18898
18899 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18900 option.
18901
f6149877
RS
189022004-01-05 Richard Sandiford <rsandifo@redhat.com>
18903
18904 PR target/12945
18905 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
b56c0023 18906 counter labels.
f6149877
RS
18907 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18908 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18909 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
18910 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18911 (mips_symbol_insns): Don't trust the local/global classification.
18912 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18913 (override_options): Make -mabicalls -fno-unit-at-a-time imply
18914 -mno-explicit-relocs.
18915 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18916 between local and global symbols.
18917
a6008bd8
RS
189182004-01-05 Richard Sandiford <rsandifo@redhat.com>
18919
18920 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18921 (mips_preferred_reload_class): Declare.
18922 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18923 (EXTRA_CONSTRAINT): Update accordingly.
18924 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18925 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18926 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
18927 mips_dangerous_for_la25_p.
18928 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18929 if mips_dangerous_for_la25_p.
18930
d7b3c085
BI
189312004-01-05 Bernardo Innocenti <bernie@develer.com>
18932
18933 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
deae8de6 18934 warning.
d7b3c085 18935
ca9bc441
NN
189362004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
18937
18938 * configure.ac: Use AC_PROG_CPP_WERROR.
18939 * configure: Regenerate.
18940
016d7f3e
ZW
189412004-01-04 Zack Weinberg <zack@codesourcery.com>
18942
18943 * .cvsignore: Add autom4te.cache.
18944
5a4b3afd
RS
189452004-01-04 Richard Sandiford <rsandifo@redhat.com>
18946
18947 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
18948 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18949 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
18950 then architecture options, then ABI options. General rewording.
18951
928a5ba9
JM
189522004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
18953
18954 PR c/3414
18955 * doc/extend.texi: Clarify definition of malloc attribute.
18956
dc0bfe6a
JH
189572004-01-04 Jan Hubicka <jh@suse.cz>
18958
18959 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18960 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18961 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18962 (cgraph_inline_p): Add extra argument reason.
18963 * cgraphunit.c: Minor formating fixes.
18964 cgraph_first_inlined_callee): New functions.
18965 (record_call_1): Record builtins too.
18966 (cgraph_analyze_function): Update inline_failed messages.
18967 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18968 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18969 (cgraph_check_inline_limits): Likewise; Add argument reason.
18970 (cgraph_set_inline_failed): New static function.
18971 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18972 reasons.
18973 (cgraph_inline_p): Add new argument reason.
18974 * tree-inline.c (expand_call_inline): Update warning.
18975
ba479fd2
NN
189762004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
18977
914c5af7
NN
18978 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18979 with modern equivalents.
18980 * configure: Regenerate.
18981
016d7f3e
ZW
18982 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18983 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18984 * configure: Regenerate.
78c9cb99 18985
d44f1a00
NN
18986 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18987
ba479fd2
NN
18988 * configure.in: Rename to configure.ac.
18989 * configure.ac: Renamed from configure.in; make minimum necessary
18990 changes for autoconf 2.5x.
18991 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18992 * configure: Regenerate with autoconf 2.57.
18993
031a26c5
KH
189942004-01-03 Kazu Hirata <kazu@cs.umass.edu>
18995
18996 * config/mips/linux.h: Fix comment formatting.
18997 * config/mips/mips.c: Likewise.
18998 * config/mips/mips.h: Likewise.
18999 * config/mips/mips.md: Likewise.
19000 * config/mips/netbsd.h: Likewise.
19001 * config/mips/windiss.h: Likewise.
19002
b87cfcfb
RH
190032004-01-02 Richard Henderson <rth@redhat.com>
19004
19005 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
19006 for sse and 387; add suppression for mmx.
19007
36579663
AP
190082004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
19009
9d85830f
AP
19010 * loop.c (loop_optimize): Free all loops_info's mems.
19011
016d7f3e 19012 * c-typeck.c (finish_init): Free spelling_base before
36579663 19013 setting it again.
016d7f3e 19014
36579663
AP
19015 * cfgloop.c (flow_loops_find): Always free the sbitmap
19016 headers.
19017
19018 * predict.c (estimate_probability): Free bbs after being
19019 done with it.
19020
3864b6fe
KH
190212004-01-02 Kazu Hirata <kazu@cs.umass.edu>
19022
19023 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
19024 const_8bit_operand and call_address_operand.
19025
8b6bd5d7
JH
190262004-01-02 Jan Hubicka <jh@suse.cz>
19027
19028 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
19029 when there is nothing to inline but warnings are requested.
19030 (cgraph_decide_inlining): Fix memory leak.
19031
9b9bd3b2
JH
190322004-01-02 Jan Hubicka <jh@suse.cz>
19033
19034 * expr.c (store_constructor): Fix pasto in previous patch.
19035
43f3a59d
KH
190362004-01-02 Kazu Hirata <kazu@cs.umass.edu>
19037
19038 * config/i386/cygming.h: Fix comment formatting.
19039 * config/i386/djgpp.h: Likewise.
19040 * config/i386/gthr-win32.c: Likewise.
19041 * config/i386/i386-interix.h: Likewise.
19042 * config/i386/i386.c: Likewise.
19043 * config/i386/i386.h: Likewise.
19044 * config/i386/openbsd.h: Likewise.
19045 * config/i386/winnt.c: Likewise.
19046 * config/i386/xm-mingw32.h: Likewise.
19047
daef8bbd
JM
190482004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
19049
19050 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
19051 copyright and last modification dates.
19052
7e081a0c
AJ
190532004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
19054
19055 * doc/install.texi (Specific): Mention x86_64.
19056
ac3f5df7
HPN
190572004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
19058
19059 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
19060 Call force_operand on plus_constant result.
19061
997404de
JH
190622004-01-01 Jan Hubicka <jh@suse.cz>
19063
19064 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
19065 * expr.c (store_constructor): Use vec_init pattern.
19066 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
19067 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
19068 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
19069 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
19070 New patterns.
19071 (sse2_unpc?pd): Fix pattern.
19072 (sse2_movlpd): Kill.
19073 (sse2_movsd): Deal with movlpd too.
19074 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
19075 (ix86_expand_vector_init): New.
19076 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
19077 * md.texi (vec_set, vec_extract): Document
19078
b684a3df
JH
190792003-12-31 Jan Hubicka <jh@suse.cz>
19080
19081 PR opt/13473
19082 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
19083 ASM input operands
19084
19085 PR opt/12617
19086 * toplev.c (dump_file_index): Reorder ce3 and bbro.
19087 (dump_file): Likewise.
19088 (rest_of_compilation): Likewise.
19089
19090 PR debug/13367
19091 * cgraph.c (cgraph_function_possibly_inlined): Even with
19092 flag_really_no_inline we inline always_inline functions.
19093 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
19094 for non-always_inline functions when there is flag_really_no_inline.
19095 (cgraph_decide_inlining): Limit work done when not inlining.
19096 (cgraph_decide_inlining_incrementally): Likewise.
19097 (cgraph_optimize_function): Check whether something got inlined.
19098 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
19099 extern inline functions when not inlining.
19100
19101 * opts.c (decode_options): Disable crossjumping at -O1
19102 * invoke.texi (-O1): Document change.
a55f4481 19103
cd14f58c 19104See ChangeLog.10 for earlier changes.
This page took 2.471541 seconds and 5 git commands to generate.