OSDN Git Service

2004-06-27 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         PR c/14963
4         * c-decl.c (start_decl): Check for null types.
5
6 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
7
8         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9         Accept TOC addresses.
10
11 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
12
13         * config/s390/s390-protos.h (s390_load_got): Update prototype.
14         * config/s390/s390.c (struct machine_function): Add member base_reg.
15         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
16         (s390_split_branches): Annotate late pool references.
17         (annotate_constant_pool_refs): New function.
18         (find_constant_pool_ref): Work on annotated pool references.
19         (replace_constant_pool_ref): Likewise.  Use explicit base.
20         (replace_ltrel_base): Use explicit base.
21         (s390_mainpool_start): Reflect main_pool pattern change.
22         (s390_mainpool_finish): Use base register from main_pool.
23         Update calls to replace_ltrel_base and replace_constant_pool_ref.
24         (s390_chunkify_start): Use base_reg from struct machine_function.
25         (s390_chunkify_finish): Remove base_reg argument.  Update calls
26         to replace_ltrel_base and replace_constant_pool_ref.
27         (s390_reorg): Don't decide upon base register.  Update calls.
28         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
29         but return sequence instead.
30         (s390_emit_prologue): Decide upon base register to use.  Annotate
31         all literal pool references.  Adapt to main_pool pattern change.
32         Update s390_load_got call; move MAYBE_DEAD handling here.
33         (s390_emit_epilogue): Annotate late literal pool references.
34         Remove barrier before register restore instruction.
35         * config/s390/s390.md (UNSPEC_LTREF): New constant.
36         ("builtin_setjmp_receiver"): Update s390_load_got call.
37         ("main_pool"): Explicitly reference base register.
38
39 2004-06-27  Roger Sayle  <roger@eyesopen.com>
40
41         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
42         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
43         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
44         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
45         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
46         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
47         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
48         is a constant.
49
50 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
51
52         PR 13334
53         * doc/install.texi: Document non-standard CFLAGS and bootstrap
54         failures and warnings.
55
56 2004-06-26  Andrew Haley  <aph@redhat.com>
57
58         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
59         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
60         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
61         * tree.h (TREE_THIS_NOTRAP): New.
62
63 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
64
65         * genattrtab.c (write_test_expr): Put a unsigned cast before
66         the first operand for GEU, GTU, LEU and LTU.
67
68 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
69
70         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
71         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
72         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
73         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
74         tree-tailcall.c: Fix comment typos.  Follow spelling
75         conventions.
76
77 2004-06-25  Eric Christopher  <echristo@redhat.com>
78
79         * config/mips/mips.md: Add back scheduling exclusion info.
80
81 2004-06-25  Roger Sayle  <roger@eyesopen.com>
82
83         * ifcvt.c (seq_contains_jump): Delete function.
84         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
85         inline test for a jump instruction in the existing "insn" loop.
86         (block_fallthru): Document function.
87
88 2004-06-25  Philip Blundell  <philb@gnu.org>
89
90         PR wrong-code/15089
91         * loop.c (scan_loop): Do not move user-specified register
92         assignments.
93
94 2004-06-25  DJ Delorie  <dj@redhat.com>
95
96         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
97         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
98         warn_missing_braces, warn_sign_compare, warn_long_long,
99         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
100         warn_conversion, warn_format_y2k, warn_format_extra_args,
101         warn_format_zero_length, warn_format_nonliteral,
102         warn_format_security, mesg_implicit_function_declaration,
103         warn_bad_function_cast, warn_traditional,
104         warn_declaration_after_statement, warn_strict_prototypes,
105         warn_missing_declarations, warn_nested_externs,
106         warn_sequence_point, warn_init_self, warn_div_by_zero,
107         warn_implicit_int, warn_nonnull, warn_old_style_definition,
108         warn_selector, warn_undeclared_selector, warn_protocol,
109         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
110         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
111         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
112         warn_old_style_cast, warn_nontemplate_friend,
113         warn_deprecated): Remove explicit declarations.
114         * c-common.c: Likewise, remove explicit definitions.
115         * c-opts.c: Likewise, remove explicit assignments.
116         * c.opts: Likewise, add implicit declare/define/assign.
117
118 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
119
120         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
121         (build_addr_expr_with_type): Deleted.
122         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
123         (gimplify_compound_lval): Make two passes over reference nest.
124
125         * tree-nested.c (build_addr): Merge real/imagpart with
126         handled_component_p.
127         (convert_nonlocal_reference, convert_local_reference): Process extra
128         args to COMPONENT_REF and ARRAY_REF.
129         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
130         lower bound and field offset being constant.
131
132 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
133
134         PR wrong-code/16129
135         * alias.c (get_alias_set): Adjust setting of
136         DECL_POINTER_ALIAS_SET for pointers to aggregates.
137
138 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
139
140         * tree-inline.c (remap_type): Arrange to have just one pointer type
141         for each type, mode, and 'can alias' value.
142         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
143         (estimate_num_insns_1): Minor code reformatting.
144         (inline_forbidden_p_1): Likewise; add; missing return statement.
145
146 2004-06-25  Roger Sayle  <roger@eyesopen.com>
147
148         PR middle-end/15825
149         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
150         Use get_isns and end_sequence instead of accepting a seq argument.
151         Scan the instruction sequence for unrecognizable or jump insns.
152         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
153         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
154         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
155         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
156
157 2004-06-24  Jeff Law  <law@redhat.com>
158
159         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
160         after gimplifying the innermost component.
161
162 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
163
164         PR target/16176
165         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
166         register for the destination of the lwl or ldl.
167
168 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
169
170         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
171         handled_component_p handling.
172         * tree-gimple.c (get_base_address): Likewise and fix typo that
173         caused both recursion and looping.
174
175         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
176         Properly test for nest of handled_components in LHS context.
177
178 2004-06-25  Devang Patel  <dpatel@apple.com>
179
180         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
181
182 2004-06-25  Paul Brook  <paul@codesourcery.com>
183
184         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
185         TARGET_CXX): Define.
186         (TARGET_INITIALIZER): Use TARGET_CXX.
187         * target.h (struct gcc_target): Add struct cxx.
188         * targhooks.h (default_cxx_guard_type): Add prototype.
189         * targhooks.c (default_cxx_guard_type): New function.
190         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
191         Define.
192         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
193         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
194         TARGET_CXX_GUARD_MASK_BIT.
195
196 2004-06-25  Devang Patel  <dpatel@apple.com>
197
198         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
199         * config/i386/darwin.h (CC1_SPEC): Same.
200
201 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
202
203         * dbxout.h: Add include guards
204
205 2004-06-25  Paul Brook  <paul@codesourcery.com>
206
207         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
208
209 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
210
211         * arm.c (arm_arch4t): New variable.
212         (arm_override_options): Initialize it.  If compiling for armv5 or
213         higher clear TARGET_INTERWORK.
214         (output_call): Abort if called for armv5.  Use BX if it's available.
215         (output_call_mem): Use BLX if available and ensure that all armv5
216         code is interworking safe.
217         (output_return_instruction): Always use BX in preference to MOV if
218         it's available.
219         (arm_output_epilogue): Likewise.
220         (arm_final_prescan_insn): Never conditionally call a subroutine
221         on armv5.
222         * arm.h (arm_arch4t): Declare.
223         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
224         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
225         call_value_reg respectively.
226         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
227         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
228         and call_value_indirect respectively.
229
230 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
231
232         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
233         in terms of const_float_1_operand.
234
235 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
236
237         PR target/16144
238         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
239         is 1.0; force it into a register instead.
240
241 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
242
243         * config/m68k/m68k.h: Restore valid comment removed by mistake with
244         the recent m68k comments cleanup.
245
246 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
247
248         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
249         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
250         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
251         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
252
253         PR/16131
254         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
255
256         * gimplify.c: Remove unneeded forward declarations.
257
258         * gimplify.c (append_to_compound_expr): Deleted.
259         * tree-gimple.h (append_to_compound_expr): Deleted.
260
261         * fold-const.c (fold_addr_expr_with_type): Look through all
262         valid LHS modifiers to find a base to mark addressable.
263
264         * tree.h (debug_find_tree): Add declaration.
265         * tree-inline.c (debug_find_tree): Remove extern declaration.
266
267 2004-06-24  Eric Christopher  <echristo@redhat.com>
268
269         * config/rs6000/rs6000.md: Apply change mistakenly
270         deleted with 2004-06-22 patch.
271
272 2004-06-24  Richard Henderson  <rth@redhat.com>
273
274         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
275         (c_break_label, c_cont_label): New.
276         (start_function): Update initializations.
277         (c_push_function_context): Update saves.
278         (c_pop_function_context): Update restores.
279         * c-parse.in: Update expected conflicts.
280         (stmt_count, compstmt_count): Remove.  Remove all updates.
281         (if_prefix, simple_if, do_stmt_start): Remove.
282         (lineno_labeled_stmt): Remove.
283         (lineno_labels): New.
284         (c99_block_lineno_labeled_stmt): Use it.
285         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
286         annotate_with_locus.
287         (select_or_iter_stmt): Replace by ...
288         (condition, if_statement_1, if_statement_2, if_statement,
289         start_break, start_continue, while_statement, do_statement,
290         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
291         (stmt): Split out ...
292         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
293         c_finish_goto_ptr.
294         * c-semantics.c (add_stmt): Don't add line numbers to labels.
295         * c-tree.h: Update prototypes.
296         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
297         add x_break_label, x_cont_label, x_switch_stack.
298         (c_switch_stack): Declare.
299         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
300         (c_finish_return): Return the statement.
301         (c_switch_stack): Rename from switch_stack; export.
302         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
303         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
304         c_finish_else): Remove.
305         (c_finish_if_stmt): Rewrite to perform the entire operation.
306         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
307         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
308         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
309         (c_finish_loop): New.
310         (c_finish_bc_stmt): New.
311         (c_finish_expr_stmt): Return the statement.  Split out...
312         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
313         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
314         * tree-gimple.c (is_gimple_stmt): Likewise.
315         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
316         (print_struct_decl): Delete empty compound statement.
317         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
318         * objc/objc-act.h: Update decl.
319
320 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
321
322         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
323         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
324
325 2004-06-24  Andrew Pinski  <apinski@apple.com>
326
327         * objc-act.c (build_objc_method_call): Save the lookup_object
328         so we do not call it twice.
329
330 2004-06-24  Richard Henderson  <rth@redhat.com>
331
332         * tree-ssa-dom.c (real_avail_expr_hash): New.
333         (tree_ssa_dominator_optimize): Use it in the htab.
334
335 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
336
337         * tree-mudflap.c (mx_register_decls): Add third (type) argument
338         to synthesized __mf_unregister call.
339
340 2004-06-24  Roger Sayle  <roger@eyesopen.com>
341
342         PR middle-end/15239
343         * expmed.c (expand_mult): Remove artificial restriction on the
344         maximum cost of a synthetic multiplication sequence.
345
346 2004-06-24  Eric Christopher  <echristo@redhat.com>
347
348         * combine.c (distribute_notes): Don't delete sets to
349         global register variables.
350
351 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
352
353         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
354         (ffs_rex64): New splitter.
355         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
356
357 2004-06-24  Andrew Pinski  <apinski@apple.com>
358
359         * config/darwin7.h (MATH_LIBRARY): Remove.
360         (LIB_SPEC): Define.
361         * config/darwin.h (MATH_LIBRARY): Define always to empty.
362         (LIB_SPEC): Only define if not already defined.
363
364 2004-06-24  Revital Eres  <eres@il.ibm.com>
365
366         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
367         shifts of induction variable.
368         (iv_shift): New function.
369
370 2004-06-24  Richard Henderson  <rth@redhat.com>
371
372         * gimplify.c (gimplify_body): Watch for body vanishing.
373
374 2004-06-24  Jeff Law  <law@redhat.com>
375
376         * tree-ssa-dom.c (record_dominating_conditions): New function.
377         (dom_opt_finalize_block, get_eq_expr_value): Use it.
378
379 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
380
381         * calls.c (shift_returned_value): Fix handling of non-integer
382         TYPE_MODEs.
383
384 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
385
386         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
387         * system.h (DEFAULT_MAIN_RETURN): Poison.
388         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
389
390 2004-06-24  Ben Elliston  <bje@au.ibm.com>
391
392         * doc/cfg.texi (Edges): Fix typo.
393
394 2004-06-24  Paul Brook  <paul@codesourcery.com>
395
396         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
397
398 2004-06-23  Andrew Pinski  <apinski@apple.com>
399
400         PR middle-end/15988
401         * fold-const.c (fold_convert): Types which are compatible
402         can be converted with only a NOP_EXPR.
403
404 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
405
406         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
407         pass raw n_named_args to it.
408         * targhooks.c: Formatting.
409         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
410
411 2004-06-23  Richard Henderson  <rth@redhat.com>
412
413         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
414         non-constant size check.  Gimplify the type too.  Tidy building
415         BUILT_IN_STACK_ALLOC call.
416
417 2004-06-23  Roger Sayle  <roger@eyesopen.com>
418
419         * c-common.c (expand_unordered_cmp): Delete.
420         (expand_tree_builtin): Delete.
421         * c-common.h (expand_tree_builtin): Delete function prototype.
422         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
423
424 2004-06-23  Richard Henderson  <rth@redhat.com>
425
426         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
427         COMPONENT_REF variable fields unless they're non-constant.
428
429 2004-06-23  Robert Millan  <robertmh@gnu.org>
430
431         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
432         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
433           DYNAMIC_LINKER and register names in sc_ structure.
434         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
435         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
436         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
437         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
438
439         * config/kfreebsdgnu.h: Remove.
440         * config/t-kfreebsd-gnu: Likewise.
441         * config/i386/kfreebsdgnu.h: Likewise.
442
443 2004-06-23  Eric Christopher  <echristo@redhat.com>
444
445         * fold-const.c (make_range): Cleanup type checking through function.
446         Remove orig_type. Replace with checks to exp_type and arg0_type.
447         Clarify comment when converting from unsigned to signed.
448
449 2004-06-23  Eric Christopher  <echristo@redhat.com>
450
451         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
452         * config/mips/mips.md: Remove R3000 scheduling description.
453         * config/mips/3000.md: New file.
454
455 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
456
457         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
458         (s390_emit_jump): Likewise.
459         * config/s390/s390.c (s390_emit_compare): New function.
460         (s390_emit_jump): Likewise.
461         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
462         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
463         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
464         and s390_emit_jump.
465         ("cjump"): Remove, replace by ...
466         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
467         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
468         ("trap"): Fix type attribute.
469         ("conditional_trap"): Use s390_emit_compare.
470         ("doloop_si"): Remove, replace by ...
471         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
472         Merge existing splitter into insn_and_split.  Improve length default.
473         ("doloop_di"): Merge with existing splitter into insn_and_split.
474         ("doloop"): Adapt.
475         ("jump"): Convert to expander.  Use s390_emit_jump.
476         ("*jump_64", "*jump_31"): New insns.  Improve length default.
477
478 2004-06-23  Wu Yongwei  <adah@sh163.net>
479
480         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
481         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
482         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
483         suitable function for interlocked compare-and-exchange.
484         (__gthread_mutex_trylock): Use
485         __GTHR_W32_InterlockedCompareExchange.
486         (__gthread_mutex_init_function, __gthread_mutex_lock,
487         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
488         initial counter value to work correctly under Windows 95.
489         * config/i386/gthr-win32.c: Adjust include order.
490         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
491         gthr-win32.h.
492         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
493         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
494         to match inline versions in gthr-win32.h.
495
496 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
497
498         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
499         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
500         (insvdi_rshift_rlwimi_p): New function.
501         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
502         (extendsfdf2): Convert to define_insn_and_split.
503         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
504
505 2004-06-23  Andrew Pinski  <apinski@apple.com>
506
507         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
508         type qualifiers at all.
509         If both of the type domains are null and the new element type is
510         the same as one of the, return the one which the element type.
511         matches.
512         Do not call qualify_type on the new type.
513
514 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
515
516         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
517
518 2004-06-23  Roger Sayle  <roger@eyesopen.com>
519
520         * convert.c (strip_float_extension): Skip both NOP_EXPR and
521         CONVERT_EXPR floating point extensions.
522
523 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
524
525         * Makefile.in (tree-vn.o): New.
526         (tree-ssa-pre.o): Don't depend on RTL_H.
527         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
528         * tree-flow.h (struct var_ann_d): Remove field expr_set.
529         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
530         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
531         * tree-optimize.c (execute_init_datastructures): New local function.
532         (pass_init_datastructures): New local variable.
533         (init_tree_optimization_passes): Sequence pass_init_datastructures.
534         * tree-pretty-print.c (MASK_POINTER): Remove.
535         (dump_generic_node): Handle VALUE_HANDLE.
536         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
537         Update callers to use new function names.
538         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
539         variable annotations.
540         * tree-ssa.c (init_tree_ssa): Call vn_init.
541         (delete_tree_ssa): Call vn_delete.
542         * tree-vn.c: New file.
543         * tree.c (tree_size): Handle VALUE_HANDLE.
544         (tree_node_structure): Likewise.
545         (iterative_hash_expr): Likewise.
546         * tree.def (VALUE_HANDLE): New code.
547         * tree.h (struct tree_value_handle): New.
548         (VALUE_HANDLE_ID): Define.
549         (VALUE_HANDLE_EXPR_SET): Define.
550         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
551         (union tree_node): Add struct tree_value_handle.
552
553 2004-06-23  Andrew Pinski  <apinski@apple.com>
554
555         * c-typeck.c (composite_type):
556         <case POINTER_TYPE>: Build a qualified type of
557         the new type.
558         <case ARRAY_TYPE>: Likewise.
559         <case FUNCTION_TYPE>: Likewise.
560
561 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
562
563         PR optimization/15633
564         * value-prof.c (divmod_fixed_value_transform): Compute probability
565         of taking optimal path and pass along to gen_ routine.
566         (mod_pow2_value_transform): Same.
567         (mod_subtract_transform): Same.
568         (gen_divmod_fixed_value): Add new probability parameter.
569         Add probability to newly created jump.
570         (gen_mod_pow2): Same.
571         (gen_mod_subtract): Same.
572
573 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
574
575         * PR target/15948
576         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
577         one and two.
578
579 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
580
581         PR target/15927
582         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
583         reload if CLASS is BASE_REGS.
584
585 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
586
587         * gengtype-yacc.y (option): Avoid use of non-constant struct
588         initializer.
589
590 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
591
592         * doc/extend.texi (Function Attributes): Alphabetize.
593
594 2004-06-23  Richard Henderson  <rth@redhat.com>
595
596         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
597         Use gimplify_and_add.
598         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
599         * gimplify.c (build_and_jump, gimplify_exit_expr,
600         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
601         gimplify_stmt, gimplify_expr): Likewise.
602         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
603         (gimplify_statement_list): Remove NULL entries.
604         (gimplify_to_stmt_list): Handle NULL results.
605         (gimplify_type_sizes): Add list_p argument.
606         (gimplify_one_sizepos): Don't use internal pre/post queue.
607         * tree-gimple.h (gimplify_type_sizes): Update.
608
609 2004-06-22  Eric Christopher  <echristo@redhat.com>
610
611         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
612
613 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
614
615         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
616         when redirecting back edges.
617
618         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
619         count/probability are set correctly.
620
621 2004-06-22  Richard Henderson  <rth@redhat.com>
622
623         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
624         (c_finish_stmt_expr): Likewise.
625
626         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
627         (ix86_return_in_memory): Move SSE vector return warning ...
628         (ix86_struct_value_rtx): ... here.  New.
629
630 2004-06-22  Richard Henderson  <rth@redhat.com>
631
632         * tree.def (VTABLE_REF): Remove.
633         (OBJ_TYPE_REF): New.
634         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
635         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
636         * fold-const.c (non_lvalue): Likewise.
637         * gimplify.c (gimplify_expr): Likewise.
638         (gimplify_call_expr): Use is_gimple_call_addr.
639         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
640         * langhooks.h (fold_obj_type_ref): New.
641         * tree-gimple.c (is_gimple_call_addr): New.
642         * tree-gimple.h (is_gimple_call_addr): Declare.
643         * tree-inline.c (inlinable_function_p): Fix merge error.
644         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
645         * tree-pretty-print.c (dump_generic_node): Likewise.
646         (print_call_name): Handle OBJ_TYPE_REF.
647         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
648         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
649         * tree.h (OBJ_TYPE_REF_EXPR): New.
650         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
651         * doc/c-tree.texi (VTABLE_REF): Remove.
652         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
653
654 2004-06-22  Richard Henderson  <rth@redhat.com>
655
656         PR middle-end/16026
657         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
658
659 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
660
661         * Makefile.in (distclean): Don't try to remove empty directories.
662
663 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
664
665         PR target/15869
666         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
667
668 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
669
670         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
671         operands.
672
673 2004-06-22  Dale Johannesen  <dalej@apple.com>
674
675         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
676         global, rename rs6000_legitimate_offset_address_p.
677         (rs6000_legitimate_address_p): Adjust calls to it.
678         (lmw_operation): Ditto.
679         (stmw_operation): Ditto.
680         * config/rs6000/rs6000-protos.h: Declare it.
681         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
682         instead of offsettable_memref_p.
683
684 2004-06-22  Dale Johannesen  <dalej@apple.com>
685
686         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
687         [reg+reg] mode for TFmode memory accesses.
688         (rs6000_eliminate_indexed_memrefs): New.
689         (rs6000_emit_move): Call preceding for TImode and TFmode.
690
691 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
692
693         * tree-cfg.c (pass_warn_function_return): It needs
694         CFG, not SSA.
695
696 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
697
698         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
699         (Submodel Options): Likewise.
700
701 2004-06-21  Andrew Pinski  <apinski@apple.com>
702
703         Radar #: 3701874
704         * c-decl.c (push_file_scope): Return early if we already
705         have a file scope.
706
707 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
708
709         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
710         * c-common.h (flag_pch_preprocess): Declare.
711         (c_common_pch_pragma): Likewise.
712         * c-common.c (flag_pch_preprocess): New.
713         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
714         (c_common_pch_pragma): New.
715         * c-ppoutput.c (cb_read_pch): New.
716         (init_pp_output): Support -fpch-preprocess.
717         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
718         * c.opt (fpch-preprocess): New.
719         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
720         * doc/cppopts.texi: Document -fpch-preprocess.
721         * doc/invoke.texi (Precompiled Headers): Mention that
722         -fpreprocessed is safe for PCH.  Mention that if an option is
723         listed as safe that doesn't mean it does what you expect.
724
725 2004-06-22  Ben Elliston  <bje@au.ibm.com>
726
727         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
728
729 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
730
731         * Makefile.in (gimplify.o): Add cgraph.h.
732         * alias.c (adjust_offset_for_component_ref): Use
733         component_ref_field_offset.
734         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
735         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
736         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
737         For decl, call gimplify_one_sizepos and use statement list.
738         (gimplify_compound_literal_expr): New arg PRE_P.
739         Add statement to PRE_P list and return DECL.
740         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
741         gimplify_compound_literal_expr.
742         * c-tree.h (getdecls): Deleted.
743         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
744         (build_array_ref): Add two operands for ARRAY_REF.
745         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
746         COMPOUND_LITERAL_EXPR.
747         * coverage.c (tree_coverage_counter_ref): Add new operands
748         for ARRAY_REF.
749         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
750         for COMPONENT_REF.
751         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
752         and array_ref_element_size.
753         (widen_memory_access):Use component_ref_field_offset.
754         * explow.c (update_nonlocal_goto_save_area): Add two operands
755         for ARRAY_REF.
756         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
757         (component_ref_field_offset): Likewise.
758         (get_inner_reference): Use them.
759         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
760         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
761         (fold_read_from_constant_string): Use array_ref_low_bound.
762         Verify that result is a character type.
763         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
764         * function.c (expand_function_start): Likewise.
765         * gimple-low.c (expand_var_p): Delete duplicated line.
766         * gimplify.c: Add static decls for local functions.
767         (cgraph.h): Now included.
768         (create_tmp_var): Remove check for ARRAY_TYPE.
769         (copy_if_shared_r): Look at bounds and sizes of types.
770         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
771         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
772         (gimplify_save_expr, gimple_push_cleanup): Likewise.
773         (gimplify_init_constructor): Likewise.
774         WANT_VALUE now bool.
775         If empty list with no result wanted, return GS_UNHANDLED.
776         Add additional operands for ARRAY_REF and COMPONENT_REF.
777         (canonicalize_component_ref): Convert to &array[L].
778         (gimplify_array_ref_to_plus): Use array_ref_element_size and
779         array_ref_lower_bound.
780         (build_addr_expr_with_type, build_addr_expr): New functions.
781         (gimplify_compound_lval): WANT_LVALUE now bool.
782         Major rework to allow handle_component_p and initialize and
783         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
784         COMPONENT_REF.
785         (gimplify_array_ref): Deleted.
786         (gimplify_self_mod_expr): WANT_VALUE now bool.
787         (gimplify_modify_expr): Gimplify to_p and from_p later.
788         Factor out code into gimplify_modify_expr_rhs and call twice.
789         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
790         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
791         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
792         (gimplify_expr, case ARRAY_REF): Delete special case.
793         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
794         IMAGPART, and REALPART the same way.
795         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
796         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
797         Call alloc_stmt_list instead of build_empty_stmt.
798         Deal with _REF that's volatile.
799         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
800         (unshare_body, unvisit_body): New functions.
801         (gimplify_body): Call them.
802         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
803         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
804         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
805         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
806         like ARRAY_REF.
807         (verify_expr, case ADDR_EXPR): Use handled_component_p.
808         * tree-dfa.c (get_virtual_var): Likewise.
809         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
810         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
811         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
812         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
813         and INDIRECT_REF.
814         (get_base_address): Use handled_component_p.
815         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
816         * tree-inline.c (walk_tree): Walk more things for types and decls.
817         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
818         for ARRAY_REF and COMPONENT_REF.
819         (mx_xform_derefs_1): Clean up usage of decl sizes.
820         * tree-nested.c (build_addr): Use handled_component_p.
821         (walk_stmts, case CATCH_EXPR): Add missing "break".
822         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
823         (finalize_nesting_tree_1): Likewise.
824         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
825         and process additional operands.
826         (convert_local_reference): Likewise.
827         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
828         ARRAY_RANGE_REF similarly to ARRAY_REF.
829         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
830         like RECORD_TYPE.
831         (dump_generic_node, case COMPONENT_REF): Print offset operand.
832         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
833         and print lower bound and element size for both.
834         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
835         * tree-sra.c (csc_build_component_ref): Add new operand.
836         (scalarize_call_expr): Use get_base_address.
837         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
838         (maybe_fold_offset_to_array_ref): Rework to handle input having an
839         ARRAY_REF, refine handling of lower bound, and add new operands
840         for ARRAY_REF.
841         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
842         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
843         (maybe_fold_stmt_addition): Only handle constant lower bound.
844         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
845         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
846         Look at new offset operand of COMPONENT_REF.
847         * tree-ssa.c (set_is_used): Use handled_component_p.
848         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
849         (stabilize_reference, case COMPONENT_REF): Likewise.
850         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
851         (recompute_tree_invariant_for_addr_expr): Completely rework to
852         be more precise.  Also set TREE_SIDE_EFFECTS.
853         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
854         (build2_stat, build3_stat, build4_stat): For references,
855         propagate TREE_THIS_VOLATILE.
856         (get_unwidened): Add new operand for COMPONENT_REF.
857         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
858         * tree.def (COMPONENT_REF): Add new operand.
859         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
860         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
861         (component_ref_field_offset): Likewise.
862         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
863         (alpha_gimplify_va_arg): Likewise.
864         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
865         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
866         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
867         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
868         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
869         Likewise.
870         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
871         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
872         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
873         Likewise.
874         (xstormy16_expand_builtin_va_arg): Likewise.
875         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
876         * objc/objc-act.c (generate_static_references): Likewise.
877         (generate_strings, build_method_prototype_list_template): Likewise.
878         (generate_protocol_list): Likewise.
879
880 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
881
882         PR rtl-optimization/14782
883         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
884         the address checks for secondary reloads for loads from and stores
885         to floating-point registers.
886         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
887         in the address check.  Move work around for ELF32 targets to
888         GO_IF_LEGITIMATE_ADDRESS.
889         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
890         correctly aligned for DImode loads and stores.  Don't allow long
891         SFmode displacements on ELF32.
892
893 2004-06-21  Richard Henderson  <rth@redhat.com>
894
895         PR rtl-opt/16114
896         * cse.c (merge_equiv_classes): Also rehash in response to
897         delete_reg_equiv changes.
898         (rehash_using_reg): Don't exclude REGs from rehashing.
899
900 2004-06-21  Richard Henderson  <rth@redhat.com>
901
902         * c-common.def (RETURN_STMT): Remove.
903         * c-common.h (RETURN_STMT_EXPR): Remove.
904         (c_expand_return, build_return_stmt): Remove.
905         (c_common_stmt_codes): Remove RETURN_STMT.
906         * c-dump.c (dump_next_stmt): Remove.
907         (c_dump_tree): Remove RETURN_STMT.
908         * c-decl.c (finish_function): Use c_finish_return.
909         * c-parse.in (stmt): Likewise.
910         * c-gimplify.c (gimplify_return_stmt): Remove.
911         (c_gimplify_expr): Remove RETURN_STMT.
912         * c-pretty-print.c (pp_c_statement): Likewise.
913         * c-semantics.c (build_return_stmt): Remove.
914         * c-tree.h (c_finish_return): Declare.
915         * c-typeck.c (c_finish_return): Rename from c_expand_return.
916         Return void.  Build RETURN_EXPR directly.
917         * tree-dump.h (dump_next_stmt): Remove.
918
919 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
920
921         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
922         look at TREE_ADDRESSABLE of symbol name.
923
924 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
925
926         PR target/15551
927         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
928         (allocate_stack_worker): Make unspec_volatile.
929         (allocate_stack_worker_rex64):  Likewise.
930         (allocate_stack_worker_postreload):  Likewise.
931         (allocate_stack_worker_rex64_postreload):  Likewise.
932
933 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
934
935         Fix PR optimization/15982
936         * tree-ssa-pre.c: Update a few comments and todos to
937         reflect constants change.
938         (get_value_handle): Constants now value number to themselves.
939         (lookup): Constants lookup to themselves.
940         (add_to_value): Adjust to always be on.
941         (set_contains_value): Adjust for constants change.
942         (find_leader): Ditto.
943         (phi_translate): 'r' nodes are never ANTIC right now.
944         (valid_in_set): Ditto.
945         (get_expr_set): New function.
946         (find_or_generate_expression): New function, broken out from
947         insert_aux.
948         (create_expression_by_pieces): Ditto, plus additional
949         machinery to handle complex values.
950         (compute_avail): Remove dead RETURN_EXPR handling.
951
952 2004-06-21  Steven Bosscher  <stevenb@suse.de>
953
954         * config/i386/i386.c: Include insn-codes.h
955         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
956         define here.
957         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
958         DIRFLAG_REG): New define_constants.  Use them everywhere.
959
960 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
961
962         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
963
964 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
965
966         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
967         (SUPPORT_SH4_SINGLE): Likewise.
968         (TARGET_SWITCHES): Break out switches for cpu subtargets:
969         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
970         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
971         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
972         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
973         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
974         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
975         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
976         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
977         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
978         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
979         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
980         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
981         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
982         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
983         (TARGET_DEFAULT): Likewise.
984         * config/sh/t-elf: Amend comment.
985         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
986         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
987         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
988         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
989         * config/sh/t-mlib-sh4-single: Likewise.
990         * config/sh/t-mlib-sh4-single-only: Likewise.
991         * config/sh/t-mlib-sh5-32media: Likewise.
992         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
993         * config/sh/t-mlib-sh5-64media: Likewise.
994         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
995         * config/sh/t-mlib-sh5-compact: Likewise.
996         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
997         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
998         (MULTILIB_CPUS): Define.
999         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1000         (MULTILIB_MATCHES): Use some shell code to calculate it.
1001         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1002         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1003         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1004         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1005         (NO_PROFILE_COUNTERS): Define to 1.
1006         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1007         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1008         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1009         (MULTILIB_MATCHES): Don't zap.
1010         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1011         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1012         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1013         (MULTILIB_RAW_DIRNAMES): Define.
1014         (MULTILIB_DIRNAMES): Use it.
1015         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1016         (sh*linux configurations): Merge into:
1017         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1018         --with-multilib-list options.  Support sh-superh-elf configuration.
1019         (sh*-netbsd*): Use SELECT_SH* macros.
1020         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1021         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1022         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1023         * config/sh/t-monolib: Likewise.
1024
1025 2004-06-21  Paul Brook  <paul@codesourcery.com>
1026
1027         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1028         not imply FPA.
1029
1030 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1031
1032         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1033         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1034         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1035         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1036         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1037         and TRUTH_XOR_EXPR.
1038
1039 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1040
1041         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1042
1043 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1044
1045         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1046         ip_partial to unsigned int.
1047
1048 2004-06-21  Richard Henderson  <rth@redhat.com>
1049
1050         * c-common.c (verify_sequence_points): Export.
1051         (c_expand_expr_stmt): Move to c-typeck.c.
1052         * c-common.h (c_expand_expr_stmt): Remove.
1053         (verify_sequence_points): Declare.
1054         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1055         * c-parse.in (for_init_stmt, stmt): Likewise.
1056         * c-tree.h (c_finish_expr_stmt): Declare.
1057         (c_tree_expr_nonnegative_p): Remove.
1058         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1059         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1060         (emit_side_effect_warnings): New.
1061         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1062         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1063         Use emit_side_effect_warnings.
1064         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1065         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1066         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1067         with void initializer.
1068         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1069         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1070         INIT_EXPR and MODIFY_EXPR.
1071         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1072         instead of c_expand_expr_stmt.
1073
1074 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1075
1076         * fold-const.c (fold_cond_expr_with_comparison):
1077         New function, extracted from fold.
1078         (fold): Extract code to fold A op B ? A : C, use
1079         it to fold A op B ? C : A.  Really optimize
1080         A & N ? N : 0 where N is a power of two.  Avoid
1081         relying on canonicalization and recursion for
1082         foldings of COND_EXPR to happen.
1083
1084 2004-06-20  David Ayers  <d.ayers@inode.at>
1085
1086         * objc/objc-act.h (get_object_reference): Rename to
1087         get_protocol_reference.
1088         (super_type): Rename to objc_super_type.
1089         (selector_type): Rename to objc_selector_type.
1090         (id_type): Rename to objc_id_type.
1091         (instance_type): Rename to objc_instance_type.
1092         (protocol_type): Rename to objc_protocol_type.
1093         (IS_ID): Update reference to id_type.
1094         * objc/objc-act.c (get_object_reference): Rename to
1095         get_protocol_reference; add documentation; update references to
1096         id_type.
1097         (lookup_method_in_protocol_list): Rename class_meth to
1098         is_class; add documentation.
1099         (finish_message_expr): Rename is_class to class_tree.
1100         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1101         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1102         build_next_objc_exception_stuff, get_arg_type_list,
1103         build_objc_method_call): Update references to id_type.
1104         (synth_module_prologue, build_objc_symtab_template,
1105         build_selector_reference_decl, build_selector,
1106         build_selector_translation_table, build_typed_selector_reference,
1107         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1108         synth_self_and_ucmd_args): Update references to selector_type.
1109         (build_private_template, build_ivar_reference): Update references
1110         to instance_type.
1111         (synth_module_prologue, build_protocol_reference,
1112         build_protocol_expr, start_protocol): Update references to
1113         protocol_type.
1114         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1115         Update references to super_type.
1116         * c-parse.in: (typespec_nonreserved_nonattr): Update
1117         references to get_object_reference.
1118         * objc/objc-tree.def: Add C mode identifier sequence.
1119
1120 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1121
1122         * loop-invariant.c: New file.
1123         * Makefile.in (loop-invariant.o): New.
1124         * cfgloop.h (global_cost_for_size, init_set_costs,
1125         move_loop_invariants): Declare.
1126         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1127         functions.
1128         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1129         variables.
1130         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1131         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1132         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1133         (rest_of_compilation): Check flag_loop_optimize2.
1134         * toplev.c (process_options): Handle flag_loop_optimize2.
1135         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1136         * doc/passes.texi (loop-invariant.c): Document.
1137
1138 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1139
1140         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1141
1142 2004-06-20  Richard Henderson  <rth@redhat.com>
1143
1144         * stmt.c (warn_if_unused_value): Add locus argument.
1145         * tree.h (warn_if_unused_value): Update decl.
1146         * c-typeck.c (internal_build_compound_expr): Update call.
1147         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1148
1149 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1150
1151         PR middle-end/16089
1152         * builtins.c (entry_of_function): Move to ...
1153         * cfgrtl.c (entry_of_function): Here and make non-static.
1154         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1155         * rtl.h (entry_of_function): Prototype.
1156
1157 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1158
1159         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1160         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1161         TARGET_DECOMPOSE_LEA.
1162
1163 2004-06-20  Richard Henderson  <rth@redhat.com>
1164
1165         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1166         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1167         * c-parse.in: Likewise.
1168         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1169         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1170         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1171
1172 2004-06-20  Richard Henderson  <rth@redhat.com>
1173
1174         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1175         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1176         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1177         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1178         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1179         * c-pretty-print.c (pp_c_statement): Similarly.
1180         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1181         gimplify_if_stmt): Move to cp-gimplify.c.
1182         (c_genericize, c_gimplify_expr): Don't call them.
1183         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1184         * c-typeck.c (push_cleanup): New.
1185         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1186         c_finish_if_stmt): Use COND_EXPR.
1187         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1188
1189 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1190
1191         * c-common.h (has_c_linkage): New interface.
1192         * c-cppbuiltin.c: Include target.h.
1193         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1194         __PRAGMA_EXTERN_PREFIX when appropriate.
1195         * c-pragma.c: Include target.h.
1196         Document clarified semantics of symbol-renaming #pragmas.
1197         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1198         (maybe_apply_renaming_pragma): Rewrite according to clarified
1199         semantics.  Always recognize, but do not necessarily execute.
1200         (init_pragma): Unconditionally register symbol-renaming pragmas.
1201         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1202         and HANDLE_PRAGMA_EXTERN_PREFIX.
1203         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1204         and handle_pragma_extern_prefix flags.
1205         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1206         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1207         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1208         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1209         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1210         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1211         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1212         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1213         not HANDLE_PRAGMA_EXTERN_PREFIX.
1214         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1215         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1216         into one section "Symbol-Renaming Pragmas"; clarify; document
1217         adjusted semantics.
1218
1219         * builtins.c (expand_builtin): Do not issue error for a builtin
1220         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1221         library call.
1222         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1223         * c-objc-common.c (has_c_linkage): Stub implementation.
1224         * cgraphunit.c (cgraph_expand_function)
1225         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1226
1227 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1228
1229         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1230         instead of both an ARGLIST and a result TYPE.  Handle these C99
1231         comparison functions as "polymorphic" builtins.  Also handle
1232         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1233         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1234         Move handling of BUILT_IN_ISUNORDERED from here to there.
1235
1236 2004-06-19  Richard Henderson  <rth@redhat.com>
1237
1238         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1239         * c-gimplify.c: Remove unnecessary prototypes.
1240         (c_gimplify_stmt): Merge into ...
1241         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1242         * c-semantics.c (prep_stmt): Remove.
1243         * gimplify.c (annotate_one_with_locus): Break out from ...
1244         (annotate_all_with_locus): ... here.
1245         (gimplify_expr): Add locus to expressions even if pre/post queues
1246         are not present.
1247
1248 2004-06-19  Richard Henderson  <rth@redhat.com>
1249
1250         PR target/15941
1251         * function.c (assign_parms): If not padding upward or intentionally
1252         forcing upward padding, take offset_rtx into account when determining
1253         the alignment for stack_parm.
1254
1255 2004-06-19  Richard Henderson  <rth@redhat.com>
1256
1257         PR target/15550
1258         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1259
1260 2004-06-19  Jan Hubicka  <jh@suse.cz>
1261
1262         * function.c (free_after_compilation): Do not free computed_goto_common*.
1263         * function.h (struct function): Kill computed_goto_common*.
1264         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1265         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1266         commonized computed goto.
1267
1268 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1269
1270         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1271         in binutils.
1272
1273 2004-06-19  Andrew Pinski  <apinski@apple.com>
1274
1275         PR c++/15721
1276         * toplev.c (wrapup_global_declarations): Do not check
1277         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1278         cgraph_varpool_node's needed field.
1279
1280 2004-06-19  Jan Hubicka  <jh@suse.cz>
1281             Steven Bosscher  <stevenb@suse.de>
1282
1283         CFG transparent RTL expansion:
1284         * Makefile.in (cfgexpand.o): New object file.
1285         (builtins.o): Add dependency on basic-block.h
1286         * builtins.c: Include basic-block.h
1287         (entry_of_function): New function.
1288         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1289         * cfgexpand.c: New file.
1290         * expr.c (execute_expand, pass_expand): Kill.
1291         * pass.c (rest_of_compilation): Do not build CFG unless called from
1292         coverage code.
1293         * tree-cfg.c (delete_tree_cfg): Rename to..
1294         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1295         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1296         (dleete_tree_cfg): Kill.
1297         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1298         (execute_del_cfg): Rename to...
1299         (execute_free_datastructures): This one...
1300         (pass_del_cfg): Rename to...
1301         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1302         (init_tree_optimization_passes): Make cfg build and profiling to happen
1303         unconditionally.
1304
1305 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1306
1307         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1308         inserting the cache variables.
1309
1310         * tree-mudflap.c: Include headers to make basic_block available.
1311         Move functions around such that related functions are near each
1312         other.  Add prototypes for all static functions.  Add comments
1313         briefly explaining what IR the mudflap1 and mudflap2 work on and
1314         what they do.
1315         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1316         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1317         (pass_mudflap_1, pass_mudflap_2): Update.
1318         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1319         function tree.
1320         (mf_build_check_statement_for): Make it work on the CFG.
1321         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1322         (mf_xform_derefs): Likewise.
1323
1324 2004-06-19  Jan Hubicka  <jh@suse.cz>
1325
1326         * tree-cfg.c (label_to_block): Invent the label destination for
1327         undefined labels.
1328         (cleanup_dead_labels): Update table in the case label_to_block added
1329         new label.
1330
1331 2004-06-18  Richard Henderson  <rth@redhat.com>
1332
1333         PR c++/16036
1334         * gimple-low.c (lower_function_body): Generate return statement for
1335         fall off the end of the function here ...
1336         * tree-cfg.c (make_edges): ... instead of here.
1337         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1338
1339 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1340
1341         * tree-ssa.c (raise_value): Removed.
1342         (get_eq_name, check_phi_redundancy): New functions.
1343         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1344
1345 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1346
1347         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1348         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1349         constant folding for unordered comparison tree nodes.  If both
1350         operands are real constants, call fold_relational_const.  If either
1351         operand is a NaN, evaluate the other for side-effects and return a
1352         constant.  Optimize (double)float1 CMP (double)float2 into the
1353         equivalent float1 CMP float2.
1354         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1355         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1356         LTGT_EXPR>: Call fold_relational_const for constant operands.
1357         (fold_relational_const): Add support for unordered comparison tree
1358         nodes.  Don't constant fold "ordered" floating point comparisons
1359         against NaN if when flag_trapping_math is set.
1360
1361 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1362
1363         * fold-const.c (build_range_check): If !in_p and recursive call
1364         fails, exit immediately.  If high - low overflows and etype is
1365         a signed type, retry with unsigned etype.
1366         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1367         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1368
1369 2004-06-18  Richard Henderson  <rth@redhat.com>
1370
1371         * c-gimplify.c (gimplify_condition): Remove.
1372         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1373         call it.
1374
1375 2004-06-18  Richard Henderson  <rth@redhat.com>
1376
1377         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1378         switch estimates.
1379
1380 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1381
1382         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1383         (NORMAL_TEXT_SECTION_NAME): Define.
1384         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1385         (SECTION_FORMAT_STRING): Define.
1386
1387 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1388
1389         * config/xtensa/xtensa.c
1390         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1391         * xtensa.md: Replace the old pipeline description with a DFA model.
1392
1393 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1394             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1395
1396         * config/s390/s390.md: Remove the generic pipeline description.
1397         * config/s390/2064.md: Make all insn reservations apply to
1398         the z900, g5 and g6.
1399         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1400         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1401         Define to hook_int_void_1.
1402         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
1403         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1404
1405 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
1406                         Diego Novillo  <dnovillo@redhat.com>
1407
1408         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1409         (create_stmt_ann): Ditto.
1410         (create_tree_ann): New function.
1411         (create_cst_ann): Remove.
1412         (create_expr_ann): Ditto.
1413
1414         * tree-flow-inline.h (cst_ann): Remove.
1415         (get_cst_ann): Ditto.
1416         (get_expr_ann): Ditto.
1417         (expr_ann): Ditto.
1418         (get_tree_ann): New function.
1419         (tree_ann): Ditto.
1420         (ann_type): tree_ann -> tree_ann_t.
1421         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1422         (struct cst_ann_d): Removed.
1423         (struct expr_ann_d): Ditto.
1424         (union tree_ann_d): Removed cst and expr.
1425         (tree_ann): Renamed to tree_ann_t.
1426         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1427         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1428         annotation.
1429         (set_value_handle): Ditto.
1430         (phi_translate): Ditto.
1431         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1432
1433 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1434
1435         * config/sh/t-linux64: New file.
1436         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1437
1438 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
1439
1440         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1441         (unshare_all_rtl_again): Call unshare_all_rtl_1.
1442         (unshare_all_rtl): New.
1443         * function.c (instantiate_virtual_regs): Remove parameters.
1444         * function.h (instantiate_virtual_regs): Add prototype.
1445         * rtl.h (unshare_all_rtl): Add prototype.
1446         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1447         prototype.
1448         * passes.c: Remove assertions on the parameters to
1449         rest_of_handle_* functions.  Remove the parameters to
1450         the functions, replacing decl with current_function_decl
1451         and insns with get_insns ().
1452
1453 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1454
1455         * fold-const.c (constant_boolean_node): Handle boolean_type_node
1456         directly, return either boolean_true_node or boolean_false_node.
1457
1458 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
1459
1460         * opts.sh: Delete.  Break out generated code to next four files.
1461         * opt-gather.awk: New file.
1462         * optc-gen.awk: New file.
1463         * opth-gen.awk: New file.
1464         * opt-functions.awk: New common file.
1465         * Makefile.in: Update for above.
1466         * configure.ac: Update comment.
1467         * configure: Regenerate.
1468
1469 2004-06-17  Richard Henderson  <rth@redhat.com>
1470
1471         * c-common.c (flag_objc_sjlj_exceptions): New.
1472         * c-common.h (flag_objc_sjlj_exceptions): Declare.
1473         * c-opts.c (c_common_handle_option): Set it.
1474         (c_common_post_options): Handle interation of different
1475         objective-c exception and runtime switches.
1476         * c-decl.c (c_eh_initialized_p): New.
1477         (finish_decl): Use it instead of local eh_initialized_p.
1478         * c-parse.in (nested_function, notype_nested_function): Record
1479         the result of compstmt.
1480         (compstmt_or_error): Likewise.
1481         (compstmt): Don't add_stmt the result.
1482         (stmt): Don't return anything.  Rewrite objc try and sync rules.
1483         (objc_try_stmt, objc_catch_list): Remove.
1484         (objc_catch_block, objc_finally_block): Remove.
1485         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1486         (objc_try_catch_clause, objc_finally_clause): New.
1487         (objc_try_catch_stmt): Rewrite.
1488         * c-tree.h (c_eh_initialized_p): Declare.
1489         * c-opt (fobjc-sjlj-exceptions): New.
1490         * except.c (output_function_exception_table): Don't call cgraph
1491         on non-decls.
1492         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1493         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1494         catch_count_stack, exc_binding_stack, if_nesting_count,
1495         blk_nesting_count, objc_enter_block, objc_exit_block,
1496         objc_declare_variable, val_stack_push, val_stack_pop,
1497         objc_build_try_enter_fragment, objc_build_extract_expr,
1498         objc_build_try_exit_fragment, objc_build_extract_fragment,
1499         objc_build_try_prologue, objc_build_try_epilogue,
1500         objc_build_catch_stmt, objc_build_catch_epilogue,
1501         objc_build_finally_prologue, objc_build_finally_epilogue,
1502         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1503         objc_build_synchronized_epilogue): Remove.
1504         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1505         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1506         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1507         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1508         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1509         objc_begin_catch_clause, objc_finish_catch_clause,
1510         objc_build_finally_clause, objc_finish_try_stmt,
1511         objc_build_synchronized): New.
1512         (objc_is_object_id, objc_is_class_id): New.
1513         (objc_comptypes): Use them.
1514         (build_next_objc_exception_stuff): Break NeXT sjlj out from
1515         build_objc_exception_stuff.
1516         (synth_module_prologue): Update to match.
1517         (objc_build_throw_stmt): Use cur_try_context to decide if
1518         we're in a @catch.
1519         * objc/objc-act.h: Update prototypes.
1520         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1521
1522 2004-06-17  Andrew Pinski <apinski@apple.com>
1523
1524         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1525         Use TYPE_FIELDS instead of TYPE_VALUES.
1526
1527 2004-06-17  Jason Merrill  <jason@redhat.com>
1528
1529         PR c++/16015
1530         * gimplify.c (gimplify_target_expr): Handle void initializer.
1531         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
1532         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
1533         and AGGR_INIT_EXPR.
1534
1535 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1536
1537         * fold-const.c (fold_relational_const): Use constant_boolean_node.
1538
1539 2004-06-17  Jan Hubicka  <jh@suse.cz>
1540
1541         PR target/15433
1542         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
1543         operand numbering in the output template.
1544         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
1545
1546 2004-06-17  Jan Hubicka  <jh@suse.cz>
1547
1548         * except.c (can_throw_internal): Recognize RESX expresisons.
1549
1550 2004-06-17  Jan Hubicka  <jh@suse.cz>
1551
1552         * cfgbuild.c (make_edges): Do not use label_value_list.
1553         (find_basic_blocks_1): Do not collect label_value_list.
1554         (find_sub_basic_blocks): Update call of make_edges.
1555
1556 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
1557
1558         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
1559         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
1560         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
1561         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
1562         (get_v_may_def_result_ptr):  Return a def_operand_p.
1563         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
1564         (get_v_must_def_op_ptr):  Return a def_operand_p.
1565         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
1566         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
1567         (phi_element_for_edge):  Remove.
1568         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
1569         (propagate_tree_value):  Add new prototype.
1570         (phi_element_for_edge):  Remove prototype.
1571         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
1572         (prepare_operand_for_rename):  Split into two functions.
1573         (prepare_use_operand_for_rename):  Prepare use operands.
1574         (prepare_def_operand_for_rename):  Prepare def operands.
1575         (rewrite_stmt):  Use new operand types.
1576         (rewrite_operand):  Use new operand types, change parameter type.
1577         * tree-outof-ssa.c (replace_variable):  Split into two functions.
1578         (replace_use_variable):  Rewrite uses.
1579         (replace_def_variable):  Rewrite defs.
1580         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
1581         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
1582         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
1583         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
1584         (ccp_fold, replace_uses_in):  Use new operand types.
1585         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
1586         and no longer set the value, change parameter type.
1587         (replace_exp_1):  Use new operand types.
1588         (propagate_value):  Change parameter type, use new operand types.
1589         (propagate_tree_value):  Propagate_value without SSA operands.
1590         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
1591         (cprop_into_successor_phis):  Use new operand types.
1592         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
1593         (eliminate_redundant_computations):  Use new operand types.
1594         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
1595         (fix_stmt_v_may_defs):  Use new operand_types.
1596         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
1597         (build_tree_conflict_graph):  Use new operand_types.
1598         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
1599         * tree-ssa-operands.c (struct freelist_d):  Remove.
1600         (check_optype_freelist, add_optype_freelist):  Remove.
1601         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1602         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
1603         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1604         Call ggc_free instead of add_optype_freelist.
1605         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
1606         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
1607         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
1608         (struct use_optype_d):  Change underlying type.
1609         (def_operand_p, use_operand_p):  New types for pointers to operands.
1610         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
1611         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
1612         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
1613         pointer types.
1614         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
1615         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
1616         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
1617         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
1618         PHI result as an operand.
1619         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
1620         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
1621         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
1622         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
1623         PHI_ARG_DEF_FROM_EDGE.
1624         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
1625         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
1626
1627 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1628
1629         PR tree-optimization/15991
1630         * tree-cfg.c (tree_block_label): Export.
1631         * tree-flow-inline.h (bsi_after_labels): New function.
1632         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
1633         * tree-ssa.c (propagate_into_addr): New function.
1634         (replace_immediate_uses): Handle propagation of pointer constants.
1635         (raise_value): Do not restrict propagation of pointer constants.
1636         * tree-ssanames.c (duplicate_ssa_name): New function.
1637         * tree.h (duplicate_ssa_name): Declare.
1638
1639 2004-06-17  David Ayers  <d.ayers@inode.at>
1640
1641         * c-parse.in: Unify Objective-C token names.
1642
1643 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1644
1645         Bug 14610
1646         * Makefile.in (min-insn-modes.o): Correct dependencies.
1647         * real.c (encode_ieee_extended, decode_ieee_extended): Always
1648         produce/consume 12-byte little-endian Intel format.
1649         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
1650         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
1651         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
1652         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
1653         New functions which convert between 12-byte little-endian Intel
1654         format and the desired format.
1655         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
1656         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
1657         Update.
1658
1659 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
1660
1661         * expmed.c (expand_mult_const): In sanity check, compare only
1662         the bits of val and val_so_far that are significant in the
1663         result mode.
1664
1665 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
1666
1667         * tree-ssa-pre.c:  Update comments.
1668         (val_expr_pair_eq): Factor code from here.
1669         (expr_pred_trans_eq): and here.
1670         (expressions_equal_p): To here.
1671         (print_value_set): Print value for expression.
1672         (phi_trans_lookup): Rename some variables.
1673         (lookup): Ditto.
1674         (value_exists_in_set_bitmap): Ditto.
1675         (value_remove_from_set_bitmap): Ditto.
1676         (value_insert_into_set_bitmap): Ditto.
1677
1678 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
1679
1680         * config/s390/s390-modes.def (CCL3mode): New machine mode.
1681         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
1682         (s390_alc_comparison, s390_slb_comparison): Likewise.
1683         (s390_branch_condition_mask): Likewise.
1684         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
1685         ("*subsi3_cc2", "*subsi3_cconly2"): New.
1686
1687         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
1688         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
1689         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
1690         Handle SIGN_EXTEND and ZERO_EXTEND.
1691
1692         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
1693         * config/s390/s390.c (s390_expand_addcc): New function.
1694         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
1695         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
1696         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
1697
1698 2004-06-17  Ben Elliston  <bje@au.ibm.com>
1699
1700         * tree-alias-common.c: Add whitespace.
1701         * tree-inline.c: Correct comment about this file's purpose.
1702         * tree-optimize.c: Likewise.
1703         * tree-tailcall.c: Likewise.
1704
1705         * tree-alias-ander.h: Add standard top-of-file comment.
1706         * tree-alias-common.h: Likewise.
1707         * tree-alias-type.h: Likewise.
1708
1709 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1710
1711         * tree-ssa-pre.c (compute_avail): Value number uses as well.
1712         Strip useless type conversions.
1713         Casts have to be treated slightly different than normal unaries.
1714
1715 2004-06-16  Richard Henderson  <rth@redhat.com>
1716
1717         * c-common.def (COMPOUND_STMT): Remove.
1718         * c-common.c (finish_fname_decls): Don't look through it.
1719         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
1720         * c-common.h (COMPOUND_BODY): Remove.
1721         (c_common_stmt_codes): Remove COMPOUND_STMT.
1722         * c-dump.c (c_dump_tree): Likewise.
1723         * c-gimplify.c (c_gimplify_stmt): Likewise.
1724         * c-pretty-print.c (pp_c_statement): Likewise.
1725         * tree.h (DECL_SAVED_TREE): Update commentary.
1726         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
1727         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
1728         (GOTO_EXPR): Rename from GOTO_STMT.
1729         (GOTO_FAKE_P): Remove.
1730         (COMPOUND_STMT): Remove.
1731         (HANDLER): Update wrt COMPOUND_STMT.
1732         (STMT_EXPR): Likewise.
1733         (LABEL_EXPR): Rename from LABEL_STMT.
1734         (SCOPE_STMT): Remove.
1735         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
1736         through COMPOUND_STMT.
1737
1738 2004-06-16  Richard Henderson  <rth@redhat.com>
1739
1740         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
1741         c_finish_while_stmt_cond): Remove decls.
1742         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
1743         * c-typeck.c (c_begin_if_stmt): Return void.
1744         (c_begin_else): Tidy.  Save stmt_count.
1745         * c-tree.h (c_begin_if_stmt): Update decl.
1746
1747         * objc/objc-act.c (objc_build_try_enter_fragment,
1748         objc_build_extract_fragment, objc_build_try_epilogue,
1749         objc_build_catch_stmt, objc_build_catch_epilogue,
1750         objc_build_finally_prologue, objc_build_finally_epilogue): Update
1751         for if builder function changes.
1752
1753 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
1754
1755         * config/s390/s390.c (struct machine_function):  New member
1756         last_restore_gpr.
1757         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
1758         Do not modify machine->save_return_addr_p or regs_ever_live.
1759         Fill in machine->last_restore_gpr.
1760         (s390_optimize_prolog): Use s390_frame_info to compute registers
1761         to save/restore, remove duplicated code.
1762         (s390_arg_frame_offset): Use s390_frame_info to compute frame
1763         size, remove duplicated code.
1764         (s390_emit_prologue): Adapt s390_frame_info call.  Update
1765         machine->save_return_addr_p and regs_ever_live.
1766         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
1767         machine->last_save_gpr.
1768
1769 2004-06-16  Richard Henderson  <rth@redhat.com>
1770
1771         * c-parse.in (if_stmt_locus): Remove.
1772         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
1773         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
1774         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
1775         empty_locus.  Add stmt_count, saw_else.
1776         (c_begin_if_stmt): Push if_stack here.
1777         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
1778         (c_finish_then, c_finish_else): Record empty_locus.
1779         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
1780         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
1781         if or else body.
1782         * c-tree.h: Update prototypes.
1783
1784 2004-06-16  Steven Bosscher  <stevenb@suse.de>
1785
1786         * tree.h (PHI_CHAIN): New.
1787         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
1788         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
1789         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
1790         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1791         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
1792         when traversing a list of PHI_NODEs.
1793
1794 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
1795
1796         PR target/13292
1797         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
1798         on -msoft-float.
1799         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
1800         68040 and soft-float.
1801         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
1802         in the TARGET_68040_ONLY case.
1803
1804 2004-06-16 Peter Barada  <peter@the-baradas.com>
1805
1806         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
1807         (movsi_cf): Make named, don't match TARGET_CFV4.
1808         (pushexthisi_const): Use mov3q if possible.
1809         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
1810         to special case mvz.w for ColdFire V4.
1811         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
1812         to special case mvz.b for ColdFire V4.
1813         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
1814         divide.
1815         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
1816         * config/m68k/m68k.c(valid_mov3q_const):  New function.
1817         (const_method): SWAP is valid for ColdFire.
1818         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
1819         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
1820
1821 2004-06-16  Richard Henderson  <rth@redhat.com>
1822
1823         * c-common.def (CASE_LABEL): Remove.
1824         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
1825         (match_case_to_enum_1): Likewise.
1826         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
1827         * c-dump.c (c_dump_tree): Likewise.
1828         * c-gimplify.c (c_gimplify_stmt): Likewise.
1829         * c-pretty-print.c (pp_c_statement): Likewise.
1830         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
1831         * tree.h (CASE_LOW): Update commentary.
1832
1833 2004-06-16  Richard Henderson  <rth@redhat.com>
1834
1835         * c-common.def (ASM_STMT): Remove.
1836         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
1837         * c-dump.c (c_dump_tree): Likewise.
1838         * c-gimplify.c (c_gimplify_stmt): Likewise.
1839         * c-pretty-print.c (pp_c_statement): Likewise.
1840         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
1841         * tree.h: Fix commentary.
1842
1843 2004-06-16  Richard Henderson  <rth@redhat.com>
1844
1845         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
1846         * c-common.c (c_add_case_label): Use LABEL_EXPR.
1847         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
1848         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
1849         * c-dump.c (c_dump_tree): Likewise.
1850         * c-gimplify.c (c_gimplify_stmt): Likewise.
1851         * c-pretty-print.c (pp_c_statement): Likewise.
1852         * c-parse.in (stmt): Use GOTO_EXPR.
1853         (label): Use LABEL_EXPR.
1854         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
1855         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
1856
1857 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1858
1859         * cfgcleanup.c (try_simplify_condjump): Update test to make
1860         sure we have a conditional branch around am unconditional branch.
1861
1862 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
1863
1864         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
1865
1866 2004-06-16  Dale Johannesen  <dalej@apple.com>
1867
1868         * loop.c (loop_givs_reduce): Avoid miscompilation of
1869         loops entered at bottom.
1870
1871 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
1872
1873         * cfglayout.c (fixup_reorder_chain): Handle case where the
1874         destination of E_FALL is EXIT_BLOCK_PTR.
1875
1876 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
1877
1878         PR target/15653
1879         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
1880         after shifts before asm.
1881
1882 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1883
1884         PR tree-optimization/15993
1885         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
1886         destination is unchanged.
1887
1888 2004-06-16  Andreas Jaeger  <aj@suse.de>
1889
1890         * doc/install.texi (Configuration): Update description for
1891         --enable-version-specific-runtime-libs.
1892
1893 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1894
1895         * doc/install.texi: boehm-gc now uses automake 1.8.5.
1896
1897 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1898
1899         * toplev.h (rest_of_compilation): Adjust prototype.
1900
1901 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
1902
1903         * coverage.c: Remove argument to rest_of_compilation.
1904         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
1905         * passes.c (rest_of_compilation): Remove argument.
1906         (pass_rest_of_compilation): New.
1907         (rest_of_handle_final, rest_of_handle_delay_slots,
1908         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
1909         rest_of_handle_machine_reorg, rest_of_handle_regrename
1910         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
1911         rest_of_handle_regmove, rest_of_handle_tracer
1912         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
1913         rest_of_handle_web, rest_of_handle_branch_prob
1914         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
1915         rest_of_handle_addressof, rest_of_handle_jump_bypass
1916         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
1917         Check that the two arguments are actually superfluous.
1918         * tree-optimize.c (register_dump_files): Add properties argument.
1919         Track validity of passes.  Only initialize dump files for
1920         tree-based passes.  Store the full set of provided passes in
1921         the pass.
1922         (init_tree_optimization_passes): Register pass_expand and
1923         pass_rest_of_compilation.
1924         (execute_one_pass): Do not track the presence of required properties
1925         here.  Set in_gimple_form.  Do not update current_properties.
1926         (current_properties): Remove.
1927         (set_save_expr_context): Remove.
1928         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
1929         expand to RTL here, and do not call rest_of_compilation.  Push
1930         GGC context even before gimplification.
1931         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
1932         (pass_expand, pass_rest_of_compilation): Declare.
1933
1934 2004-06-15  Jeff Law  <law@redhat.com>
1935
1936         * fold-const.c (swap_tree_comparison): No longer static.
1937         (tree_swap_operands_p): Similarly.  Return true if both operands
1938         are SSA_NAMEs and the first operand has a higher version number than
1939         the second operand.
1940         * tree.h (swap_tree_comparison): Prototype.
1941         (tree_swap_operands_p): Prototype.
1942         * tree-ssa-operands.c (get_expr_operands): For commutative
1943         operators and relational comparisons, canonicalize the
1944         order of the operands.
1945
1946 2004-06-15  Richard Henderson  <rth@redhat.com>
1947
1948         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
1949         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
1950         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
1951         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
1952         (finish_fname_decls, fname_decl): Use statement_lists.
1953         (c_expand_expr_stmt): Don't set last_expr_type.
1954         (c_type_hash): Fix indentation.
1955         (c_safe_from_p): Don't follow TREE_CHAIN.
1956         (c_tree_chain_matters_p): Remove.
1957         * c-common.def (SCOPE_STMT): Remove.
1958         (CLEANUP_STMT): Redefine to contain its own body.
1959         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
1960         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
1961         Add x_cur_stmt_list.
1962         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
1963         (cur_stmt_list): New.
1964         (STATEMENT_LIST_STMT_EXPR): New.
1965         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
1966         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
1967         (CLEANUP_BODY): New.
1968         (CLEANUP_DECL): Move to operand 2.
1969         (c_common_stmt_codes): Remove SCOPE_STMT.
1970         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
1971         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
1972         (c_push_function_context, c_pop_function_context): Don't save it.
1973         (finish_decl): Set TREE_USED on the decl for a cleanup.
1974         Use push_cleanup.
1975         (store_parm_decls): Use statement lists.
1976         (finish_function): Remove compstmt rule workaround.  Use statement
1977         lists.  Call finish_fname_decls after finalizing the body.
1978         (c_begin_compound_stmt): Move to c-typeck.c.
1979         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
1980         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
1981         (c_genericize): Invoke them.
1982         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
1983         (c_build_bind_expr): Export.
1984         (gimplify_block, gimplify_cleanup): Remove.
1985         (gimplify_condition): Use gimplify_stmt.
1986         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
1987         (gimplify_if_stmt): Remove recursion hack.
1988         (c_gimplify_expr): Remove STMT_EXPR handling.
1989         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
1990         (is_last_stmt_of_scope): Remove.
1991         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
1992         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
1993         c_end_compound_stmt.
1994         * c-objc-common.c (build_cdtor): Likewise.
1995         * c-parse.in (primary): Use c_finish_stmt_expr.
1996         (push_scope, pop_scope): Remove.
1997         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
1998         (c99_block_end, compstmt): Use c_end_compound_stmt.
1999         (c99_block_lineno_labeled_stmt): Likewise.
2000         (compstmt_primary_start): Use c_begin_stmt_expr.
2001         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2002         (do_stmt_start): Fill in body directly.
2003         (lineno_stmt): Avoid setting lineno on constants.
2004         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2005         Remove SCOPE_STMT.
2006         * c-semantics.c (begin_stmt_tree): Remove.
2007         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2008         (add_stmt): Use statement lists.
2009         (add_scope_stmt, finish_stmt_tree): Remove.
2010         (push_cleanup): New.
2011         * c-tree.h: Move some decls from c-common.h.
2012         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2013         (do_case, c_finish_case): Likewise.
2014         (c_finish_then): Take body for then as argument.
2015         (c_finish_else): Similarly.
2016         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2017         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2018         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2019         (c_begin_compound_stmt): Do scope management.
2020         (c_end_compound_stmt): New.
2021         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2022         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2023         Look through exception handling constructs.
2024         (gimplify_bind_expr): Accept temporary argument.
2025         (gimplify_target_expr): Special case BIND_EXPR bodies.
2026         (gimplify_expr): Handle fallback == fb_none like a statement.
2027         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2028         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2029         * langhooks.h (tree_chain_matters_p): Remove.
2030         * stub-objc.c (objc_clear_super_receiver): New.
2031         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2032         (append_to_statement_list, append_to_statement_list_force): Move
2033         to tree-iterator.h.
2034         * tree-inline.c (expand_call_inline): Update call.
2035         (clone_body): Use statement lists.
2036         (walk_tree): Don't check tree_chain_matters_p.
2037         (copy_tree_r): Likewise.
2038         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2039         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2040         * tree-iterator.h (append_to_statement_list,
2041         append_to_statement_list_force): Moved from tree-gimple.h.
2042         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2043         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2044         (objc_enter_block): Likewise.
2045         (objc_exit_block): Use c_end_compound_stmt.
2046         (objc_build_try_enter_fragment): Add #error and comment for
2047         rewriting for OBJCPLUS.
2048         (objc_build_extract_fragment, objc_build_try_epilogue,
2049         objc_build_catch_stmt, objc_build_finally_prologue,
2050         objc_build_finally_epilogue): Update for C statement builders.
2051         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2052         Remove.
2053
2054 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2055
2056         * df.c (df_reg_clobber_gen): Removed.
2057         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2058         Make more effective for hard regs.
2059         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2060
2061 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2062
2063         * c-pragma.h (c_lex_string_translate): Change type to int.
2064         * c-parse.in: Change all assignments of c_lex_string_translate
2065         to true and false to 1 and 0.
2066         * c-lex.c (c_lex_string_translate): Likewise.
2067         (lex_string): Convert string without translation in the -1
2068         case.
2069
2070 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2071
2072         * convert.h: Add include guards
2073
2074 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2075
2076         * tree-flow-inline.h: Document all functions.
2077
2078 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2079
2080         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2081         * tree-dfa.c (create_stmt_ann): Ditto.
2082         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2083         * tree-inline.c (estimate_num_insns_1): Ditto.
2084         * tree.c (tree_size): Ditto.
2085         (make_node_stat): Ditto.
2086         (tree_node_structure): Ditto.
2087         (ephi_node_elt_check_failed): Remove.
2088         (is_essa_node): Ditto.
2089         * tree.def (EPHI_NODE): Ditto.
2090         (EEXIT_NODE): Ditto.
2091         (EUSE_NODE): Ditto.
2092         (EKILL_NODE): Ditto.
2093         * tree.h (EREF_NODE_CHECK): Remove.
2094         (EPHI_NODE_ELT_CHECK): Ditto.
2095         (struct tree_eref_common): Ditto.
2096         (struct tree_euse_node): Ditto.
2097         (struct ephi_arg_d): Ditto.
2098         (struct tree_ephi_node): Ditto.
2099         (ephi_node_elt_check_failed): Remove prototype.
2100         (is_essa_node): Ditto.
2101         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2102         (union tree_node): Remove E*_NODE uses.
2103
2104 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2105
2106         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2107         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2108         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2109         Likewise.
2110         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2111         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2112         expand_builtin_strcmp, expand_builtin_strncmp,
2113         expand_builtin_frame_address): Likewise.
2114         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2115         insert_one_insn): Likewise.
2116         * calls.c (prepare_call_address, precompute_register_parameters,
2117         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2118         * cfganal.c (flow_active_insn_p): Likewise.
2119         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2120         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2121         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2122         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2123         simplify_comparison, record_dead_and_set_regs_1,
2124         record_dead_and_set_regs, record_promoted_value,
2125         check_promoted_subreg, get_last_value_validate, get_last_value,
2126         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2127         unmentioned_reg_p_1): Likewise.
2128         * conflict.c (mark_reg): Likewise.
2129         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2130         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2131         merge_equiv_classes, flush_hash_table, invalidate,
2132         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2133         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2134         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2135         record_jump_cond, cse_insn, addr_affects_sp_p,
2136         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2137         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2138         cse_cc_succs, cse_condition_code_reg): Likewise.
2139         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2140         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2141         cselib_record_set, cselib_record_sets): Likewise.
2142         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2143         dbxout_block): Likewise.
2144         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2145         * dojump.c (do_jump): Likewise.
2146         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2147         is_based_loc, rtl_for_decl_location): Likewise.
2148         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2149         set_decl_incoming_rtl, mark_user_reg): Likewise.
2150         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2151         copy_to_suggested_reg, allocate_dynamic_stack_space,
2152         probe_stack_range, hard_function_value): Likewise.
2153         * expmed.c (store_bit_field, store_fixed_bit_field,
2154         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2155         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2156         Likewise.
2157         * expr.c (convert_move, convert_modes,
2158         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2159         use_group_regs, emit_move_insn, emit_move_insn_1,
2160         compress_float_constant, push_block, emit_single_push_insn,
2161         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2162         store_constructor, store_field, force_operand, safe_from_p,
2163         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2164         Likewise.
2165         * final.c (profile_function, final_scan_insn, alter_subreg,
2166         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2167         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2168         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2169         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2170         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2171         attempt_auto_inc, find_auto_inc, mark_used_regs,
2172         count_or_remove_death_notes_bb): Likewise.
2173         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2174         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2175         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2176         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2177         purge_single_hard_subreg_set, instantiate_decl,
2178         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2179         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2180         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2181         expand_function_start, diddle_return_value, clobber_return_register,
2182         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2183         update_epilogue_consts): Likewise.
2184         * genemit.c (gen_exp, gen_insn): Likewise.
2185         * genrecog.c (make_insn_sequence): Likewise.
2186         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2187         mark_reg_conflicts, set_preference, reg_becomes_live,
2188         build_insn_chain, mark_reg_change): Likewise.
2189         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2190         Likewise.
2191         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2192         Likewise.
2193         * integrate.c (copy_rtx_and_substitute, try_constants,
2194         subst_constants, mark_stores, allocate_initial_values): Likewise.
2195         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2196         delete_computation, rtx_renumbered_equal_p, true_regnum,
2197         reg_or_subregno): Likewise.
2198         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2199         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2200         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2201         wipe_dead_reg, no_conflict_p): Likewise.
2202         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2203         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2204         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2205         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2206         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2207         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2208         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2209         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2210         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2211         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2212         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2213         try_swap_copy_prop): Likewise.
2214         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2215         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2216         Likewise.
2217         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2218         reload_cse_simplify_operands, reload_combine,
2219         reload_combine_note_store, reload_combine_note_use,
2220         reload_cse_move2add, move2add_note_store): Likewise.
2221         * print-rtl.c (print_rtx): Likewise.
2222         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2223         contains_pseudo, handle_asm_insn): Likewise.
2224         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2225         dump_static_insn_cost): Likewise.
2226         * ra-rewrite.c (slots_overlap_p, emit_colors,
2227         remove_suspicious_death_notes): Likewise.
2228         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2229         register_operand, scratch_operand, nonmemory_operand,
2230         constrain_operands): Likewise.
2231         * reg-stack (check_asm_stack_operands, remove_regno_note,
2232         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2233         subst_asm_stack_regs): Likewise.
2234         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2235         record_address_regs, reg_scan_mark_refs): Likewise.
2236         * regmove.c (discover_flags_reg, replacement_quality,
2237         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2238         fixup_match_1): Likewise.
2239         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2240         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2241         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2242         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2243         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2244         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2245         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2246         find_reloads_subreg_address, find_replacement,
2247         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2248         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2249         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2250         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2251         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2252         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2253         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2254         do_output_reload, emit_reload_insns, gen_reload,
2255         delete_address_reloads_1, inc_for_reload): Likewise.
2256         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2257         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2258         * resource.c (update_live_status, mark_referenced_resources,
2259         mark_set_resources, mark_target_live_regs): Likewise.
2260         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2261         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2262         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2263         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2264         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2265         parms_set, find_first_parameter_load, keep_with_call_p,
2266         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2267         num_sign_bit_copies1): Likewise.
2268         * rtlhooks.c (gen_lowpart_general): Likewise.
2269         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2270         sched_analyze): Likewise.
2271         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2272         Likewise.
2273         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2274         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2275         simplify_binary_operation, simplify_const_relational_operation,
2276         simplify_subreg): Likewise.
2277         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2278         expand_end_stmt_expr, expand_return, expand_decl,
2279         expand_anon_union_decl): Likewise.
2280         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2281         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2282         loop_iterations): Likewise.
2283         * var-tracking.c (variable_union, variable_part_different_p,
2284         variable_different_p, count_uses, add_uses, add_stores,
2285         compute_bb_dataflow, set_variable_part, delete_variable_part,
2286         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2287         Likewise.
2288         * varasm.c (assemble_variable): Likewise.
2289
2290 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2291
2292         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2293         definition.
2294         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2295         #undef and #if 0'd definition.
2296
2297 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2298
2299         * combine.c (distribute_notes): Comment typo fix.
2300
2301 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2302
2303         * expmed.c (synth_mult): Mask bits of the multiplier to the
2304         machine mode of the multiplication.  Don't consider shifts
2305         by more than (or equal to) the width of the operation's mode.
2306
2307 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2308
2309         * doc/install.texi: Yet another update for autoconf
2310         and automake versions.
2311
2312 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2313
2314         * function.h (struct function): Remove cannot_inline field.
2315         (current_function_cannot_inline): Remove.
2316         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2317         Simplify conditionals to ignore warn_return_type.
2318         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2319         DECL_DEFER_OUTPUT.
2320         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2321         Do not set current_function_cannot_inline.
2322
2323 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2324
2325         * cfglayout.c (fixup_reorder_chain): Handle case where the
2326         destination of E_TAKEN is EXIT_BLOCK_PTR.
2327
2328 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2329
2330         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2331
2332 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2333
2334         * fold-const.c (operand_equal_p): Update comment.
2335
2336 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2337
2338         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2339         (INCOMING_RETURN_ADDR_RTX): Define.
2340         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2341         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2342         __builtin_return_address(0).
2343         (m32r_return_addr): Added for __builtin_return_address(0).
2344         (m32r_reload_lr): Ditto.
2345
2346         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2347
2348 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2349
2350         * doc/install.texi (Prerequisites): Update libbanshee,
2351         fastjar, libcpp, libjava/libltdl entries to
2352         automake 1.8.5.
2353
2354 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2355             Olivier Hainque  <hainque@act-europe.fr>
2356
2357         * function.c (fixup_var_refs): Also adjust the start of sequence
2358         after fixing up the insns.
2359
2360 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2361
2362         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2363
2364 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2365
2366         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2367         automake 1.8.5.
2368
2369 2004-06-14  Eric Christopher  <echristo@redhat.com>
2370
2371         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2372         to -mtpf-trace (-mno-tpf-trace).
2373         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2374         documentation.
2375
2376 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2377
2378         * real.c: Fix bit count in head comment.
2379
2380 2004-06-14  Jeff Law  <law@redhat.com>
2381
2382         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2383         PHIs where the destination or an argument is marked with
2384         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2385
2386 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR middle-end/15945
2389         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2390         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2391
2392 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2393
2394         * opts.sh (var_args): Fix regexp.
2395
2396 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR target/15178
2399         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2400
2401 2004-06-14  Paul Brook  <paul@codesourcery.com>
2402
2403         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2404
2405 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2406
2407         * Makefile.in (FLAGS_H): New.
2408         (flags.h): Replace by FLAGS_H.
2409         * c.opt: Document Var, VarExists, Init and Report attributes.
2410         * common.opt: Fill the values of the attributes.
2411         * diagnostic.c (flag_fatal_errors): Do not define.
2412         * except.c (flag_non_call_exceptions): Do not define.
2413         * flags.h: Include options.h.  Remove declarations conflicting with
2414         the automatically defined ones.
2415         * opts.c: Remove automatically defined variables.
2416         (handle_option): Perform default initialization.
2417         (common_handle_option): Do not handle options covered by the
2418         default initialization.
2419         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2420         fields.
2421         (CL_REPORT): New.
2422         * opts.sh: Generate variable declarations, handle CL_REPORT.
2423         * toplev.c: Remove automatically defined variables.
2424         (f_options): Removed.
2425         (print_switch_values): Use cl_options instead of f_options.
2426         * toplev.h (version_flag): Declaration removed.
2427
2428 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
2429
2430         * config/sparc/sparc.h: Correct comment about availability of
2431         little endian option.
2432
2433         * config.gcc: Remove sparc64-*-aout*.
2434         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2435         * config/sparc/sp64-aout.h: Remove.
2436         * config/sparc/aout.h: Remove.
2437
2438 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2439
2440         * config/s390/s390.c: Include "tree-gimple.h".
2441         (s390_gimplify_va_arg): New function.
2442         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2443         (s390_va_arg): Remove.
2444         * config/s390/s390-protos.h (s390_va_arg): Remove.
2445         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2446
2447 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
2448
2449         * basic-block.h (could_fall_through): Declare.
2450         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2451         Fail if the source already has a fallthrough edge to the exit
2452         block pointer.
2453         (could_fall_through): New function.
2454         * cfgbuild.c (make_edges): Check if we already have a fallthrough
2455         edge to the exit block pointer.
2456         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2457         not called before reload has completed.
2458         Handle special case of first block having a fall-through exit edge.
2459         (cfg_layout_finalize): Don't call it before reload or if we have
2460         rtl epilogues.
2461         (fixup_reorder_chain): A fall through to the exit block does not
2462         require the block to come last.  Add sanity checks.
2463         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2464         edges to the exit block.
2465         * function.c (cfglayout.h): #include.
2466         (thread_prologue_and_epilogue_insns): If we have neither return nor
2467         epilogue, but a fall through to the exit block from mid-function,
2468         force a non-fall-through exit.
2469         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2470
2471 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
2472
2473         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2474         for power5 and rs64a.  Correct condition for default.  Correct power3,
2475         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
2476
2477 2004-06-13  Steven Bosscher <stevenb@suse.de>
2478
2479         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2480         Revert previous change, don't use CALL_P.
2481
2482 2004-06-13  Jason Merrill  <jason@redhat.com>
2483
2484         * tree.h: Move std_gimplify_va_arg_expr protoype here.
2485         * tree-gimple.h: From here.
2486
2487 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2488
2489         Fix PR tree-optimization/15979
2490         Fix PR tree-optimization/15981
2491         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2492         try to insert values undefined along some path.
2493
2494 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2495
2496         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2497         are available everywhere too.
2498
2499 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
2500
2501         * fold-const.c (fold_checksum_tree <case 't'>): Only
2502         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2503         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2504         EXPR is an INTEGERAL_TYPE or a scalar float type.
2505
2506 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
2507
2508         * tree-sra.c (tree_sra): Update documentation.
2509
2510 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
2511
2512         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2513         function_types_compatible_p, type_lists_compatible_p): Remove
2514         flags parameter.
2515         * c-tree.h (comptypes): Likewise.
2516         (COMPARE_STRICT): Remove.
2517         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2518         callers changed.
2519
2520 2004-06-13  Eric Christopher  <echristo@redhat.com>
2521
2522         * c-decl.c (diagnose_mismatched_decls): Improve error message.
2523         Remove unused code.
2524         * c-typeck.c (comptypes): Add location in standard we're checking.
2525
2526 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2527
2528         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
2529         version 3.3.4.
2530
2531 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2532
2533         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
2534         index by machine mode.
2535         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
2536         tables inside the loop over machine modes.
2537         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
2538         expand_divmod): Index shift*_cost by the appropriate machine mode.
2539
2540 2004-06-12  Eric Christopher  <echristo@redhat.com>
2541
2542         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
2543         * config/s390/s390.md: Ditto.
2544         * config/s390/s390.c: Ditto.
2545         (s390_frame_info): Conditionalize frame and setup info on
2546         TARGET_TPF_PROFILING.
2547         (s390_arg_frame_offset): Ditto.
2548
2549 2004-06-12  Roger Sayle  <roger@eyesopen.com>
2550
2551         * fold-const.c (omit_two_operands): New function.
2552         * tree.h (omit_two_operands): Prototype here.
2553         * builtins.c (fold_builtin_unordered_cmp): New function to lower
2554         C99 unordered comparison builtins to the appropriate tree nodes.
2555         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
2556         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2557         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
2558         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
2559         (simplify_builtin_memcmp, simplify_builtin_strncmp,
2560         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
2561         omit_two_operands function to build the required COMPOUND_EXPRs.
2562
2563 2004-06-12  Steven Bosscher <stevenb@suse.de>,
2564             Andreas Jaeger  <aj@suse.de>
2565
2566         * gcse.c (record_set_info): Use predicates like REG_P.
2567         (mems_conflict_for_gcse_p): Likewise.
2568         (load_killed_in_block_p): Likewise.
2569         (hash_expr_1): Likewise.
2570         (insert_set_in_table): Likewise.
2571         (gcse_constant_p): Likewise.
2572         (hash_scan_set): Likewise.
2573         (hash_scan_insn): Likewise.
2574         (canon_list_insert): Likewise.
2575         (record_last_mem_set_info): Likewise.
2576         (record_last_set_info): Likewise.
2577         (compute_hash_table_work): Likewise.
2578         (mark_set): Likewise.
2579         (mark_clobber): Likewise.
2580         (mark_oprs_set): Likewise.
2581         (compute_transp): Likewise.
2582         (find_avail_set): Likewise.
2583         (cprop_insn): Likewise.
2584         (do_local_cprop): Likewise.
2585         (cprop): Likewise.
2586         (find_implicit_sets): Likewise.
2587         (find_bypass_set): Likewise.
2588         (bypass_conditional_jumps): Likewise.
2589         (insert_insn_end_bb): Likewise.
2590         (pre_insert_copy_insn): Likewise.
2591         (compute_transpout): Likewise.
2592         (next_ls_expr): Likewise.
2593         (invalidate_any_buried_refs): Likewise.
2594         (compute_ld_motion_mems): Likewise.
2595         (reg_set_info): Likewise.
2596         (reg_clear_last_set): Likewise.
2597         (find_moveable_store): Likewise.
2598         (compute_store_table): Likewise.
2599         (find_loads): Likewise.
2600         (store_killed_in_insn): Likewise.
2601         (insert_insn_start_bb): Likewise.
2602         (reg_set_between_after_reload_p): Likewise.
2603         (reg_used_between_after_reload_p): Likewise.
2604         (is_jump_table_basic_block): Likewise.
2605         (gcse_after_reload): Likewise.
2606         (hash_scan_set_after_reload): Likewise.
2607         (compute_hash_table_after_reload): Likewise.
2608
2609 2004-06-12  Steven Bosscher  <stevenb@suse.de>
2610
2611         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
2612         (INSN_P): Don't look at the rtx code class, just explicitly
2613         check for one of the tree RTX_INSN codes.
2614
2615 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2616
2617         * c-typeck.c (default_function_array_conversion): Use
2618         build_pointer_type not TYPE_POINTER_TO.
2619
2620 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2621
2622         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2623         * configure, config.in: Regenerate.
2624         * system.h: Unconditionally define bool as unsigned char,
2625         BOOL_BITFIELD as unsigned int.
2626         * domwalk.h: Use BOOL_BITFIELD.
2627
2628 2004-06-12  Andreas Jaeger  <aj@suse.de>
2629
2630         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
2631         * libgcc-darwin.ver: Likewise.
2632
2633 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
2634
2635         * reload.c (find_reloads): Force reload for pseudo registers on big
2636         endian machines.
2637
2638 2004-06-11  Steven Bosscher <stevenb@suse.de>
2639
2640         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
2641         Don't try to mark anything control dependent on the entry or
2642         exit blocks.
2643
2644 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
2645
2646         Fix Bug 15899
2647         Fix Bug 15460
2648         * tree.h (SSA_NAME_VALUE): New macro.
2649         (struct tree_ssa_name): Add value_handle member.
2650         * tree-ssa-pre.c: Replaced.
2651         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
2652         (struct cst_ann_d): New.
2653         (struct expr_ann_d): New.
2654         (union tree_ann_d): Add cst_ann, expr_ann.
2655         * tree-dfa.c (create_cst_ann): New function.
2656         (create_expr_ann): Ditto.
2657         * tree-flow-inline.h (cst_ann): New function.
2658         (expr_ann): Ditto.
2659         (get_cst_ann): Ditto.
2660         (get_expr_ann): Ditto..
2661
2662 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2663
2664         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
2665         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
2666         _U_Qfcmp library function.
2667         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
2668         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
2669
2670         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
2671         unspec used for loading address from DLT.
2672         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
2673         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
2674         Don't use short code sequence when loading the address of a nonlocal
2675         label.
2676         (nonlocal_goto): New expander.
2677         (indirect_goto): New jump pattern for nonlocal gotos.
2678         (short_jump): Remove extra whitespace.
2679         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
2680         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
2681         pattern.
2682
2683 2004-06-11  Roger Sayle  <roger@eyesopen.com>
2684
2685         * expmed.c (synth_mult): Add an additional MODE argument for the
2686         machine mode of the multiplication.  Update recursive calls.  Use
2687         mode instead of word_mode for determining operation costs.
2688         (choose_mult_variant): Update calls to synth_mult with "mode".
2689
2690 2004-06-11  Richard Henderson  <rth@redhat.com>
2691
2692         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
2693         and makes_aliased_stores.
2694
2695 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2696
2697         * doc/install.text (--enable-shared): Fix typo.
2698
2699 2004-06-11  Richard Henderson  <rth@redhat.com>
2700
2701         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
2702         argument.  Use internal post for call to gimplify_expr.  Tidy
2703         rounded type size computation.
2704         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
2705         get_initialized_tmp_var.
2706
2707 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
2708
2709         * doc/install.texi (--enable-shared): Update libobjc's shared library
2710         status.  Remove reference to libf2c.
2711
2712 2004-06-11  Jason Merrill  <jason@redhat.com>
2713
2714         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2715         * config/i386/i386.c (ix86_va_arg): Remove.
2716         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2717         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
2718         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2719         * config/alpha/alpha.c (alpha_va_arg): Remove.
2720         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
2721         * config/sparc/sparc.c (sparc_va_arg): Remove.
2722
2723         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
2724         assignment might throw.
2725         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
2726         expressions.
2727
2728 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
2729
2730         PR 15886:
2731         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
2732
2733 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2734
2735         * doc/install.texi (Prerequisites): Update documentation of
2736         required versions of autoconf and automake.  Remove mention of
2737         libf2c.
2738
2739 2004-06-11  Jason Merrill  <jason@redhat.com>
2740
2741         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
2742         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2743
2744 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
2745
2746         * typeclass.h: Add GPL plus exception license.  Add include
2747         guard.
2748
2749 2004-06-10  Jason Merrill  <jason@redhat.com>
2750
2751         * gimplify.c (gimplify_modify_expr): Don't force a temporary
2752         of an aggregate_value_p type.
2753
2754 2004-06-10  Jeff Law  <law@redhat.com>
2755
2756         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
2757         code when we are in gimple form.
2758
2759 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
2760
2761         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
2762         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
2763         (highest_ssa_version): Remove.
2764         * tree-outof-ssa.c (new_temp_expr_table): Replace
2765         highest_ssa_version with num_ssa_names.
2766         (dump_replaceable_exprs): Likewise.
2767         (rewrite_vars_out_of_ssa): Likewise.
2768         * tree-ssa-ccp.c (initialize): Likewise
2769         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2770         * tree-ssa-dce.c (tree_dce_init): Likewise.
2771         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2772         * tree-ssa-live.c (create_ssa_var_map): Likewise.
2773         (dump_var_map): Likewise.
2774         * tree-ssa.c (verify_ssa): Likewise.
2775         (kill_redundant_phi_nodes): Likewise.
2776         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
2777         * tree-ssanames.c: Include tree-flow.h
2778         (ssa_names): New varray.
2779         (init_ssa_names): Initialize ssa_names.
2780         Reserve the first slot of the ssa_names table.
2781         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
2782         Assign version numbers using num_ssa_names.
2783
2784 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2785
2786         * doc/sourcebuild.texi (Front End): Add details of more
2787         installation documentation required.
2788
2789 2004-06-10  Brian Booth  <bbooth@redhat.com>
2790
2791         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
2792         of V_MAY_DEF and V_MUST_DEF.
2793         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
2794         num_vdefs to num_v_may_defs.
2795         (compute_immediate_uses_for_stmt): Rename occurences of vdef
2796         to v_may_def.
2797         (redirect_immediate_uses): Ditto.
2798         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
2799         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
2800         Also add code to sum up the number of v_must_defs.
2801         (vdefs_disappeared_p): Replace with...
2802         (v_may_defs_disappeared_p): This.
2803         (v_must_defs_disappeared_p): New function.
2804         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
2805         Also add code to mark new variables found in V_MUST_DEFs for
2806         renameing.
2807         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
2808         vdef_ops to v_may_def_ops.
2809         (get_vdef_ops): Replace with...
2810         (get_v_may_def_ops): This.
2811         * tree-flow-inline.h (get_vdef_ops): Replace with...
2812         (get_v_may_def_ops): This.
2813         (get_v_must_def_ops): New function.
2814         (get_vdef_result_ptr): Replace with...
2815         (get_v_may_def_result_ptr): This.
2816         (get_vdef_op_ptr): Ditto with...
2817         (get_v_may_def_op_ptr); This.
2818         (get_v_must_def_op_ptr): New function.
2819         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
2820         to v_may_def. Also add code to mark statements with
2821         V_MUST_DEFs as definition sites.
2822         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
2823         add code to register new V_MUST_DEFs made by the statement.
2824         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
2825         (check_replaceable): Rename occurences of vdef to v_may_def. Also
2826         add check for V_MUST_DEFs.
2827         (find_replaceable_in_bb): Ditto.
2828         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
2829         to v_may_def. Also add code to dump V_MUST_DEFs.
2830         * tree-sra.c (mark_all_vdefs): Replace with...
2831         (mark_all_v_may_defs): This.
2832         (mark_all_v_must_defs): New function.
2833         (create_scalar_copies): Replace call to mark_all_vdefs with
2834         calls to mark_all_v_may_defs and mark_all_v_must_defs.
2835         (scalarize_structures): Rename occurences of vdef to v_may_def.
2836         Also add a check for V_MUST_DEFs.
2837         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
2838         * tree-ssa-alias.c (global_var): Update comment.
2839         (compute_may_aliases): Ditto.
2840         (compute_points_to_and_addr_escape): Rename occurences of vdef
2841         to v_may_def. Also add code to mark variables in V_MUST_DEF
2842         operands as being written to.
2843         (group_aliases): Update comment.
2844         (maybe_create_global_var): Ditto.
2845         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
2846         Also add a check for V_MUST_DEFs on GIMPLE registers.
2847         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
2848         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
2849         to v_may_def. Also add code to mark all V_MUST_DEF operands
2850         VARYING.
2851         (initialize): Ditto.
2852         (set_rhs): Rename occurences of vdef to v_may_def. Also add
2853         code to update SSA_NAMEs in V_MUST_DEFs.
2854         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
2855         to v_may_def.
2856         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
2857         occurences of vdef to v_may_def. Also add code to mark statements
2858         with V_MUST_DEFs as necessary.
2859         (propagate_necessity): Rename occurences of vdef to v_may_def.
2860         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
2861         occurences of vdef to v_may_def. Also add code to mark operands
2862         in V_MUST_DEFs for renaming.
2863         (eliminate_redundant_computations): Rename occurences of vdef
2864         to v_may_def.
2865         (record_equivalences_from_stmt): Rename occurences of vdef
2866         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
2867         (optimize_stmt): Remove unnesessary variable vdefs. Update
2868         comment.
2869         (register_definitions_for_stmt): Rename occurences of vdef
2870         to v_may_def. Also add code to register definitions made with
2871         V_MUST_DEFs.
2872         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
2873         (fix_stmt_v_may_defs): This.
2874         (fix_phi_uses): Rename occurences of vdef to v_may_def.
2875         (dse_optimize_stmt): Ditto.
2876         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
2877         to v_may_def. Also add code to mark V_MUST_DEF operands as being
2878         used in virtual operators.
2879         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
2880         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
2881         renaming.
2882         * tree-ssa-operands.c (opf_kill_def): New flag for killing
2883         definitions.
2884         (build_vdefs): Renamed to...
2885         (build_v_may_defs): This.
2886         (build_v_must_defs): New variable.
2887         (voperands_d): Add v_must_def_ops and replace vdef_ops with
2888         v_may_def_ops.
2889         (append_vdef): Replace with...
2890         (append_v_may_def): This.
2891         (append_v_must_def): New function.
2892         (NUM_FREE): Increment for V_MUST_DEF
2893         (optype_freelist): Increment its size for V_MUST_DEF
2894         (allocate_vdef_optype): Replace with...
2895         (allocate_v_may_def_optype): This.
2896         (allocate_v_must_def_optype): New function.
2897         (free_vdefs): Replace with...
2898         (free_v_may_defs): This.
2899         (free_v_must_defs): New function.
2900         (remove_vdefs): Replace with...
2901         (remove_v_may_defs): This.
2902         (remove_v_must_defs): New function.
2903         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
2904         add code to initialize build_v_must_defs.
2905         (finalize_ssa_vdefs): Replace with...
2906         (finalize_ssa_v_may_defs): This.
2907         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
2908         (finalize_ssa_v_must_defs): New function.
2909         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
2910         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
2911         (verify_start_operands): Rename occurences of vdef to v_may_def.
2912         Also add check for build_v_must_defs.
2913         (get_stmt_operands): Rename occurences of vdef to v_may_def.
2914         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
2915         killing definitions.
2916         (get_expr_operands): Update comment and use opf_kill_def for
2917         killing definitions.
2918         (add_stmt_operand): Replace code that appends VDEFs with code
2919         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
2920         otherwise.
2921         (add_call_clobber_ops): Update comments.
2922         * tree-ssa-operands.h (vdef_optype_d): Replace with...
2923         (v_may_def_optype_d): This.
2924         (v_must_def_optype_d): New structure.
2925         (VDEF_OPS): Replace with...
2926         (V_MAY_DEF_OPS): This.
2927         (STMT_VDEF_OPS): Same with...
2928         (STMT_V_MAY_DEF_OPS): This.
2929         (NUM_VDEFS): And...
2930         (NUM_V_MAY_DEFS): This.
2931         (VDEF_RESULT_PTR): As well as...
2932         (V_MAY_DEF_RESULT_PTR): This.
2933         (VDEF_RESULT): Same goes for...
2934         (V_MAY_DEF_RESULT): This.
2935         (VDEF_OP_PTR): And...
2936         (V_MAY_DEF_OP_PTR): This.
2937         (VDEF_OP): And...
2938         (V_MAY_DEF_OP): This.
2939         (V_MUST_DEF_OPS): New macro.
2940         (STMT_V_MUST_DEF_OPS): Ditto.
2941         (NUM_V_MUST_DEFS): Ditto.
2942         (V_MUST_DEF_OP_PTR): Ditto.
2943         (V_MUST_DEF_OP): Ditto.
2944         (remove_vdefs): Replace signature with...
2945         (remove_v_may_defs): This.
2946         (remove_v_must_defs): New function signature.
2947         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
2948         with calls to remove_v_may_defs and remove_v_must_defs.
2949         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
2950         Also add code that marks left occurences of operands in V_MUST_DEFs.
2951         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
2952         to v_may_def. Also add check for V_MUST_DEFs.
2953         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
2954
2955 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
2956
2957         PR target/15653
2958         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
2959         insn.
2960
2961 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2962
2963         PR web/15263
2964         * doc/install.texi: Remove superfluous linebreak.
2965
2966 2004-06-10  Roger Sayle  <roger@eyesopen.com>
2967
2968         * builtins.c (expand_builtin): Fall back to library function call for
2969         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
2970         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
2971         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
2972         IMAGPART_EXPR respectively.
2973
2974 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
2975
2976         * sh.c (dump_table): New argument start.  Changed caller.
2977         (fixup_mova): New function.
2978         (find_barrier): Use it.
2979         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
2980         If the label a mova refers to is above the mova itself, change
2981         the mova into a load.
2982         * sh.md (*casesi_worker): Rename to:
2983         (casesi_worker_1).
2984         (casesi_worker_2): New insn.
2985
2986 2004-06-10  Jason Merrill  <jason@redhat.com>
2987
2988         * target.h (struct gcc_target): Change gimplify_va_arg_expr
2989         hook signature.
2990         * tree-gimple.h: Adjust.
2991         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
2992         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
2993         Use fold_convert.
2994         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
2995         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
2996         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
2997         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
2998         (gimplify_va_arg_expr): Return GS_ERROR in error case.
2999         Gimplify valist rather than calling stabilize_va_list.
3000
3001 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3002
3003         * Makefile.in (df.o): Remove fibheap dependency.
3004         * df.h: Do not include sbitmap.h.
3005         (struct ref): New field "data".
3006         (DF_REF_DATA): New accessor macro.
3007         (struct df): Field "dom" removed.
3008         (df_analyze_subcfg): New function.
3009         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3010         (transfer_function): ... new type.
3011         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3012         (iterative_dataflow): ... new function.
3013         (enum set_representation, struct dataflow): New.
3014         * df.c: Do not include fibheap.h.
3015
3016         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3017         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3018         prune_to_subcfg, df_bb_modify): New functions.
3019         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3020         df_refs_update, df_reg_table_realloc, df_ref_create,
3021         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3022         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3023         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3024
3025         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3026         (df_rd_transfer_function, df_ru_transfer_function,
3027         df_lr_transfer_function): Type of bitmaps changed to void *.
3028         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3029         (hybrid_search): ... new function.
3030         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3031         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3032         a worklist.  Do not process basic blocks unnecessarily.
3033
3034 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3035
3036         * fold-const.c (fold_abs_const): Make extern.
3037         * tree.h (fold_abs_const): Prototype here.
3038         * builtins.c (fold_builtin_fabs): New function to transform
3039         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3040         (fold_builtin_abs): New function to transform abs, labs, llabs
3041         and imaxabs builtins into ABS_EXPR tree nodes.
3042         (expand_builtin): Fall back to a function call for abs, labs,
3043         llabs and imaxabs builtins that survive constant folding.
3044         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3045         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3046
3047 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3048
3049         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3050         leaf function without unwind info at RP 0.
3051
3052 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3053
3054         PR c++/14791
3055         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3056         (fileptr_type_node): Define.
3057         * tree.c (build_common_tree_nodes_2): Initialize
3058         fileptr_type_node to ptr_type_node.
3059         * c-common.c (c_common_nodes_and_builtins): For C++, make
3060         fileptr_type_node a distinct type copy.
3061         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3062         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3063         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3064         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3065         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3066         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3067         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3068         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3069         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3070         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3071         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3072         the above *FILEPTR* types instead of *PTR*.
3073
3074 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3075
3076         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3077         match.
3078
3079 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3080
3081         * fold-const.c (fold_not_const): New function.
3082         (fold) <ABS_EXPR>: Don't bother testing wins.
3083         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3084         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3085
3086 2004-06-09  Richard Henderson  <rth@redhat.com>
3087
3088         PR middle-end/15228
3089         * function.c (assign_parms): Always set_mem_align with the computed
3090         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3091
3092 2004-06-09  Richard Henderson  <rth@redhat.com>
3093
3094         PR opt/15108
3095         * tree-tailcall.c (find_tail_calls): Don't check early for
3096         tail_recursion failure.
3097
3098 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3099
3100         Move SSA_NAME annotations into tree_ssa_name.
3101
3102         * tree-dfa.c (create_ssa_name_ann): Remove.
3103         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3104         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3105         (struct ssa_name_ann_d): Remove.
3106         (union tree_ann_d): Update.
3107         (ssa_name_ann_t): Remove.
3108         * tree-ssa-alias.c: (get_ptr_info): New local function.
3109         Replace references to ssa_name_ann_t with struct ptr_info_def.
3110         * tree-ssa-operands.c (get_expr_operands): Likewise.
3111         * tree.h (SSA_NAME_PTR_INFO): Define.
3112         (struct ptr_info_def): Declare.
3113         (struct tree_ssa_name): Add field 'ptr_info'.
3114
3115 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3116
3117         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3118         misplaced ')'.
3119
3120 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3121
3122         * config/i386/k6.md: Rewrite using the DFA model.
3123         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3124         cost of load-operation insns for the K6.
3125         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3126         (ia32_multipass_dfa_lookahead): Likewise.
3127
3128 2004-06-09  Richard Henderson  <rth@redhat.com>
3129
3130         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3131         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3132
3133 2004-06-09  Richard Henderson  <rth@redhat.com>
3134
3135         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3136
3137 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3138
3139         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3140         (CPP_ID_DATA_H): New.
3141         (gtype-desc.o): Update dependencies.
3142         (GTFILES): Use CPP_ID_DATA_H.
3143
3144 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3145
3146         Revert:
3147         PR c++/15815
3148         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3149         * doc/extend.texi: Deprecate #pragma interface and #pragma
3150         implementation.
3151
3152 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3153
3154         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3155
3156 2004-06-09  Richard Henderson  <rth@redhat.com>
3157
3158         * basic-block.h (struct edge_def): Add goto_locus.
3159         * tree-cfg.c (make_goto_expr_edges): Set it.
3160         (disband_implicit_edges): Use it.
3161         * tree-pretty-print.c (dump_implicit_edges): Print it.
3162
3163 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3164
3165         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3166
3167 2004-06-08  Jason Merrill  <jason@redhat.com>
3168
3169         Gimplify VA_ARG_EXPR into simpler forms.
3170         * target.h: Add gimplify_va_arg_expr hook.
3171         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3172         * fold-const.c (build_fold_addr_expr)
3173         (build_fold_addr_expr_with_type): Move from gimplify.c.
3174         * tree.h: Declare them.
3175         * gimplify.c (gimplify_and_add): New fn.
3176         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3177         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3178         (gimplify_expr): Use build_fold_*.
3179         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3180         don't know how to gimplify it.
3181         * builtins.c (std_gimplify_va_arg_expr): New fn.
3182         (dummy_object): New static fn.
3183         (gimplify_va_arg_expr): New fn.
3184         (stabilize_va_list): Use build_fold_*.
3185         * tree-gimple.h: Declare new fns.
3186         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3187         (ix86_gimplify_va_arg): New fn.
3188         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3189         (ia64_gimplify_va_arg): New fn.
3190         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3191         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3192         * alias.c (get_varargs_alias_set): Just return 0 for now.
3193
3194         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3195
3196 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3197
3198         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3199         of convert.
3200         * tree-inline.c (setup_one_parameter): Likewise.
3201         * tree-sra.c (csc_build_component_ref): Likewise.
3202         * tree-ssa-ccp.c (ccp_fold): Likewise.
3203         * tree-ssa-copy.c (cprop_operand): Likewise.
3204         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3205         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3206
3207 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3208
3209         PR rtl-optimization/15521:
3210         * sched-int.h (in_post_call_group_p): Change type to enum.
3211         * sched-deps.c (sched_analyze_insn):
3212         (sched_analyze): When in_post_call_group_p is post_call_initial,
3213         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3214         and also reset in_post_call_group_p to post_call.
3215         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3216         initialize in_post_call_group_p as post_call_initial.
3217         (init_deps): initialize in_post_call_group_p to not_post_call.
3218
3219 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3220
3221         PR ada/6637
3222         * doc/install.texi: List ada, libada as options to --enable-shared
3223
3224 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3225
3226         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3227         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3228         config.in entries.
3229         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3230         if hard links are not available.
3231         * configure: Regenerate.
3232         * config.in: Regenerate.
3233
3234 2004-06-08  Per Bothner  <per@bothner.com>
3235
3236         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3237
3238 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3239
3240         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3241         Correct formatting.
3242
3243 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3244
3245         PR target/15790
3246         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3247
3248 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3249
3250         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3251         POINTER_TYPE and INTEGER_TYPE.
3252
3253 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3254
3255         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3256         defined.
3257
3258 2004-06-08  Jeff Law  <law@redhat.com>
3259
3260         * doc/contrib.texi: Add entries for Stefan Olsson and
3261         Ola Ronnerup.
3262
3263 2004-06-08  DJ Delorie  <dj@redhat.com>
3264
3265         * toplev.c (floor_log2_wide): Replace loop with faster bit
3266         operations.
3267         (exact_log2_wide): Define in terms of the above.
3268         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3269         available.
3270
3271 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3272
3273         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3274         Make sure that we are in INDIRECT mode when getting the
3275         stub name.
3276
3277 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3278
3279         * h8300.md (extendqisi2_h8300): Add constraints.
3280         (ldm_h8300s_4_normal): Fix typo.
3281
3282 2004-06-08  Richard Henderson  <rth@redhat.com>
3283
3284         * gimple-low.c (struct lower_data): Replace the_return_label and
3285         one_return_stmt with return_statements.
3286         (lower_function_body): Process the entire list of return_statements.
3287         (lower_return_expr): Check source value before unifying return_exprs.
3288         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3289         for !aggregate_value_p.
3290         * tree-gimple.c: Update RETURN_EXPR grammer.
3291
3292 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3293
3294         PR target/15598
3295         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3296
3297 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3298
3299         PR rtl-optimization/15717
3300         * config/i386/i386.c (legitimate_constant_p): Do not allow
3301         x - symbol_ref.
3302
3303 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3304
3305         * gimplify.c (copy_if_shared_r): Revert:
3306         2004-05-21  Richard Henderson  <rth@redhat.com>
3307         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3308
3309 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3310
3311         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3312         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3313         (init_expmed): Initialize these cost arrays as appropriate.
3314         (store_bit_field, extract_bit_field): Correct whitespace.
3315         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3316         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3317         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3318         word_mode or compute_mode as appropriate.
3319
3320 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3321
3322         PR target/15783
3323         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3324         parameter.  Enumerate the registers inside the PARALLEL.
3325         (function_arg): Adjust call to function_arg_union_value.
3326         (function_value): Likewise.
3327
3328         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3329
3330 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3331
3332         * real.c (real_copysign): New function to implement libm's copysign.
3333         * real.h (real_copysign): Prototype here.
3334         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3335         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3336         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3337         fold_builtin_isdigit): Add function prototypes.
3338         (fold_builtin_copysign): New function to fold copysign, copysignf
3339         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3340         constant arguments at compile-time using real_copysign.  Fold
3341         copysign(X,Y) as fabs(X) if Y is always non-negative.
3342         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3343         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3344
3345 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
3346
3347         * tree.c (iterative_hash_expr): Use real_hash.
3348
3349 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3350
3351         PR c/14765
3352         * c-parse.in (compstmt_primary_start): Set last_expr_type to
3353         NULL_TREE.
3354
3355 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3356
3357         PR c++/15815
3358         * doc/extend.texi: Deprecate #pragma interface and #pragma
3359         implementation.
3360
3361 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
3362
3363         PR middle-end/15666
3364         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3365         builtin decl as well.
3366
3367 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3368
3369         PR c/14649
3370         * c-typeck.c (require_constant_value, require_constant_elements):
3371         Move declarations to the top of the file.
3372         (build_function_call): If we require a constant value, fold with
3373         fold_initializer.  If the result is a constant, and the function
3374         wasn't called using __builtin_foo, issue a pedantic warning.
3375         (build_unary_op): If we require a constant value, fold tree with
3376         fold_initializer.
3377         (build_binary_op): Use require_constant_value to determine whether
3378         to call fold or fold_initializer.
3379
3380 2004-06-07  Richard Henderson  <rth@redhat.com>
3381
3382         * gimple-low.c (struct lower_data): Add the_return_label and
3383         one_return_stmt.
3384         (lower_function_body): Initialize and use them.
3385         (lower_return_expr): New.
3386         (lower_stmt): Call it.
3387         * gimplify.c (gimplify_return_expr): Force the argument to be either
3388         null or a result_decl.
3389         * tree-gimple.c: Update gimple grammer to match.
3390         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3391         coalescing of result_decls.
3392
3393 2004-06-07  Richard Henderson  <rth@redhat.com>
3394
3395         PR rtl-opt/15193
3396         * expmed.c (extract_bit_field): Fix vector_extract return.
3397
3398         * config/i386/i386.md (negv4sf2): New pattern.
3399
3400 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3401
3402         PR c++/15337
3403         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3404         message.
3405
3406 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
3407
3408         * config.in: Regenerate.
3409
3410 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3411
3412         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
3413         SWITCH_LABELS are always sorted.
3414
3415 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3416
3417         * hooks.c (hook_int_void_1): New generic hook.
3418         * hooks.h (hook_int_void_1): Add prototype.
3419         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3420         Define to hook_int_void_1.
3421         * config/c4x/c4x.md: Replace dummies for the old pipeline model
3422         with dummies for the new one.
3423
3424 2004-06-06  Roger Sayle  <roger@eyesopen.com>
3425
3426         * tree.h (lvalue_or_else): Delete function prototype.
3427         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
3428
3429 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3430
3431         PR target/14542
3432         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
3433         a live change of a register after peephole replacement.
3434
3435 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
3436
3437         PR c/13519
3438         * c-typeck.c (composite_type, common_pointer_type): New functions.
3439         (common_type): Split parts into composite_type and
3440         common_pointer_type.  Ensure that arithmetic operations return
3441         unqualified types without attributes.  Don't make composite type
3442         of signed enum and compatible integer be unsigned.
3443         (build_conditional_expr, build_binary_op): Use
3444         common_pointer_type.
3445         * c-decl.c (merge_decls): Use composite_type.
3446         * c-tree.h (composite_type): Declare.
3447
3448 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3449
3450         PR target/14457
3451         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
3452         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
3453         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
3454         (inhibit_libc): Must define.
3455         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
3456         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
3457         ("xorhi3"): Likewise.
3458
3459 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3460
3461         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
3462         always_inline pass.
3463
3464 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
3465
3466         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
3467         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3468
3469 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
3470
3471         * regclass.c (init_reg_sets): Check for missing registers in target
3472         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
3473
3474 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
3475
3476         * Makefile.in (MKDEPS_H): New shorthand.
3477         (c-opts.o): Update dependencies.
3478         * c-opts.c: Include mkdeps.h.
3479         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
3480         not cpp_add_dependency_target.
3481
3482 2004-06-05  Steven Bosscher  <stevenb@suse.de>
3483
3484         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
3485         * config/v850/v850.md: Convert to DFA scheduler description.
3486
3487 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3488
3489         PR fortran/15478
3490         * doc/install.texi: Document GMP as prerequisite. Document
3491         --with-gmp and --with-gmp-dir configure options.
3492         * fortran/gfortran.texi: Remove section "Compiling and testing",
3493         remove TOC reference to it.
3494
3495 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
3496
3497         * combine.c(simplify_shift_const): Check shift amount is a
3498         CONST_INT.
3499
3500 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
3501
3502         * toplev.c (init_asm_output): Add explicit 'b' to mode when
3503         opening asm_out_file.
3504         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
3505         reading asm_out_file. Replace fflush after reading asm_out_file
3506         with fseek.
3507         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
3508         default and add to HOST_HOOKS_INITIALIZER.
3509         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
3510         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
3511         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
3512         to set mmi.offset padding.
3513          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
3514         $(srcdir)/config/i386/winnt.c.
3515         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
3516         (i[34567]86-*-uwin*): Likewise.
3517         *i[34567]86-*-interix3*): Likewise.
3518         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
3519         * config/i386/host-mingw32.c: New file.
3520         * config/i386/x-mingw32: Add rule for host-mingw32.o.
3521         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
3522         (extern_head): Likewise.
3523         (struct export_list) Likewise.
3524         (export_head): Likewise.
3525         (i386_pe_record_external_function): Use ggc_alloc.
3526         (i386_pe_record_exported_symbol): Likewise.
3527         Include "gt-winnt.h" at end.
3528         * doc/hostconfig.texi: Document
3529         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
3530
3531 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
3532
3533         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
3534         Rename 68000 and 68k to m68k for consistency in comments.  Remove
3535         trailing whitespace before EOLs and before TABs.
3536         (MAX_CODE_ALIGN): Remove unused macro.
3537         (CALL_USED_REGISTERS): Reformat and add comments.
3538
3539 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
3540
3541         * gcc.c (MFLIB_SPEC): Remove library references, to require users
3542         to enumerate -lmudflap* and dependencies when linking.
3543
3544 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
3545
3546         PR target/15822
3547         * dojump.c (do_jump): Fix uninitialized variable tcode1.
3548
3549 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
3550
3551         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
3552         * genconditions.c (write_header): Back out removal of reload.h.
3553
3554 2004-06-04  Jan Hubicka  <jh@suse.cz>
3555
3556         Re-apply hopefully fixed patch:
3557         * i386.md (UNSPECV_EH_RETURN): Kill.
3558         (eh_return): Use jump_insn.
3559         (eh_return_si, eh_return_di): Change pattern to jump instruction.
3560
3561 2004-06-04  Jeff Law  <law@redhat.com>
3562
3563         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
3564
3565 2004-06-04  Steven Bosscher  <stevenb@suse.de>
3566
3567         * except.c (for_each_eh_region): New function.
3568         * except.h (for_each_eh_region): Add a prototype for it.
3569         * tree-cfg.c (update_eh_labels): New function, callback for
3570         for_each_eh_region.
3571         (label_for_bb): Make global static, unfortunately.
3572         (cleanup_dead_labels): Also update label references for
3573         exception regions.
3574
3575 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
3576
3577         * config/mips/mips.c (struct irix_section_align_entry): Fix
3578         GTY marker.
3579
3580 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
3581
3582         * toplev.c (check_global_declarations): Don't ask for
3583         DECL_ASSEMBLER_NAME unless the function really is declared
3584         static and not defined.
3585
3586 2004-06-03  Matt Austern  <austern@apple.com>
3587
3588         PR c++/15428
3589         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
3590         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
3591         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
3592         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
3593         documentation to reflect the new macro name and to clarify its
3594         meaning.
3595
3596 2004-06-03  Steven Bosscher  <stevenb@suse.de>
3597
3598         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
3599
3600 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
3601
3602         * config/darwin.c (machopic_indirect_data_reference): Copy
3603         the SYMBOL_REF_DECL from the original RTX for the new
3604         non-lazy pointer RTX.
3605
3606 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
3607
3608         * tree.h: Remove include of version.h
3609         * c-cppbuiltin.c: Include version.h
3610         * diagnostic.c: Include version.h
3611         * dwarf2out.c: Include version.h
3612         * toplev.c: Include version.h
3613         * vmsdbgout.c: Include version.h
3614         * Makefile.in: Remove dependency on version.h from TREE_H, and
3615         add dependencies to required .o targets
3616
3617 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
3618
3619         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
3620         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
3621         (TARGET_H): Add insn-modes.h.
3622         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
3623         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
3624         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
3625         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
3626         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
3627         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
3628         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
3629         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
3630         CFGLAYOUT_H.
3631         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
3632         Replace ra.h with RA_H.
3633         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
3634         insn-recog.o): Replace resource.h with RESOURCE_H.
3635         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
3636         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
3637         with SCHED_INT_H.
3638         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
3639         ra-rewrite.o): Replace df.h with DF_H.
3640         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
3641         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
3642         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
3643         (insn-conditions.o): Remove unused reload.h.
3644         * cfglayout.h: Add include guard.  Include basic-block.h.
3645         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
3646         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
3647         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
3648         basic-block.h.
3649         * genconditions.c:  Remove reload.h.
3650         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
3651         hard-reg-set.h, insn-modes.h.
3652         * resource.h: Add include guard.  Include hard-reg-set.h.
3653         * sched-int.h:  Add include guard.  Include insn-attr.h,
3654         basic-block.h, rtl.h.
3655         * target.h: Add include guard.  Include insn-modes.h.
3656         * tree-ssa-live.h: Include partition.h.
3657
3658 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
3659                 Kenneth Zadeck <zadeck@naturalbridge.com>
3660
3661         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
3662         (add_var_to_ssa_edges_worklist): Add value argument.
3663         Update callers.
3664         Use new worklist.
3665         (process_ssa_edge_worklist): New function.
3666         (tree_ssa_ccp): Move worklist processing core to
3667         process_ssa_edge_worklist, and just call that for the two worklists.
3668
3669 2004-06-03  Steven Bosscher  <stevenb@suse.de>
3670
3671         * basic-block.c (tail_recursion_label_list): Don't declare.
3672         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
3673         accordingly.
3674         * cfgbuild.c (find_label_refs): Remove.
3675         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
3676         * cfgcleanup.c (tail_recursion_label_p): Remove.
3677         (merge_blocks_move): Do not check for tail recursion.
3678         (try_optimize_cfg): Likewise.
3679         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
3680         * cfgrtl.c (tail_recursion_label_list): Remove.
3681         * except.c (remove_unreachable_regions): Don't handle
3682         CALL_PLACEHOLDER insns.
3683         (convert_from_eh_region_ranges_1, can_throw_internal,
3684         can_throw_external): Likewise.
3685         * function.c (free_after_compilation): Don't clear
3686         x_tail_recursion_label.
3687         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
3688         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
3689         (reorder_blocks_1): Likewise.
3690         * function.h (struct function): Remove x_tail_recursion_label
3691         member.  Don't define tail_recursion_label.
3692         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
3693         * print-rtl.c (print_rtx): Likewise.
3694         * rtl.def (CALL_PLACEHOLDER): Remove.
3695         * rtl.h (sibcall_use_t): Remove enum.
3696         (optimize_sibling_and_tail_recursive_calls,
3697         replace_call_placeholder): Remove function prototypes.
3698         * stmt.c (tail_recursion_args): Remove.
3699         (optimize_tail_recursion): Remove.
3700         (expand_return): Don't check for possible tail recursion.
3701         * tree.h (optimize_tail_recursion): Remove prototype.
3702
3703 2004-06-02  Jan Hubicka  <jh@suse.cz>
3704
3705         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
3706         return_stmt.
3707
3708 2004-06-02  Jason Merrill  <jason@redhat.com>
3709
3710         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
3711         Do include c-parse.in.
3712
3713 2004-06-02  Eric Christopher  <echristo@redhat.com>
3714
3715         * c-typeck.c (common_type): Don't lose type qualifiers
3716         when creating new variants.
3717
3718 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3719
3720         PR tree-optimization/14042
3721         PR tree-optimization/14729
3722         PR tree-optimization/14736
3723         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3724         Check the type which the pointer points to
3725         instead of the pointer types.
3726
3727 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
3728
3729         PR tree-optimization/15738.
3730         * builtins.c (fold_builtin_strchr): Transform
3731         strrchr (s, '\0') to strchr (s, '\0').
3732
3733 2004-06-02  Steven Bosscher  <stevenb@suse.de>
3734
3735         * i386.c (ix86_adjust_cost): Don't increase the cost for
3736         load+operation for PROCESSOR_PENTIUMPRO, it is already
3737         modelled in the DFA description
3738
3739 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
3740
3741         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
3742         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
3743         (ALIAS_H, EMIT_RTL_H): New.
3744         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
3745         (cfgcleanup.o): Add EMIT_RTL_H.
3746         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
3747         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
3748         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
3749         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
3750         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
3751         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
3752         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
3753         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
3754         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
3755         set_mem_size): Move to emit-rtl.h.
3756         * emit-rtl.h: New.
3757         * alias.h: New.
3758
3759 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
3760
3761         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
3762         Call fixup_memory_subreg only if the MEM is equal to 'var'.
3763         Adjust recursive calls to self.
3764         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
3765
3766 2004-06-01  Richard Henderson  <rth@redhat.com>
3767             Andrew Pinski  <pinskia@physics.uc.edu>
3768
3769         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
3770         (primary): Handle offsetof.  Add error productions for faux functions.
3771         Move component_ref objc checking to build_component_ref.
3772         (reswords): Add offsetof.
3773         (rid_to_yy): Add offsetof.
3774         * c-tree.h (build_offsetof): Declare.
3775         * c-common.h (objc_is_public): Declare.
3776         * c-typeck.c (build_component_ref): Check objc_is_public.
3777         (build_offsetof): New.
3778         * stub-objc.c (objc_is_public): New.
3779         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
3780         from is_public.
3781         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
3782         * doc/extend.texi (Offsetof): Move from C++ section to C section
3783         and rewrite for __builtin_offsetof.
3784
3785 2004-06-01  Peter Barada  <peter@the-baradas.com>
3786             Peter Jakubek  <peter@laseranimation.com>
3787
3788         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
3789         a scratch to perform an add to memory.
3790
3791 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3792
3793         PR target/14018
3794         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
3795         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3796         m68k_align_funcs): Remove.
3797         (override_options): Remove code to handle -malign-* options.
3798         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
3799         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
3800         (m68k_align_loops_string, m68k_align_jumps_string,
3801         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
3802         m68k_align_funcs): Remove definitions.
3803
3804 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
3805
3806         PR target/15626
3807         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
3808         by the Sun linker in conjunction with the Sun assembler.
3809         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
3810
3811 2004-06-01  Jeff Law  <law@redhat.com>
3812
3813         * stmt.c (expand_decl): Be more selective about calling
3814         mark_reg_pointer.
3815
3816 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
3817
3818         PR objc/7993
3819         * objc-act.c (is_private): Do not emit the 'instance variable %s
3820         is declared private' error.
3821         (is_public): Emit the error after calling is_private.
3822         (lookup_objc_ivar): If the instance variable is private, return 0
3823         - the instance variable is invisible here.
3824
3825 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3826
3827         * doc/invoke.texi (-static-libgcc): Explicitly mention
3828         non-GNU linkers.
3829
3830 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
3831
3832         PR target/12968
3833         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
3834
3835 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3836
3837         PR c/15749
3838         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
3839         misuses of structures with flexible array members if
3840         in_system_header.
3841
3842 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3843
3844         PR target/15693
3845         * config/sparc/sparc.c (compare_operand): New predicate.
3846         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
3847         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
3848         operand is a ZERO_EXTRACT and the second operand is not zero,
3849         force the former to a register.
3850         (cmpdi expander): Likewise.
3851
3852 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
3853
3854         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
3855         looks at.
3856         * alias.c (alias_invariant_size): Make alias_invariant_size
3857         static, fix GTY marker.
3858
3859 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3860
3861         PR tree-optimization/15743.
3862         * builtins.c (fold_builtin_1): Fold index() and rindex().
3863
3864 2004-05-31  Roger Sayle  <roger@eyesopen.com>
3865
3866         PR middle-end/15069
3867         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
3868         into "X < 0" (where C is the signbit) if X's type is a full mode.
3869
3870 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3871
3872         * pa.md: Disable the peephole2 patterns that generate indexed
3873         floating-point stores when indexing is disabled.
3874
3875 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3876
3877         * c-pretty-print.c (pp_c_left_bracket): Make a function.
3878         (pp_c_right_bracket): Likewise.
3879         (pp_c_star): Likewise.
3880         (pp_c_ampersand): Define.
3881         * c-pretty-print.h (pp_c_left_bracket): Declare.
3882         (pp_c_right_bracket): Likewise.
3883         (pp_c_star): Likewise.
3884         (pp_c_ampersand): Likewise.
3885
3886 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3887
3888         * config/sol2.h (__enable_execute_stack): ANSIfy function
3889         definition.
3890
3891 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
3892
3893         * c-incpath.c (add_path): Canonicalize paths to use '/' if
3894         HAVE_DOS_BASED_FILESYSTEM.
3895
3896 2004-05-31  Steven Bosscher  <stevenb@suse.de>
3897
3898         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
3899         Only look at case labels if the immediate dominator is also
3900         the only predecessor.  Don't look for more case labels if the
3901         first seen is a case range.
3902
3903 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3904
3905         * builtins.c: Add a prototype for fold_builtin_strchr().
3906
3907 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
3908
3909         Revert this patch:
3910         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
3911
3912         * combine.c (gen_binary): Remove.
3913         (known_cond, simplify_shift_const
3914         find_split_point, combine_simplify_rtx,
3915         simplify_if_then_else, simplify_set,
3916         simplify_logical, expand_field_assignment,
3917         extract_left_shift, force_to_mode,
3918         if_then_else_cond, apply_distributive_law,
3919         simplify_and_const_int, simplify_shift_const,
3920         gen_lowpart_for_combine, simplify_comparison,
3921         reversed_comparison): Replace with
3922         simplify_gen_binary, simplify_gen_relational or
3923         distribute_and_simplify_rtx.
3924         (distribute_and_simplify_rtx): New function.
3925
3926 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3927
3928         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
3929         when generating PIC code.
3930
3931 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3932
3933         * c-decl.c (c_expand_body_1): Remove and fold back into ...
3934         (c_expand_body): here.
3935         (c_expand_decl): Move to ...
3936         * c-common.c (c_expand_decl): Here and remove check for nested
3937         functions.
3938         * c-common.h (c_expand_decl): Add prototype.
3939         * c-tree.h (c_expand_decl): Remove.
3940
3941 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3942
3943         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
3944         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
3945         fold_mathfn_compare, fold_inf_compare, fold,
3946         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
3947         Use constant_boolean_node where appropriate.  Don't bother using
3948         fold_convert on the second argument to omit_one_operand.
3949
3950 2004-05-30  Roger Sayle  <roger@eyesopen.com>
3951
3952         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
3953         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
3954         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
3955         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
3956         Add missing (but documented) tree nodes to the index.
3957
3958 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3959
3960         PR tree-optimization/14819
3961         * builtins.c (fold_builtin_strchr): New.
3962         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
3963         with fold_builtin_strchr().
3964
3965 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3966
3967         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
3968         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
3969         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
3970         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
3971         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
3972         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
3973         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
3974         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
3975         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
3976         formatting.
3977
3978 2004-05-30  Steven Bosscher  <stevenb@suse.de>
3979
3980         * gimplify.c (sort_case_labels): New.  Split out from...
3981         (gimplify_switch_expr): ...here.  Use it.
3982         * tree-eh.c (lower_try_finally_switch): Sort the labels of
3983         the SWITCH_EXPR created here before leaving the function.
3984         * tree.c (sort_case_labels): Add prototype.
3985
3986 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
3987
3988         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
3989         of BOOLEAN_TYPE.
3990
3991 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3992
3993         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
3994         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
3995         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
3996         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
3997         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
3998         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
3999         comment typos.  Follow spelling conventions.
4000
4001 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4002
4003         * gengtype-yacc.y: Add NESTED_PTR token.
4004         (option): Record `nested_ptr' option.
4005         * gengtype-lex.l: Handle `nested_ptr' keyword.
4006         * gengtype.c (walk_type): Process `nested_ptr' option.
4007         * gengtype.h (struct nested_ptr_data): New.
4008         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4009         * stringpool.c (struct string_pool_data): Make 'entries' point to
4010         ht_identifier instead of tree.
4011         (gt_pch_save_stringpool): Don't adjust pointers.
4012         (gt_pch_restore_stringpool): Call ht_load.
4013
4014 2004-05-29  Jason Merrill  <jason@redhat.com>
4015
4016         * gimplify.c (gimplify_expr): Don't build a statement list
4017         if no gimplification was necessary.
4018
4019 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4020
4021         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4022         and %> as well as %'.
4023         * c-format.c: Use %< and %>.
4024         (gcc_diag_char_table, gcc_cdiag_char_table,
4025         gcc_cxxdiag_char_table): Update.
4026
4027 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4028
4029         * c-typeck.c (common_type): Correct comment.
4030
4031 2004-05-29  Peter Barada  <peter@the-baradas.com>
4032
4033         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4034         * config/m68k/m68k.c (const_method): Likewise.
4035         * config/m68k/m68k.c (const_int_cost): Likewise.
4036         * config/m68k/m68k.c (const_int_cost): Likewise.
4037         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4038
4039 2004-05-29  Peter Barada  <peter@the-baradas.com>
4040
4041         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4042         addressing.
4043         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4044         movsi,movhi,movqi insn patterns.
4045
4046 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4047
4048         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4049
4050         PR target/15720
4051         * config/darwin.c (machopic_indirect_call_target): Copy
4052         the SYMBOL_REF_DECL from the original RTX for the new
4053         stub RTX.
4054
4055 2004-05-28  DJ Delorie  <dj@redhat.com>
4056
4057         * stor-layout.c (place_field): Revert erroneous commit.
4058
4059 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4060
4061         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4062         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4063         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4064         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4065         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4066         vec_ste): Remove type checks for integral parameters and literals
4067         from '..._args_eq' macros.
4068
4069 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4070
4071         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4072
4073 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4074
4075         * testsuite/g++.dg/charset/function.cc: New.
4076
4077         * testsuite/gcc.dg/charset/function.c: New.
4078
4079         * c-decl.c (c_make_fname_decl): Free return value from
4080         fname_as_string.
4081
4082         * cp/decl.c (cp_make_fname_decl): Free return value from
4083         fname_as_string.
4084
4085         * c-common.c (fname_as_string): Translate if necessary.
4086
4087 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4088
4089         * stringpool.c: Add comments to PCH saving/restoring routines.
4090
4091 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4092
4093         * c-common.c (c_estimate_num_insns_1): Kill.
4094         (c_estimate_num_insns): Kill.
4095         * c-common.h (c_estimate_num_insns): Kill.
4096
4097         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4098         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4099         Remove comment about not checking for
4100         _POSIX_PRIORITY_SCHEDULING.
4101         * gthr-posix.c: Likewise.
4102
4103 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4104             Roger Sayle  <roger@eyesopen.com>
4105
4106         PR rtl-optimization/15649
4107         Add LTGT_EXPR and improve pretty-printing of unordered
4108         comparisons.
4109         * c-common.c (c_common_truthvalue_conversion):
4110         Handle LTGT_EXPR.
4111         * c-typeck.c (build_binary_op): Likewise.
4112         * dojump.c (do_jump): Likewise.
4113         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4114         * predict.c (tree_predict_by_opcode): Likewise.
4115         * real.c (real_compare): Likewise.
4116         * tree-cfg.c (verify_expr): Likewise.
4117         * tree-inline.c (estimate_num_insns_1): Likewise.
4118         * tree-pretty-print.c (dump_generic_node): Likewise.
4119         Handle ORDERED_EXPR, UNORDERED_EXPR.
4120         (op_symbol): Print unordered comparisons differently
4121         than ordered ones.
4122         * tree.def (LTGT_EXPR): New '<' tree code.
4123         * doc/c-tree.texi (Expressions): Document floating-point
4124         comparison nodes.
4125
4126         Fold comparisons between floating point values.
4127         * fold-const.c (enum comparison_code): New, from
4128         #define'd constants.  Define compcodes for unordered
4129         comparisons and for invalid transformations.
4130         (invert_tree_comparison): Add "honor_nans" parameter.
4131         (fold_truthop): Revamp to work on floating-point types too.
4132         (comparison_to_compcode): Support unordered comparisons.
4133         Use new enum comparison_code.
4134         (compcode_to_comparison): Likewise.
4135         (combine_compcodes): New function.
4136         (invert_truthvalue): Let invert_tree_comparison decide
4137         whether it is valid to fold the comparison.  Fold ORDERED
4138         and UNORDERED even if flag_unsafe_math_optimizations is off,
4139         and the remaining even if flag_unsafe_math_optimizations
4140         is off but we are under -fno-trapping-math.
4141         (fold_relational_const): Integer modes do not honor NaNs.
4142
4143 2004-05-28  Paul Brook  <paul@codesourcery.com>
4144
4145         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4146
4147 2004-05-28  Paul Brook  <paul@codesourcery.com>
4148
4149         * config/arm/arm.c (thumb_force_lr_save): New function.
4150         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4151         thumb_output_function_prologue): Use it.
4152         (thumb_expand_prologue): Set lr_save_eliminated.
4153
4154 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4155
4156         * config/mips/mips.md (extendsidi2): Tie the source and destination
4157         of the register alternative.  Split it into nothing.
4158
4159 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4160
4161         * rtl.h (skip_consecutive_labels): Declare.
4162         * emit-rtl.c (skip_consecutive_labels): New function.
4163         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4164         * jump.c (follow_jumps): Say what null return values mean.
4165
4166 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4167
4168         PR target/13250
4169         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4170
4171 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4172
4173         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4174         libgcc-std.ver.
4175         * config/sh/libgcc-std.ver: New file.
4176
4177 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4178
4179         * except.c: Revert change of 2004-05-26.
4180         * config/i386/i386.md: Revert change of 2004-05-27.
4181
4182 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4183
4184         * configure.ac: Remove --enable-tree-browser option.
4185         Define TREEBROWSER when ac_tree_checking is defined.
4186         * configure: Rebuilt.
4187
4188 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4189
4190         * expr.c (store_constructor): Restore sanity check on
4191         the size of the type before clearing.
4192
4193 2004-05-27  Jan Hubicka  <jh@suse.cz>
4194
4195         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4196
4197 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4198
4199         * combine.c (gen_binary): Remove.
4200         (known_cond, simplify_shift_const
4201         find_split_point, combine_simplify_rtx,
4202         simplify_if_then_else, simplify_set,
4203         simplify_logical, expand_field_assignment,
4204         extract_left_shift, force_to_mode,
4205         if_then_else_cond, apply_distributive_law,
4206         simplify_and_const_int, simplify_shift_const,
4207         gen_lowpart_for_combine, simplify_comparison,
4208         reversed_comparison): Replace with
4209         simplify_gen_binary, simplify_gen_relational or
4210         distribute_and_simplify_rtx.
4211         (distribute_and_simplify_rtx): New function.
4212         * simplify-rtx.c (simplify_binary_operation):
4213         Use nonzero_bits to simplify ANDs where we are
4214         turning off bits already known to be off in OP0.
4215
4216 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4217
4218         PR target/14478
4219         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4220
4221 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4222
4223         PR middle-end/14084
4224         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4225         to size of decl.
4226
4227 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4228
4229         PR/14924
4230         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4231
4232 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4233
4234         * tree.h: Fix comment typo.
4235
4236 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4237
4238         * gimplify.c (compare_case_labels): New function.
4239         (gimplify_switch_expr): Sort case labels, and make sure the
4240         last label in the label vector is the default case.
4241         * tree-cfg.c (group_case_labels): New function.
4242         (build_tree_cfg): Cleanup redundant labels and group case labels
4243         before creating edges.
4244         (cleanup_dead_labels): Handle GOTO_EXPRs.
4245         (find_case_label_for_value): Use a binary search to find the
4246         case label for the given value.
4247         * tree-gimple.c: Mention that labels are sorted, and that the
4248         last label must be the default.
4249
4250 2004-05-27  Jan Hubicka  <jh@suse.cz>
4251
4252         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4253
4254 2004-05-27  Jan Hubicka  <jh@suse.cz>
4255
4256         * i386.md (UNSPECV_EH_RETURN): Kill.
4257         (eh_return): Use jump_insn.
4258         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4259
4260 2004-05-26  Jan Hubicka  <jh@suse.cz>
4261
4262         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4263         not loop optimizing.
4264
4265 2004-05-26  Jan Hubicka  <jh@suse.cz>
4266
4267         * except.c (can_throw_internal):  Notice RESX instructions.
4268
4269 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4270
4271         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4272         of the two sizes to assemble_integer.
4273
4274 2004-05-25  Paul Brook  <paul@codesourcery.com>
4275
4276         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4277         pointless #ifdef.
4278
4279 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4280
4281         * Makefile.in (top_builddir): Define to .
4282
4283 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4284
4285         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4286         top-level detects, except when in-tree ld is being cross-built.
4287         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4288         then AS only if target is host.
4289         * configure: Rebuilt.
4290
4291 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4292
4293         * global.c (global_alloc): Call make_accurate_live_analysis.
4294         (record_one_conflict): Remove dead code.
4295         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4296         (bb_info): New structure.
4297         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4298         (allocate_bb_info, free_bb_info, mark_reg_change,
4299         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4300         modify_bb_reg_pav, calculate_reg_pav,
4301         make_accurate_live_analysis): New functions.
4302
4303 2004-05-25  Devang Patel  <dpatel@apple.com>
4304
4305         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4306         xrealloc.
4307         (end_alias_analysis): Use ggc_free instead fo free.
4308
4309 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4310
4311         PR target/15546
4312         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4313         as needed to be outputted.
4314
4315 2004-05-25  Jan Hubicka  <jh@suse.cz>
4316
4317         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4318
4319 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4320         Mostafa Hagog  <mustafa@il.ibm.com>
4321
4322         * Makefile.in (modulo-sched.o, ddg.o): New.
4323         * ddg.h, ddg.c, modulo-sched.c: New files.
4324         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4325         internals to "dupicate_insn".
4326         (duplicate_insn): New function.
4327         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4328         declarations.
4329         * common.opt (fmodulo-sched): New flag.
4330         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4331         Remove static and forward declaration.
4332         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4333         functions.
4334         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4335         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4336         declarations.
4337         * flags.h (flag_modulo_sched): New flag.
4338         * opts.c (common_handle_option): Handle modulo-sched flag.
4339         * params.def (max-sms-loop-number, sms-max-ii-factor,
4340         sms-dfa-history, sms-loop-average-count-threshold): New
4341         parameters.
4342         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4343         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4344         parameters.
4345         * passes.c ("sms", "sms-vcg"): New dumps.
4346         (rest_of_handle_sched): Call sms_schedule.
4347         * rtl.h (sms_schedule): New declaration.
4348         * timevar.def (TV_SMS): New.
4349         * toplev.c (flag_modulo_sched): Initialize.
4350         (f_options): Handle -fmodulo-sched option.
4351         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
4352         * docs/passes.texi: Document new SMS pass.
4353
4354 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
4355
4356         * Makefile.in (OBJS): Add rtlhooks.o.
4357         (rtlanal.o): Depend on function.h.
4358         (cse.o): Depend on rtlhooks-def.h.
4359         (combine.o): Depend on rtlhooks-def.h.
4360         (rtlhooks.o): New rule.
4361         * combine.c: Include rtlhooks-def.h.
4362         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4363         num_sign_bit_copies, cached_num_sign_bit_copies,
4364         num_sign_bit_copies1): Move most of the code to rtlanal.c.
4365         (reg_nonzero_bits_for_combine,
4366         reg_num_sign_bit_copies_for_combine): New functions holding
4367         the remnants of the above.
4368         (combine_rtl_hooks): New.
4369         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
4370         * cse.c: Include rtlhooks-def.h.
4371         (cse_rtl_hooks): New.
4372         (cse_main): Set rtl_hooks instead of gen_lowpart.
4373         * emit-rtl.c (gen_lowpart): Remove.
4374         (gen_lowpart_general): Move to rtlhooks.c.
4375         * rtl.h (nonzero_bits, num_sign_bit_copies,
4376         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
4377         (gen_lowpart_general): Remove.
4378         (gen_lowpart): Temporarily redefine as a macro.
4379         * rtlanal.c: Include function.h.
4380         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4381         num_sign_bit_copies, cached_num_sign_bit_copies,
4382         num_sign_bit_copies1): New, from combine.c.
4383         * rtlhooks.c: New file.
4384         * rtlhooks-def.h: New file.
4385
4386 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
4387
4388         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
4389         to support 32-bit -mint8 mode.
4390
4391         * doc/invoke.texi (-mint8): Added documentation for the -mint8
4392         option in the AVR architecture.
4393
4394 2004-05-24  Mike Stump  <mrs@apple.com>
4395
4396         * doc/install.texi: Document that dejagnu 1.4.4 is required.
4397
4398 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4399
4400         * intl.h (open_quote, close_quote): New.
4401         * intl.c (open_quote, close_quote): New.
4402         (gcc_init_libintl): Set them.
4403         * pretty-print.c: Include "intl.h".
4404         (pp_base_format_text): Support 'q' format flag and %` and %'
4405         formats.  Use ' instead of ` in comments.
4406         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
4407         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
4408         foramt_types_orig): Describe these new formats.
4409         (decode_format_attr, check_function_format,
4410         check_format_info_main): Use these new formats.
4411         (status_warning): Use ATTRIBUTE_GCC_DIAG.
4412         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
4413         check these formats to 3.5.
4414
4415 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4416
4417         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
4418         (BACKEND): Reflect this.
4419         (LIBDEPS): Move CPPLIB before LIBIBERTY.
4420         (LIBS): Likewise.
4421
4422 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
4423
4424         PR tree-optimization/14197
4425         * builtins.c: Include "tree-gimple.h"
4426         (readonly_data_expr): Use get_base_address.  Make sure to call
4427         decl_readonly_section only on trees it can handle.
4428         * tree-gimple.c (get_base_address): Accept STRING_CST and
4429         CONSTRUCTOR expressions.
4430         * Makefile.in: Update dependencies.
4431
4432 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
4433
4434         Move libcpp to the toplevel.
4435         * Makefile.in: Remove references to libcpp files,
4436         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
4437         and change hashtable.h to that.
4438         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
4439         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
4440         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
4441         * configure: Regenerate.
4442         * config.in: Regenerate.
4443         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
4444         * cppcharset.c: Removed.
4445         * cpperror.c: Removed.
4446         * cppexp.c: Removed.
4447         * cppfiles.c: Removed.
4448         * cpphash.c: Removed.
4449         * cpphash.h: Removed.
4450         * cppinit.c: Removed.
4451         * cpplex.c: Removed.
4452         * cpplib.c: Removed.
4453         * cpplib.h: Removed.
4454         * cppmacro.c: Removed.
4455         * cpppch.c: Removed.
4456         * cpptrad.c: Removed.
4457         * cppucnid.h: Removed.
4458         * cppucnid.pl: Removed.
4459         * cppucnid.tab: Removed.
4460         * hashtable.c: Removed.
4461         * hashtable.h: Removed.
4462         * line-map.c: Removed.
4463         * line-map.h: Removed.
4464         * mkdeps.c: Removed.
4465         * mkdeps.h: Removed.
4466         * stringpool.h: Include symtab.h instead of hashtable.h.
4467         * tree.h: Include symtab.h instead of hashtable.h.
4468         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
4469
4470 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
4471
4472         * gcc.c (struct prefix_list): Add forward declaration.
4473         (do_spec_path): New function, extracted from...
4474         (do_spec_1) <'D'>: ... here.  Drop support for
4475         SPACE_AFTER_L_OPTION.
4476         (do_spec_1) <'I'>: Use do_spec_path.
4477         (process_command): Do not store the 'include' suffix
4478         in include_prefixes.
4479         * system.h: Poison SPACE_AFTER_L_OPTION.
4480
4481 2002-05-23  Roger Sayle  <roger@eyesopen.com>
4482
4483         * fold-const.c (non_lvalue): Explicitly list the tree codes that
4484         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
4485
4486 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4487
4488         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
4489         Update based on printed manual.  Enable setting of offsets for
4490         FSFPRINT and move it to gcc-common.texi.
4491         * doc/gcc.texi: Update FSF printing details.
4492         * doc/gccint.texi: Remove FSF printing details.
4493
4494 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
4495
4496         * config/rs6000/t-rs6000: Remove the disabling -Werror.
4497
4498 2004-05-22  Roger Sayle  <roger@eyesopen.com>
4499
4500         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4501         expand_builtin_strrchr, expand_builtin_strpbrk,
4502         expand_builtin_mempcpy, expand_builtin_memcmp,
4503         expand_builtin_strcmp, expand_builtin_strncmp,
4504         expand_builtin_strcat, std_expand_builtin_va_start,
4505         std_expand_builtin_va_arg, expand_builtin_va_copy,
4506         expand_builtin_signbit, fold_builtin_cabs,
4507         fold_builtin_logarithm, fold_builtin_mempcpy,
4508         fold_builtin_signbit, fold_builtin_isascii,
4509         fold_builtin_toascii, fold_builtin_isdigit,
4510         fold_builtin_1, build_function_call_expr,
4511         simplify_builtin_strchr, simplify_builtin_strrchr,
4512         simplify_builtin_strpbrk, simplify_builtin_strncpy,
4513         simplify_builtin_memcmp, simplify_builtin_strcmp,
4514         simplify_builtin_strncmp, simplify_builtin_strncat,
4515         simplify_builtin_strspn, simplify_builtin_strcspn,
4516         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
4517         to build with calls to build2, build3 or omit_one_operand.
4518
4519 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
4520
4521         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
4522         section when generating EABI code.
4523
4524 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
4525
4526         PR 15546
4527         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
4528         Call mark_decl_referenced on the SYMBOL_REF_DECL.
4529
4530 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
4531
4532         * c-common.c (c_common_truthvalue_conversion): Handle
4533         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
4534         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
4535         i.e. set the type to truthvalue_type_node and return.
4536
4537 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
4538
4539        * tree.h (struct tree_decl): Add possibly_inlined bit.
4540         (DECL_POSSIBLY_INLINED): New accessor macro.
4541         * cgraph.h: Remove declaration of cgraph_inline_hash.
4542         * cgraph.c: Remove definition of cgraph_inline_hash.
4543         (hash_node): Revert to hashing DECL_UID.
4544         (eq_node): Take two pointers to cgraph_node structures.
4545         Compare DECL_UIDs.
4546         (cgraph_remove_node): Pass the node directly to htab_find_slot.
4547         (cgraph_varpool_hash_node): Rename hash_varpool_node;
4548         hash on DECL_UID.
4549         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
4550         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
4551         (cgraph_node): Allocate a temporary node on the stack, fill in
4552         its DECL field, and pass that to htab_find_slot.
4553         (cgraph_varpool_node): Likewise.
4554         (cgraph_function_possibly_inlined_p): If global info is ready,
4555         return the DECL_POSSIBLY_INLINED bit.
4556         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
4557         instead of mucking with cgraph_inline_hash.
4558
4559 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4560
4561         * doc/contrib.texi: Add g77 contributors.
4562
4563 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
4564
4565         * calls.c (initialize_argument_information): Forbid sibcalls if a
4566         callee-copied argument is stored in the current function's frame.
4567
4568 2004-05-22  Eric Christopher  <echristo@redhat.com>
4569
4570         * fix-header.c (read_scan_file): Update for add_path change.
4571
4572 2004-05-22  Ben Elliston  <bje@au.ibm.com>
4573
4574         * c.opt (Wmissing-include-dirs): New.
4575         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
4576         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
4577         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
4578         * c-incpath.h (add_path): Add fourth (bool) argument.
4579         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
4580         (add_standard_paths): Likewise.
4581         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
4582         is used and the directory was user-supplied via -I.
4583         (add_path): Set p->user_supplied_p.  Remove duplicated code by
4584         using add_cpp_dir_path ().
4585         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
4586         (struct cpp_dir): Add user_supplied_p.
4587         * doc/invoke.texi (Warning Options): Document new option.
4588
4589 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
4590
4591         * fold-const.c (fold_read_from_constant_string): Convert result to
4592         requested type.
4593
4594 2004-05-21  Richard Henderson  <rth@redhat.com>
4595
4596         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
4597         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
4598         Don't mark VA_ARG_EXPRs volatile here.
4599         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
4600
4601 2004-05-21  Richard Henderson  <rth@redhat.com>
4602
4603         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
4604         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
4605
4606 2004-05-21  Roger Sayle  <roger@eyesopen.com>
4607
4608         * fold-const.c (fold, fold_relational_hi_lo,
4609         nondestructive_fold_binary_to_constant,
4610         fold_read_from_constant_string): Use fold_convert instead of convert.
4611         * builtins.c (simplify_builtin, simplify_builtin_strstr,
4612         simplify_builtin_strchr, simplify_builtin_strrchr,
4613         simplify_builtin_strpbrk): Use fold_convert instead of convert.
4614
4615 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
4616
4617         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
4618         is NULL.
4619
4620 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
4621
4622         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
4623         override sparc.h definition.
4624
4625 2004-05-20  Roger Sayle  <roger@eyesopen.com>
4626
4627         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
4628         get_unwidened, get_narrower): Replace build with build2.
4629         * fold-const.c (negate_expr, associate_trees, size_binop,
4630         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
4631         pedantic_omit_one_operand, distribute_bit_expr,
4632         make_bit_field_ref, optimize_bit_field_compare,
4633         decode_field_reference, range_binop, make_range,
4634         build_range_check, fold_range_test, fold_truthop,
4635         optimize_minmax_comparison, extract_muldiv_1,
4636         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
4637         fold_inf_compare, fold_single_bit_test, fold,
4638         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4639         Likewise replace build with either build2 or build3.
4640
4641 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
4642
4643         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
4644         * calls.c (prepare_call_address): Don't test
4645         NO_RECURSIVE_FUNCTION_CSE.
4646         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
4647         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4648         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4649         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4650         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4651         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4652         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4653         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4654         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4655         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4656         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4657         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
4658         Likewise.
4659         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
4660         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
4661         * doc/tm.texi (Costs): Remove documentation for
4662         NO_RECURSIVE_FUNCTION_CSE.
4663
4664 2004-05-20  Paul Brook  <paul@codesourcery.com>
4665
4666         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
4667         * unwind-dw2.c (extract_cie_info): Ditto.
4668         (_Unwind_FrameState): Change retaddr_column to word type.
4669
4670 2004-05-20  Roger Sayle  <roger@eyesopen.com>
4671
4672         PR middle-end/3074
4673         * fold-const.c (strip_compound_expr): Delete function.
4674         (count_cond): Delete function.
4675         (fold_binary_op_with_conditional_arg): Only perform transformations
4676         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
4677         when a is constant.  This greatly simplifies this routine.
4678
4679         * tree.c (saved_expr_p): Delete function.
4680         * tree.h (saved_expr_p): Delete function prototype.
4681
4682 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
4683
4684         * common.opt (ftree-loop-optimize): Remove.
4685
4686 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
4687
4688         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
4689         (NM_FOR_TARGET): Use := and $(shell).
4690         (mainversion): Remove unused variable.
4691
4692 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4693
4694         * reorg.c (delete_from_delay_slot): If we have a barrier after the
4695         sequence containing the insn to be deleted, always reemit it.
4696
4697 2004-05-20  Richard Henderson  <rth@redhat.com>
4698
4699         PR 15454
4700         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
4701         * function.c (expand_function_start): Expand static_chain_decl by hand.
4702         * gimplify.c (create_tmp_var_name): Export.
4703         * tree-gimple.h (create_tmp_var_name): Declare.
4704
4705 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
4706
4707         * rs6000.c (print_operand) <case 'z'>: Call
4708         mark_decl_referenced before assemble_name.
4709
4710 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
4711
4712         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
4713         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
4714         (cgraph_varpool_node): Hash on the pointer to the decl, not
4715         the DECL_UID.  Fixes 64-bit bootstrap failure.
4716
4717 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
4718
4719         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
4720         we don't earlyclobber operands used in the second insn.
4721
4722 2004-05-20  Steven Bosscher  <stevenb@suse.de>
4723
4724         * tree-mudflap.c: Formatting fixes.
4725
4726 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
4727
4728         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
4729         * gengtype.c (open_base_files): Include reload.h in ifiles.
4730         * reload.h (reg_equiv_memory_loc_varray): Declare.
4731         * reload1.c (reg_equiv_memory_loc_varray): New variable.
4732         (init_reload): Initialize it.
4733         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
4734         reg_equiv_memory_loc_varray to size 0.
4735         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
4736         growing reg_equiv_memory_loc_varray to the desired size.
4737         * passes.c (rest_of_handle_old_regalloc): Likewise.
4738         * reload.c: Amend comment on calling init_reload.
4739
4740 2004-05-20  Nick Clifton  <nickc@redhat.com>
4741
4742         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
4743         with 'TRAMP' in the body of the macro definition.
4744
4745 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4746
4747         PR target/15383
4748         * config/ia64/ia64.c (ia64_expand_compare): Don't check
4749         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
4750         cmptf_libfunc isn't set.
4751         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
4752         conventions.
4753         (ia64_sysv4_init_libfuncs): New.
4754
4755         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
4756         ia64_sysv4_init_libfuncs.
4757
4758 2004-05-20  Falk Hueffner  <falk@debian.org>
4759
4760         PR other/15526
4761         * libgcc2.c (__mulvsi3): Fix overflow test.
4762
4763 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
4764
4765         PR c/14171
4766         * reg-stack.c (nan): Rename to ...
4767         (not_a_num): Here.
4768         (reg_to_stack): Rename nan to not_a_num.
4769         (subst_stack_regs_pat): Likewise.
4770         (convert_regs_entry): Likewise.
4771         (convert_regs_1): Likewise.
4772
4773         * tree-cfg.c (find_case_label_for_value): Replace call to
4774         simple_cst_equal with tree_int_cst_equal.
4775
4776 2004-05-19  Jeff Law <law@redhat.com>
4777
4778         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
4779         If the operand is for a use, then strip away the SSA_NAME, do not
4780         strip away the SSA_NAME for a set.  Never call release_ssa_name.
4781         (mark_def_sites): Appropriately pass additional argument to
4782         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
4783         then set the VDEF_RESULT to the VDEF_OP.
4784         (set_def_block): Strip away any SSA_NAME to get to the real
4785         underlying variable.
4786
4787         * tree-ssa-phiopt.c (value_replacement): Handle the case where
4788         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
4789         BB directly.
4790
4791 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4792
4793         PR c++/15463
4794         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
4795         result of inverse.
4796
4797         PR rtl-optimization/15274
4798         * loop-iv.c (determine_max_iter, shorten_into_mode,
4799         iv_number_of_iterations): Handle constants correctly.
4800         * rtl.h (get_mode_bounds): Declaration changed.
4801         * stor-layout.c (get_mode_bounds): Return a constant suitable for
4802         the target mode.
4803
4804         PR rtl-optimization/14692
4805         * loop-unswitch.c (may_unswitch_on): Try folding the result.
4806         (unswitch_single_loop): Work correctly when may_unswitch_on
4807         returns a folded constant.
4808
4809         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
4810         * simplify-rtx.c (simplify_const_relational_operation): Optimize
4811         comparisons with mode bounds.
4812
4813         * function.c (struct temp_slot): Add new field prev.
4814         (free_after_compilation, init_temp_slots): Free new fields.
4815         (cut_slot_from_list, insert_slot_to_list,
4816         temp_slots_at_level, max_slot_level, move_slot_to_level,
4817         make_slot_available): New functions.
4818         (assign_stack_temp_for_type, combine_temp_slots,
4819         find_temp_slot_from_address, preserve_temp_slots,
4820         preserve_rtl_expr_result, free_temp_slots,
4821         free_temps_for_rtl_expr, pop_temp_slots): Work with
4822         the new structure of lists.
4823         (mark_all_temps_used): Removed.
4824         * function.h (struct function): Field x_temp_slots
4825         replaced by x_used_temp_slots and x_avail_temp_slots.
4826         (temp_slots): Replaced by ...
4827         (used_temp_slots, avail_temp_slots): New.
4828         * tree.h (mark_all_temps_used): Declaration removed.
4829
4830         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
4831         simplify_using_assignment): Take the expression out of
4832         the expr_list wrapper.
4833
4834         * loop-iv.c (iv_number_of_iterations): Improve clasification of
4835         infinite loops.
4836
4837 2004-05-19  Roger Sayle  <roger@eyesopen.com>
4838
4839         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
4840         costs should be based on code size when optimizing for size.
4841
4842 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
4843
4844         * fold-const.c: Remove non-printable character 160.
4845
4846 2004-05-19  Nick Clifton  <nickc@redhat.com>
4847
4848         * doc/invoke.texi (ARM Options): Fix typo.
4849         Remove descrption of -mshort-load-bytes and
4850         -mno-short-load-bytes.
4851
4852         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
4853         missing parenthesis.
4854         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
4855         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
4856
4857 2004-05-19  Steven Bosscher  <stevenb@suse.de>
4858
4859         * expr.c (store_constructor): Build loop start and end by hand
4860         instead of via loop functions from stmt.c.
4861         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
4862         Remove the code to expand them.
4863
4864         * stmt.c (loop_stack): Remove this and everything related.
4865         (struct nesting, enum nesting_desc): Update.
4866         (expand_fixup): Likewise.
4867         (expand_loop_start, expand_start_loop_continue_elsewhere,
4868         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
4869         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
4870         expand_exit_loop_if_false, expand_exit_loop_top_cond,
4871         expand_exit_something): Remove.
4872         * tree.h: Remove prototypes.
4873
4874 2004-05-18  Mike Stump  <mrs@apple.com>
4875             Devang Patel  <dpatel@apple.com>
4876
4877         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
4878         if this label is for eh.
4879         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
4880         * config/darwin.c (darwin_emit_unwind_label): Likewise.
4881         * dwarf2out.c (output_call_frame_info): Likewise.
4882         * output.h (default_emit_unwind_label): Likewise.
4883         * target.h (unwind_label): Likewise.
4884         * varasm.c (default_emit_unwind_label): Likewise.
4885
4886         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
4887         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
4888         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
4889         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
4890         DEBUG_RANGES_SECTION): Define.
4891
4892 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
4893
4894         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
4895         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
4896         (cgraph_varpool_node):
4897         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
4898         (cgraph_function_possibly_inlined_p): Use the decl itself for
4899         the key, not DECL_ASSEMBLER_NAME.
4900         (change_decl_assembler_name): No need to muck with the hash tables.
4901         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
4902         Delete.
4903         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
4904         for the key, not DECL_ASSEMBLER_NAME.
4905         * cgraph.h: Remove prototypes of deleted functions.
4906         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
4907         (mark_decl_referenced): New function.
4908         * tree.h: Prototype mark_decl_referenced.
4909         * final.c (output_addr_const) <case SYMBOL_REF>: Call
4910         mark_decl_referenced before assemble_name.
4911         * c-decl.c (finish_decl): Use mark_decl_referenced.
4912
4913 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
4914             Jeff Law <law@redhat.com>
4915
4916         * tree-ssa-phiopt.c (abs_replacement): New function.
4917         (empty_block_p): New function extracted from...
4918         (candidate_bb_for_phi_optimization): Break out empty block test.
4919         (conditional_replacement): Use empty_block_p.
4920         (value_replacement): Similarly.
4921
4922         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
4923         * tree-ssa-phiopt.c: Include flags.h.
4924         (conditional_replacement): Remove argument names from prototype.
4925         Minor formatting and comment fixes.
4926         (tree_ssa_phiopt): If conditional_replacement returns false, then
4927         call value_replacement.
4928         (value_replacement): New function.
4929
4930 2004-05-18  Jeff Law  <law@redhat.com>
4931
4932         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
4933         from conditional_replacement.
4934         (candidate_bb_for_phi_optimization): Similarly.
4935         (conditional_replacement): Use replace_phi_with_stmt and
4936         candidate_bb_for_phi_optimization.
4937
4938         * tree-ssa-phiopt.c: Fix various formatting issues.
4939
4940 2004-05-18  Steven Bosscher  <stevenb@suse.de>
4941
4942         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
4943         s390_expand_cmpmem): Do not use expand_start_loop and
4944         expand_end_loop, instead build the loop manually.
4945
4946 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
4947
4948         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
4949         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
4950
4951 2004-05-17  Jeff Law  <law@redhat.com>
4952
4953         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
4954         * flags.h (flag_delete_null_pointer_checks): Here.
4955         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
4956         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
4957         (add_phi_arg, remove_phi_arg_num): Similarly.
4958         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
4959         property into PHI nodes.
4960         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
4961         (record_equivalences_from_phis): If all PHI arguments are known to be
4962         nonzero, then the result must be nonzero as well.
4963         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
4964         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
4965         appropriately.  Walk the USE-DEF chains and propagate nonzero property
4966         as appropriate.
4967         * tree.h (PHI_ARG_NONZERO): Define.
4968         (phi_arg_d): Add nonzero flag.
4969
4970 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
4971
4972         * f: Entire directory removed
4973
4974         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
4975         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
4976         (g77_integer_type_node, g77_uinteger_type_node)
4977         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
4978         * c-common.c (c_common_nodes_and_builtins): Do not initialize
4979         the above set of variables.
4980
4981         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
4982         * doc/invoke.texi, doc/standards.texi: Remove cross-references
4983         to g77 manual.
4984
4985 2004-05-17  Steven Bosscher  <stevenb@suse.de>
4986
4987         PR tree-optimization/15438
4988         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
4989         attributed functions as pure or const.
4990
4991 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
4992
4993         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
4994         from source code with errors.
4995
4996 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
4997
4998         Enable tree browser for all front ends.
4999         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5000         (BACKEND): ...to here.
5001
5002 2004-05-17  Jan Hubicka  <jh@suse.cz>
5003
5004         * i386.c (construct_container): Do not produce BLKmode registers.
5005         (classify_argument): Properly compute alignment of complex types.
5006
5007 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5008
5009         PR target/15084
5010         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5011         and renamed to movdi_insv_1_rex64.
5012         (insv): Support SImode for 32bit and DImode for 64bit.
5013
5014 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5015
5016         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5017         (TARGET_SWITCHES): Remove debugg.
5018         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5019         TARGET_64BIT.
5020         (subdi3): Replace the define_expand with a define_insn, the latter
5021         renamed from subdi3_internal_3.
5022         (negdi2): Likewise negdi2_internal_2.
5023         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5024         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5025         and associated define_splits.
5026         (adddi3_internal): Renamed from adddi3_internal_3.
5027         (ashldi3_internal): Likewise ashldi3_internal4.
5028         (ashrdi3_internal): Likewise ashrdi3_internal4.
5029         (lshrdi3_internal): Likewise lshrdi3_internal4.
5030
5031 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5032
5033         * optabs.c (expand_unop): Try implementing negation using subtraction
5034         from zero.
5035
5036 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5037
5038         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5039         SAR register.
5040
5041 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5042
5043         PR target/10982
5044         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5045         (ne_zeroextractsi_shifted): New pattern.
5046         (ite_ne_zeroextractsi): New pattern.
5047         (ite_ne_zeroextractsi_shifted): New pattern.
5048
5049 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5050
5051         * c-gimplify.c (c_genericize):
5052         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5053         * c-parse.in <expr_no_commas>: Likewise.
5054         <if_prefix>: Likewise.
5055         <select_or_iter_stmt>: Likewise.
5056         * expr.c (expand_var, expand_expr_real_1): Likewise.
5057         * expr.h (expand_expr): Make it a static inline function.
5058         Move prototype for expand_expr_real up before this.
5059         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5060         Likewise.
5061         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5062         gimplify_asm_expr, gimplify_expr): Likewise.
5063         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5064         dump_function_to_file): Likewise.
5065         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5066         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5067         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5068         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5069         Likewise.
5070         * tree-optimize.c (execute_one_pass): Likewise.
5071         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5072         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5073
5074         * objc/objc-act.c (objc_build_try_enter_fragment,
5075         objc_build_try_epilogue, objc_build_catch_stmt,
5076         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5077         with lang_hooks.foo ().
5078
5079 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5080
5081         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5082         that simplify_builtin doesn't destructively modify its argument.
5083
5084 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5085
5086         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5087         implementations for ARM and Thumb.
5088         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5089
5090 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5091
5092         * prefix.c (update_path): Replace PREFIX with KEY only
5093         when it matches a full directory name in PATH.
5094
5095 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5096
5097         * arm.h (TARGET_APCS_32): Delete.
5098         (TARGET_MMU_TRAPS): Delete.
5099         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5100         define __APCS_26__.
5101         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5102         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5103         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5104         (prog_mode_type): Delete.
5105         (PROMOTE_MODE): Always promote unsigned for HImode.
5106         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5107         (MASK_RETURN_ADDR): Simplify.
5108         * arm.c (arm_prgmode): Delete.
5109         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5110         (print_multi_reg, output_return_instruction): Simplify.
5111         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5112         (arm_return_addr): Simplify.
5113         * arm.md (prog_mode): Delete.
5114         (conds): Simplify.
5115         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5116         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5117         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5118         (loadhi_shiftpredec): Delete.
5119         (peephole for post-increment on HImode load): Delete.
5120         * arm/crtn.asm: (FUNC_END): Simplify.
5121         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5122         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5123         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5124         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5125         MULTILIB_DEFAULTS as required.
5126         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5127         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5128         variables as required.
5129         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5130
5131 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5132
5133         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5134         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5135         count to 8 to handle n_reg > 2.
5136
5137 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5138
5139         * doc/extend.texi: Update WG14 URL.
5140
5141 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5142
5143         * basic-block.h (life_analysis, delete_noop_moves):
5144         Update prototypes.
5145         * bt-load.c (branch_target_load_optimize): Don't take the
5146         insns stream as an argument.  Update the life_analysis calls.
5147         * combine.c (combine_instructions): Update delete_noop_moves
5148         calls.
5149         * flow.c (notice_stack_pointer_modification): Don't take the
5150         insns stream as an argument.  Work on the flow graph.
5151         (life_analysis): Likewise.
5152         (delete_noop_moves): Likewise.
5153         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5154         (rest_of_handle_life): Update life_analysis call.
5155         (rest_of_compilation): Likewise, and also update
5156         branch_target_load_optimize call.
5157         * ra.c (reg_alloc): Update life_analysis call.
5158         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5159         the insns stream as an argument.
5160         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5161         call.
5162         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5163         prototypes.
5164         * value-profile.c (branch_prob): Update life_analysis call.
5165         * web.c (web_main): Work on the CFG, not on the insns stream.
5166
5167         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5168         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5169         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5170
5171 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5172
5173         PR c/15444
5174         * c-format.c (avoid_dollar_number): New function.
5175         (check_format_info_main): Call avoid_dollar_number when operand
5176         numbers might occur but has_operand_number == 0.
5177
5178 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5179
5180         * arm.md (all peephole2 patterns): Use predicates that validate
5181         register classes as appropriate.
5182
5183 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5184
5185         PR opt/14472
5186         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5187         ignore type conversions that do not inhibit tail calling.
5188         (find_tail_calls): Likewise.
5189
5190 2004-05-14  Jeff Law  <law@redhat.com>
5191
5192         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5193         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5194         bypassed virtuals into vars_to_rename just before into-ssa pass.
5195
5196         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5197         so that it picks up more opportunities to eliminate ABS expressions
5198         or turn them into negations.
5199
5200 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5201
5202         * passes.c (rest_of_handle_null_pointer): Remove.
5203         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5204         (rest_of_compilation): Likewise.
5205         * rtl.h (delete_null_pointer_checks): Remove prototype.
5206         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5207         Remove declarations.
5208         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5209         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5210         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5211         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5212         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5213         one_classic_gcse_pass, invalidate_nonnull_info,
5214         delete_null_pointer_checks_1, delete_null_pointer_checks,
5215         expr_reached_here_p_work): Remove.
5216         (gcse_main): Do not perform classic GCSE when optimizing for size.
5217         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5218         are never used.
5219
5220 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5221
5222         PR optimization/14466
5223         * tree-complex.c (make_temp): Remove.
5224         (gimplify_val): Replace make_temp with make_rename_temp
5225         and add NULL as the second argument.
5226         (expand_complex_div_wide): Likewise.
5227         * tree-dfa.c (make_rename_temp): New function.
5228         * tree-flow.h (make_rename_temp): Declare.
5229         * tree-sra.c (make_temp): Remove.
5230         (lookup_scalar): Replace make_temp with make_rename_temp.
5231         (create_scalar_copies): Likewise.
5232         * tree-ssa-phiopt.c (conditional_replacement): When we
5233         get non gimple create a temporary variable to hold the
5234         casted expression.
5235
5236 2004-05-14  Paul Brook  <paul@codesourcery.com>
5237
5238         * stor-layout.c (update_alignment_for_field): Use
5239         targetm.align_anon_bitfield.
5240         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5241         (TARGET_INITIALIZER): Use it.
5242         * target.h (struct gcc_target): Add align_anon_bitfield.
5243         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5244         (TARGET_ALIGN_ANON_BITFIELD): Define.
5245         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5246
5247 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5248
5249         * tree.def (documentation): Remove mention of class 'b'.
5250         (BLOCK): Now in class 'x'.
5251         * c-common.c (verify_tree): Remove case 'b'.
5252         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5253         * calls.c (calls_function_1): Control cannot get past the switch
5254         when exp is a BLOCK.
5255         * print-tree.c (print_node): Move code for class 'b' to the class
5256         'c'/'x' switch, as case BLOCK.
5257         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5258         (unsafe_for_reeval, substitute_placeholder_in_expr)
5259         (stabilize_reference_1): Remove case 'b'.
5260         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5261         of something being 'b' to tests for TREE_CODE of something being
5262         BLOCK.
5263         * tree-ssa-operands.c (get_expr_operands): Likewise.
5264
5265 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5266
5267         * tree-gimple.c: Rename from tree-simple.c.
5268         * tree-gimple.h: Rename from tree-simple.h.
5269         * c-gimplify.c: Rename from c-simplify.c
5270         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5271         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5272         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5273         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5274         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5275         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5276         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5277         Update.
5278
5279 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5280
5281         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5282
5283 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5284
5285         * tree-ssa.c (delete_tree_ssa): XFREE
5286         bitmaps allocated with BITMAP_XMALLOC.
5287
5288         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5289         idfs_cache at the end of the function.
5290
5291         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5292         at the end of the function.
5293
5294         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5295         el at the end of the function.
5296
5297         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5298         bitmaps allocated with BITMAP_XMALLOC.
5299
5300         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5301         the end.
5302
5303         * final.c (shorten_branches): Free uid_shuid before
5304         reallocating it.
5305
5306         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5307
5308 2004-05-13  Jeff Law  <law@redhat.com>
5309
5310         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5311         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5312         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5313
5314         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5315         rather than iterating through the blocks testing each bit in
5316         livein to initialize the worklist.
5317         (mark_def_sites): Remove useless checks of KILLS for virtual
5318         operands.
5319
5320         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5321         new parameters for the statement and variable worklist as well
5322         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5323         worklist recording interesting variables in the variable worklist
5324         and bitmap.  Handle casts between integral and boolean types.
5325         (substitute_single_use_vars): Accept new parameters for the statement
5326         and variable worklist.  When a substitution is made add a new
5327         entry to the statement worklist.  Handle casts between integral
5328         and boolean types.
5329         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5330         worklists to children.  Iterate until the statement worklist
5331         is empty.
5332
5333 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5334
5335         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5336         the end of the block.
5337
5338         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5339         with BITMAP_XMALLOC.
5340
5341         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5342         with BITMAP_XMALLOC.
5343
5344         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
5345         Free nonzero_vars at the end of the function.
5346
5347         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
5348         need to generate code instead of a NOP_EXPR.
5349
5350 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
5351
5352         * gcc.c (default_compilers): Fill out initializers for new Fortran
5353         entries.
5354
5355 2004-05-13  Paul Brook  <paul@codesourcery.com>
5356
5357         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
5358
5359 2004-05-13  Paul Brook  <paul@codesourcery.com>
5360
5361         * config/arm/arm.c (arm_default_short_enums): New function.
5362         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5363
5364 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5365
5366         Merge from tree-ssa-20020619-branch.
5367
5368         * Makefile.in (reload1.o-warn): Add.
5369         (tree-alias-ander.o-warn): Add.
5370         (GMPLIBS): Define.
5371         (GMPINC): Define.
5372         (BANSHEELIB): Define.
5373         (BANSHEEINC): Define.
5374         (TREE_DUMP_H): Define.
5375         (TREE_SIMPLE_H): Define.
5376         (TREE_FLOW_H): Define.
5377         (LIBDEPS): Add BANSHEELIB.
5378         (INCLUDES): Add BANSHEEINC and GMPINC.
5379         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
5380         c-mudflap.o and c-pretty-print.o.
5381         (C_OBJS): Remove c-pretty-print.o.
5382         (OBJS-common): Remove sibcall.o.
5383         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
5384         tree-ssa.o, tree-optimize.o, tree-simple.o,
5385         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
5386         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
5387         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
5388         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5389         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
5390         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
5391         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
5392         tree-tailcall.o, gimple-low.o, tree-iterator.o,
5393         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
5394         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
5395         tree-profile.o.
5396         (OBJC-archive): Add tree-nomudflap.o.
5397         (cc1): Add dependency on @TREEBROWSER@.
5398         (c-decl.o): Add dependency on TREE_DUMP_H.
5399         (c-dump.o): Likewise.
5400         (c-common.o): Add dependency on tree-iterator.h
5401         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
5402         (gtype-desc.o): Add dependency on TREE_FLOW_H.
5403         (tree.o): Add dependency on tree-iterator.h,
5404         BASIC_BLOCK_H and TREE_FLOW_H.
5405         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
5406         (langhooks.o): Add dependency on TREE_SIMPLE_H.
5407         (tree-alias-type.o, tree-alias-ander.o,
5408         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
5409         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
5410         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
5411         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
5412         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
5413         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
5414         tree-nested.o, tree-iterator.o, tree-dfa.o,
5415         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
5416         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
5417         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
5418         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
5419         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
5420         tree-sra.o, tree-complex.o, tree-profile.o,
5421         rtl-profile.o): New rules.
5422         (function.o): Add dependency on basic-block.h
5423         (expr.o): Add dependency on tree-iterator.h.
5424         (sibcall.o): Remove.
5425         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
5426         (cfg.o): Add dependency on TIMEVAR_H.
5427         (cfghooks.o): Add dependency on TREE_FLOW_H.
5428         (reg-stack.o): Add dependency on basic-block.h.
5429         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
5430         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
5431         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
5432         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
5433         tree-alias-type.h, tree-alias-common.h,
5434         tree-alias-type.c, tree-alias-common.c,
5435         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
5436         rtl-profile.c and tree-nested.c.
5437         (gt-tree-alias-common.h, gt-tree-mudflap.h,
5438         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
5439         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
5440         gt-tree-cfg.h, gt-tree-nested.h): New rules.
5441         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
5442         * basic-block.h: Include predict.h
5443         (struct edge_def): Add GTY marker.
5444         Change field 'insns' to be a union of tree and rtx.
5445         (EDGE_TRUE_VALUE): Define.
5446         (EDGE_FALSE_VALUE): Define.
5447         (EDGE_EXECUTABLE): Define.
5448         (struct bb_ann_d): Forward declare.
5449         (struct basic_block_def): Add GTY marker.
5450         Remove fields head_tree and end_tree.
5451         Add fields stmt_list, rbi and tree_annotations.
5452         (struct reorder_block_def): Define.
5453         (basic_block_info): Add GTY marker.
5454         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
5455         variables instead of macros.
5456         (flow_call_edges_add): Remove declaration.
5457         (make_eh_edge): Remove declaration.
5458         (brief_dump_cfg, find_edge, tree_predicted_by_p,
5459         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
5460         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
5461         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
5462         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
5463         (try_redirect_by_replacing_jump): Modfiy return type to
5464         edge instead of bool.
5465         * bb-reorder.c (copy_bb): Call duplicate_block
5466         instead of cfg_layout_duplicate_bb.
5467         (copy_bb_p): Call can_duplicate_block_p instead of
5468         cfg_layout_can_duplicate_bb_p.
5469         * bitmap.c (bitmap_first_set_bit): Abort if word
5470         wasn't found.
5471         (bitmap_last_set_bit): Likewise.
5472         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
5473         (DEF_FUNCTION_TYPE_3): Add.
5474         * builtins.c (c_strlen): Make extern.
5475         (builtin_save_expr): New.
5476         (expand_builtin_nonlocal_goto): New.
5477         (expand_builtin_constant_p): Remove.
5478         (expand_builtin_mathfn): Call builtin_save_expr instead
5479         of save_expr.
5480         (expand_builtin_mathfn_2): Likewise.
5481         (expand_builtin_strcmp): Likewise.
5482         (expand_builtin_strncmp): Likewise.
5483         (expand_builtin_strcat): Likewise.
5484         (fold_builtin_cabs): Likewise.
5485         (expand_builtin_alloca): Don't trigger if -fmudflap is
5486         given.
5487         (build_string_literal): Set TREE_INVARIANT on new node.
5488         (expand_builtin_profile_fun): New.
5489         (round_trampoline_addr): New.
5490         (expand_builtin_init_trampoline): New.
5491         (expand_builtin_adjust_trampoline): New.
5492         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
5493         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
5494         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
5495         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
5496         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
5497         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
5498         Handle.
5499         (fold_builtin_expect): New.
5500         (fold_builtin_isascii): Don't return non-constant results
5501         in GIMPLE form.
5502         (fold_builtin_isdigit): Likewise.
5503         (fold_builtin_1): New.
5504         (fold_builtin): Call it.
5505         (build_function_call_expr): Update call to build a new
5506         CALL_EXPR.
5507         (purge_builtin_constant_p): Remove.
5508         (simplify_builtin, simplify_builtin_memcmp,
5509         simplify_builtin_strcmp, simplify_builtin_strncmp,
5510         simplify_builtin_strpbrk, simplify_builtin_strstr,
5511         simplify_builtin_strchr, simplify_builtin_strrchr,
5512         simplify_builtin_strcat, simplify_builtin_strncat,
5513         simplify_builtin_strspn, simplify_builtin_strcspn,
5514         simplify_builtin_next_arg, simplify_builtin_va_start,
5515         simplify_builtin_sprintf): New.
5516         * builtins.def (BUILT_IN_STACK_ALLOC,
5517         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
5518         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
5519         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
5520         BUILT_IN_PROFILE_FUNC_EXIT): Define.
5521         * c-common.c: Include tree-iterator.h and hashtab.h.
5522         (lang_statement_code_p): Declare.
5523         (lang_gimplify_stmt): Declare.
5524         (fix_string_type): Set TREE_INVARIANT for value.
5525         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
5526         (c_type_hash): New.
5527         (c_common_get_alias_set): Handle multiple type nodes
5528         referring to "the same" type, currently for C90 only.
5529         (c_add_case_label): Use create_artificial_label.
5530         (finish_label_address_expr): Don't set TREE_CONSTANT on
5531         result.
5532         (c_expand_expr): Don't handle STMT_EXPR.
5533         (handle_alias_attribute): Marke aliased variables to be
5534         TREE_STATIC.
5535         (handle_nonnull_attribute): Initialize arg_num.
5536         (check_function_nonnull): Likewise.
5537         (c_walk_subtrees): New.
5538         (c_estimate_num_insns_1): Don't handle
5539         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
5540         (c_decl_uninit_1): Remove.
5541         (c_decl_uninit): Remove.
5542         (c_warn_unused_result): New.
5543         * c-common.def (ASM_STMT): Change number of operands
5544         to 4.
5545         (FILE_STMT): Remove.
5546         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
5547         Remove.
5548         (lang_gimplify_stmt): Add.
5549         (expand_stmt): Remove.
5550         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
5551         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
5552         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
5553         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
5554         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
5555         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
5556         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
5557         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
5558         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
5559         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
5560         genrtl_compound_stmt, genrtl_asm_stmt,
5561         genrtl_cleanup_stmt, c_decl_uninit): Remove.
5562         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
5563         c_tree_chain_matters_p, c_warn_unused_result,
5564         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
5565         Declare.
5566         * c-convert.c (convert): Make convert work when
5567         converting to compatible types across translation unit.
5568         * c-decl.c: Include langhooks.h, tree-mudflap.h,
5569         tree-simple.h, diagnostic.h and tree-dump.h
5570         (merge_decls): Initialize oldtype to NULL.
5571         (finish_decl): Use DECL_HARD_REGISTER instead of
5572         DECL_C_HARD_REGISTER.
5573         (check_bitfield_type_and_width): Check for null
5574         lang_type_specific when check the precision of an enum.
5575         (grokdeclarator): Immediately layout an ARRAY_TYPE used
5576         in a pointer-to-array declarator.
5577         (finish_struct): Clear allocated struct lang_type.
5578         (finish_enum): Set enum_min and enum_max.  Set
5579         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
5580         not to the enumerators.
5581         (set_decl_nonlocal): New.
5582         (store_parm_decls): Use it via walk_tree.
5583         (c_finalize): New.
5584         (finish_function): When !targetm.have_ctors_dtors,
5585         record static constructors and destructors here...
5586         (c_expand_body_1): ... not here.
5587         (c_expand_decl): Rename from c_expand_decl_stmt.
5588         Handle all C-specific expansion semantics.
5589         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
5590         STMT_LINENO.
5591         * c-format.c (handle_format_arg_attribute): Initialize
5592         format_num.
5593         * c-lang.c: Include tree-inline.h
5594         (LANG_HOOKS_EXPAND_DECL,
5595         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5596         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
5597         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
5598         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
5599         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
5600         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
5601         (c_types_compatible_p): New.
5602         * c-mudflap.c: New file.
5603         * c-objc-common.c: Include tree-mudflap.h
5604         (start_cdtor, finish_cdtor): Collapse
5605         together into
5606         (build_cdtor): ...here.  Update to construct a complete tree
5607         for the function.  No need to call push_scope, pop_scope, or
5608         clear_last_expr, or set current_function_cannot_inline.
5609         (c_missing_noreturn_ok_p): Change prototype to return
5610         bool.
5611         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
5612         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
5613         opts.c.
5614         (c_common_post_options): Don't ever use rtl inlining.
5615         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
5616         * c-pragma.c (handle_pragma_redefine_extname): Define
5617         always.
5618         (init_pragma): Activate #pragma redefine_extname for mudflap.
5619         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
5620         (pp_c_initializer): Accept any type CONSTRUCTOR.
5621         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
5622         COMPLEX_TYPE.
5623         (decl_name_str): New local function.
5624         (pp_c_direct_declarator): Call it.
5625         (pp_c_primary_expression): Call it.
5626         (pp_c_id_expression): Call it.
5627         (pp_c_statement): Call it.
5628         (print_c_tree): Create new pp object.
5629         * c-pretty-print.h (pp_c_tree_decl_identifier,
5630         print_c_tree): Declare.
5631         * c-semantics.c: Include langhooks.h
5632         (lang_expand_stmt, lang_expand_decl_stmt,
5633         find_reachable_label_1, find_reachable_label,
5634         expand_unreachable_if_stmt, expand_unreachable_stmt,
5635         genrtl_do_stmt_1): Remove.
5636         (begin_stmt_tree): Don't check for changed filename.
5637         Call annotate_with_locus.
5638         (finish_stmt_tree): Don't set line for end of function.
5639         (build_stmt): Don't check type nodes for
5640         side effects.
5641         (build_stmt): Set TREE_SIDE_EFFECTS.
5642         Set EXPR_LOCUS instead of STMT_LINENO.
5643         (lang_expand_stmt, lang_expand_decl_stmt,
5644         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
5645         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
5646         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
5647         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
5648         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
5649         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
5650         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
5651         find_reachable_label_1, expand_unreachable_if_stmt,
5652         expand_unreachable_stmt): Remove.
5653         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
5654         * c-simplify.c: New file.
5655         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
5656         (struct lang_type): Add fields enum_min and enum_max.
5657         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
5658         (c_expand_decl, c_missing_noreturn_ok_p,
5659         c_types_compatible_p): Declare.
5660         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
5661         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
5662         (default_function_array_conversion): Rely on build to
5663         set TREE_CONSTANT.
5664         (parser_build_binary_op, pointer_diff): Likewise.
5665         (build_unary_op, build_binary_op): Likewise.
5666         (build_array_ref):
5667         (build_external_ref): Set TREE_INVARIANT.
5668         (build_c_cast, pop_init_level): Likewise.
5669         (process_init_element): Use ASM_VOLATILE_P.
5670         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
5671         (c_finish_case): Call c_do_switch_warnings.
5672         * c.opt (fdump-): Remove.
5673         * calls.c (try_to_integrate): Remove.
5674         (prepare_call_address): Replace fndecl arg with a
5675         precomputed static chain value.
5676         (emit_call_1): New argument for full call expr.
5677         (flags_from_decl_or_type): Call special_function_p.
5678         (initialize_argument_information): Add argument
5679         may_tailcall.
5680         (purge_reg_equiv_notes): New.
5681         (expand_call): Do not try to expand calls inline.
5682         (fixup_tail_calls): New.
5683         * cfg.c: Include timevar.h and ggc.h.
5684         (bb_pool, edge_pool): Remove.
5685         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
5686         (entry_exit_blocks): Remove.
5687         (rbi_pool): Declare.
5688         (init_flow): Do not create pools.
5689         Allocate entry/exit block.
5690         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
5691         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
5692         (unlink_block): Clear b->prev_bb and b->next_bb.
5693         (compact_blocks): Clear all slots of BASIC_BLOCK array.
5694         (dump_flow_info): Work on trees too.
5695         (dump_cfg_bb_info): New.
5696         (brief_dump_cfg): New.
5697         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
5698         (find_edge): New.
5699         * cfgbuild.c (rtl_make_eh_edge): Rename from
5700         make_eh_edge.  Update all users.
5701         (find_basic_blocks): Don't call VARRAY_FREE on
5702         basic_block_info.
5703         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
5704         and newpos2.
5705         (delete_unreachable_blocks): Return changed status.
5706         (merge_seq_blocks): New.
5707         * cfghooks.c: Include tree-flow.h
5708         (tree_register_cfg_hooks, ir_type): New.
5709         (redirect_edge_and_branch): Change return type to edge.
5710         (predict_edge, predicted_by_p, can_duplicate_block_p,
5711         duplicate_block, block_ends_with_call_p,
5712         block_ends_with_condjump_p, flow_call_edges_add): New.
5713         * cfghooks.h (redirect_edge_and_branch): Change return
5714         type to edge.
5715         (predict_edge, predicted_by_p, can_duplicate_block_p,
5716         duplicate_block, block_ends_with_call_p,
5717         block_ends_with_condjump_p, flow_call_edges_add): Declare.
5718         (redirect_edge_and_branch): Change return type to edge.
5719         (struct cfg_hooks): Add fields block_ends_with_call_p,
5720         block_ends_with_condjump_p, flow_call_edges_add,
5721         predict_edge, predicted_by_p, can_duplicate_block_p and
5722         duplicate_block.
5723         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
5724         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
5725         (fixup_reorder_chain): Use initialize_bb_rbi.
5726         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
5727         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
5728         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
5729         (insn_locators_initialize): Use new info about blocks.
5730         * cfglayout.h (typedef struct reorder_block_def): Moved to
5731         basic_block.h.
5732         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
5733         removed.
5734         * cfgloop.c: Include tree.h and tree-flow.h.
5735         * cfgloop.h (create_loop_notes): Declare.
5736         * cfgloopmanip.c (create_loop_notes): New.
5737         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
5738         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
5739         and duplicate_block fields.
5740         (create_basic_block_structure): Don't look at
5741         RTX_INTEGRATED_P.
5742         (rtl_block_ends_with_call_p): New.
5743         (rtl_block_ends_with_condjump_p): New.
5744         (need_fake_edge_p): Moved from cfganal.c.
5745         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
5746         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
5747         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
5748         (cfg_layout_rtl_cfg_hooks): Ditto.
5749         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
5750         functions to be reachable.
5751         * cgraphunit.c (decide_is_function_needed):
5752         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
5753         inline functions don't need to be output.
5754         (cgraph_assemble_pending_functions): Don't do anything
5755         special for nested functions.
5756         (cgraph_mark_functions_to_output): Likewise.
5757         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
5758         (cgraph_analyze_function): Use estimate_num_insns.
5759         (cgraph_mark_functions_to_output): Likewise.
5760         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
5761         (cgraph_expand_function): Allow functions to not be
5762         emitted.
5763         (cgraph_remove_unreachable_nodes):
5764         (cgraph_recursive_inlining_p): Simplify.
5765         (lookup_recursive_calls,
5766         cgraph_decide_recursive_inlining): New.
5767         (cgraph_decide_inlining_*): Update calls of
5768         cgraph_mark_inline.
5769         * combine.c (get_pos_from_mask): Always set *plen.
5770         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
5771         ftree-based-profiling, ftree-ccp, ftree-ch,
5772         ftree-combine-temps, ftree-copyrename, ftree-dce,
5773         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
5774         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
5775         ftree-lrs): Add.
5776         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
5777         Undefine.
5778         * configure.ac: Add --enable-tree-browser option.
5779         Add --with-libbanshee option.
5780         Add GMPLIBS and GMPINC.
5781         * configure: Regenerate.
5782         * coverage.c (tree_ctr_tables): New.
5783         (coverage_counter_alloc): Use it.
5784         (build_ctr_info_value): Ditto.
5785         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
5786         (tree_coverage_counter_ref): New.
5787         * coverage.h (coverage_counter_ref): Remove declaration.
5788         (rtl_coverage_counter_ref): Declare.
5789         (tree_coverage_counter_ref): Declare.
5790         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
5791         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
5792         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
5793         (struct cse_basic_block_data): Rename enum values to not
5794         conflict with profile.h; update all uses.
5795         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
5796         in comments.
5797         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
5798         * diagnostic.h (debug_output_buffer, dump_generic_node,
5799         print_generic_stmt, print_generic_stmt_indented,
5800         print_generic_expr, print_generic_decl,
5801         debug_generic_expr, debug_generic_stmt, debug_c_tree):
5802         Declare.
5803         * dominance.c: Cache immediate dominators.
5804         * domwalk.c: New file.
5805         * domwalk.h: New file.
5806         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
5807         (gen_subprogram_die): Generate a DIE for a named
5808         return value.
5809         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
5810         (add_location_or_const_value_attribute): Likewise.
5811         (add_bound_info): Likewise.
5812         (gen_decl_die): Likewise.
5813         * emit-rtl.c (maybe_set_first_label_num): New.
5814         (copy_most_rtx): Don't copy the integrated flag.
5815         Copy the new return_val flag.
5816         * et-forest.c (MAX_NODES): Define.
5817         (record_path_before_1): Abort if len is greater than
5818         MAX_NODES.
5819         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
5820         gen_eh_region_catch, gen_eh_region_allowed,
5821         gen_eh_region_must_not_throw, get_eh_region_number,
5822         get_eh_region_may_contain_throw, get_eh_region_tree_label,
5823         set_eh_region_tree_label, expand_resx_expr): New.
5824         (expand_eh_region_start, expand_start_catch): Use them.
5825         (expand_end_catch): Tidy.
5826         (note_eh_region_may_contain_throw): Take region argument.
5827         (note_current_region_may_contain_throw): New.
5828         (get_exception_filter): Export.
5829         (collect_eh_region_array): Export.
5830         (remove_unreachable_regions): Check ERT_TRY based on reachability
5831         of catches, not reachability of continue_label.  Never remove
5832         ERT_MUST_NOT_THROW regions.
5833         (collect_rtl_labels_from_trees): New.
5834         (convert_from_eh_region_ranges): Use it.
5835         (connect_post_landing_pads): Handle dying cleanups.
5836         (struct reachable_info): Add callback data.
5837         (add_reachable_handler): Invoke the callback.
5838         (foreach_reachable_handler): New.
5839         (reachable_handlers): Use it.
5840         (arh_to_landing_pad, arh_to_label): New.
5841         (can_throw_internal_1): Split out from can_throw_internal.
5842         (can_throw_external_1): Similarly.
5843         * except.h: Update.
5844         * explow.c (emit_stack_save): Remove savearea mode check.
5845         (update_nonlocal_goto_save_area): New.
5846         (allocate_dynamic_stack_space): Use it.
5847         (probe_stack_range): Never emit loop notes.
5848         * expmed.c (extract_fixed_bit_field): Always propagate the
5849         target for the shift if it is a REG.
5850         * expr.c: Include tree-iterator.h
5851         (is_zeros_p): Remove.
5852         (categorize_ctor_elements_1, categorize_ctor_elements): New.
5853         (count_type_elements): New.
5854         (mostly_zeros_p): Use them.
5855         (expr_wfl_stack): Remove.
5856         (convert_move): Do nothing if to and from are the same.
5857         (emit_block_move_via_loop): Don't emit LOOP notes.
5858         (emit_move_insn): Don't handle CONSTANT_P_RTX.
5859         (emit_move_insn_1): Don't generate inline warnings.
5860         (expand_vars, expand_var): Split from ...
5861         (expand_expr_1): ... here.
5862         (expand_expr_real, expand_expr_real_1):  Use new macros
5863         EXPR_LOCATION and EXPR_HAS_LOCATION.
5864         * expr.h (simplify_builtin_fputs,
5865         simplify_builtin_strcpy, simplify_builtin_strncpy,
5866         expand_var, fixup_tail_calls,
5867         update_nonlocal_goto_save_area): Declare.
5868         (lookup_static_chain, expand_inline_function,
5869         mark_seen_cases): Remove.
5870         (prepare_call_address): Change type of 2nd argument to
5871         rtx.
5872         * final.c (profile_function): Update static chain test.
5873         (final): Don't look at RTX_INTEGRATED_P.
5874         * flags.h (flag_mudflap, flag_mudflap_threads,
5875         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
5876         flag_tree_dce, flag_tree_combine_temps,
5877         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
5878         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
5879         flag_tree_points_to): Declare.
5880         (enum pta_type): Declare.
5881         * flow.c (lang_missing_noreturn_ok_p): Remove.
5882         (check_function_return_warnings): Remove.
5883         (update_life_info): Update comments.
5884         (free_basic_block_vars): Don't call VARRAY_FREE for
5885         basic_block_info.
5886         (regno_uninitialized): Remove.
5887         * fold-const.c (int_const_binop): Make extern.
5888         (non_lvalue): Rely on build to set TREE_CONSTANT.
5889         (operand_equal_p): Replace only_const argument with
5890         flags.  Allow pure functions if OEP_PURE_SAME.
5891         (fold): Use OEP_ONLY_CONST.
5892         (invert_truthvalue) <NOP_EXPR> Break if argument is of
5893         boolean type.
5894         (fold_relational_hi_lo,
5895         nondestructive_fold_binary_to_constant,
5896         nondestructive_fold_unary_to_constant,
5897         fold_read_from_constant_string): New.
5898         * function.c (struct function): Remove calls_constant_p.
5899         (current_function_calls_constant_p): Remove.
5900         (inline_function_decl): Remove.
5901         (put_var_into_stack): Don't use it.
5902         (fix_lexical_addr): Likewise.
5903         (inline_function_decl): Remove extern declaration.
5904         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
5905         (trampolines_created): Move to varasm.c.
5906         (free_after_compilation): Update for removed fields.
5907         (allocate_struct_function): Likewise.
5908         (delete_handlers, lookup_static_chain): Remove.
5909         (fix_lexical_addr): Don't consider non-local variable refs.
5910         (trampoline_address): Remove.
5911         (round_trampoline_addr): Move to builtins.c.
5912         (adjust_trampoline_addr): Remove.
5913         (expand_function_start): Update for changes to static chain
5914         and nonlocal goto handling.
5915         (initial_trampoline): Move to varasm.c.
5916         (expand_function_end): Don't build trampolines or kill
5917         unreferenced nonlocal goto labels.
5918         (free_after_compilation): Don't set it.
5919         (expand_function_end): Likewise.
5920         (setjmp_vars_warning): Rename from
5921         uninitialized_vars_warning, remove uninitialized vars warning.
5922         (uninitialized_vars_warning): Remove old comment
5923         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
5924         and do not call the langhook.
5925         (expand_function_start, expand_function_end): Don't do
5926         function instrumentation here.
5927         (clear_block_marks): Rename from reorder_blocks_0, export.
5928         (blocks_nreverse): Export.
5929         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
5930         of rtl.
5931         (reset_block_changes, record_block_change, finalize_block_changes,
5932         check_block_change, free_block_changes): New functions.
5933         (assign_parms): Setting of current_function_stdarg
5934         moved ...
5935         (allocate_struct_function): ... here.
5936         * function.h (struct function): Remove x_nonlocal_labels,
5937         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
5938         x_context_display, x_trampoline_list, needs_context.
5939         Add static_chain_decl, nonlocal_goto_save_area.
5940         (struct function): Remove x_clobber_return_insn.
5941         Add tail_call_emit field, last_label_uid,
5942         unexpanded_var_list, dont_emit_block_notes,
5943         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
5944         (clear_block_marks): Declare.
5945         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
5946         (mfwrap_spec, mflib_spec): Declare.
5947         (cpp_unique_options, cc1_options): Ditto.
5948         (default_compilers): Add .F and .f90.
5949         (static_specs): Add mfwrap and mflib.
5950         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
5951         CONSTANT_RTX_P.
5952         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
5953         Update to match insns field in struct edge_def.
5954         * gdbinit.in (pgs, pge): Define.
5955         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
5956         instead of the integrated flag.
5957         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
5958         * gengtype-yacc.y (bitfieldlen): Add empty action.
5959         (struct_fields): Accept unnamed bitfields.
5960         (bitfieldlen): Split from ...
5961         (bitfieldopt): ... here.
5962         * gengtype.c (ifiles): Add tree-alias-type.h and
5963         tree-flow.h.
5964         * genrecog.c (validate_pattern): Do not handle
5965         CONSTANT_P_RTX.
5966         * gimple-low.c: New file.
5967         * gimplify.c: New file.
5968         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
5969         (restore_line_notes): Do not set RTX_INTEGRATED_P.
5970         * ifcvt.c (dead_or_predicable): Initialize local variable
5971         'earliest'.
5972         * input.h (expr_wfl_stack): Remove.
5973         * integrate.c (INTEGRATE_THRESHOLD): Remove.
5974         (setup_initial_hard_reg_value_integration): Likewise.
5975         (initialize_for_inline): Likewise.
5976         (note_modified_parmregs): Likewise.
5977         (integrate_parm_decls): Likewise.
5978         (process_reg_param): Likewise.
5979         (save_parm_insns): Likewise.
5980         (copy_insn_list): Likewise.
5981         (copy_insn_notes): Likewise.
5982         (compare_blocks): Likewise.
5983         (find_block): Likewise.
5984         (inlining): Likewise.
5985         (function_cannot_inline_p): Likewise.
5986         (parmdecl_map): Likewise.
5987         (in_nonparam_insns): Likewise.
5988         (save_for_inline): Likewise.
5989         (FIXED_BASE_PLUS): Likewise.
5990         (expand_inline_function): Likewise.
5991         (copy_rtx_and_substitute): Don't look at map->integrating,
5992         map->inline_target, and inlining, since we are never copying
5993         for integrating.
5994         Don't abort on RTX_INTEGRATED_P.
5995         (old_fun): Remove.
5996         (output_inline_function): Remove.
5997         * integrate.h (struct inline_map): Remove fields integrating,
5998         block_map, leaf_reg_map, inline_target, and local_return_label.
5999         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6000         copy_loop_headers, never_reached_warning): Removed.
6001         (any_uncondjump_p): Reject nonlocal goto.
6002         * langhooks-def.h (lhd_types_compatible_p,
6003         lhd_expand_decl, lhd_gimplify_expr): Declare.
6004         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6005         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6006         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6007         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6008         LANG_HOOKS_GIMPLIFY_EXPR,
6009         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6010         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6011         LANG_HOOKS_GIMPLIFY_EXPR,
6012         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6013         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6014         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6015         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6016         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6017         LANG_HOOKS_DECL_UNINIT,
6018         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6019         * langhooks.c: Include tree-simple.h.
6020         (lhd_expand_decl): New.
6021         (lhd_types_compatible_p): New.
6022         (lhd_decl_uninit): Remove.
6023         (lhd_gimplify_expr): New.
6024         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6025         Remove.
6026         (struct lang_hooks_for_functions): Add field
6027         missing_noreturn_ok_p.
6028         (struct lang_hooks): Add field expand_decl,
6029         types_compatible_p, gimplify_expr and
6030         gimple_before_inlining.
6031         Remove fields decl_uninit and rtl_expand
6032         * opts.c (decode_options): Set flag_tree_ccp,
6033         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6034         flag_tree_pre, flag_tree_ter,
6035         flag_tree_live_range_split, flag_tree_sra,
6036         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6037         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6038         OPT_fmudflapth, OPT_fmudflapir,
6039         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6040         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6041         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6042         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6043         OPT_ftree_points_to_ and OPT_ftree_pre.
6044         * output.h (regno_uninitialized, find_basic_blocks,
6045         cleanup_cfg, delete_unreachable_blocks,
6046         check_function_return_warnings): Remove.
6047         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6048         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6049         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6050         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6051         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6052         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6053         Define.
6054         * passes.c (rest_of_decl_compilation):
6055         (rest_of_handle_sibling_calls): Remove.
6056         (rest_of_handle_inlining): Remove.
6057         (rest_of_handle_gcse): Do not run
6058         purge_builtin_constant_p.
6059         (rest_of_compilation): Update.
6060         Do not call copy_loop_headers.
6061         Do rtl-based profiling only when
6062         !flag_tree_based_profiling.  Register rtl-based profiling
6063         hooks.
6064         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6065         (predicted_by_p): Rename to ...
6066         (rtl_predicted_by_p): .. this one; make global
6067         (tree_predicted_by_p): New.
6068         (dump_prediction): Add FILE argument.
6069         (predict_edge): Rename to ...
6070         (rtl_predict_edge): .. this one.
6071         (tree_predict_edge): New.
6072         (combine_predictions_for_insn): Update calls of predict_edge.
6073         (predict_loops): Break out from ...
6074         (estimate_probability): ... here; update comments; move updating
6075         of unknown probabilities from ...
6076         (estimate_bb_frequencies): ... here.
6077         (combine_predictions_for_bb): New.
6078         (tree_predict_by_opcode): New.
6079         (tree_estimate_probability): New.
6080         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6081         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6082         * predict.h: Add include guard.
6083         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6084         * pretty-print.c (pp_write_text_to_stream): Make extern.
6085         * pretty-print.h (pp_write_text_to_stream): Declare.
6086         * print-rtl.c (print_rtx): Don't print the integrated flag.
6087         Print the return_val flag.
6088         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6089         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6090         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6091         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6092         * profile.c: Include cfghooks.h, tree-flow.h.
6093         (profile_hooks): New.
6094         (profile_dump_file): New.
6095         (instrument_edges): Use hooks instead of RTL-specific code.
6096         (instrument_values): Ditto.
6097         (get_exec_counts): Ditto.
6098         (compute_branch_probabilities): Ditto.
6099         (compute_value_histograms): Ditto.
6100         (branch_prob): Ditto.
6101         (find_spanning_tree): Ditto.
6102         (end_branch_prob): Ditto.
6103         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6104         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6105         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6106         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6107         (tree_register_profile_hooks): New.
6108         (rtl_register_profile_hooks): New.
6109         * ra-rewrite.c (rewrite_program): Clear variable info.
6110         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6111         * regs.h: Add include guards.
6112         * reload.c (decompose): Clear val using memset.
6113         * rtl.def (CONSTANT_P_RTX): Remove.
6114         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6115         (copy_loop_headers): Remove.
6116         (struct rtx_def): Replace the integrated flag with the
6117         return_val flag.
6118         (maybe_set_first_label_num): Declare.
6119         (init_branch_prob): Move declaration to value-prof.h.
6120         (end_branch_prob): Ditto.
6121         (branch_prob): Ditto.
6122         (never_reached_warning): Don't declare it.
6123         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6124         (hoist_insn_to_edge): Update to match field insns in
6125         struct edge_def.
6126         * sbitmap.c (sbitmap_realloc): New.
6127         * sbitmap.h (sbitmap_realloc): Declare.
6128         * sibcall.c: Remove file.
6129         * simplify-rtx.c (simplify_rtx): Do not handle
6130         CONSTANT_P_RTX.
6131         * stmt.c (parse_output_constraint): Don't warn for read-write
6132         memory operand.
6133         (tail_recursion_args): Use types_compatible_p langhook.
6134         (force_label_rtx): Don't look at inline_function_decl.
6135         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6136         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6137         (declare_nonlocal_label): Remove.
6138         (expand_goto): Don't handle nonlocal gotos.
6139         (expand_nl_handler_label): Remove.
6140         (expand_nl_goto_receivers): Remove.
6141         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6142         update_nonlocal_goto_save_area.
6143         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6144         (warn_if_unused_value): Likewise.
6145         (expand_start_loop, expand_loop_continue_here,
6146         expand_end_loop): Don't create loop notes.
6147         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6148         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6149         (expand_end_case_type): Don't do warn_switch handling.
6150         (pushcase, pushcase_range) Update add_case_node calls.
6151         (add_case_node): Add dont_expand_label argument.
6152         (same_case_target_p): Don't search rtl.
6153         (expand_start_bindings_and_block, expand_end_bindings):
6154         Don't emit block notes when dont_emit_block_notes.
6155         (using_eh_for_cleanups_p): Export.
6156         (expand_return): Allow any typed rhs.
6157         (expand_stack_alloc): New.
6158         (expand_stack_save, expand_stack_restore): New.
6159         (containing_blocks_have_cleanups_or_stack_level): New
6160         function.
6161         (asm_op_is_mem_input): New fn.
6162         (expand_asm_expr): New fn.
6163         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6164         nodes.
6165         * stor-layout.c (layout_type): Just return if type is
6166         error_mark_node.
6167         (update_alignment_for_field): Export.
6168         (variable_size): We don't care about global_bindings_p if
6169         the frontend doesn't want a list of the expressions.
6170         * system.h: Poison INTEGRATE_THRESHOLD.
6171         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6172         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6173         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6174         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6175         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6176         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6177         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6178         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6179         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6180         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6181         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6182         TV_CONTROL_DEPENDENCES): Define.
6183         * toplev.c: Include tree-alias-common.h
6184         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6185         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6186         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6187         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6188         flag_tree_combine_temps, flag_tree_ter,
6189         flag_tree_live_range_split, flag_tree_dom,
6190         flag_tree_copyrename, flag_tree_dse): Declare.
6191         (f_options): Add tree-based-profiling, tree-gvn,
6192         tree-pre, tree-ccp, tree-dce,
6193         tree-dominator-opts, tree-copyrename, tree-dse,
6194         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6195         (wrapup_global_declarations): Don't output nested inlined functions.
6196         (general_init): Call init_tree_optimization_passes.
6197         (process_options): Sorry for -ftree-based-profiling plus
6198         -ftest-coverage or -fprofile-values.
6199         * toplev.h (init_tree_optimization_passes,
6200         flag_tree_based_profiling): Declare.
6201         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6202         * tree-alias-ander.c: New file.
6203         * tree-alias-ander.h: New file.
6204         * tree-alias-common.c: New file.
6205         * tree-alias-common.h: New file.
6206         * tree-alias-type.c: New file.
6207         * tree-alias-type.h: New file.
6208         * tree-browser.c: New file.
6209         * tree-browser.def: New file.
6210         * tree-cfg.c: New file.
6211         * tree-complex.c: New file.
6212         * tree-dfa.c: New file.
6213         * tree-dump.c (dump_enable_all): New.
6214         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6215         (dump_node): Remove const from field suffix and swtch.
6216         (dump_files): Add null entry, .generic, .nested, .vcg,
6217         .xml and a match-all entry.
6218         (extra_dump_files, extra_dump_files_in_use,
6219         extra_dump_files_alloced): Declare
6220         (dump_option_value_info): Add raw, details, stats,
6221         blocks, vops, lineno, uid and all.
6222         (dump_register): New.
6223         (get_dump_file_info): New.
6224         (dump_begin): Call it.
6225         Do nothing for TDI_none.
6226         (dump_begin): Include phase number in dump filename.
6227         (dump_enable_all): New.
6228         (dump_switch_p_1): Split out from dump_switch_p.
6229         (dump_switch_p): Handle extra_dump_files.
6230         Start our scan at TDI_none + 1.
6231         If -fdump-tree-all was given, call dump_enable_all.
6232         * tree-dump.h: Include splay-tree.h.
6233         (dump_function, dump_function_to_file, dump_register):
6234         Declare.
6235         * tree-eh.c: New file.
6236         * tree-flow-inline.h: New file.
6237         * tree-flow.h: New file.
6238         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6239         * tree-inline.h (walk_tree,
6240         walk_tree_without_duplicates): Move to tree.h.
6241         (estimate_num_insns): Declare.
6242         * tree-into-ssa.c: New file.
6243         * tree-iterator.c: New file.
6244         * tree-iterator.h: New file.
6245         * tree-mudflap.c: New file.
6246         * tree-mudflap.h: New file.
6247         * tree-nested.c: New file.
6248         * tree-nomudflap.c: New file.
6249         * tree-nrv.c: New file.
6250         * tree-optimize.c (dump_flags, vars_to_rename,
6251         in_gimple_form, all_passes, pass_gimple,
6252         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6253         (execute_gimple, execute_rebuild_bind,
6254         gate_all_optimizations, execute_del_cfg,
6255         register_one_dump_file, register_dump_files, dup_pass_1,
6256         init_tree_optimization_passes, execute_todo,
6257         execute_one_pass, execute_pass_list): New.
6258         (clear_decl_rtl): Remove.
6259         (tree_rest_of_compilation): Update to use tree
6260         optimizers.
6261         * tree-outof-ssa.c: New file.
6262         * tree-pass.h: New file.
6263         * tree-phinodes.c: New file.
6264         * tree-pretty-print.c: New file.
6265         * tree-profile.c: New file.
6266         * tree-simple.c: New file.
6267         * tree-simple.h: New file.
6268         * tree-sra.c: New file.
6269         * tree-ssa-alias.c: New file.
6270         * tree-ssa-ccp.c: New file.
6271         * tree-ssa-copy.c: New file.
6272         * tree-ssa-copyrename.c: New file.
6273         * tree-ssa-dce.c: New file.
6274         * tree-ssa-dom.c: New file.
6275         * tree-ssa-dse.c: New file.
6276         * tree-ssa-forwprop.c: New file.
6277         * tree-ssa-live.c: New file.
6278         * tree-ssa-live.h: New file.
6279         * tree-ssa-loop.c: New file.
6280         * tree-ssa-operands.c: New file.
6281         * tree-ssa-operands.h: New file.
6282         * tree-ssa-phiopt.c: New file.
6283         * tree-ssa-pre.c: New file.
6284         * tree-ssa.c: New file.
6285         * tree-ssanames.c: New file.
6286         * tree-tailcall.c: New file.
6287         * tree.c: Include tree-iterator.h, basic-block.h and
6288         tree-flow.h.
6289         (tree_node_kind): Add phi_nodes and ssa names.
6290         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6291         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6292         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6293         <'c'> Set TREE_INVARIANT.
6294         (copy_node_stat): Abort if trying to copy a
6295         STATEMENT_LIST.
6296         Clear TREE_VISITED.
6297         Clear annotation field.
6298         (build_constructor): Copy TREE_INVARIANT from vals.
6299         Don't clear TREE_CONSTANT.
6300         (expr_first, expr_last, expr_length): Remove.
6301         (staticp): Pass unknown component references to the language.
6302         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6303         (skip_simple_arithmetic): Likewise.
6304         (stabilize_reference_1): Likewise.
6305         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6306         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6307         STATEMENT_LIST.
6308         (lhd_unsave_expr_now): Remove.
6309         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6310         (recompute_tree_invarant_for_addr_expr): New.
6311         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6312         Call recompute_tree_invarant_for_addr_expr.
6313         Set TREE_INVARIANT accordingly.
6314         (build2_stat): Don't handle CALL_EXPR.
6315         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6316         (build_expr_wfl): Remove.
6317         (annotate_with_file_line, annotate_with_locus): New.
6318         (simple_cst_equal): Call simple_cst_list_equal to compare
6319         CONSTRUCTOR_ELTS pointers.
6320         (iterative_hash_expr): Don't hash types associated
6321         with conversions.  Instead hash on the signedness of the
6322         toplevel object and the operand of the conversion.
6323         (dump_tree_statistics): Call ssanames_print_statistics
6324         and phinodes_print_statistics.
6325         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6326         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6327         needs_to_live_in_memory): New.
6328         (initializer_zerop): Handle VECTOR_CST.  Don't check
6329         AGGREGATE_TYPE_P for CONSTRUCTOR.
6330         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6331         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6332         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6333         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6334         (CALL_EXPR): Add another operand.
6335         (EXPR_WITH_FILE_LOCATION): Remove.
6336         (SWITCH_EXPR): Add another operand.
6337         * tree.h: Update various comments.
6338         (union tree_ann_d): Forward declare.
6339         (struct tree_common): Add fields nowarning_flag,
6340         invariant_flag and visited.
6341         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6342         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6343         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6344         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
6345         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
6346         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
6347         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
6348         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
6349         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
6350         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
6351         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
6352         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
6353         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
6354         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
6355         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
6356         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
6357         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
6358         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
6359         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
6360         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
6361         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
6362         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
6363         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
6364         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
6365         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
6366         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
6367         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
6368         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
6369         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
6370         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
6371         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
6372         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
6373         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
6374         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
6375         TDF_UID,): Define.
6376         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
6377         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
6378         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
6379         EXPR_WFL_SET_LINECOL): Remove.
6380         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
6381         make_phi_node, init_phinodes, fini_phinodes,
6382         release_phi_node, phinodes_print_statistics,
6383         init_ssanames, fini_ssanames, make_ssa_name,
6384         release_ssa_name, ssanames_print_statistics,
6385         annotate_with_file_line, build_empty_stmt,
6386         annotate_with_locus, expr_only, categorize_ctor_elements,
6387         count_type_elements, add_var_to_bind_expr, is_essa_node,
6388         expand_stack_alloc, expand_stack_save,
6389         expand_stack_restore, add_case_node, operand_equal_p,
6390         nondestructive_fold_unary_to_constant,
6391         nondestructive_fold_binary_to_constant,
6392         fold_read_from_constant_string, int_const_binop,
6393         strip_float_extensions, simplify_builtin, c_strlen,
6394         recompute_tree_invarant_for_addr_expr,
6395         needs_to_live_in_memory, make_vector,
6396         setjmp_vars_warning, update_alignment_for_field,
6397         expand_asm_expr, asm_op_is_mem_input,
6398         containing_blocks_have_cleanups_or_stack_level,
6399         create_artificial_label, gimplify_function_tree,
6400         get_name, unshare_expr, walk_tree,
6401         walk_tree_without_duplicates, in_gimple_form): Declare.
6402         (struct tree_exp): Add fields locus and block.
6403         (struct tree_ssa_name, struct edge_def, struct
6404         tree_phi_node, struct tree_eref_common, struct
6405         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
6406         union alias_var_def, struct tree_statement_list_node,
6407         struct tree_statement_list, enum operand_equal_flag): Declare.
6408         (enum tree_node_structure_enum): Add TS_SSA_NAME,
6409         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
6410         TS_STATEMENT_LIST.
6411         (union tree_node): Add fields ssa_name, phi, eref, ephi,
6412         euse and stmt_list.
6413         (function_cannot_inline_p, uninitialized_vars_warning,
6414         save_for_inline, output_inline_function, all_cases_count,
6415         check_for_full_enumeration_handling,
6416         declare_nonlocal_label): Remove.
6417         (enum tree_dump_index): Add TDI_none, TDI_tu,
6418         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
6419         * unroll.c (unroll_loop): Don't clear map->inline_target.
6420         * unwind-sjlj.c (uw_install_context): Make a proper static inline
6421         function.
6422         * value-prof.c (value_prof_hooks): New.
6423         (find_values_to_profile): Rename to rtl_find_values_to_profile.
6424         Move rtl-specific bits in from branch_prob.
6425         (value_profile_transformations): Rename to
6426         rtl_value_profile_transformations.
6427         (struct value_prof_hooks): New.
6428         (rtl_value_prof_hooks): New.
6429         (rtl_register_value_prof_hooks): New.
6430         (tree_find_values_to_profile): New stub.
6431         (tree_value_profile_transformations): New stub.
6432         (tree_value_prof_hooks): New stub.
6433         (tree_register_value_prof_hooks): New stub.
6434         (find_values_to_profile): New.
6435         (value_profile_transformations): New.
6436         * value-prof.h: Add multiple inclusion guard.
6437         (struct histogram_value): Change rtx fields to void *.
6438         (rtl_register_value_prof_hooks): New declaration.
6439         (tree_register_value_prof_hooks): New declaration.
6440         (find_values_to_profile): New declaration.
6441         (free_profiled_values): New declaration.
6442         (value_profile_transformations): New declaration.
6443         (struct profile_hooks): New declaration.
6444         (init_branch_prob): Declaration moved from rtl.h.
6445         (branch_prob): Declaration moved from rtl.h.
6446         (end_branch_prob): Declaration mooved from rtl.h.
6447         (tree_register_profile_hooks): New declaration.
6448         (rtl_register_profile_hooks): New declaration.
6449         (tree_profile_hooks): New declaration.
6450         (rtl_profile_hooks): New declaration.
6451         * varasm.c: Include tree-mudflap.h.
6452         (TRAMPOLINE_ALIGNMENT): Remove.
6453         (make_decl_rtl): Call mudflap_enqueue_decl.
6454         (assemble_static_space):
6455         (assemble_trampoline_template): Set and return
6456         TRAMPOLINE_ALIGNMENT.
6457         * varray.c (element): Add GENERIC_PTR_NOGC entry.
6458         Add entry for 'tree *'.
6459         Add entry for struct edge_def *.
6460         (varray_copy): New.
6461         * varray.h (enum varray_data_enum): Add
6462         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
6463         VARRAY_DATA_TREE_PTR.
6464         (union varray_data_tag): Corresponding changes.
6465         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
6466         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
6467         VARRAY_EDGE, VARRAY_TREE_PTR,
6468         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
6469         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
6470         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
6471
6472         * config/*/*: Various updates for changed macros, tree
6473         codes, etc.  Check ChangeLog.tree-ssa.
6474
6475         * doc/cfg.texi: New file.
6476         * doc/tree-ssa.texi: New file.
6477         * doc/c-tree.texi: Document new codes.
6478         * doc/gccint.texi: Include new files.
6479         * doc/install.texi: Document new features.
6480         * doc/invoke.texi: Document new switches.
6481         * doc/passes.texi: Document new passes.
6482         * doc/rtl.texi: Update changed RTL codes.
6483         * doc/sourcebuild.texi: Update build instructions.
6484         * doc/standards.texi: Document Fortran changes.
6485         * doc/tm.texi: Update.
6486
6487 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
6488
6489         Replace several arrays with a struct of arrays.
6490         * combine.c (struct reg_stat): New.
6491         (init_reg_last_arrays): Renamed to...
6492         (init_reg_last): ...this.  Callers adjusted.
6493         (reg_stat): New.
6494         (combine_instructions): Allocate it and use it.
6495         (reg_last_death, reg_last_set, reg_last_set_value,
6496         reg_last_set_label, reg_last_set_table_tick,
6497         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
6498         reg_last_set_mode, reg_last_set_nonzero_bits,
6499         reg_last_set_sign_bit_copies): Replace throughout
6500         with items of reg_stat.
6501
6502 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6503
6504         PR optimization/15100
6505         * combine.c (distribute_notes): Don't create a dangling
6506         REG_LIBCALL/REG_RETVAL note.
6507
6508 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6509
6510         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
6511
6512         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
6513         negv2si2.
6514
6515 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6516
6517         * doc/md.texi (Standard Names): Fix typo in vec_init description.
6518
6519 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
6520
6521         * doc/gty.texi (GTY Options): Clarify example.
6522
6523 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
6524
6525         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
6526         Add const qualifier to altivec vector type if one is needed.
6527
6528 2004-05-11  Paul Brook  <paul@codesourcery.com>
6529
6530         * flags.h (flag_short_enums): Update comment.
6531         * opts.c (decode_options): Set flag_short_enums to 2.
6532         * toplev.c (flag_short_enums): Update comment.
6533         (process_options): Call default_short_enums target hook.
6534
6535 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
6536
6537         PR target/14063
6538         * config/rs6000/altivec.md (altivec_dssall):
6539         Change to unspec_volatile.
6540         (altivec_dss): Likewise.
6541
6542 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
6543
6544         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
6545         vnor.
6546         ("one_cmplv8hi2"): Same.
6547         ("one_cmplv4si2"): Same.
6548
6549 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6550
6551         PR target/15130
6552         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
6553         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
6554         into account.  Compute the correct number of general registers
6555         for the return value.  Generate a special push/pop sequence when
6556         failing to get a temporary register for non SHmedia epilogue.
6557         (sh_expand_epilogue): Add an argument to show whether it's for
6558         sibcall or not.  Set the 3rd argument of output_stack_adjust to
6559         -1 if needed.
6560         (sh_need_epilogue): Call sh_expand_epilogue with 0.
6561         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
6562         with 1.
6563         (epilogue): Call sh_expand_epilogue with 0.
6564
6565 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
6566
6567         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
6568         goto a cleanup label.  After the cleanup, free the allocated memory.
6569
6570 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
6571
6572         * config/rs6000/altivec.h (vec_sld): Add overloads for
6573         argument/return types of 'vector bool int', 'vector bool short'
6574         and 'vector bool char'.
6575
6576 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
6577
6578         * c-decl.c (store_parm_decls_newstyle): Correct test for a
6579         nested function.
6580
6581 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
6582
6583         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
6584         treating missing ones as "".
6585         * config/mips/mips.md: Remove constraints from match_operands and
6586         match_scratches if they appear in define_expands (except reload*),
6587         define_peephole2s, define_splits or attribute specifications.
6588         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
6589         constraint strings.
6590
6591 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
6592
6593         * config/rs6000/rs6000.c (function_arg_boundary): Always align
6594         AltiVec vectors.
6595         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
6596         vectors by refererence.  Align the same for TARGET_64BIT to a 16
6597         byte boundary.  Remove useless code.  Add function comment.
6598         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
6599         call to where it belongs.
6600         (function_arg_partial_nregs): Return true for all TARGET_32BIT
6601         -mabi=no-altivec AltiVec vectors.  Fix debug output.
6602         (rs6000_va_arg): Adjust for AltiVec change.
6603
6604 2004-05-10  Paul Brook  <paul@codesourcery.com>
6605
6606         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
6607         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
6608         (TARGET_DOUBLEWORD_ALIGN): Use it.
6609         (WCHAR_TYPE): Define.
6610         (WCHAR_SIZE_TYPE): Define.
6611         (SIZE_TYPE): Define.
6612
6613 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
6614
6615         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
6616         when size is 8 bytes.
6617         (function_arg_advance): Account for stack space used by AltiVec
6618         args when -mabi=altivec.  Simplify alignment calculations.  For
6619         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
6620         (function_arg): Similarly.
6621         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
6622         not AltiVec ABI.
6623         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
6624         Correct alignment, and align before testing reg count.  Remove
6625         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
6626         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
6627         TARGET_FPRS here..
6628         (rs6000_function_value): .. not here before call.
6629
6630 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
6631
6632         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
6633
6634 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
6635
6636         PR 15007
6637         * c-decl.c (current_file_decl): Rename to all_translation_units,
6638         adjust comment.
6639         (pop_scope): If popping file_scope, construct a
6640         TRANSLATION_UNIT_DECL and make it the context of all the
6641         symbols in the scope.
6642         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
6643         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
6644         anything to current_file_decl.
6645         (pushdecl_top_level): Likewise.
6646         (store_parm_decls_newstyle): Adjust check for nested function.
6647         (c_write_global_declarations): Update for renamed variable.
6648
6649 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
6650
6651         * config/rs6000/rs6000-protos.h
6652         (rs6000_conditional_register_usage): Protoize.
6653
6654         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
6655
6656         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
6657         function.
6658
6659 2004-05-08  Roger Sayle  <roger@eyesopen.com>
6660
6661         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
6662         where op is a comparison operator and C1 and C2 are integer constants
6663         into a range check.
6664         (fold): Call fold_div_compare.
6665
6666 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6667
6668         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
6669         problems with earlier versions of the GNU compiler.
6670
6671 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
6672
6673         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6674         Declare.
6675
6676         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
6677         (rs6000_hard_regno_mode_ok): New.
6678         (rs6000_init_hard_regno_mode_ok): New.
6679         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
6680
6681         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
6682         result.
6683
6684 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
6685
6686         * config/rs6000/altivec.h (vector, pixel, bool): Do not
6687         define as macros #ifdef __APPLE_ALTIVEC__.
6688
6689 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
6690
6691         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
6692         Generate appropriate parallels for vector arguments
6693         passed to vararg functions. (function_arg): make the call
6694         to rs6000_mixed_function_arg for vector args as needed.
6695
6696 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6697
6698         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
6699         EABI_FLOAT_VARARGS_P.
6700
6701 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6702
6703         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
6704         * config/mips/mips.c (override_options): Disable branch likely
6705         instructions if TUNE_MIPS5500.
6706
6707 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
6708
6709         * config/mips/mips.c (override_options): Allow the hi and lo registers
6710         to store any integral mode, not just MODE_INTs.
6711
6712 2004-05-07  Paul Brook  <paul@codesourcery.com>
6713
6714         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
6715         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
6716         (TARGET_DOUBLEWORD_ALIGN): Use it.
6717         (WCHAR_TYPE): Define.
6718         (WCHAR_SIZE_TYPE): Define.
6719         (SIZE_TYPE): Define.
6720
6721 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
6722
6723         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
6724         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
6725
6726 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
6727
6728         * loop-doloop.c (doloop_valid_p): Make sure that body
6729         gets freed.
6730
6731 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
6732
6733         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
6734         declaration.
6735         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
6736         (sparc_skip_caller_unimp): New global variable.
6737         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
6738         Use it instead of SKIP_CALLERS_UNIMP_P.
6739         * config/sparc/sparc.md (call expander): Add sanity check.
6740         (call_address_struct_value_sp32): Re-sync with expander.
6741         (call_symbolic_struct_value_sp32): Likewise.
6742         (return peepholes): Use 'sparc_skip_caller_unimp' instead
6743         of custom predicate.
6744
6745 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6746
6747         PR c++/14962
6748         * c-pragma.c (handle_pragma_redefine_extname): Only change
6749         the assembler name of FUNCTION_DECLs and VAR_DECLs.
6750
6751 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
6752
6753         * optabs.h (enum optab_index): Add new OTI_log1p.
6754         (log1p_optab): Define corresponding macro.
6755         * optabs.c (init_optabs): Initialize log1p_optab.
6756         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
6757         patterns.
6758         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
6759         using log1p_optab.
6760         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
6761         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6762
6763         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
6764
6765         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
6766         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
6767         Prototype here.
6768         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
6769         x87's fyl2xp1 instruction.
6770         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
6771         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
6772         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
6773         log1p  and log1pl built-ins as inline x87 intrinsics.
6774
6775 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
6776
6777         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
6778         * config/arm/freebsd.h: Likewise.
6779         * config/ia64/freebsd.h: Likewise.
6780         * config/sparc/freebsd.h: Likewise.
6781
6782 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
6783
6784         PR optimization/15296
6785         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
6786         getting last consecutive label at a branch.
6787         (relax_delay_slots): Similar, near top of loop.
6788
6789 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6790
6791         PR target/15202
6792         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
6793         register to general register.
6794
6795 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
6796
6797         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
6798         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
6799         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
6800         (STACK_BOUNDARY): Delete.
6801
6802 2004-05-06  Stuart Hastings  <stuart@apple.com>
6803
6804         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
6805         mistakenly clobbered by 1.423.
6806
6807 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
6808
6809         * doc/invoke.texi: Document -mvr4130-align.
6810         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
6811         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
6812         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
6813         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
6814         * config/mips/mips.md: Include sched-int.h.
6815         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
6816         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
6817         (override_options): Enable -mvr4130-align at -O3 and above.
6818         (mips_sim_insn): New variable.
6819         (mips_sim): New structure.
6820         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
6821         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
6822         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
6823         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
6824         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
6825         (mips_reorg): Call vr4130_align_insns.
6826         (vr4130_last_insn): New variable.
6827         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
6828         (vr4130_swap_insns_p, vr4130_reorder): New functions.
6829         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
6830         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
6831         (mips_use_dfa_pipeline_interface): Return true for the same.
6832         * config/mips/4130.md: New file.
6833         * config/mips/mips.md: Include it.  Add a peephole2 to convert
6834         "mult;mflo" into "mtlo;macc".
6835         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
6836         target of maccs.
6837         (*msac_using_macc): New pattern.
6838
6839 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
6840
6841         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
6842         (ir_vr55_hilo): Split into...
6843         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
6844         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
6845         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
6846         Add various multiplication bypasses.
6847         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
6848         multiplication.
6849
6850 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
6851
6852         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
6853         attribute to "XF".
6854
6855 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
6856
6857         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
6858         (fmod_optab, drem_optab): Define corresponding macros.
6859         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
6860         * genopinit.c (optabs): Implement fmod_optab and drem_optab
6861         using fmod?f3 and drem?f3 patterns.
6862         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
6863         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
6864         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
6865         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
6866         flag_unsafe_math_optimizations is set.
6867
6868         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
6869         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
6870
6871         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
6872         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
6873         Prototype here.
6874         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
6875         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
6876         fprem and fprem1 instructions.
6877         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
6878         Rename insn definition to x86_fnstsw_1.
6879         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
6880         x87 instructions.
6881         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
6882         and fmodl built-ins as inline x87 intrinsics.
6883         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
6884         and dreml built-ins as inline x87 intrinsics.
6885
6886 2004-05-05  Roger Sayle  <roger@eyesopen.com>
6887
6888         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
6889
6890 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
6891
6892         PR driver/9822
6893         * doc/invoke.texi (Spec Files): Remove documentation of %c.
6894
6895 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
6896
6897         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
6898         representation.
6899
6900 2004-05-06  Paul Brook  <paul@codesourcery.com>
6901
6902         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
6903         (arm_coproc_mem_operand): ... To this.
6904         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
6905         (arm_legitimate_index_p): Ditto.
6906         (vfp_mem_operand): Rename ...
6907         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
6908         (vfp_secondary_reload_class): Use it.
6909         (output_move_double): Use doubleword load/store instructions.
6910         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
6911         * config/arm/arm.h (TARGET_LDRD): Define.
6912         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
6913         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
6914         New splitter for invalid doubleword loads.
6915         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
6916         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
6917         * doc/md.texi: Document Uy constraint.
6918
6919 2004-05-05  Jan Hubicka  <jh@suse.cz>
6920
6921         PR opt/14980
6922         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
6923         inline clones.
6924
6925 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
6926
6927         PR target/15290
6928         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
6929         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
6930
6931 2004-05-05  Mike Stump  <mrs@apple.com>
6932
6933         * config/darwin-c.c (add_framework): Copy the directory name as it
6934         can be freed later.  Also, ensure we always allocate enough room
6935         for the cached framework information.
6936         (find_subframework_header): Keep track of the directory where the
6937         subframework header was found.
6938         (framework_construct_pathname): Speed up by not trying to re-add a
6939         framework.
6940         * cppfiles.c (search_path_exhausted): Arrange for the missing
6941         header callback to be able to set the directory where the header
6942         was found.
6943         (cpp_get_dir): Add.
6944         * cpplib.h (missing_header_cb): Add a parameter.
6945         (cpp_get_dir): Add.
6946
6947 2004-05-03  Mike Stump  <mrs@apple.com>
6948
6949         * doc/invoke.texi (Directory Options): Document -iquote.
6950         * doc/cpp.texi: Likewise.
6951         * doc/cppopts.texi: Likewise.
6952         * c-opts.c (c_common_missing_argument): Add -iquote processing.
6953         (c_common_handle_option): Likewise.
6954         * c.opt (iquote): Add.
6955         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
6956         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
6957
6958         * c-opts.c (case OPT_I): Deprecate -I- support.
6959         * doc/invoke.texi: Likewise.
6960         * doc/cpp.texi: Likewise.
6961         * doc/cppopts.texi: Likewise.
6962
6963 2004-05-05  Steven Bosscher  <stevenb@suse.de>
6964
6965         * basic-block.h (free_basic_block_vars): Update prototype.
6966         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
6967         argument.
6968         (life_analysis): Update call.
6969         * ifcvt.c (if_convert): Likewise.
6970         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
6971         * passes.c (rest_of_handle_final): Likewise.
6972         (rest_of_compilation): Likewise.
6973         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6974
6975         * emit-rtl.c (next_real_insn): Use INSN_P.
6976         (prev_real_insn): Likewise.
6977
6978 2004-05-05  Eric Christopher  <echristo@redhat.com>
6979
6980         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
6981         representation.
6982
6983 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
6984
6985         * config/rs6000/rs6000.c (build_opaque_vector_type):
6986         New function.
6987         (rs6000_init_builtins): Use it.
6988
6989 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
6990
6991         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
6992         (func_table): Change type from char ** to vms_func_ref.
6993         (write_rtnbeg):  Update to reflect func_table change.  Use
6994         fde->funcdef_number instead of rtnnum in output.
6995         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
6996
6997 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
6998             Richard Henderson  <rth@redhat.com>
6999
7000         PR target/14899
7001
7002         * c-common.c (vector_types_convertible_p): New function.
7003         * c-typeck.c (comptypes): Recurse on vector types.
7004         (convert_for_assignment): Use vector_types_convertible_p.
7005         (digest_init): Use vector_types_convertible_p to check
7006         validness of constant vector initializers; otherwise treat
7007         them as scalars.
7008         * tree.c (make_or_reuse_type): New.
7009         (build_common_tree_nodes): Use it.
7010         * cp/call.c (standard_conversion): Likewise.
7011         * cp/typeck.c (comptypes): Recurse on vector types.
7012         (convert_for_assignment): Use vector_types_convertible_p.
7013
7014 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7015
7016         * config/mips/mips.c (override_options): Default to no
7017         generation of branch-likely operations when tuning for
7018         CPUs where they tend to have a negative performance impact
7019         (e.g., SB-1).
7020
7021 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7022
7023         * expr.c (store_constructor_field): Don't call store_constructor
7024         if bitsize is not a multiple of a byte.
7025
7026 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7027
7028         * reload1.c (inherit_piecemeal_p): New function.
7029         (emit_reload_insns): When reloading a group of hard registers, use
7030         inherit_piecemeal_p to decide whether the values of individual hard
7031         registers can be inherited.
7032
7033 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7034
7035         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7036         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7037         * config/t-linux (LIB2ADDEHDEP): Likewise.
7038
7039 2004-05-04  Paul Brook  <paul@codesourcery.com>
7040
7041         * config/arm/crti.asm: Push an even number of registers.
7042         * config/arm/crtn.asm: And restore them.  Load via sp.
7043
7044 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7045
7046         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7047         Collect overhead information.
7048         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7049         parameter and pass it through.
7050         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7051         MEM_STAT_DECL parameter and pass it through.
7052         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7053         MEM_STAT_DECL parameter and pass it through.
7054
7055 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7056
7057         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7058
7059         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7060
7061         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7062         rs6000_hard_regno_nregs.
7063
7064 2004-05-03  Eric Christopher  <echristo@redhat.com>
7065
7066         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7067         prologue insn instead of setting up call.
7068         (s390_emit_epilogue): Ditto.
7069         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7070         (define_constants): Add numbers for above patterns.
7071
7072 2004-05-03  Eric Christopher  <echristo@redhat.com>
7073
7074         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7075         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7076         * config/s390/s390-protos.h: Prototype.
7077
7078 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7079
7080         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7081         assignment.
7082
7083 2004-05-03  Eric Christopher  <echristo@redhat.com>
7084
7085         * config/mips/mips.md: Fix branch length attribute definition.
7086
7087 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7088
7089         * config.gcc: Remove --enable-altivec support.
7090
7091         * config/rs6000/altivec-defs.h: Remove.
7092
7093 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7094
7095         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7096         * fixinc/fixincl.x: Regenerate.
7097
7098 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7099
7100         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7101         definition.
7102         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7103         float_truncate insn.
7104         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7105         (logb?f2): Reimplement expanders with float_truncate insn.
7106
7107 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7108
7109         PR 14718
7110         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7111         force_type_die for CONST_DECL.
7112
7113 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7114             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7115
7116         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7117         tm-dwarf2.h to tm_file.
7118         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7119         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7120         (ASM_DEBUG_SPEC): Delete.
7121
7122 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7123
7124         * optabs.h (enum optab_index): Add new OTI_expm1.
7125         (expm1_optab): Define corresponding macro.
7126         * optabs.c (init_optabs): Initialize expm1_optab.
7127         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7128         patterns.
7129         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7130         using expm1_optab.
7131         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7132         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7133
7134         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7135         to implement expm1, expm1f and expm1l built-ins as inline x87
7136         intrinsics.
7137
7138 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7139
7140         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7141         * config/frv/frv.md (*return_true, *return_false): New patterns.
7142
7143 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         * rtl.h (PHI_NODE_P): Remove.
7146
7147 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7148
7149         PR middle-end/14988
7150         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7151         when passed -2 as 'align'.
7152         (put_var_into_stack): Use 'bool' as the type for the three local
7153         predicates.  Adjust calls to put_reg_into_stack.
7154         When passed a CONCAT, instruct put_reg_into_stack to use
7155         a consecutive stack slot for the second part.
7156         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7157         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7158         parameters.  Retrieve the register mode from 'reg'.
7159         When consecutive_p is true, instruct assign_stack_local_1 to use
7160         BITS_PER_UNIT alignment.
7161         (put_addressof_into_stack): Use 'bool' as the type for the two
7162         local predicates. Adjust call to put_reg_into_stack.
7163
7164 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7165
7166         * fold-const.c (fold_convert_const, fold): Add missing
7167         FIX_ROUND_EXPR case.
7168
7169 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7170
7171         * configure.ac (FLEX, BISON): Only use tools from the build tree
7172         if build equals host.
7173         * configure: Rebuilt.
7174
7175         * config/frv/frv-protos.h (frv_expand_epilogue,
7176         frv_expand_fdpic_call): Add bool argument.
7177         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7178         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7179         (frv_expand_epilogue): Use new argument to decide whether to emit
7180         return instruction or copy the return address to LR.
7181         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7182         sibcalls.
7183         (sibcall_operand): New.
7184         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7185         PLUS nor LABEL_REF.  Add sibcall_operand.
7186         * config/frv/frv.md (call, call_value): Pass false to
7187         frv_expand_fdpic_call.
7188         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7189         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7190         sibcall_value_internal, sibcall_value_fdpicdi): New.
7191         (return_unsigned_true, return_unsigned_false): New.
7192         (epilogue): Adjust call to frv_expand_epilogue.
7193         (sibcall_epilogue): New.
7194
7195         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7196         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7197         before redefining them.
7198
7199 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7200
7201         * builtins.c (fold_fixed_mathfn): New function.
7202         (fold_builtin_lround, fold_builtin): Use it.
7203
7204 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7205
7206         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7207         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7208
7209 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7210
7211         * config/cris/cris.h: Revert my "fix comment typos" patch.
7212
7213 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7214
7215         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7216
7217 2004-05-01  Falk Hueffner  <falk@debian.org>
7218
7219         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7220         builtin_insll): Disallow 0 as first input operand.
7221
7222 2004-05-01  Falk Hueffner  <falk@debian.org>
7223
7224         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7225
7226 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7227
7228         PR middle-end/15054
7229         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7230         on a TARGET_EXPR temp.
7231         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7232         TARGET_EXPR temp slots.
7233
7234 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7235
7236         * simplify-rtx.c (simplify_ternary_operation): When
7237         converting an IF_THEN_ELSE to a relational op, return
7238         correct mode.
7239
7240 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7241
7242         * builtins.c (fold_builtin_round): Fix comment typo.
7243         (fold_builtin_lround): New function.
7244         (fold_builtin): Use it.
7245
7246 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7247
7248         PR target/11608
7249         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7250         more like the one in config/dbxelf.h.
7251
7252 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7253
7254         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7255         and adjust definition accordingly.
7256         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7257         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7258         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7259         VECTOR_TYPE.
7260
7261 2004-04-30  Jason Merrill  <jason@redhat.com>
7262
7263         PR c++/14587
7264         * config/i386/winnt.c (associated_type): Look for attributes on
7265         the TYPE_MAIN_VARIANT of *this.
7266         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7267         apply the attributes to the variants.
7268
7269 2004-04-30  Paul Brook  <paul@codesourcery.com>
7270
7271         * config.gcc: Simplify arm --with-{cpu,tune} test.
7272         * config/arm/arm-cores.def: Document whitespace restrictions.
7273
7274 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7275
7276         PR other/1963
7277         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7278
7279 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7280             DJ Delorie  <dj@redhat.com>
7281
7282         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7283         (DWARF2_DEBUGGING_INFO): Define to enable.
7284         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7285         DWARF2.
7286         * configure.ac (Target-specific assembler checks)
7287         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7288         relocs.
7289         * configure: Regenerate.
7290         * config.in: Likewise.
7291
7292         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7293         (ASM_OUPUT_DWARF_OFFSET): Define.
7294
7295 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7296
7297         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7298         (s390_emit_call): New function prototype added.
7299         (s390_tls_get_offset): Function removed.
7300         * config/s390/s390.c (s390_function_ok_for_sibcall,
7301         s390_call_saved_register_used_p): New functions.
7302         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7303         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7304         (s390_emit_tls_call_insn): New function.
7305         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7306         emit_call_insn.
7307         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7308         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7309         added.
7310         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7311         register number used to hold the target address for sibcalls.
7312         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7313         New expanders.
7314         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7315         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7316         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7317         Expanders removed.
7318         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7319         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7320         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7321         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7322         new parameter.
7323
7324 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7325
7326         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7327         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7328         reg-stack.c, varasm.c, config/alpha/ev4.md,
7329         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7330         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7331         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7332         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7333         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7334         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7335         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7336         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7337         comment typos.
7338
7339 2004-04-30  Paul Brook  <paul@codesourcery.com>
7340
7341         * config.gcc: Default ep9312 to hard-float.
7342         * config/arm/arm-cores.def: Add ARCH field.
7343         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7344         (arm_arch_cirrus): New variable.
7345         (all_cores): Set and use arch.
7346         (all_architectures): Ditto.
7347         (arm_arch_name): New variable.
7348         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
7349         Set and use arm_arch_cirrus.
7350         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
7351         (enum processor_type): Update ARM_CORE define.
7352         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
7353         (CPP_SPEC): Remove %(cpp_cpu_arch).
7354         (CPP_ARCH_DEFAULT_SPEC): Remove.
7355         (CPP_CPU_ARCH_SPEC): Remove.
7356         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
7357         (FPUTYPE_DEFAULT): Don't define here.
7358
7359 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
7360
7361         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
7362         updates too.
7363
7364 2004-04-30  Paul Brook  <paul@codesourcery.com>
7365
7366         * arm.c (arm_needs_doubleword_align): Use mode alignment.
7367
7368 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
7369
7370         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
7371         vec_sububs.
7372         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
7373         duplicates.
7374
7375 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7376
7377         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
7378         atan2?f3 expanders.
7379
7380 2004-04-29  Nick Clifton  <nickc@redhat.com>
7381
7382         Bug 14093
7383         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
7384         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
7385         Delete static from definition.
7386         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
7387
7388 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7389
7390         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
7391         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
7392         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
7393         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
7394
7395 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
7396
7397         * commom.opt (Wfatal-errors): Add it.
7398         * diagnostic.c (flag_fatal_errors): Define it.
7399         (diagnostic_action_after_output): Check for flag_fatal_errors.
7400         * flags.h (flag_fatal_errors): Declare it.
7401         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
7402         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
7403
7404 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
7405
7406         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
7407         blocks which have kill flag set.
7408
7409 2004-04-29  Ben Elliston  <bje@au.ibm.com>
7410
7411         * configure.ac (--with-as): Abort if user-supplied assembler
7412         cannot be executed.
7413         (--with-ld): Likewise for the linker.
7414         * configure: Regenerate.
7415
7416 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7417
7418         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
7419         isn't NULL before using it.
7420
7421 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
7422
7423         PR target/15189
7424         * config/mips/mips.md (load_df_low): Use default length.
7425         (load_df_high, store_df_high): Likewise.
7426
7427 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7428
7429         * config/mips/mips.md, config/mips/sb1.md,
7430         config/rs6000/rs6000.c: Fix comment typos.
7431
7432 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7433
7434         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
7435         Fix comment typos.
7436
7437 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
7438
7439         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
7440         (delete_if_ordinary): Use above macro.
7441         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
7442         Update copyright.
7443         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
7444
7445 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
7446
7447         * c-decl.c (get_parm_info): Use the correct tag keywords when
7448         warning about type declarations in prototypes.
7449
7450 2004-04-29  Paul Brook  <paul@codesourcery.com>
7451
7452         * config.gcc: Pull list of cores from arm-cores.def.
7453
7454 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7455
7456         * combine.c (combine_simplify_rtx): Adjust call to use
7457         simplify_relational_operation.  Do not use SELECT_CC_MODE
7458         when a comparison already has a MODE_CC mode.
7459
7460 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7461
7462         (simplify_set): simplify_relational_operation may now
7463         return another relational expression.
7464         * cse.c (fold_rtx): simplify_relational_operation now
7465         takes of computing the comparison mode.
7466         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
7467         remove dead code.
7468         (do_compare_rtx_and_jump): Likewise.
7469         * integrate.c (subst_constants): simplify_relational_operation
7470         may now return another relational expression.
7471         * simplify-rtx.c (simplify_gen_relational): Move most code to
7472         the new simplify_relational_operation and
7473         simplify_relational_operation_1 functions.
7474         (simplify_relational_operation): Rewritten.
7475         (simplify_relational_operation_1): New function.
7476         (simplify_ternary_operation): simplify_relational_operation
7477         may now return another relational expression.
7478         (simplify_rtx): Remove unnecessary temp variable.
7479
7480 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
7481
7482         * reg-stack.c (swap_to_top): New function.
7483         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
7484         swap_to_top().
7485         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
7486         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
7487         UNSPEC_FSCALE_EXP.
7488
7489         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
7490         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
7491         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
7492         x87's fscale insn.
7493         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
7494         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
7495         patterns.
7496
7497 2004-04-28  Serge Belyshev  <1319@bot.ru>
7498
7499         PR 14944
7500         * coverage.c (read_counts_file): Fix usage of warning () call.
7501         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
7502
7503 2004-04-28  Ben Elliston  <bje@au.ibm.com>
7504
7505         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
7506         options with "-" in the option index.
7507         (SPARC Options): Likewise.
7508         (M32R/D Options): Likewise.
7509
7510 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7511
7512         * convert.c (convert_to_integer): Convert (long)round -> lround,
7513         etc.
7514
7515 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
7516
7517         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
7518         Return false if we do not have fp register.
7519         (addrs_ok_for_quad_peep): Rename to ...
7520         (mems_ok_for_quad_peep): this.
7521         Add check for volatile memory.
7522         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
7523         Rename to ...
7524         (mems_ok_for_quad_peep): this.
7525         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
7526         to peephole2's.
7527         (lfq_power2): New instruction.
7528         (stfq_power2): Likewise.
7529
7530 2004-04-28  Jan Hubicka  <jh@suse.cz>
7531
7532         PR c/15004
7533         * function.c (do_warn_unused_parameter): Break out form ...
7534         (expand_function_end): ... here; warn only when not using cgraphunit.
7535         * function.h (do_warn_unused_parameter): Declare.
7536         * cgraphunit.c: Include function.h.
7537         (cgraph_finalize_function): Do unused parameter warning.
7538         * Makefile.in (cgraphunit.o): Depend on function.h
7539
7540 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7541
7542         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
7543         calling install-info on $(DESTDIR)$(infodir)/dir already being
7544         present.
7545
7546 2004-04-28  Paul Brook  <paul@codesourcery.com>
7547
7548         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
7549
7550 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
7551
7552         * gcse.c (find_moveable_store): Do not accept store insns with
7553         REG_EH_REGION note.
7554
7555 2004-04-28  Paul Brook  <paul@codesourcery.com>
7556
7557         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
7558         * function.c (assign_temp): Ditto.
7559         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
7560
7561 2004-04-28  Paul Brook  <paul@codesourcery.com>
7562
7563         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
7564
7565 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
7566
7567         * var-tracking.c (variable_different_p): Add a parameter
7568         compare_current_location, compare current location of variable parts
7569         if it is true.
7570         (dataflow_set_different_1): Pass compare_current_location == false.
7571         (dataflow_set_different_2): Pass compare_current_location == false.
7572         (emit_notes_for_differences_1): Pass compare_current_location == true.
7573
7574 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
7575
7576         * config/s390/s390.md ("casesi"): Mark jump table access as
7577         non-trapping and unchanging.
7578
7579 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7580
7581         PR debug/14829
7582         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
7583         callers.
7584         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
7585         number for indexing hard_regno_nregs array.
7586
7587 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
7588
7589         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
7590         * config/darwin-crt2.c: Only have contents on __ppc__.
7591
7592 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
7593
7594         * config/xtensa/xtensa.c (call_insn_operand): Check
7595         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
7596         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
7597         * config/xtensa/xtensa.md (call, call_value): Likewise.
7598
7599 2004-04-27  Wu Yongwei  <adah@sh163.net>
7600
7601         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
7602         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
7603         (__gthread_mutex_init_function): Replace CreateMutex with
7604         initialization of custom mutex using CreateSemaphore.
7605         (__gthread_mutex_lock): Use InterlockedIncrement.
7606         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
7607         (__gthread_mutex_unlock): Use InterlockedDecrement and
7608         ReleaseSemaphore to unlock
7609         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
7610         __gthread_mutex_lock, __gthread_mutex_trylock,
7611         __gthread_mutex_unlock): Adjust to match inline versions in
7612         gthr-win32.h.
7613
7614 2004-04-27  Paul Brook  <paul@codesourcery.com>
7615
7616         * config/arm/arm.c (arm_promote_prototypes): New function.
7617         (TARGET_PROMOTE_PROTOTYPES): Use it.
7618
7619 2004-04-27  Paul Brook  <paul@codesourcery.com>
7620
7621         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
7622
7623 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
7624
7625         * config/alpha.c (alpha_end_function): For OpenVMS gas,
7626         correctly output .pdesc directive before .end.
7627
7628 2004-04-26  James E Wilson  <wilson@specifixinc.com>
7629
7630         Bug 14927
7631         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
7632         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
7633
7634 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
7635
7636         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
7637         * config/pa/pa-hpux10.h: Likewise.
7638         * config/pa/pa-hpux11.h: Likewise.
7639
7640 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
7641
7642         * doc/invoke.texi (Overall Options): Document default for -o
7643         for PCH files.
7644
7645 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7646
7647         * builtins.c (expand_builtin_update_setjmp_buf): New function.
7648         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
7649         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
7650
7651 2004-04-26  Paul Brook  <paul@codesourcery.com>
7652
7653         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
7654
7655 2004-04-26  Paul Brook  <paul@codesourcery.com>
7656
7657         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
7658
7659 2004-04-25  Roger Sayle  <roger@eyesopen.com>
7660
7661         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
7662         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
7663         X % -1 as 0.
7664
7665 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
7666
7667         PR bootstrap/15141
7668         * except.c (connect_post_landing_pads): Delete insns after the
7669         barrier when generating a unwind_resume_libfunc call.
7670
7671 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7672
7673         PR/c++ 15119
7674         * tree.c (substitute_placeholder_in_expr, case 4): New case,
7675         for TARGET_EXPR.
7676
7677 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7678
7679         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7680         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
7681         inhibit_libc is defined.
7682
7683 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
7684
7685         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
7686         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
7687         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
7688         (TARGET_SCHED_VARIABLE_ISSUE): Define.
7689         (mips_adjust_cost): Move later in file, next to other sched hooks.
7690         (mips_macc_chains_last_hilo): New variable.
7691         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
7692         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
7693         * config/mips/mips.md (may_clobber_hilo): New attribute.
7694
7695 2004-04-24  Roger Sayle  <roger@eyesopen.com>
7696             Bruce Korb  <bkorb@gnu.org>
7697
7698         * fixinc/inclhack.def (aix_syswait_2): New fix.
7699         * fixinc/fixincl.x: Regenerate.
7700         * fixinc/tests/base/sys/wait.h: Update for new test.
7701
7702 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
7703
7704         PR target/14960
7705         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
7706         to non_fixed_size, and leave out fixed_size from the sum.
7707         (generate_set_vrsave): Correct clobbers.
7708         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
7709         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
7710         (rs6000_libcall_value): Likewise.
7711         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
7712         (FUNCTION_ARG_REGNO_P): Likewise.
7713
7714 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
7715
7716         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
7717         is a CONST_INT.
7718         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
7719         with NARROW_OP1 instead of OP1.
7720
7721 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
7722
7723         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
7724         and __s390x__ hosts.
7725
7726 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7727
7728         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
7729         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
7730         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
7731         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
7732         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
7733         * builtins.c (expand_builtin_fork_or_exec): New.
7734         (expand_builtin): Call it.
7735         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
7736         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
7737         * c-common.c (PID_TYPE): New macro.
7738         (c_common_nodes_and_builtins): Initialize pid_type_node.
7739         * calls.c (special_function_p): Do not handle fork and exec.
7740         (expand_call): Do not handle ECF_FORK_OR_EXEC.
7741         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7742         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
7743         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
7744         __gcov_execv, __gcov_execvp, __gcov_execve): New.
7745         * tree.h (enum tree_index): Add TI_PID_TYPE.
7746         (pid_type_node): New macro.
7747         (ECF_FORK_OR_EXEC): Removed.
7748
7749 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
7750
7751         PR optimization/13985
7752         * cfgloopmanip.c (fix_loop_placements): New prototype.
7753         Call fix_bb_placements on the preheader of loops that have
7754         been reparented.
7755         (remove_path): Adjust call to fix_loop_placements.
7756
7757 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
7758
7759         * config/darwin7.h: New file.
7760         * config.gcc (*-*-darwin*): Add darwin7.h if the
7761         version is greater than 6.
7762         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
7763         (MATH_LIBRARY): Wrap in ifdefs.
7764
7765 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
7766
7767         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
7768         loading iWMMXt registers with a frame pointer.  Use post-increment
7769         without a frame pointer.
7770         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
7771
7772 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
7773
7774         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
7775         mode" rather than "-funit-at-a-time" since -O2 enables it
7776         without requiring -f* options.  Refer to -fprofile-generate and
7777         -fprofile-use correctly.  Move -funit-at-a-time among options
7778         enabled by -O.  Add information about unit-at-a-time caveats.
7779
7780 2004-04-22  Per Bothner  <per@bothner.com>
7781
7782         * line-map.h (struct line_maps):  New field highest_line.
7783         (linemap_position_for_column):  Make non-inline function.
7784         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
7785         * line-map.c (linemap_init):  Clear highest_line field.
7786         (linemap_add):  Set highest_line field.
7787         (linemap_line_start):  Minor optimization - use highest_line field.
7788         Reduce maximum column hint to 10000.  Update highest_line field.
7789         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
7790         * cpphash.h (struct cpp_reader):  Remove line field - instead use
7791         line_table->highest_line.
7792         (saved_line):  Remove unused field.
7793         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
7794         Use  line_table's highest_line field instead of cpp_reader's line.
7795         * cpplib.c (start_directive):  Likewise use highest_line field.
7796         (do_line, do_linemarker):  Likewise just use newest map.
7797         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
7798         * cpperror.c (cpp_error):  Likewise use highest_line field.
7799         * cppfiles.c (open_file_failed:  Likewise.
7800         (cpp_make_system_header):  Likewise use newest map and highest_line.
7801         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
7802         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
7803         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
7804         _cpp_lex_direct):  Likewise use highest_line.
7805         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
7806         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
7807         and use newest map.
7808         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
7809         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
7810         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
7811
7812 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
7813
7814         PR bootstrap/14992
7815         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
7816         * config/linux.h (USE_LD_AS_NEEDED): Define.
7817         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
7818         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
7819         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
7820         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
7821         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
7822         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
7823         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
7824
7825 2004-04-22  Per Bothner  <per@bothner.com>
7826
7827         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
7828         Fixes PR preprocessor/15067.
7829
7830 2004-04-23  Andreas Schwab  <schwab@suse.de>
7831
7832         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
7833         avoid aliasing warning.
7834
7835 2004-04-22  Jan Hubicka  <jh@suse.cz>
7836             Mostafa Hagog <mustafa@il.ibm.com>
7837
7838       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
7839       * cfgloopanal.c (expected_loop_iterations): Change the return value
7840
7841 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
7842
7843         * cselib.h (struct elt_loc_list): Remove canon_loc field.
7844         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
7845         (cselib_invalidate_mem): Remove all canon_loc and canon_x
7846         traces.
7847
7848 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
7849
7850         Revert
7851         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
7852
7853                 * var-tracking.c (variable_part_different_p): Variable parts
7854                 differ when the most recent locations differ.
7855
7856 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
7857
7858         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
7859         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
7860         (embedded_pic_offset): Delete.
7861         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
7862         MASK_* constants.
7863         (TARGET_EMBEDDED_PIC): Delete.
7864         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
7865         (ASM_SPEC): Remove -membedded-pic.
7866         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
7867         (ASM_OUTPUT_CASE_LABEL): Likewise.
7868         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
7869         * config/mips/windiss.h (ASM_SPEC): Likewise.
7870         * config/mips/mips.c (struct machine_function): Remove
7871         embedded_pic_fnaddr_rtx.
7872         (TARGET_ENCODE_SECTION_INFO): Remove override.
7873         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
7874         (override_options): Remove -membedded-pic handling.
7875         (print_operand): Remove handling of '%S'.
7876         (mips_select_section: Remove -membedded-pic handling.
7877         (mips_encode_section_info): Delete.
7878         (mips_output_conditional_branch): Remove mention of -membedded-pic.
7879         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
7880         -membedded-pic handling.
7881         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
7882
7883 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
7884
7885         * var-tracking.c (frame_base_decl): Remove useless GTY.
7886
7887 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
7888
7889         * config/rs6000/rs6000.c (rs6000_override_options): Error when
7890         user wants altivec and e500 instructions.
7891
7892 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
7893
7894         PR target/14813
7895         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
7896         in .init_array section to ...
7897         * config/ia64/crtbegin.asm: Here.
7898
7899         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
7900         and hidden if HAVE_INITFINI_ARRAY is defined.
7901
7902 2004-04-21  James E Wilson  <wilson@specifixinc.com>
7903
7904         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
7905         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
7906         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
7907         (fp_register_operand, lo_operand): New.
7908         (mips_rtx_costs): Add TUNE_SB1 support.
7909         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
7910         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
7911         (mips_multipass_dfa_lookahead): New.
7912         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
7913         TUNE_SB1): New.
7914         (TARGET_SWITCHES): Add -mfp-exceptions support.
7915         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
7916         (BRANCH_COST): Fix whitespace.
7917         * config/mips/mips.md: Include sb1.md.
7918         * config/mips/sb1.md: New file.
7919         * doc/invoke.texi: Document -mfp-exceptions.
7920
7921         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
7922         comment.
7923         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
7924         (fixincl.o-warn): Delete.
7925
7926 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
7927
7928         * config/rs6000/rs6000 (print_operand) ['z']:
7929         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
7930
7931 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
7932
7933         * config.gcc: Support --with-arch=iwmmxt for ARM.
7934
7935 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7936
7937         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
7938         in two more places; remove unneeded force_reg
7939
7940 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
7941
7942         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
7943         for TARGET_MACHO.
7944         (print_operand): For TARGET_MACHO check to see if we need a stub
7945         and output one if we need it.
7946
7947         PR debug/15033
7948         * dwarf2out.c (rtl_for_decl_location): Check for NULL
7949         rtl.
7950
7951 2004-04-20  James E Wilson  <wilson@specifixinc.com>
7952
7953         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
7954         (vall_value_gp): Likewise.
7955
7956 2004-04-20  DJ Delorie  <dj@redhat.com>
7957
7958         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
7959         variables stored in word registers, then in memory.
7960
7961 2004-04-20  Eric Christopher  <echristo@redhat.com>
7962
7963         * cp/parser.c (cp_parser_declaration): Move translate
7964         up before tokens are lexed.
7965
7966 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
7967
7968         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
7969         (asin_optab, acos_optab): Define corresponding macros.
7970         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
7971         * genopinit.c (optabs): Implement asin_optab and acos_optab
7972         using asin?f2 and acos?f2 patterns.
7973         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
7974         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
7975         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
7976         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7977
7978         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
7979         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
7980         acos, acosf and acosl built-ins as inline x87 intrinsics.
7981
7982 2004-04-20  Paul Brook  <paul@codesourcery.com>
7983
7984         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
7985
7986 2004-04-20  Paul Brook  <paul@codesourcery.com>
7987
7988         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
7989
7990 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
7991
7992         Revert part of 2004-04-17 change that moved -frename-registers
7993         to -O1.  -frename-registers is buggy.
7994
7995         * toplev.c (flag_rename_registers): Initialize to 0.
7996         * doc/invoke.texi (Optimize options): Move -frename-registers
7997         to "Not triggered by any -O level" section.  Adjust commentary
7998         accordingly.
7999
8000 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8001
8002         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8003
8004 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8005
8006         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8007         for mflo and mfhi instructions.
8008         (mips_output_move): Remove mflo and mfhi handling.
8009         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8010         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8011         Likewise various define_peephole2s.
8012         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8013         alternatives.
8014         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8015         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8016         (mfhilo_di, mfhilo_si): New patterns.
8017
8018 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8019
8020         * function.c (assign_parms): Force
8021         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8022
8023 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8024
8025         * var-tracking.c (variable_part_different_p): Variable parts differ
8026         when the most recent locations differ.
8027
8028 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8029
8030         * rtl.h (reg_set_last): Delete declaration.
8031         * rtlanal.c (reg_set_last): Delete.
8032
8033 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8034
8035         * fold-const.c (fold_convert): Make function extern/public.
8036         * tree.h (fold_convert): Prototype here.
8037         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8038         expand_builtin_strrchr, expand_builtin_strpbrk,
8039         expand_builtin_mempcpy, expand_builtin_bcopy,
8040         expand_builtin_bzero, expand_builtin_memcmp,
8041         expand_builtin_strcmp, expand_builtin_strncmp,
8042         stabilize_va_list, expand_builtin_sprintf,
8043         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8044         fold_builtin_exponent, fold_builtin_mempcpy,
8045         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8046         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8047         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8048
8049 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8050
8051         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8052         (move_from_CR_gt_bit): New.
8053         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8054         E500.
8055         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8056         E500.
8057
8058         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8059         (tstsfeq_gpr): Same.
8060         (cmpsfgt_gpr): Same.
8061         (tstsfgt_gpr): Same.
8062         (cmpsflt_gpr): Same.
8063         (tstsflt_gpr): Same.
8064         (e500_cceq_ior_compare): New.
8065         (e500_flip_gt_bit): New.
8066
8067         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8068         (print_operand): Add 'c' and 'D'.
8069         (rs6000_generate_compare): Rewrite to generate correct rtl.
8070         (rs6000_emit_sCOND): Handle E500.
8071         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8072         (output_e500_flip_gt_bit): New.
8073
8074         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8075         Protoize.
8076
8077 2004-04-19  Eric Christopher  <echristo@redhat.com>
8078
8079         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8080
8081 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8082
8083         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8084         fix information.
8085
8086 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8087
8088         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8089         download URL.
8090
8091 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8092
8093         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8094         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8095
8096 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8097
8098         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8099         (fold_builtin): Update caller to match.
8100
8101         PR bootstrap/15009
8102         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8103
8104         PR bootstrap/14999
8105         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8106
8107 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8108
8109         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8110
8111         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8112         (expand_mult_highpart_optab): Likewise.
8113         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8114
8115 2004-04-19  Paul Brook  <paul@codesourcery.com>
8116
8117         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8118         floatunssisf2, floatunssidf2): New patterns.
8119
8120 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8121
8122         PR other/14918
8123         * doc/invoke.texi (-fprofile-generate): Document requirement to
8124         use -fprofile-generate when linking.
8125
8126         * doc/extend.texi (Strong Using): Warn users against using this
8127         feature.
8128
8129 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8130
8131         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8132         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8133         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8134         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8135         constant.  Propogate change throughout file.
8136         (struct machine_function): Remove insns_len.
8137         (mips_string_length, mips16_strings, string_constants): Delete.
8138         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8139         when generating mips16 code.  Remove special mips16 treatment of
8140         string constants.
8141         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8142         to have the form LABEL+CONSTANT.
8143         (mips_symbolic_address_p): Fix comment.
8144         (m16_usym8_4, m16_usym5_4): Delete.
8145         (mips_output_function_epilogue): Remove mips16 string handling.
8146         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8147         (mips_select_section, mips_encode_section_info): Remove mips16
8148         string handling.
8149         (struct mips16_constant_pool): New.
8150         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8151         sorted into order of ascending mode size.  Keep track of the highest
8152         possible start address, taking padding and the masking of the base PC
8153         value into account.
8154         (dump_constants_1): New function, split out from dump_constants.
8155         Handle vector constants.  Use gen_consttable_{int,float} rather than
8156         separate functions for each mode.
8157         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8158         rather than separate functions for each alignment.
8159         (mips_find_symbol): Delete.
8160         (mips16_insn_length): New function, split out from
8161         mips16_lay_out_constants.
8162         (mips16_rewrite_pool_refs): New function.
8163         (mips16_lay_out_constants): Rework. Remove string handling.
8164         Always create an inline constant pool.
8165         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8166         (UNSPEC_ALIGN): New constants.
8167         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8168         (UNSPEC_ALIGN_[248]): Delete.
8169         (consttable_int, consttable_float, align): New patterns.
8170         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8171
8172 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8173
8174         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8175         __unn_args_eq.
8176
8177 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8178
8179         PR target/14715
8180         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8181         with STARTING_FRAME_OFFSET.
8182
8183 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8184
8185         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8186         * config/mips/mips.c (macc_msac_operand): New function.
8187         * config/mips/mips.md (*msac): Move after *macc.
8188         (*msac2): New.  Generalize macc-related peepholes so that they apply
8189         to msac too.
8190
8191 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8192
8193         * opts.c (decode_options): Do not enable flag_rename_registers
8194         and flag_web at -O3.
8195         * toplev.c (flag_rename_registers): Initialize
8196         flag_rename_registers and flag_web to
8197         AUTODETECT_FLAG_VAR_TRACKING.
8198         (default_debug_hooks): New global.
8199         (process_options): Initialize default_debug_hooks.  Warn if
8200         -fvar-tracking specified but not supported by the current
8201         debug format.  Do not run var tracking at -O0 or if not
8202         supported by the current debug format, even if
8203         -fvar-tracking was given.  If -fno-rename-registers
8204         is not specified, always run register renaming if var
8205         tracking is supported by the default debugging information
8206         format for the target, and we are at -O1 or higher; similarly
8207         for -fweb, but only at -O2 or higher.
8208         * doc/invoke.texi (Optimize Options): Document this.
8209
8210 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8211
8212         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8213         * configure: Regenerate.
8214
8215 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8216
8217         * gcc.c (used_arg): Check whether an option has been removed.
8218
8219 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8220
8221         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8222         debugging on Solaris 7 and up.
8223
8224 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8225
8226         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8227         IRIX 5 port.
8228         Remove -save-temps workaround, handled automatically.
8229         Require GNU binutils 2.15 for debugging.
8230         Remove SGI make warnings since GNU make is now required.
8231         (Specific, mips-sgi-irix6): Some markup fixes.
8232         Describe MIPSpro C problems and workarounds.
8233         Mention working O32 ABI support.
8234         Recommend GNU as 2.15 for O32 with debugging.
8235         Remove description of fixed structure pass/return bug.
8236
8237 2004-04-16  DJ Delorie  <dj@redhat.com>
8238
8239         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8240         TYPE_FIELDS.
8241         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8242
8243 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8244
8245         * pa.md: Remove unnecessary declarations for asm_out_file.
8246
8247         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8248         SAR register.  Fix comment.
8249         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8250         (%cr11).
8251
8252         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8253
8254 2004-04-16  Nick Clifton  <nickc@redhat.com>
8255
8256         * config/arm/arm.c (arm_override_options): Revert previous patch.
8257         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8258         be safely built.
8259
8260 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8261
8262         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8263         bug.
8264         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8265         TARGET_DEFAULT): Changed. Ditto.
8266         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8267         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8268         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8269         (TARGET_ENDIAN_DEFAULT): Added.
8270
8271 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8272
8273         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8274         ATTR_CONST_NOTHROW_LIST.
8275
8276 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8277
8278         PR/middle-end 14915
8279         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8280         BITS_BIG_ENDIAN.
8281
8282 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8283
8284         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8285
8286 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8287
8288         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8289
8290 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8291
8292         * libada-mk.in: New file.
8293         * configure.ac: Create libada-mk from libada-mk.in.
8294         * configure: Regenerate.
8295
8296 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8297
8298         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8299         (logb_optab, ilogb_optab): Define corresponding macros.
8300         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8301         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8302         using logb?f2 and ilogb?i2 patterns.
8303         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8304         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8305         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8306         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8307
8308         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8309         and UNSPEC_XTRACT_EXP.
8310
8311         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8312         patterns to implement fxtract x87 instruction.
8313         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8314         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8315         intrinsics.
8316         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8317         x87's fxtract insn.
8318
8319 2004-04-14  Eric Christopher  <echristo@redhat.com>
8320
8321         * config/mips/t-elf: Enable multilibs by default.
8322
8323 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8324
8325         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8326         previous fix to check HAVE_return at runtime too.
8327
8328 2004-04-14  Nick Clifton  <nickc@redhat.com>
8329
8330         * config/arm/arm.c (arm_override_options): If the user has not
8331         specified an ABI, then default to AAPCS for the iWMMXt processor.
8332         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8333         * config/arm/t-xscale-coff: Likewise.
8334
8335 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8336
8337         * builtins.c (fold_builtin_isdigit): New.
8338         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8339         * defaults.h: Add TARGET_DIGIT0 and sort.
8340         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8341
8342 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8343
8344         * builtins.c (fold_builtin_cabs, fold_builtin): Use
8345         `mathfn_built_in' to determine the new builtin.
8346         * fold-const.c (fold): Likewise.
8347
8348 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
8349
8350         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
8351         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
8352         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
8353         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
8354         (ASM_SPEC): Update accordingly.
8355         * config/mips/mips.c: Update after above renaming.
8356         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
8357         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
8358
8359 2004-04-13  James E Wilson  <wilson@specifixinc.com>
8360
8361         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
8362         increment errorcount and return false instead of true.
8363
8364 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
8365
8366         * optabs.c (expand_twoval_unop): Reorder function arguments.
8367         * builtins.c (expand_builtin_mathfn_3): Update calls to
8368         expand_twoval_unop.
8369
8370         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
8371         and UNSPEC_TAN_TAN. Add missing comment.
8372
8373         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
8374         patterns to implement fptan x87 instruction.
8375         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
8376         and tanl built-ins as inline x87 intrinsics. Define corresponding
8377         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
8378         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
8379         x87's fptan insn.
8380
8381 2004-03-13  Richard Henderson  <rth@redhat.com>
8382
8383         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
8384         for LABEL_REFs.
8385
8386         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
8387         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8388         * doc/invoke.texi: Update to match.
8389
8390         * varasm.c (unlikely_text_section): Use assemble_align instead of
8391         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
8392         correct alignment argument.
8393
8394 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
8395
8396         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
8397         after setting reg_last_reload_reg for optional output reloads.
8398
8399 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
8400
8401         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
8402         Definition of these two macros are corrected by adding
8403         matchine right paren.
8404
8405 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
8406
8407         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
8408
8409 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8410
8411         * config/i386/i386.c (output_387_reg_move): New function.
8412         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
8413         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
8414         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
8415         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
8416         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
8417
8418 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8419
8420         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
8421         TYPE_DECL.
8422         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
8423         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
8424         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
8425         Use skip_simple_arithmetic to find SAVE_EXPR.
8426         (force_type_save_exprs, force_type_save_exprs_1): New functions.
8427         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
8428         Properly chain multiple pointers.
8429         (copy_tree_r): Copy a TYPE_DECL.
8430         * tree.c (variably_modified_type_p): Add some missing tests and
8431         make some other minor changes.
8432         * tree.h (force_type_save_exprs): New declaration.
8433
8434 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8435
8436         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
8437         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
8438         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
8439         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
8440         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
8441         x%-1 into 0 (or x&0 if x has side-effects).
8442
8443 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8444
8445         * config/rs6000/rs6000.md: Document why a pattern is not
8446         available.
8447
8448         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
8449         of floats on the E500.
8450         (branch_positive_comparison_operator): Do not allow NE even on the
8451         E500.
8452
8453 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8454
8455         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
8456         in_text_unlikely_section to in_unlikely_text_section.
8457
8458 2004-04-11  Roger Sayle  <roger@eyesopen.com>
8459
8460         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
8461         calling convention to allow a NULL_TREE to be returned.  Factor
8462         sanity checks from callers, return NULL_TREE when appropriate.
8463         (fold): Handle COMPOUND_EXPR operands of binary expressions
8464         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
8465         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
8466         calls to fold_binary_op_with_conditional_arg.
8467
8468 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8469
8470         * config/mips/iris5.h (current_section_flags):  Add
8471         in_unlikely_executed_text and default case.
8472
8473 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
8474
8475         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
8476         failure on solaris. Place ifdef HAVE_return around gen_ret call.
8477         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
8478         HAVE_return and place it around the place where it is needed.
8479
8480 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
8481
8482         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
8483         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
8484         and NORMAL_TEXT_SECTION_NAME.
8485         (unlikely_text_section): Check targetm.have_named_sections
8486         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
8487         instead of SECTION_FORMAT_STRING.
8488         * config/mips/iris5.h (current_section_name): Add
8489         in_unlikely_executed_text case and move the abort into the switch.
8490         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
8491         (NORMAL_TEXT_SECTION_NAME): Remove.
8492         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
8493         (SECTION_FORMAT_STRING): Remove.
8494         * defaults.h (SECTION_FORMAT_STRING): Remove.
8495         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
8496         (SECTION_FORMAT_STRING): Remove.
8497
8498 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8499
8500         * c-typeck.c (common_type): Prefer long long to long when same
8501         precision.
8502
8503 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
8504
8505         PR 14887
8506         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
8507         mode argument.
8508         * config/ia64/ia64.c (ia64_hpux_file_end): Check
8509         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
8510
8511 2004-04-09  Roger Sayle  <roger@eyesopen.com>
8512
8513         * simplify-rtx.c (mode_signbit_p): New function to check whether
8514         an RTX is an immediate constant that represents the most significant
8515         bit of a given machine mode.
8516         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
8517         C is the sign bit.
8518         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
8519         when C2 is the sign bit.
8520         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
8521         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
8522         sign bit.
8523
8524 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8525
8526         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
8527         TYPE_MODE.
8528
8529 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
8530
8531         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
8532         of TREE_READONLY for types.
8533
8534 2004-04-09  Caroline Tice  <ctice@apple.com>
8535
8536         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
8537         (struct basic_block_def):  Add new field, partition.
8538         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
8539         definitions.
8540         (partition_hot_cold_basic_blocks): Add extern function
8541         declaration.
8542         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
8543         include statements.
8544         (N_ROUNDS): Increase the maximum number of rounds by 1.
8545         (branch_threshold): Add array value for new round.
8546         (exec_threshold): Add array value for new round.
8547         (push_to_next_round_p): New function.
8548         (add_unlikely_executed_notes): New function.
8549         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
8550         (mark_bb_for_unlikely_executed_section): New function.
8551         (add_labels_and_missing_jumps): New function.
8552         (add_reg_crossing_jump_notes): New function.
8553         (fix_up_fall_thru_edges): New function.
8554         (find_jump_block): New function.
8555         (fix_crossing_conditional_branches): New function.
8556         (fix_crossing_unconditional_branches): New function.
8557         (fix_edges_for_rarely_executed_code): New function.
8558         (partition_hot_cold_basic_blocks): New function.
8559         (find_traces):  Add an extra round for partitioning hot/cold
8560         basic blocks.
8561         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
8562         and only cold blocks, into the last (extra) round of collecting traces.
8563         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
8564         over crossing edges.
8565         (bb_to_key):  Add code to correctly identify cold blocks when
8566         doing partitioning.
8567         (connect_traces): Modify to connect all the non-cold traces first, then
8568         go back and connect up all the cold traces.
8569         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
8570         * cfg.c (entry_exit_blocks): Add initialization for partition field in
8571         entry and exit blocks.
8572         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
8573         if we are doing hot/cold partitioning.
8574         * cfgcleanup.c (cfglayout.h): Add new include statement.
8575         (try_simplify_condjump): Modify to not attempt on blocks with jumps
8576         that cross section boundaries.
8577         (try_forward_edges): Likewise.
8578         (merge_blocks_move_predecessor_nojumps): Likewise.
8579         (merge_blocks_move_successor_nojumps): Likewise.
8580         (merge_blocks_move): Likewise.
8581         (try_crossjump_to_edge): Modify to not attempt after we have done
8582         the block partitioning.
8583         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
8584         cross section boundaries.
8585         (try_optimize_cfg): Likewise.
8586         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
8587         jumps that cross section boundaries.
8588         * cfglayout.c (flags.h): Add new include statement.
8589         (update_unlikely_executed_notes):  New function.
8590         (fixup_reorder_chain):  Add code so when a new jumping basic block is
8591         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
8592         updated appropriately.
8593         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
8594         introduced by this optimization.
8595         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
8596         extern function declaration.
8597         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
8598         list of notes that can be deleted.
8599         (create_basic_block_structure):  Add initialization for partition field.
8600         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
8601         section boundaries.
8602         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
8603         cross section boundaries.
8604         (commit_one_edge_insertion): Add code so newly created basic block
8605         ends up in correct (hot or cold) section.  Modify to disallow
8606         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
8607         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
8608         crosses section boundaries.
8609         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
8610         cross section boundaries.
8611         (force_nonfallthru_and_redirect): Modify to make sure new basic block
8612         ends up in correct section, with correct notes attached.
8613         * common.opt (freorder-blocks-and-partition):  Add new flag for this
8614         optimization.
8615         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
8616         the end of functions are written into the correct (hot or cold)
8617         section.
8618         (dbx_source_file): Add code so writing debug file information
8619         doesn't incorrectly change sections.
8620         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
8621         in partitioning hot/cold basic blocks into separate sections.
8622         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
8623         section partitioning.
8624         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
8625         conditional branches can span all of memory.
8626         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
8627         unconditional branches can span all of memory.
8628         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
8629         (final_scan_insn):  Add code to check for NOTE instruction indicating
8630         whether basic block belongs in hot or cold section, and to make sure
8631         the current basic block is being written to the appropriate section.
8632         Also added code to ensure that jump table basic blocks end up in the
8633         correct section.
8634         * flags.h (flag_reorder_blocks_and_partition):  New flag.
8635         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
8636         one of the branches has a jump that crosses between sections.
8637         (find_if_case_2): Likewise.
8638         (ifcvt): Modify to not attempt to mark loop exit edges after
8639         hot/cold partitioning has occurred.
8640         * opts.c (decode_options): Code to handle new flag,
8641         flag_reorder_blocks_and_partition; also to turn it off if
8642         flag_exceptions is on.
8643         (common_handle_option): Code to handle new flag,
8644         flag_reorder_blocks_and_partition.
8645         * output.h (unlikely_text_section): New extern function declaration.
8646         (in_unlikely_text_section): New extern function declaration.
8647         * passes.c (rest_of_handle_stack_regs):  Add
8648         flag_reorder_blocks_and_partition as an 'or' condition for calling
8649         reorder_basic_blocks.
8650         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
8651         as an 'or' condition for calling reorder_basic_blocks.
8652         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
8653         * print-rtl.c (print_rtx): Add code for handling new note,
8654         NOTE_INSN_UNLIKELY_EXECUTED_CODE
8655         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
8656         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
8657         cross between section boundaries.
8658         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
8659         indicating the basic block containing it belongs in the cold section.
8660         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
8661         between hot and cold sections.
8662         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
8663         initialize this flag, and to tie it to the command-line option
8664         freorder-blocks-and-partition.
8665         * varasm.c (cfglayout.h):  Add new include statement.
8666         (unlikely_section_label_printed):  New global variable, used for
8667         determining when to output section name labels for cold sections.
8668         (in_section):  Add in_unlikely_executed_text to enum data structure.
8669         (text_section):  Modify code to use SECTION_FORMAT_STRING and
8670         NORMAL_TEXT_SECTION_NAME macros.
8671         (unlikely_text_section):  New function.
8672         (in_unlikely_text_section):  New function.
8673         (function_section):  Add code to make sure beginning of function is
8674         written into correct section (hot or cold).
8675         (assemble_start_function):  Add code to make sure stuff is written to
8676         the correct section.
8677         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
8678         to an if statement that was checking 'in_text_section'.
8679         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
8680         condition to an if statement that was checking 'in_text_section'.
8681         (default_section_type_flags_1):  Add check: if in cold section
8682         flags = SECTION_CODE.
8683         * config/darwin.c (darwin_asm_named_section):  Modify to use
8684         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
8685         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
8686         specifically for the i386.
8687         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
8688         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
8689         text string to something more informative.
8690         (NORMAL_TEXT_SECTION_NAME): Add new definition.
8691         (SECTION_FORMAT_STRING):  Add new definition.
8692         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
8693         '!in_unlikely_text_section' as an 'and' condition to an if statement
8694         that was already checking '!in_text_section'.
8695         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
8696         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
8697         sure these are properly defined for linux on ppc.
8698         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
8699         for this new flag.
8700         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
8701         reg_note.
8702         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
8703         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
8704         these new macros.
8705
8706 2004-04-08  Roger Sayle  <roger@eyesopen.com>
8707
8708         * function.c (gen_mem_addressof): When changing the RTX from a REG
8709         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
8710
8711 2004-04-08  Roger Sayle  <roger@eyesopen.com>
8712
8713         PR target/14888
8714         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
8715         truncxfdf2_noop): Provide dummy "fmov" implementations.
8716
8717 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
8718
8719         * gcc.c (default_compilers): Add missing initializers.
8720
8721         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8722         Return 1 if file was successfully mapped.
8723
8724 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
8725
8726         PR pch/13419
8727         PR pch/14137
8728         Radar #: 3315288
8729         * doc/invoke.texi (Precompiled Headers): Suggest -o
8730         to put an output file in a particular place.  Be more detailed
8731         about which options affect PCH validity and which options
8732         might not work.
8733         * c-pch.c (pch_matching): New.
8734         (MATCH_SIZE): New.
8735         (struct c_pch_validity): New field 'match'.
8736         (pch_init): Handle pch_matching.
8737         (c_common_valid_pch): Check pch_matching.
8738
8739         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
8740
8741 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
8742
8743         * doc/invoke.texi (Precompiled Headers): Warn about known
8744         problems.
8745
8746 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
8747
8748         PR c++/14808
8749         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
8750         to 1 if ASM_OUTPUT_DEF is defined.
8751         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
8752         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
8753         Set to non-zero iff not a one_only decl.
8754
8755 2004-04-08  Paul Brook  <paul@codesourcery.com>
8756
8757         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
8758
8759 2004-04-08  Paul Brook  <paul@codesourcery.com>
8760
8761         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
8762         PROMOTE_FOR_CALL_ONLY.
8763         * config/arm/arm-protos.h (arm_function_value): Declare.
8764         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
8765         (TARGET_PROMOTE_PROTOTYPES): Return false.
8766         (arm_function_value): New function.
8767         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
8768         (FUNCTION_VALUE): Call arm_function_value.
8769         * config/cris/cris.h (PROMOTE_MODE): Rename ...
8770         (PROMOTE_FUNCTION_MODE): ... to this.
8771         (PROMOTE_FOR_CALL_ONLY): Remove.
8772         * config/mmix/mmix.h: Likewise.
8773         * config/s390/s390.h: Likewise.
8774         * config/sparc/sparc.h: Likewise.
8775         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
8776         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
8777         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
8778         (PROMOTE_FOR_CALL_ONLY): Remove.
8779
8780 2004-04-08  Joel Sherrill <joel@oarcorp.com>
8781
8782         PR ada/14538
8783         * ada/5rosinte.adb: Remove fake mprotect() body.
8784         * ada/5rosinte.ads: Add SA_SIGINFO.
8785         * ada/5rtpopsp.adb: Rewrite to use new interface.
8786         * ada/init.c: Reorder so the simple single OS conditional __rtems__
8787         is tested before more complex ones which mix UNIX and embedded
8788         systems in the conditional.
8789
8790 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
8791
8792         PR ada/14665
8793         * ada/osint.adb (Find_Program_Name): Rework to properly handle
8794         filenames which end in .exe or have versioning suffixes like VMS.
8795
8796 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
8797
8798         PR target/10129
8799         * config/darwin.c (darwin_encode_section_info): When the decl has
8800         a DECL_INITIAL, it is only defined also when it is not a common.
8801
8802 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8803
8804         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
8805         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
8806
8807 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8808
8809         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
8810         global register variables.
8811
8812 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
8813
8814         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
8815         rpc_xdr_lvalue_cast_b): New fixes.
8816         * fixinc/fixincl.x: Regenerate.
8817         * fixinc/tests/base/rpc/xdr.h: Add new tests.
8818
8819 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
8820
8821         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
8822         to power4 and power5 entries.
8823
8824 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
8825
8826         * c-common.h (pending_lang_change): Mark for PCH.
8827
8828 2004-04-07  Caroline Tice  <ctice@apple.com>
8829
8830         * gcc.c (main): Move 'break' in main loops (on an error)
8831         to wait until error processing has occurred.
8832
8833 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
8834
8835         * config.gcc: Stop changing enable_threads midstream.
8836         Replace uses of enable_threads_flag with enable_threads.
8837         * configure.ac: Replace uses of enable_threads_flag with
8838         enable_threads.  Improve autoconf quotation in one place.
8839         * configure: Regenerate.
8840
8841 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
8842
8843         * builtins.c: Implement support for sincos function.
8844         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
8845         BUILT_IN_COS{,F,L}.
8846         (expand_builtin_mathfn_3): New function.
8847         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
8848         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
8849         flag_unsafe_math_optimization is set.
8850
8851         * optabs.h (enum optab_index): Add new OTI_sincos.
8852         (sincos_optab): Define corresponding macro.
8853
8854         * optabs.c (init_optabs): Initialize sincos_optab.
8855         (expand_twoval_unop): New function.
8856
8857         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
8858         patterns.
8859
8860         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
8861         and UNSPEC_SINCOS_SIN.
8862
8863         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
8864         sincosxf3): New patterns to implement sincos, sincosf and sincosl
8865         built-ins as inline x87 intrinsics. Define splits for
8866         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
8867         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
8868         sincos patterns.
8869         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
8870         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
8871
8872         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
8873         x87's fsincos insn.
8874
8875 2004-04-06  Devang Patel  <dpatel@apple.com>
8876
8877         PR 14467
8878         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
8879
8880 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8881
8882         * doc/install.texi: Update HP-UX 11 installation procedure.
8883
8884 2004-04-06  Paul Brook  <paul@codesourcery.com>
8885
8886         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
8887
8888 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8889
8890         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
8891         when the TLS address is generated by a function call.
8892         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
8893         (tls_local_dynamic): Likewise.
8894
8895 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
8896
8897         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
8898         and TYPE_VOLATILE.
8899
8900 2004-04-05  Caroline Tice  <ctice@apple.com>
8901
8902         * gcc.c (combine_flag): New global variable, for new driver option.
8903         (struct compiler): Add two new fields, to be used when
8904         combining multiple input files in a single pass (IMA).
8905         (default_compilers):  Add values for the new fields to all
8906         compiler entries. Modify the "@c" compiler entry for doing IMA
8907         properly with "-save-temps" and the "combine" flag.
8908         (option_map):  Add new driver option, "--combine", to tell driver
8909         to pass multiple input files to compiler at one time.
8910         (have_o_argbuf_index): New global variable.
8911         (store_arg): Modify to assign value to have_o_argbuf_index.
8912         (struct infile):  Add three new fields, to help with IMA.
8913         (display_help): Add help for new "combine" option.
8914         (process_command): Remove local variable have_o; add code to check
8915         for new "combine" option; remove assignment to combine_inputs.
8916         (do_spec_1):  Modify to deal with IMA better.
8917         (main): Make variable 'lang_n_infiles' local to entire function
8918         rather than to a single block.  Use flag combine_flag to
8919         determine whether to do IMA or not; Modify loop initializing
8920         infiles to deal properly with linker files.
8921         Add code for doing preprocessing in presence of
8922         IMA with "-save-temps" flag.  Modify "main" loop to handle
8923         multiple input files, in multiple languages, with or without
8924         preprocessing,  gracefully.
8925         * toplev.c (set_src_pwd): Modify to not complain if attempting to
8926         re-set it to same directory it's previously been set to (avoid
8927         irritating, meaningless warning messages when doing IMA with
8928         save-temps).
8929         * doc/invoke.texi: Add "-combine" to list of Overall Options;
8930         remove documentation about IMA that is no longer accurate; Add
8931         documentation explaining what "-combine" does.
8932         * ada/lang-specs.h: Add initialization values for new fields in
8933         "struct compiler".
8934         * cp/lang-specs.h: Likewise.
8935         * f/lang-specs.h: Likewise.
8936         * java/lang-specs.h: Likewise.
8937         * objc/lang-specs.h: Likewise.
8938         * treelang/lang-specs.h: Likewise.
8939
8940 2004-04-05  David Edelsohn
8941
8942         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
8943         symbol handling.
8944
8945 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
8946             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8947
8948         PR optimization/13424 (hppa), bootstrap/14462, c/14828
8949         * pa.md: Use replace_equiv_address to retain the attributes of the
8950         memory operands used in the split and peephole2 patterns for optimizing
8951         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
8952
8953 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8954
8955         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
8956         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8957         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
8958         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
8959         PARM_DECL.
8960         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
8961         for a type.
8962         * print-tree.c (print_node): Properly handle side-effects, readonly,
8963         and constant flags.
8964         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
8965         and TREE_CONSTANT if not a type.
8966         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
8967         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
8968         (NON_TYPE_CHECK): New macro.
8969         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
8970
8971 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
8972
8973         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
8974         to DWARF2_DEBUG unconditionally.
8975         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
8976
8977 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
8978             Nathanael Nerode  <neroden@gcc.gnu.org>
8979
8980         PR target/14548
8981         * config.host: Set the shell variable host_can_use_collect2.
8982         Set it to yes by default, and to no for alpha*-dec-*vms*,
8983         i[34567]86-*-mingw32*, and powerpc-*-beos*.
8984         * configure.ac: Set and substitute the shell variable collect2.
8985         Give an error if use_collect2 is yes and host_can_use_collect2 is
8986         no.
8987         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
8988         uses.  Initialize to @collect2@.
8989         (STAGESTUFF): Remove $(USE_COLLECT2).
8990         * config/alpha/x-vms (USE_COLLECT2): Don't set.
8991         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
8992         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
8993         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
8994         * configure: Regenerate.
8995
8996 2004-04-04  Roger Sayle  <roger@eyesopen.com>
8997
8998         * simplify-rtx.c (simplify_binary_operation): Constant fold
8999         DIV, MOD, UDIV and UMOD using div_and_round_double.
9000
9001 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9002
9003         PR c++/14804
9004         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9005         RECORD_TYPEs.
9006
9007 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9008
9009         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9010         documentation.
9011
9012 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9013
9014         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9015         updating the REG_EQUAL note on an insn's libcall_insn.
9016
9017 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9018
9019         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9020
9021 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9022
9023         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9024         with reorder_operands_p.
9025
9026 2004-04-03  Jan Hubicka  <jh@suse.cz>
9027
9028         * md.texi (vec_set, vec_extract, vec_init): Document.
9029
9030 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9031
9032        * opts.c (decode_options): Do function inlining with very small
9033        max-inline-insns-* parameters when optimizing for size.
9034
9035 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9036
9037         * config/i386/i386.h (TARGET_NOCONA): New macro.
9038         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9039         (processor_type): Add PROCESSOR_NOCONA.
9040
9041         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9042
9043         * config/i386/i386.c (nocona_cost): New variable.
9044         (m_NOCONA): New macro.
9045         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9046         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9047         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9048         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9049         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9050         x86_decompose_lea, x86_arch_always_fancy_math_387,
9051         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9052         x86_ext_80387_constants, x86_four_jump_limit):
9053         (override_options): Add nocona_cost to processor_target_table.
9054         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9055         (incdec_operand): Prevent inc/dec generation for Nocona too.
9056         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9057
9058 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9059
9060         * rtlanal.c (find_reg_note): Manually
9061         unswitch the loop.
9062
9063 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9064
9065         * genemit.c (gen_split): Change prototype of generated code.
9066         * genrecog.c (write_action): Adjust prototype for and calls to
9067         gen_split_*.
9068         * gensupport.c (struct queue_elem): Add split field.
9069         (queue_pattern): Return a value.  Clear the split field.
9070         (process_rtx): Maintain an association between an insn and the
9071         split generated from it for a define_insn_and_split.
9072         (process_one_cond_exec): Generate a new split for a
9073         define_insn_and_split.
9074         * config/arm/arm-protos.h (arm_split_constant): Add insn
9075         parameter.
9076         (emit_constant_insn): New function.
9077         (arm_gen_constant): Use it.
9078         * config/arm/arm.md: Adjust calls to arm_split_constant.
9079
9080 2004-04-02  Jan Hubicka  <jh@suse.cz>
9081
9082         * cgraph.c: Add overall comment.
9083         (cgraph_inline_hash): New global variable.
9084         (cgraph_create_node): Break out from ...
9085         (cgraph_node): ... here.
9086         (cgraph_edge): New function.
9087         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9088         (cgraph_remove_edge): Accept edge, intead of source and destination.
9089         (cgraph_redirect_edge_callee): New.
9090         (cgraph_remove_node): Update all new datastructures.
9091         (cgraph_record_call, cgraph_remove_call): Kill.
9092         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9093         (dump_cgraph): ... here.
9094         (cgraph_function_possibly_inlined_p): Use new hashtable.
9095         (cgraph_clone_edge, cgraph_clone_node): New.
9096         * cgraph.h: Include hashtab.h
9097         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9098         fields, add inlined_to pointer.
9099         (cgraph_node): Add pointer to next_clone.
9100         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9101         (cgraph_remove_call, cgraph_record_call): Kill.
9102         (cgraph_inline_hash): Declare.
9103         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9104         cgraph_redirect_edge_callee): Declare.
9105         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9106         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9107         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9108         * cgraphunit.c: Add overall comment.
9109         (cgraph_optimize_function): Kill.
9110         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9111         (cgraph_finalize_function): Update call of cgraph_remove_node
9112         (record_call_1): Record call sites.
9113         (cgraph_create_edges): Accept node instead of decl argument.
9114         (error_found): New static variable.
9115         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9116         (cgraph_analyze_function): Update for new datastructures.
9117         (cgraph_finalize_compilation_unit): Plug memory leak.
9118         (cgraph_optimize_function): Kill.
9119         (cgraph_expand_function): Do not use cgraph_optimize_function.
9120         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9121         cgraph_inlined_callees): Kill.
9122         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9123         clones.
9124         (estimate_growth): Simplify.
9125         (cgraph_clone_inlined_nodes): New function.
9126         (cgraph_mark_inline_edge): Re-implement.
9127         (cgraph_mark_inline): Likewise.
9128         (cgraph_check_inline_limits): Simplify.
9129         (cgraph_recursive_inlining_p): New.
9130         (update_callee_keys): Break out from ...
9131         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9132         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9133         Likewise.
9134         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9135         list.
9136         (cgraph_preserve_function_body_p): New predicate.
9137         (cgraph_optimize): Verify cgraph.
9138         * function.h (struct function): Add fields saved_tree/saved_args.
9139         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9140         * toplev.c (rest_of_compilation): Do not free cfun.
9141         * tree-inline.c: Include function.h
9142         (struct inline_data): Add saving_p field; replace decl/current_decl by
9143         node/current_node.
9144         (insert_decl_map): New function.
9145         (copy_body_r): Handle saving; update cgraph datastructure.
9146         (copy_body): Handle recursive inlining.
9147         (initialize_inlined_parameters): Likewise.
9148         (expand_call_inline): Propagate node attributes; update cgraph.
9149         (optimize_inline_calls): Verify that datastructure still match.
9150         (save_body): New function.
9151         * tree-inline.h (save_body): New.
9152         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9153         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9154         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9155
9156 2004-04-01  Serge Belyshev  <1319@bot.ru>
9157
9158         PR target/14702
9159         * config/i386/i386.md: fix source operand constraints in
9160         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9161
9162 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9163
9164         * fold-const.c (folda): Preserve types of comparisons.
9165
9166 2004-04-01  Richard Henderson  <rth@redhat.com>
9167
9168         * toplev.c (backend_init): Move init_optimization_passes call ...
9169         (lang_dependent_init): ... here.
9170
9171 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9172             Jakub Jelinek  <jakub@redhat.com>
9173
9174         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9175         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9176         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9177         * configure: Rebuilt.
9178         * config.in: Rebuilt.
9179         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9180         (stage2-start, stage3-start, stage4-start): Likewise.
9181         (stageprofile-start, stagefeedback-start): Likewise.
9182
9183 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9184
9185         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9186         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9187         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9188         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9189         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9190         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9191         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9192         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9193         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9194         * config/sparc/t-linux: Removed.
9195
9196 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9197
9198         PR c++/14755
9199         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9200         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9201
9202 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9203
9204         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9205         * stor-layout.c (layout_decl): Likewise.
9206         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9207         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9208         * print-tree.c (print_node): Handle various used of unsigned_flag.
9209         * tree.def (BIT_FIELD_REF): Update comment.
9210         * tree.h (TREE_UNSIGNED): Deleted.
9211         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9212
9213 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9214
9215         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9216         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9217         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9218         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9219         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9220         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9221         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9222         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9223         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9224         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9225         REAL_TYPE, not INTEGER_TYPE.
9226         (layout_type, case VECTOR_TYPE): Simplify code.
9227         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9228         * tree.h: Update comments.
9229         (STRIP_NOPS): Use TYPE_UNSIGNED.
9230         (TYPE_UNSIGNED): New macro.
9231         (TYPE_TRAP_SIGNED): Remove now redundant check.
9232         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9233
9234 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9235
9236         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9237
9238 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9239
9240         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9241         Add darwin-fpsave.asm, darwin-vecsave.asm,
9242         and darwin-world.asm.
9243         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9244         as the asm files contain altivec instructions.
9245         * config/rs6000/darwin-fpsave.asm: New file.
9246         * config/rs6000/darwin-vecsave.asm: New file.
9247         * config/rs6000/darwin-world.asm: New file.
9248
9249 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9250
9251         * gengtype-yacc.y (option, stringseq): Add missing
9252         terminating semicolon.
9253
9254 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9255
9256         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9257         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9258         tls_dtprel_ha_32, tls_dtprel_ha_64,
9259         tls_dtprel_lo_32, tls_dtprel_lo_64,
9260         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9261         tls_tprel_ha_32, tls_tprel_ha_64,
9262         tls_tprel_lo_32, tls_tprel_lo_64,
9263         tls_got_tprel_32, tls_got_tprel_64,
9264         tls_tls_32, tls_tls_64): Replace register_operand with
9265         gpc_reg_operand.
9266
9267 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9268
9269         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9270         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9271         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9272         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9273         *ctrdi_internal6): Replace register_operand with
9274         nonimmediate_operand.
9275
9276 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9277
9278         * fold-const.c (fold): Reassociate multiply expression
9279         with an adjacent non-multiply expression to use
9280         architecture's multiply-add instruction.
9281
9282 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9283
9284         * gengtype.c (create_option): New function.
9285         * gengtype.h: Prototype it.
9286         * gengtype-yacc.y (stringseq): New rule.
9287         (option): Use create_option.  Add new bare ID production.  Use
9288         stringseq, not STRING directly.
9289
9290         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9291         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9292         * varray.h, config/alpha/alpha.c:
9293         Use new shorter form of GTY markers.
9294
9295         * doc/gty.texi: Rewrite.
9296
9297 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9298
9299         * config/darwin.c (machopic_function_base_name):
9300         Remove current_name and getting the name of the
9301         current function.
9302
9303 2004-03-30  Nick Clifton  <nickc@redhat.com>
9304
9305         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9306         range, and increase the forward branch range, to allow for
9307         the fact that the PC will be off by 4.
9308
9309 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9310
9311         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9312
9313 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9314
9315         * config/rs6000/rs6000.c (output_vec_const_move):
9316         Find all cases of EASY_VECTOR_15_ADD_SELF.
9317         (easy_vector_constant_add_self): Accept
9318         all vector constant loadable by vsplt* and vadd*.
9319         (easy_vector_same): Use easy_vector_splat_const.
9320         (easy_vector_const): Use easy_vector_splat_const.
9321         (easy_vector_splat_const): New function.
9322         (gen_easy_vector_constant_add_self): New function.
9323
9324         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9325         New prototype.
9326
9327         * config/rs6000/altivec.md (movv4si splitter): Change to
9328         emit move insn with halfed vector constant.
9329         (*movv8hi splitter): Likewise.
9330         (*movv16qi splitter): Likewise.
9331
9332 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9333
9334         PR 11591
9335         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9336         Allow any offset to argument pointer in no-strict case.
9337
9338 2004-03-30  Jan Hubicka  <jh@suse.cz>
9339
9340         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9341         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9342         dump file in non-unit-at-a-time mode.
9343
9344 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
9345
9346         * config/cris/cris.h: Correct #ifdef to test for
9347         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
9348         HAVE_AS_MUL_BUG_ABORT_OPTION.
9349
9350 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9351
9352         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
9353         the address inside the old RTL.
9354
9355 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
9356
9357         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
9358         (struct c_binding, struct c_scope): Add chain_next
9359         attributes to GTY markers.
9360         (struct lang_identifier, struct lang_tree_node): Define
9361         here...
9362         * c-tree.h: ... not here.  No longer need to declare struct
9363         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9364         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
9365         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9366
9367         PR 14734, 11944
9368         * c-decl.c (get_parm_info): If error_mark_node is encountered
9369         in the bindings chain, unbind and discard it; don't abort.
9370
9371 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
9372             Dorit Naishlos <dorit@il.ibm.com>
9373
9374         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
9375         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
9376
9377 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
9378
9379         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
9380
9381         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
9382         (m68hc11_attribute_table): New attribute "page0" to mark a global
9383         variable as being allocated from within page0 section.
9384         (m68hc11_encode_label): New function.
9385         (m68hc11_strip_name_encoding): New function.
9386         (m68hc11_page0_symbol_p): New function.
9387         (m68hc11_indirect_p): Accept global variables marked in page0.
9388         (m68hc11_encode_section_info): Lookup "page0" attribute.
9389
9390         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
9391         represents access to page0 variables.
9392
9393         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
9394         ("*logicalsi3_silshl16_zext"): Likewise.
9395         ("*ashldi3_const32"): Likewise.
9396         (peephole2 ashift): Likewise.
9397
9398 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9399
9400         * c-tree.h (C_DECL_REGISTER): New.
9401         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
9402         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
9403         (build_array_ref, c_mark_addressable): Set and use it.
9404         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
9405         Allow structures with volatile fields to be declared register.
9406         Don't check TREE_ADDRESSABLE before warning about taking address
9407         of register.
9408         * c-decl.c (finish_decl): Don't allow structures with volatile
9409         fields to be placed in named register.
9410         * doc/trouble.texi: Remove reference to structures with volatile
9411         fields in registers.
9412
9413 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9414
9415         * function.c (thread_prologue_and_epilogue): Move
9416         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
9417         before the epilogue.
9418
9419 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9420
9421         * expr.c (store_constructor): Use gen_int_mode to correctly
9422         sign-extend CONST_INT value.
9423
9424 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9425
9426         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
9427         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
9428         * doc/extend.texi: Likewise.
9429
9430 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
9431
9432         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
9433           with TYPE_ORIG_SIZE_TYPE.
9434
9435 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
9436
9437         PR 14219
9438         * c-typeck.c (build_binary_op): Do not allow comparisons of
9439         vectors.
9440
9441 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
9442
9443         * config.gcc: Remove sparc-tti-*.
9444         * config/sparc/pbd.h: Delete.
9445
9446         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
9447         * config/sparc/aout.h: Likewise.
9448
9449         * config/sparc/sparc.h: Remove if 0'd code.
9450         * config/sparc/sparc.md (call): Remove if 0'd code.
9451         (call_value): Likewise.
9452         (nonlocal_goto): Likewise.
9453         (unimp_insn): Delete.
9454
9455 2004-03-25  Roger Sayle  <roger@eyesopen.com>
9456
9457         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
9458         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
9459
9460 2004-03-25  Richard Henderson  <rth@redhat.com>
9461
9462         PR 11527
9463         * c-typeck.c (pop_init_level): Emit pending init elements earlier
9464         rather than later.
9465
9466 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9467
9468         * builtins.c (fold_builtin): Fix error in last change.
9469
9470 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
9471
9472         * config/mips/mips.h: Formatting fix.
9473
9474 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9475
9476         * builtins.def: Add ctype builtins.
9477         * doc/extend.texi: Likewise.
9478
9479 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9480
9481         * builtins.c (fold_builtin): Add new builtin optimizations for
9482         sqrt and/or cbrt.
9483         * fold-const.c (fold): Likewise.
9484
9485 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
9486
9487         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
9488         (rs6000_sched_groups): New variable.
9489         (processor_target_table): Add power5.
9490         (rs6000_override_options): Set rs6000_sched_insert_nops,
9491         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
9492         from rs6000_sched_groups.
9493         (output_cbranch): Use rs6000_always_hint.
9494         (rs6000_variable_issue): Use rs6000_sched_groups.
9495         (rs6000_adjust_cost): Add CPU_POWER5.
9496         (is_microcoded_insn): Use rs6000_sched_groups.
9497         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
9498         Return 2 for POWER5 cracked instructions.
9499         (is_cracked_insn): Use rs6000_sched_groups.
9500         (is_branch_slot_insn): Use rs6000_sched_groups.
9501         (rs6000_issue_rate): Add CPU_POWER5.
9502         (rs6000_sched_finish): Use rs6000_sched_groups.
9503         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
9504         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
9505         (DEFAULT_SCHED_COSTLY_DEP): Delete.
9506         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
9507         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
9508         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
9509         * config/rs6000/power5.md: New file.
9510         * doc/invoke.texi: Add power5 option.
9511
9512 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9513
9514         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
9515         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
9516         * doc/invoke.texi: Fix a typo.
9517
9518 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9519
9520         PR optimization/9707.
9521         * stmt.c (emit_case_nodes): Emit equality comparisons instead
9522         of recursing if both children are single-valued cases with no
9523         children.
9524
9525 2004-03-25  Paul Brook  <paul@codesourcery.com>
9526
9527         * config/arm/arm.c (vfp_print_multi): Remove.
9528         (arm_output_fldmx): New function.
9529         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
9530         (arm_expand_prologue): Update to match.
9531         (arm_get_vfp_saved_size): New Function.
9532         (arm_get_frame_offsets): Use it.
9533         (arm_output_epilogue): Use new functions.
9534
9535 2004-03-24  Richard Henderson  <rth@redhat.com>
9536
9537         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
9538         (reg_known_value, reg_known_value_size): Likewise; make static.
9539         (reg_known_equiv_p): Make static.
9540         (clear_reg_alias_info): Update for new indexing.
9541         (get_reg_known_value, set_reg_known_value): New.
9542         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
9543         (canon_rtx): Use them.
9544         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
9545         Don't play queer offsetting games with reg_known_value and
9546         reg_known_equiv_p.
9547         (end_alias_analysis): Free reg_known_value with gc.
9548         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
9549         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
9550         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
9551         functions instead.
9552
9553 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
9554
9555         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
9556         config/i386/mmintrin.h: Update copyright.
9557
9558 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9559
9560         * configure.ac: Add --enable-werror-always (for top level bootstrap
9561         support).
9562         * configure: Regenerate.
9563
9564 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
9565
9566         * objc/objc-act.c (objc_comptypes): Treat comparisons
9567         between 'Class' and '<class> *' as explicitly invalid.
9568
9569 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
9570
9571         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
9572         (-fprofile-values): Add enabled with profile-{generate,use}.
9573         (-fvpt): Same.
9574         (-ftracer): Add enabled with profile-use.
9575         (-funit-at-a-time): Add enabled at -O2,-O3.
9576         (-funroll-loops): Add enabled with profile-use.
9577         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
9578         (max-gcse-passes): Mention default.
9579         (max-cse-path-length): Mention default.
9580
9581 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9582
9583         * Makefile.in (STRICT2_WARN): Reorder.
9584         * configure.ac: Check for -Wold-style-definition, and use it
9585         in strict1_warn if it's available.
9586         * configure: Regnerate.
9587
9588 2004-03-24  Paul Brook  <paul@nowt.org>
9589
9590         * config.gcc <arm>: Add --with-abi=
9591         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
9592         thumb_far_jump_used): Remove prototypes.
9593         (arm_needs_doubleword_align): Add prototype.
9594         (thumb_compute_initial_elimination_offset): Ditto.
9595         * config/arm/arm.c (arm_get_frame_offsets): New function.
9596         (use_return_insn, output_return_instruction, arm_output_epilogue,
9597         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
9598         arm_expand_prologue, thumb_expand_epilogue): Use it.
9599         (arm_abi, target_abi_name, all_arm_abis): New variables.
9600         (arm_override_options): Set them.  Set structure padding for AAPCS.
9601         (arm_return_in_memory): Update ABI check.
9602         (arm_init_cumulative_args): Initialize can_split.
9603         (arm_needs_doubleword_align): New function.
9604         (arm_function_arg): Don't split args after pushing to stack. Handle
9605         doubleword/even reg alignment.
9606         (arm_va_arg): Handle all doubleword aligned args.
9607         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
9608         on ABI, not CPU.
9609         (arm_compute_save_reg0_reg12_mask): Fix comment.
9610         (thumb_get_frame_size, thumb_get_frame_size): Remove.
9611         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
9612         value for alignment.
9613         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
9614         to match.
9615         (thumb_compute_initial_elimination_offset): New function.
9616         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
9617         unneccessary rounding.
9618         * config/arm/arm.h (target_abi_name): Declare.
9619         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
9620         arm_abi_type, ARM_DEFAULT_ABI): Define.
9621         (ARM_FLAG_ATPCS): Remove.
9622         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
9623         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
9624         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
9625         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
9626         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
9627         Contitionalize on ABI, not CPU.
9628         (struct arm_stack_offsets): Define.
9629         (struct machine_function): Add stack_offsets.  Remove frame_size.
9630         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
9631         pushed.
9632         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
9633         doubleword alignment.
9634         (THUMB_INITIAL_ELIMINATION_OFFSET,
9635         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
9636         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
9637         * config/arm/arm.md (align_8): Enable for all targets.
9638         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
9639         (ARM_DEFAULT_ABI): Define.
9640         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
9641         -mstructure-size-boundary.
9642
9643 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
9644
9645         * configure.ac: Check for -Wno-variadic-macros; don't use
9646         -pedantic (in stage 1 or a simple 'make all') unless it's available,
9647         and if it's available, use it.  Also, clean up check for
9648         -Wno-long-long.
9649         * configure: Regenerate.
9650
9651 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
9652
9653         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
9654         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
9655         (MULTILIB_DEFAULTS): Use it.
9656         (MIPS_CPU_STRING_DEFAULT): Remove.
9657         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
9658         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
9659         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
9660         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
9661         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
9662         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
9663         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
9664         accordingly.
9665
9666 2004-03-24  DJ Delorie  <dj@redhat.com>
9667             Richard Sandiford  <rsandifo@redhat.com>
9668
9669         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
9670         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
9671         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
9672         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
9673         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
9674         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
9675         if TARGET_FIX_VR4122.
9676         * config/mips/mips.md (define_attr length): Account for nops inserted
9677         after macc and dmult when using -mfix-vr4122-bugs.
9678         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
9679         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
9680         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
9681         * config/mips/vr4122-div.S: New file.
9682         * doc/invoke.texi: Document -mfix-vr4122-bugs.
9683
9684 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
9685
9686         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
9687         (TARGET_MIPS4130): New macro.
9688         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
9689         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
9690         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
9691         with PROCESSOR_R4130.
9692         * config/mips/mips.md (define_attr cpu): Add r4130.
9693         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
9694
9695 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9696             Richard Sandiford  <rsandifo@redhat.com>
9697
9698         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
9699
9700 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
9701
9702         PR preprocessor/14438
9703         * cpplib.c (do_pragma): Remove line_change call after pragma
9704         handler.
9705
9706 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
9707
9708         * doc/extend.texi (ARM Built-in Functions): Replace with correct
9709         declarations.
9710
9711 2004-03-23  Roger Sayle  <roger@eyesopen.com>
9712
9713         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
9714         if flag_unsafe_math_optimizations.
9715         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
9716         and TARGET_80387 expand using truncdfsf2_noop pattern.
9717         (truncxfsf2): Likewise using truncxfsf2_noop.
9718         (truncxfdf2): Likewise using truncxfdf2_noop.
9719         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
9720
9721 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
9722
9723         * hooks.c (hook_constcharptr_tree_null): New hook.
9724         * hooks.h (hook_constcharptr_tree_null): New prototype.
9725         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
9726         * target.h (mangle_fundamental_type): New target hook.
9727         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
9728         target hook at rs6000_mangle_fundamental_type.
9729         (rs6000_mangle_fundamental_type): New function.
9730         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
9731
9732 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
9733
9734         PR 12267, 12391, 12560, 13129, 14114, 14133
9735         * c-tree.h: Forward declare struct c_binding.  Declare
9736         c_override_bindings_to_false.  Update prototypes.
9737         (struct lang_identifier): Update comments.  Change fields to be
9738         struct c_binding *.
9739         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
9740         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
9741         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
9742         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
9743         * c-common.h: Update prototypes.
9744         * c-decl.c (struct c_scope): Update commentary.  Remove names,
9745         names_last, parms, parms_last, tags, and shadowed fields.  Add
9746         bindings and depth fields.
9747         (scope_freelist): Move to more appropriate location.
9748         (c_print_identifier): Update for changes to struct lang_identifier.
9749         (objc_mark_locals_volatile): Update for new bindings structures.
9750         (global_bindings_p): Honor c_override_global_bindings_to_false.
9751         (pushlevel): Rename to push_scope; take no arguments; use the
9752         scope_freelist; initialize scope->depth and check for overflow.
9753         (poplevel): Rename to pop_scope; totally rewritten for new bindings
9754         structures.
9755         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
9756         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
9757         Improve some commentary.  Adjust handling of forward parm decls.
9758         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
9759         Preserve C_DECL_IN_EXTERNAL_SCOPE.
9760         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
9761         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
9762         decls.  Rewrite for new bindings structures.  Improve commentary.
9763         Eliminate the copy_node call.
9764         (implicit_decl_warning): Use the "diag" idiom (as seen in
9765         locate_old_decl) to reduce code duplication; call locate_old_decl
9766         if appropriate.  Relocate to remove need for forward declaration.
9767         (implicitly_declare): Adjust for new bindings structures.  Kludge
9768         around Objective-C not-really-builtin functions.
9769         (undeclared_variable): Improve diagnostics.  If current_function_decl
9770         is nonnull but current_function_scope is null, use current_scope.
9771         Use bind.
9772         (lookup_tag): Adjust for new bindings structures.  Kludge around
9773         Objective-C's tag declarations that wind up in the external scope.
9774         (lookup_name): Adjust for new bindings structures.  Kludge around
9775         c-common.c's pseudo-typedefs that wind up in the external scope.
9776         (lookup_name_current_level): Rename lookup_name_in_scope; take a
9777         second argument indicating the scope to examine; rewrite for
9778         new bindings structures.
9779         (c_init_decl_processing): Adjust for renamed functions.  Do not
9780         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
9781         First scope pushed is the external scope, not the global scope.
9782         (builtin_function): Use bind, not pushdecl.  Adjust other bits
9783         for new data structures.  Keep track of builtins that should be
9784         made visible automatically.
9785         (start_decl): Adjust diagnostics.  Remove unnecessary call to
9786         expand_decl.
9787         (grokparms): Return 0 if arg_types is error_mark_node.
9788         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
9789         reversed sense.  Rewrite for new bindings structures.  Do not
9790         leave any decls in the scope, to prevent pop_scope from doing
9791         contradictory things with them.
9792         (finish_struct, finish_enum): Remove redundant diagnostics.
9793         (build_enumerator): Don't cascade diagnostics for error_mark_node.
9794         Mark location where -pedantic changes the meaning of the program.
9795         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
9796         parameter decls into the function's scope structure using bind.
9797         Warn here about function definitions in the wrong style.
9798         Adjust diagnostics.
9799         (store_parm_decls): Correct the determination of whether a
9800         function was defined with a prototype.
9801         (c_write_global_declarations): Operate on all file decls and on
9802         the external scope.  Split body of the loop to...
9803         (c_write_global_declarations_1): ... this new function, to avoid
9804         code duplication.
9805         (truly_local_externals, first_builtin_decl, last_builtin_decl)
9806         (make_scope, pop_scope, in_parm_level_p, set_block)
9807         (any_external_decl, record_external_decl, bind_label, getdecls)
9808         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
9809         (c_reset_state): Delete.
9810         (visible_builtins, c_override_global_bindings_to_false)
9811         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
9812         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
9813         (external_scope, binding_freelist, bind, free_binding_and_advance)
9814         (push_file_scope, pop_file_scope): New.
9815         (pushtag, pushdecl_top_level, lookup_label, declare_label)
9816         (define_label, c_make_fname_decl, finish_decl)
9817         (mark_forward_parm_decls, build_compound_literal)
9818         (grokdeclarator, start_function, check_for_loop_decls)
9819         (identifier_global_value, record_builtin_type): Minor adjustments
9820         for new bindings structures.  Improve diagnostics and commentary.
9821         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
9822         pushlevel/poplevel respectively.
9823         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
9824         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
9825         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
9826         correct loop over multiple translation units; call fatal_error if
9827         requested to compile more than one file at once.  (This disables
9828         IMA temporarily - an up-front error being preferable to a crash.)
9829         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
9830         (all actions): Adjust calls to pushlevel/poplevel.
9831         (parsing_iso_function_signature): Delete.
9832         (extdef_1): Fold into extdef.
9833         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
9834         warn here about function definitions in the wrong style.
9835         (after_tyle_declarator, parm_declarator_starttypename)
9836         (parm_declarator_nostarttypename, notype_declarator): Remove
9837         commented-out productions.
9838         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
9839         an empty TREE_LIST node.  Adjust calls to get_parm_info.
9840         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
9841         to suppress -Wold-style-definition after this error.
9842         (c_parse_file): Don't clear the binding stack or call
9843         finish_fname_decls here.  Correct comment.
9844         * c-typeck.c (same_translation_unit_p): Export.
9845         (common_type): Use c_override_global_bindings_to_false, not
9846         pushlevel/poplevel/declare_parm_level.
9847         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
9848         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
9849         and LANG_HOOKS_GETDECLS with do-nothing stubs.
9850         * objc/objc-lang.c: Likewise.
9851         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
9852         get_parm_info.
9853         (OBJC_VOID_AT_END): Delete; replace all uses
9854         with void_list_node.
9855         (generate_forward_declaration_to_string_table): Delete.
9856         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
9857
9858         * coverage.c (create_coverage): Don't pushdecl anything.
9859         * langhooks.c (lhd_clear_binding_stack): Call
9860         lang_hooks.decls.poplevel, not poplevel.
9861         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
9862         circular list rather than going into an infinite loop.
9863
9864 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
9865
9866         * optabs.c (expand_binop): When synthesizing double word rotates
9867         from single word shifts, use a new register target if the provided
9868         target is not a REG already.
9869
9870 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9871
9872         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
9873         * c-common.c (handle_mode_attribute): Add extra arg to
9874         build_pointer_type_for_mode and build_reference_type_for_mode.
9875         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
9876         for INTEGER_CST.
9877         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
9878         Chain pointers via TYPE_NEXT_PTR_TO.
9879         (build_reference_type_for_mode): Similarly.
9880         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
9881         and build_reference_type_for_mode.
9882         (tree_check4_failed): New function.
9883         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
9884         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
9885         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
9886         Add check.
9887
9888 2004-03-23  Roger Sayle  <roger@eyesopen.com>
9889
9890         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
9891         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
9892         when both A and B are nonnegative.
9893         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
9894         nonzero.
9895
9896 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9897
9898         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
9899         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
9900
9901 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9902
9903         PR optimization/14669
9904         * fold-const.c (fold): Only unwiden integer comparisons for equality
9905         and inequality operators, or when the signedness doesn't change.
9906
9907 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
9908
9909         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
9910         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
9911         * config/sparc/t-linux: New file.
9912
9913 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
9914
9915         * gcse.c (can_assign_to_reg_p): New function, split out from...
9916         (want_to_gcse_p): ...here.
9917         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
9918         the rhs of a store.
9919
9920 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
9921
9922         * c-typeck.c (same_translation_unit_p): Fix pasto.
9923
9924 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
9925
9926         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
9927         (PARAM_MAX_SCHED_REGION_INSNS): New.
9928         * sched-rgn.c: Include params.h
9929         (MAX_RGN_BLOCKS): Delete.
9930         (MAX_RGN_INSNS): Delete.
9931         (too_large): Return bool.  Convert to PARAM_VALUE.
9932         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
9933         * doc/invoke.texi (param): Document max-sched-region-blocks and
9934         max-sched-region-insns.
9935
9936 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
9937
9938         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
9939         for base types.
9940
9941 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
9942
9943         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
9944         change.
9945
9946 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
9947
9948         PR c/14069
9949         * c-decl.c (finish_struct): Change type of incorrect flexible array
9950         field into error_mark_node.
9951
9952 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
9953
9954         PR target/14580
9955         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
9956         who are not local for Darwin PIC.
9957
9958 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
9959
9960         * regrename.c (regrename_optimize): Set regs_ever_live for all
9961         registers introduced as replacement.
9962
9963 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9964
9965         PR middle-end/14470
9966         * expr.c (mark_queue): New function.
9967         (emit_insns_enqueued_after_mark): New function replacing
9968         emit_queue.  Clear the body of emitted queued insns.
9969         (emit_queue): Call emit_insns_enqueued_after_mark.
9970         (store_expr): Mark the increment queue on entry.  Emit
9971         only the incrementations queued when expanding the source.
9972
9973 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
9974
9975         * configure.ac: Allow --disable-coverage-flags (for the future benefit
9976         of top level bootstrap, and consistency).  Reindent.
9977         * configure: Regenerate.
9978
9979 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9980
9981         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
9982         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
9983         unnecessary casts.
9984
9985 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
9986
9987         PR target/14291
9988         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
9989         __MINGW32__.
9990
9991 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
9992
9993         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
9994         to nonimmediate_operand.
9995         ("*doloop_di"): Likewise.
9996
9997 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
9998
9999         * real.h (struct real_value): Use the same type for all
10000         bitfields.  Rename exp to uexp.
10001         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10002         Adjust all uses of exp...
10003         * builtins.c: ... here, ...
10004         * emit-rtl.c: ... here, and ...
10005         * real.c: ... and here.
10006
10007 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10008
10009         * pretty-print.c (pp_base_maybe_space): New function.
10010         * pretty-print.h (pp_base_maybe_space): Declare.
10011         (pp_maybe_space): New macro.
10012
10013 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10014
10015         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10016
10017 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10018
10019         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10020         of using register multiplication cost.
10021         (expand_mult): Adapt choose_mult_variant call.
10022         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10023         of MODE; pass appropriate cost bound.  Adjust result when
10024         performing signed multiplication by a negative constant.
10025         Don't use intermediate modes larger than word_mode.
10026
10027 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10028
10029         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10030         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10031         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10032         * explow.c (expr_size): Likewise.
10033         * expr.h (placeholder_list, find_placeholder): Deleted.
10034         * expr.c (store_constructor): Likewise.
10035         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10036         (placeholder_list, find_placeholder): Deleted.
10037         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10038         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10039         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10040         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10041         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10042         Likewise.
10043         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10044         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10045         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10046         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10047         Clean up by using first_rtl_op.
10048         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10049         (substitute_placeholder_in_expr): New function.
10050         * tree.def (WITH_RECORD_EXPR): Deleted.
10051         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10052         (substitute_placeholder_in_expr): New.
10053
10054 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10055
10056         * dojump.c (prefer_and_bit_test): Fix which part of
10057         the and_test is replaced.
10058
10059 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10060
10061         * frontends.texi: Add missing line.
10062
10063 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10064             Chris Devers  <cdevers@pobox.com>
10065             Joseph S. Myers  <jsm@polyomino.org.uk>
10066
10067         * doc/frontends.texi: Rewrite.
10068         * doc/gcc.texi: Update last modification date.
10069
10070 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10071
10072         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10073         message before redirecting the edge.
10074
10075 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10076
10077         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10078         flag.
10079         * explow.c (force_not_mem): Set REG_POINTER flag according to
10080         MEM_POINTER one.
10081         * rtl.h (MEM_POINTER): New macro.
10082         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10083         for MEM_POINTER.
10084
10085 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10086
10087         PR target/13889
10088         * cse.c (fold_rtx): Avoid substituting constants into unary
10089         conversion operations.
10090
10091 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10092
10093         * fold-const.c (fold): Replace "expr" with "t".
10094
10095 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10096
10097         PR c/12373
10098         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10099         DECL_ORIGINAL_TYPE if there isn't one.
10100
10101 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10102
10103         * fold-const.c (fold): Replace "final_type" with "type".
10104         Remove variable "final_type".
10105
10106 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10107
10108         * fold-const.c (fold): Constify "type".
10109         Replace "TREE_TYPE (t)" with "type".
10110
10111 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10112
10113         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10114         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10115         via (*targetm.foo) () with targetm.foo ().
10116
10117 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10118
10119         PR other/14630
10120         * doc/install.texi: Add info directory category and entry.
10121
10122 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10123
10124         * fold-const.c (fold): Replace "t" with "tem" where it is used
10125         as a temporary variable.  Remove "orig_t" and all of its uses.
10126
10127 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10128
10129         * fold-const.c (fold): Remove variable "invert".
10130         Move the handling of relational expressions that can be folded
10131         to a constant ...
10132         (fold_relational_const): ... here.
10133         (tree_expr_nonzero_p): New.
10134
10135 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10136
10137         PR c/14635
10138         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10139         DEF_GCC_BUILTIN.
10140
10141 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10142
10143         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10144         (GTFILES): Add $(srcdir)/dojump.h.
10145         (gt-dojump.h): New dependency.
10146         * dojump.c (and_reg, and_test, shift_test): New static variables.
10147         (prefer_and_bit_test): New function.
10148         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10149
10150 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10151
10152         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10153         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10154         reorg.c, tree.h: Fix comment typos.
10155
10156 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10157
10158         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10159         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10160         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10161         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10162         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10163         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10164         targetm.foo ().
10165
10166 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10167
10168         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10169         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10170         always_inline attribute.
10171         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10172         Treat expansion as completed even if literal argument is
10173         invalid (so that other expansions are not tried in vain).
10174
10175 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10176
10177         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10178         const0_rtx.
10179
10180 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10181
10182         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10183         ...
10184         (fold_abs_const): ... here.
10185
10186 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10187
10188         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10189
10190 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10191
10192         PR target/11520
10193         * config/avr/avr.md ("call_insn"): Handle explicit integer
10194         specially.
10195         (call_value_insn): Likewise.
10196
10197 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10198
10199         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10200
10201 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10202
10203         * fold-const.c (negate_expr): Move the handling of constants
10204         ...
10205         (fold_negate_const): ... here.
10206
10207 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10208
10209         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10210         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10211         * tree.c (debug_no_type_hash): Deleted.
10212         (type_hash_canon): Abort if passed a variant.
10213         Check lang_hooks.types.hash_types.
10214         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10215         (build_array_type): Remove unnecessary allocation of pointer type.
10216         (build_complex_type): Properly qualify resulting type.
10217
10218 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10219
10220         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10221
10222 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10223
10224         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10225         (expand_mult): ...here.
10226         (extract_high_half): New, split out from expand_mult_highpart.
10227         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10228         (expand_highpart): Evaluate the cost of a shift/add sequence,
10229         then see if any of the specialized optabs are cheaper.
10230
10231 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10232
10233         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10234
10235 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10236
10237         * convert.c (convert_to_real): Add more math builtins.
10238
10239 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10240
10241         * convert.c (convert_to_real): Reformat using switch stmt.
10242
10243 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10244
10245         * c-common.c (pointer_int_sum): Do not complain about using
10246         pointers to pointers-to-members.
10247
10248 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10249
10250         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10251         have moved to the target hooks structure".
10252
10253 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10254
10255         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10256         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10257         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10258         Likewise.
10259         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10260         Likewise.
10261         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10262         rm7_fp_quick): Likewise.
10263         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10264         rm9k_fquick): Likewise.
10265         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10266         Likewise.
10267         (ir_sr70_icmp): Delete.
10268
10269 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10270
10271         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10272         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10273         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10274         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10275         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10276         Protect with proper check.
10277         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10278         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10279         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10280         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10281         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10282         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10283         not TYPE_FIELDS.
10284         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10285
10286 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10287
10288         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10289         dest is set between beginning and current insn.
10290
10291 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10292
10293         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10294         visible "static" identifiers "extern" in a local scope.
10295         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10296         post-increments/decrements.
10297
10298 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10299
10300         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10301         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10302         (xtensa_va_start): Remove assignment to current_function_arg_words.
10303
10304 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10305
10306         * alias.c (record_set): Detect the case where a register is assigned
10307         a new value that has the same base term as the old one.
10308
10309 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10310
10311         * doloop.c: Removed.
10312         * loop-doloop.c: New file.
10313         * Makefile.in (doloop.o): Remove.
10314         (loop-doloop.o): New.
10315         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10316         * cfgloopanal.c (get_loop_level): New function.
10317         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10318         is leaved immediatelly.
10319         * loop.c (strength_reduce): Do not call doloop optimization.
10320         * loop.h (LOOP_BCT): Removed.
10321         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10322         (rest_of_handle_loop2): Call doloop_optimize_loops.
10323         (rest_of_compilation): Test for optimizations moved to
10324         rest_of_handle_loop2.
10325
10326 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10327
10328         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10329         for mixed mode.
10330         (rs6000_emit_prologue): Ditto.
10331         (rs6000_emit_epilogue): Ditto.
10332         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10333         macro for mixed mode.
10334
10335 2004-03-18  Jan Hubicka  <jh@suse.cz>
10336
10337         * predict.c (propagate_freq): Compute correctly frequency of
10338         EXIT_BLOCK.
10339
10340 2004-03-17  Eric Christopher  <echristo@redhat.com>
10341
10342         * builtins.c (apply_args_size): Use reg_raw_mode.
10343         (apply_result_size): Ditto.
10344
10345 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10346
10347         PR target/14620
10348         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
10349
10350 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
10351
10352         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
10353         32-bit builds when defaulting to 32-bit.
10354
10355 2004-03-17  Jan Hubicka  <jh@suse.cz>
10356
10357         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
10358         array.
10359
10360 2004-03-17  James E Wilson  <wilson@specifixinc.com>
10361
10362         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
10363         (hazard_nop): Change type to nop.
10364         (type): Split arith into arith, shift, slt, clz.  Delete darith.
10365         Fix all uses.  Change arith to multi if more than one insn emitted.
10366         * config/mips/5400.md (ir_vr54_arith): Likewise.
10367         * config/mips/5500.md (ir_vr55_arith): Likewise.
10368         * config/mips/7000.md (rm7_int_other): Likewise.
10369         * config/mips/9000.md (rm9k_int): Likewise.
10370         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
10371
10372 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
10373
10374         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
10375         to hold the subtype tree instead of recomputing it several times.
10376
10377 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10378
10379         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
10380         CC_INVERT.
10381         * config/mn10300/mn10300.md (cc): Remove "invert".
10382
10383 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10384
10385         * builtins.c (integer_valued_real_p): Add builtin rint.
10386         (fold_builtin): Likewise.
10387         * convert.c (convert_to_real): Likewise.
10388
10389         * convert.c (convert_to_real): Fix typos in `long double'
10390         builtins.
10391
10392 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
10393
10394         PR c++/14481
10395         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
10396         generated COMPOUND_EXPRs.
10397
10398 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10399
10400         * config/h8300/t-rtems (h8300-*-rtems*): New.
10401
10402 2004-03-16  Eric Christopher  <echristo@redhat.com>
10403
10404         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
10405
10406 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10407
10408         * config/i386/i386-protos.h: Add a prototype for
10409         ix86_reverse_condition.
10410         * config/i386/i386.c (ix86_reverse_condition): New.
10411         * config/i386/i386.h (REVERSE_CONDITION): Use
10412         ix86_reverse_condition.
10413         * config/i386/i386.md: Use ix86_reverse_condition instead of
10414         REVERSE_CONDITION.
10415
10416 2004-03-16  J. Brobecker  <brobecker@gnat.com>
10417
10418         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
10419
10420 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10421
10422         PR bootstrap/12974
10423         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
10424
10425 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10426
10427         * c-common.c (c_common_type_for_mode): Build vector types on
10428         demand.
10429         (handle_mode_attribute): Deprecate using the mode attribute
10430         to create vector types.  Fix indentation.
10431         (vector_type_node_list): Remove.
10432         (handle_vector_size_attribute): Create vector types on demand.
10433         Strip a NON_LVALUE_EXPR from the attribute if there is one.
10434         * c-typeck.c (comptypes): Make vector types compatible if they
10435         have the same underlying mode.
10436         (convert_for_assignment): Use comptypes to convert between
10437         vector types.
10438         * tree.c (build_common_tree_nodes_2): Do not create vector types.
10439         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
10440         vector types.
10441         * tree.h: Remove vector types.
10442         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
10443         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
10444         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
10445         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
10446         * doc/extend.texi (Vector Types): Document how to use the
10447         vector_size attribute to create vectors, rather than mode.
10448
10449         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
10450         * config/i386/emmintrin.h: Likewise.
10451         * config/i386/mmintrin.h: Likewise.
10452         * config/i386/xmmintrin.h: Likewise.
10453         * config/sh/ushmedia.h: Likewise.
10454
10455 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10456
10457         * config/freebsd-spec.h, config/arc/arc-protos.h,
10458         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
10459         config/arm/linux-gas.h, config/arm/semi.h,
10460         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
10461         config/ia64/freebsd.h, config/mips/7000.md,
10462         config/mips/9000.md, config/ns32k/ns32k-protos.h,
10463         config/sparc/pbd.h: Update copyright.
10464
10465 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10466
10467         PR target/14577
10468         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
10469
10470 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10471
10472         * combine.c (combine_simplify_rtx): Remove the "last"
10473         parameter and its documentation.  Adjust recursive calls.
10474         (simplify_logical): Always perform the only simplification
10475         controlled by "last", if the simplified expression is
10476         actually different.
10477         (try_combine): Do not pass the "last" parameter to
10478         combine_simplify_rtx.
10479
10480 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
10481
10482         PR target/14599
10483         * config/mips/mips.md (UNSPEC_GP): New constant.
10484         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
10485         an UNSPEC instead of (reg $gp).
10486         (mips16_gp_pseudo_reg): Change accordingly.
10487         (print_operand): Print $gp directly when handling CONST_GP_P.
10488
10489 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10490
10491         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
10492         * longlong.h: Make code 68060 clean when compiling for m68060.
10493
10494 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10495
10496         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
10497         * doc/md.texi: Clarify description of "i" constraint.
10498
10499 2004-03-15  James E Wilson  <wilson@specifixinc.com>
10500
10501         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
10502         Split store into store, fpstore, fpidxstore.  Fix all uses.
10503         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
10504         Likewise.
10505         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
10506         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
10507         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
10508         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
10509         ir_sr70_fstore): Likewise.
10510
10511 2004-03-15  Richard Henderson  <rth@redhat.com>
10512
10513         PR middle-end/14535
10514         * except.c (collect_one_action_chain): Record action for cleanup
10515         outer of exception spec.
10516
10517 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
10518
10519         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
10520         Fix the check for abort and only do the mmap if we can.
10521
10522 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
10523
10524         * config/sparc/sparc.h: Rework comments about the code model
10525         in 64-bit environment and the mode 'Pmode'.
10526         * doc/invoke.texi (SPARC options): Rework description of the
10527         different code models supported in 64-bit environment.
10528
10529 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
10530
10531         * defaults.h (REVERSIBLE_CC_MODE): Define.
10532         * jump.c (reversed_comparison_code_parts): Don't check if
10533         REVERSIBLE_CC_MODE is defined.
10534
10535 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
10536
10537         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
10538         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
10539         hosthooks.h, params.h, ra-colorize.c, web.c,
10540         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
10541         config/avr/avr-protos.h, config/avr/avr.md,
10542         config/fr30/fr30-protos.h, config/fr30/fr30.md,
10543         config/h8300/fixunssfsi.c, config/i386/darwin.h,
10544         config/i386/freebsd.h, config/i386/freebsd64.h,
10545         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
10546         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
10547         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
10548         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
10549         config/pa/pa64-regs.h, config/rs6000/aix41.h,
10550         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
10551         config/sparc/aout.h, config/sparc/freebsd.h,
10552         config/sparc/litecoff.h, config/vax/vax-protos.h,
10553         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
10554         copyright.
10555
10556 2004-03-15  Paul Brook  <paul@codesourcery.com>
10557
10558         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
10559
10560 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10561
10562         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
10563         (pp_c_cv_qualifier): Document.
10564         (pp_c_space_for_pointer_operator): Likewise.
10565         (pp_c_integer_constant): Likewise.
10566         (pp_c_identifier): Likewise.
10567         (pp_c_init_declarator): Don't print function body.
10568
10569 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10570
10571         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
10572         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
10573         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
10574         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
10575         wording and grammar.
10576
10577 2004-03-14  Roger Sayle  <roger@eyesopen.com>
10578
10579         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
10580         with lang_hooks.foo ().
10581         * builtins.c (expand_builtin_va_arg): Likewise.
10582         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
10583         c_common_type_for_mode, c_common_nodes_and_builtins,
10584         handle_mode_attribute, handle_vector_size_attribute): Likewise.
10585         * c-convert.c (convert): Likewise.
10586         * c-format.c (check_format_types): Likewise.
10587         * c-objc-common.c (c_tree_printer): Likewise.
10588         * c-typeck.c (build_unary_op, build_conditional_expr,
10589         build_binary_op): Likewise.
10590         * calls.c (try_to_integrate, expand_call,
10591         emit_library_call_value_1): Likewise.
10592         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
10593         Likewise.
10594         * cgraphunit.c (record_call_1, cgraph_analyze_function,
10595         cgraph_expand_function): Likewise.
10596         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
10597         * coverage.c (build_fn_info_type, build_ctr_info_type,
10598         build_gcov_info, create_coverage): Likewise.
10599         * dbxout.c (dbxout_init): Likewise.
10600         * diagnostic.c (diagnostic_report_current_function): Likewise.
10601         * dojump.c (do_jump): Likewise.
10602         * dwarf2out.c (dwarf2_name): Likewise.
10603         * except.c (init_eh): Likewise.
10604         * explow.c (expr_size, int_expr_size): Likewise.
10605         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
10606         Likewise.
10607         * expr.c (store_expr, store_constructor, safe_from_p,
10608         expand_expr_real, do_store_flag, try_casesi): Likewise.
10609         * function.c (push_function_context_to, pop_function_context_from,
10610         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
10611         put_var_into_stack, allocate_struct_function, current_function_name):
10612         Likewise.
10613         * integrate.c (copy_decl_for_inlining, expand_inline_function):
10614         Likewise.
10615         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
10616         lhd_print_error_function): Likewise.
10617         * opts.c (handle_option, decode_options): Likewise.
10618         * passes.c (open_dump_file): Likewise.
10619         * print-tree.c (print_node): Likewise.
10620         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
10621         expand_decl_cleanup, emit_case_nodes): Likewise.
10622         * stor-layout.c (variable_size): Likewise.
10623         * toplev.c (announce_function, wrapup_global_declarations,
10624         check_global_declarations, compile_file, default_tree_printer,
10625         process_options, lang_dependent_init, finalize): Likewise.
10626         * tree-dump.c (dequeue_and_dump): Likewise.
10627         * tree-inline.c (remap_decl, remap_block, copy_body_r,
10628         initialize_inlined_parameters, declare_return_variable,
10629         inlinable_function_p, expand_call_inline, optimize_inline_calls,
10630         walk_tree, copy_tree_r): Likewise.
10631         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10632         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
10633         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
10634         variably_modified_type_p, dump_tree_statistics): Likewise.
10635         * varasm.c (assemble_variable, compare_constant, copy_constant,
10636         force_const_mem, compute_reloc_for_constant, output_constant,
10637         output_addressed_constants, initializer_constant_valid_p): Likewise.
10638
10639 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
10640
10641         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
10642
10643 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
10644
10645         * doc/install.texi: Reflect autoconf and automake version for
10646         libffi. Update autoconf version to 2.59.
10647
10648 2004-03-13  Roger Sayle  <roger@eyesopen.com>
10649
10650         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
10651         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
10652         make_range, build_range_check, fold_range_test, unextend,
10653         constant_boolean_node, fold_binary_op_with_conditional_arg,
10654         fold_truthop, fold_mathfn_compare, fold_inf_compare,
10655         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
10656         with lang_hooks.foo ().
10657
10658 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
10659
10660         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
10661
10662 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
10663
10664         * doc/install.texi: Note status of -fnew-ra.
10665
10666 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10667
10668         PR middle-end/14470
10669         * expr.c (store_expr): Call emit_queue before generating the move
10670         from the temporary to the original target.  Protect the temporary
10671         from emit_queue.
10672
10673 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
10674
10675         PR target/14533
10676         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
10677         other than UNSPEC_GOTOFF.
10678
10679 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
10680
10681         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
10682         to arm_legitimate_index_p.  Update all callers with SET as default
10683         value.
10684         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
10685         range if OUTER is a sign-extend operation on QImode.  Correctly
10686         reject shift operations on sign-extended QImode addresses.
10687         (bad_signed_byte_operand): Delete.
10688         (arm_extendqisi_mem_op): New function.
10689         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
10690         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
10691         constraints.
10692         (CONSTRAINT_LEN): New.
10693         (EXTRA_CONSTRAINT): Delete.  Replace with...
10694         (EXTRA_CONSTRAINT_STR): ... this.
10695         (PREDICATE_CODES): Remove bad_signed_byte_operand.
10696         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
10697         is now always default.
10698         (define_splits for bad sign-extend loads): Delete.
10699         (arm_extendqisi, arm_extendqisi_v5): Likewise.
10700         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
10701         Rework 'U' constraint to 'Uv'.
10702         * arm-protos.h: Remove bad_signed_byte_operand.  Add
10703         arm_extendqisi_mem_op.
10704         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
10705         Add Uq constraint.
10706
10707 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
10708
10709         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
10710         with targetm version.
10711
10712         PR target/14567
10713         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
10714         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
10715         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
10716         Update all users of RS6000_ARG_SIZE.
10717         (function_arg_advance): Count fregno using mode size.
10718         (function_arg): Handle long double split over regs and memory.
10719         (function_arg_partial_nregs): Likewise.
10720         (rs6000_va_arg): Repackage complex args.
10721
10722 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
10723
10724         PR target/14047
10725         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
10726         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
10727         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
10728
10729 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
10730
10731         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
10732         prototype.
10733         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
10734         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
10735
10736 2004-03-12  Andrew Pinski  <apinski@apple.com>
10737
10738         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
10739         Use ret instead of result. Use addr instead of base.
10740
10741 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
10742
10743         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
10744         fixes required by libstdc++ and update installation instructions
10745         for libstdc++.a.
10746
10747 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
10748
10749         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
10750         leading '@' on fastcall symbols before stripping suffix.
10751
10752 2004-03-12  Roger Sayle  <roger@eyesopen.com>
10753
10754         * combine.c (unmentioned_reg_p): New function to check whether an
10755         expression is a "specialization" of another, i.e. that there are
10756         no registers or memory references mentioned in the first that don't
10757         appear in the second.
10758         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
10759         (combine_instructions): Also try combining instructions using the
10760         REG_EQUAL note from a preceding log-linked instruction.
10761
10762 2004-03-12  Roger Sayle  <roger@eyesopen.com>
10763
10764         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
10765
10766 2004-03-12  Matt Austern  <austern@apple.com>
10767
10768         * target.h (struct gcc_target): New target hook, unwind_label.
10769         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
10770         * output.h (default_emit_unwind_label): New function.
10771         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
10772         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
10773         (TARGET_SUPPORTS_HIDDEN): New target macro.
10774         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
10775         that corresponds to this FDE.
10776         (FRAME_BEGIN_LABEL): Allow target to override default label.
10777         (output_call_frame_info): If FDEs are linknonce, then use extra
10778         indirection for FDE encoding, output a label for each FDE, and
10779         output an empty label for each function without an FDE.
10780         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
10781         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
10782         decls with DECL_ONE_ONLY set, if that macro is defined.
10783         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
10784         for a SUPPORTS_ONE_ONLY target.
10785         * config/darwin-protos.h (darwin_unique_section): Declare.
10786         (darwin_asm_named_section): Likewise.
10787         (darwin_section_type_flags): Likewise.
10788         (darwin_non_lazy_pcrel): Likewise.
10789         (darwin_emit_unwind_label): Likewise.
10790         (darwin_make_decl_one_only): Likewise.
10791         * config/darwin.c (machopic_finish): Get rid of tweak that
10792         eliminate stubs for symbols that are defined.
10793         (darwin_encode_section_info): Don't treat weak functions as defined.
10794         (darwin_make_decl_one_only): Define.
10795         (darwin_asm_named_section): Likewise.
10796         (darwin_section_type_flags): Likewise.
10797         (darwin_unique_section): Likewise.
10798         (darwin_emit_unwind_label): Likewise.
10799         (darwin_non_lazy_pcrel): Likewise.
10800         (darwin_asm_output_dwarf_delta): Difference between two labels is
10801         local only if both labels are local.
10802         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
10803         (ASM_MAKE_LABEL_LINKONCE): Likewise.
10804         (TARGET_SUPPORTS_HIDDEN): Likewise.
10805         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
10806         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
10807         (FRAME_BEGIN_LABEL): Likewise.
10808         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
10809         (ASM_DECLARE_FUNCTION_NAME): Likewise.
10810         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
10811         (TARGET_ASM_UNIQUE_SECTION): Define.
10812         (EH_FRAME_SECTION_NAME): Define.
10813         (EH_FRAME_SECTION_ATTR): Likewise.
10814         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
10815         (TARGET_ASM_NAMED_SECTION): Likewise.
10816         (TARGET_SECTION_TYPE_FLAGS): Likewise.
10817         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
10818         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
10819         TARGET_ASM_EMIT_UNWIND_LABEL.
10820
10821 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10822
10823         * builtins.c (expand_builtin_mathfn): Add pow10* to the
10824         existing exp10* case.
10825         (expand_builtin): Likewise.
10826
10827 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10828
10829         * doc/tm.texi (registers) <Values in Registers>: Add
10830         entry for REGMODE_NATURAL_SIZE.
10831
10832 2004-03-12  Richard Henderson  <rth@redhat.com>
10833
10834         PR target/14547
10835         * target.h (struct gcc_target): Move calls substructure before
10836         booleans.  Add split_complex_arg.
10837         * function.c (assign_parms, split_complex_args): Use it.
10838         * calls.c (expand_call): Likewise.
10839         (split_complex_values): Likewise.  Check for splittable types
10840         before allocating memory.
10841         (split_complex_types): Likewise.
10842         * system.h (SPLIT_COMPLEX_ARGS): Poison.
10843         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
10844         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
10845         * config/alpha/alpha.c (alpha_split_complex_arg): New.
10846         (TARGET_SPLIT_COMPLEX_ARG): New.
10847         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
10848         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
10849         (rs6000_override_options): Zap it for non-AIX.
10850         (rs6000_function_value): Use targetm.calls.split_complex_arg.
10851         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
10852         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
10853         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
10854         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
10855         SPLIT_COMPLEX_ARGS entry.
10856
10857 2004-03-11  Richard Henderson  <rth@redhat.com>
10858
10859         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
10860         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
10861         (alpha_emit_xfloating_arith): Update to match.
10862         (alpha_emit_xfloating_compare): Likewise.
10863         (alpha_emit_xfloating_cvt): Likewise.
10864         (alpha_emit_xfloating_libcall): Take already built symbol,
10865         mark call const.
10866         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
10867         op1 in a register.
10868
10869 2004-03-11  Richard Henderson  <rth@redhat.com>
10870
10871         PR target/14539
10872         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
10873
10874         * simplify-rtx.c (simplify_relational_operation): Fix typo.
10875
10876 2004-03-11  Richard Henderson  <rth@redhat.com>
10877
10878         PR middle-end/14477
10879         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
10880
10881 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
10882
10883         PR target/14262
10884         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
10885         defined, pass small BLKmode values in registers in the low-order part.
10886
10887 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
10888
10889         * combine.c (if_then_else_cond): Check for NULL return value of
10890         simplify_gen_subreg.
10891
10892 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
10893
10894         PR target/14496
10895         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
10896         TARGET_SINGLE_FLOAT.
10897
10898 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
10899
10900         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
10901         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
10902         * config/ia64/ia64.c (ia64_init_libfuncs): New.
10903         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
10904
10905 2004-03-11  Roger Sayle  <roger@eyesopen.com>
10906
10907         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
10908         -((int)X>>C) where C is an integer constant one bit less than the
10909         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
10910         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
10911
10912         * simplify-rtx.c (simplify_unary_operation): Also implement the
10913         above transformations at the RTL level.
10914
10915 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
10916
10917         * real.c (encode_ibm_extended): Do round low word.
10918
10919 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
10920
10921         * config/arm/arm.md (is_xscale): Comment this attribute and move
10922         it a bit further up in the file, closer to related attributes.
10923
10924 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
10925
10926         * config/host-solaris.c (sol_gt_pch_use_address): Add
10927         missing terminating marker to comment.
10928
10929 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
10930
10931         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
10932         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
10933         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
10934         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
10935         move_operand as source predicate in all cases.
10936         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
10937         Test reg_or_0_operand.  Use move_operand as source predicate.
10938         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
10939         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
10940         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
10941         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
10942         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
10943         Use move_operand as source predicate.  Remove 'K' constraint.
10944         (*movqi_internal): Likewise movqi_internal.
10945         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
10946         reg_or_0_operand.  Use move_operand as source predicate.
10947         (*movsf_softfloat): Likewise movsf_internal2.
10948         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
10949         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
10950         (*movdf_softfloat): Likewise movdf_internal2.
10951         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
10952         for DImode if !TARGET_64BIT.
10953         (mips_legitimize_move): Simplify accordingly.
10954
10955 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
10956
10957         PR/14362
10958         * var-tracking.c (struct variable_def): Added field refcount.
10959         (variable_htab_free): Decrease the refcount and delete variable
10960         only if there are no more references.
10961         (unshare_variable): New function.
10962         (vars_copy_1): Increase refcount instead of copying the variable.
10963         (variable_union): Share the variables where possible, unshare
10964         the variables if needed.
10965         (variable_different_p): Return false if var1 and var2 are
10966         the same structure.
10967         (variable_was_changed): Init the refcount of new variable.
10968         (set_frame_base_location): Unshare variable if needed.
10969         (set_variable_part): Init the refcount of new variable.
10970         Unshare the variables if needed.
10971         (delete_variable_part): Unshare the variables if needed.
10972         (emit_notes_for_differences_1): Init the refcount of new variable.
10973         (vt_add_function_parameters): Do not add function parameters to
10974         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
10975         (vt_initialize): Do not add frame_base_decl to IN set of
10976         ENTRY_BLOCK_PTR because it is unused anyway.
10977
10978 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
10979
10980         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
10981         (vars_copy): Likewise.
10982         (variable_union): Likewise.
10983         (set_variable_part): Likewise.
10984         (delete_variable_part): Likewise.
10985
10986 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
10987
10988         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
10989         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
10990         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
10991         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
10992         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
10993         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
10994         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
10995         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
10996         config/stormy16/stormy16.c: Fix comment typos and formatting.
10997
10998 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
10999
11000         * configure: Regenerate, since I forgot to while committing Paolo's
11001         changes.
11002
11003 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11004
11005         PR ada/14131
11006         Move language detection to the top level.
11007         * configure.ac: Remove code to detect languages,
11008         it now lives exclusively in the top level.
11009         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11010         top level, renamed to ACX_PROG_GNAT.
11011
11012 2004-03-10  Richard Henderson  <rth@redhat.com>
11013
11014         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11015         extra arguments.
11016         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11017         and host_xmake_file fragments.
11018         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11019         (gt_pch_restore): Similarly for gt_pch_use_address.
11020         (default_gt_pch_get_address): New.
11021         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11022         (default_gt_pch_use_address): Split out of gt_pch_restore.
11023         (mmap_gt_pch_use_address): Likewise.
11024         * hooks.c (hook_voidp_size_t_null): Remove.
11025         (hook_bool_voidp_size_t_false): Remove.
11026         * hooks.h: Likewise.
11027         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11028         default_ or mmap_ definitions.
11029         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11030         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11031         and gt_pch_use_address.
11032         * config/host-linux.c, config/host-solaris.c: New files.
11033         * config/x-linux, config/x-solaris: New files.
11034         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11035         Update for changed definition.
11036         (darwin_rs6000_gt_pch_use_address): Likewise.
11037         * doc/hostconfig.texi: Update docs.
11038
11039 2004-03-10  Richard Henderson  <rth@redhat.com>
11040
11041         PR c/14517
11042         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11043         except for pedantic c90 mode.
11044
11045 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11046
11047         * configure.ac: Bump AC_PREREQ to 2.59.
11048         * configure: Regenerate.
11049
11050 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11051
11052         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11053         (exp10_optab, exp2_optab): Define corresponding macros.
11054         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11055         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11056         using exp10?f2 and exp2?f2 patterns.
11057         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11058         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11059         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11060         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11061
11062         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11063         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11064         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11065
11066 2004-03-10  Anthony Green  <green@redhat.com>
11067
11068         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11069
11070 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11071
11072         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11073         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11074         __LONGDOUBLE128.
11075         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11076         TARGET_OS_AIX_CPP_BUILTINS.
11077         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11078         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11079         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11080         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11081         previous change.
11082
11083 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11084
11085         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11086
11087 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11088
11089         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11090         __LONGDOUBLE128 on AIX.
11091
11092 2004-03-10  Andrew Haley  <aph@redhat.com>
11093
11094         PR optimization/14381
11095         * function.c (expand_function_end): Emit a blockage insn before
11096         the epilogue when -fnon-call-exceptions is used.
11097
11098         * except.c (expand_start_all_catch): Make comment more accurate.
11099
11100 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11101
11102         PR target/14480
11103         * config/rs6000/t-rtems: Add missing file on branch.
11104
11105 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11106
11107         * dbxout.c (dbxout_symbol_location): Do not output references
11108         to optimized-out constant pool symbols.
11109
11110 2004-03-10  Andreas Schwab  <schwab@suse.de>
11111
11112         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11113         twon34_r.
11114
11115 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11116
11117         * alias.c (alias_sets_might_conflict_p): New.
11118         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11119         * common.opt (Wstrict-aliasing=): New.
11120         * flags.h (warn_strict_aliasing): Change type to int.
11121         * opts.c (warn_strict_aliasing): Change type to int.
11122         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11123         * tree.h (alias_sets_might_conflict_p): Declare it.
11124         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11125
11126 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11127
11128         PR bootstrap/12371
11129         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11130         (CALL_USED_REGISTERS): Likewise.
11131         (REG_CLASS_CONTENTS): Likewise.
11132         (REG_ALLOC_ORDER): New.
11133         (REGNO_REG_CLASS): Use regno_reg_class.
11134         * config/m68k/m68k.c: Add regno_reg_class array.
11135
11136 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11137
11138         * config/ia64/ia64.md (divsi3): Fix algorithm.
11139           (udivsi3): Ditto.
11140           (setf_exp_xf): Remove '*' from name.
11141         * testsuite/gcc.dg/20040309-1.c: New test.
11142
11143 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11144
11145         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11146         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11147         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11148         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11149         (sparc_aout_select_rtx_section): Don't check
11150         SUNOS4_SHARED_LIBRARIES.
11151         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11152
11153 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11154
11155         PR other/14474
11156         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11157         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11158         INTERNALS".
11159
11160 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11161
11162         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11163         (LIBGCC_SPEC): Update to match.
11164
11165 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11166
11167         * c-decl.c (last_function_parms, last_function_parm_tags)
11168         (last_function_parm_others, current_function_parms)
11169         (current_function_parm_tags, current_function_parm_others):
11170         Delete.
11171         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11172         New macros.
11173         (grokdeclarator): For function definitions, save the arg-info
11174         block from the declarator in DECL_ARGUMENTS.
11175         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11176         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11177         contains only PARM_DECLs.  Improve diagnostics.
11178         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11179         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11180         (store_parm_decls_newstyle): Take the function to operate on,
11181         and an arg-info block, as arguments; don't get anything from
11182         current_function_* globals.
11183         (store_parm_decls_oldstyle): Likewise.
11184         (store_parm_decls): Pass fndecl and its arg-info block down to
11185         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11186         argument lists through store_parm_decls_newstyle to reduce
11187         overhead.
11188         (pushdecl): Comment on the problems with the call to copy_node.
11189         Clear DECL_ARGUMENTS of the old node after copying it, if it
11190         is an arg-info block instead of a chain of decls.
11191         (start_function): Do not manipulate current_function_parm* or
11192         last_function_parm*.
11193
11194 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11195             Andrew Pinski  <pinskia@physics.uc.edu>
11196
11197         * ifcvt.c (noce_try_sign_mask): New function to transform
11198         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11199         (noce_process_if_block): Call noce_try_sign_mask.
11200
11201 2004-03-09  Andrew Pinski  <apinski@apple.com>
11202
11203         * c-typeck.c (tagged_types_tu_compatible_p):
11204         Fix typo.
11205
11206 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11207
11208         * simplify-rtx.c (simplify_const_relational_operation): New function
11209         renamed from simplify_relational_operation.
11210         (simplify_relational_operation): Change prototype to accept an
11211         additional mode argument.  Call simplify_const_relational_operation.
11212         (simplify_gen_relational): Update simplify_relational_operation call.
11213         (simplify_ternary_operation): Update simplify_relational_operation
11214         subroutine call to use simplify_const_relational_operation instead.
11215
11216         * rtl.h (simplify_const_relational_operation): Prototype here.
11217         (simplify_relational_operation): Add addtional mode argument.
11218
11219         * combine.c (combine_simplify_rtx): Update calls to
11220         simplify_relational_operation.
11221         (simplify_set): Likewise.
11222         (gen_binary): Likewise.
11223         * cse.c (fold_rtx): Likewise.
11224         * dojump.c (compare_from_rtx): Likewise.
11225         (do_compare_rtx_and_jump): Likewise.
11226         * integrate.c (subst_constants): Likewise.
11227         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11228
11229 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11230
11231         * config/m32r/m32r.md: Remove all define_peephole's.
11232
11233 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11234
11235         * config/rs6000/rs6000.md: Remove trailing whitespace.
11236
11237 2004-03-08  Eric Christopher  <echristo@redhat.com>
11238
11239         * Makefile.in (site.exp): Add libiconv variable definition.
11240
11241 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11242
11243         * configure: Regenerate for config/accross.m4 correction.
11244
11245 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11246
11247         PR target/14480
11248         * config/rs6000/t-rtems: Add missing file on branch.
11249
11250 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11251
11252         PR middle-end/14289
11253         * c-typeck.c (c_mark_addressable): A register variable should
11254         be considered global if its not automatic, i.e. TREE_PUBLIC,
11255         TREE_STATIC or DECL_EXTERNAL.
11256         * function.c (put_var_into_stack): Call abort when placing a
11257         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11258
11259 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11260
11261         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11262         ("*extendqisi2_short_displ"): Likewise.
11263
11264 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11265
11266         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11267         (comp_operator): Likewise.
11268         * config/pdp11/pdp11-protos.h: Remove corresponding
11269         prototypes.
11270
11271 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11272
11273         * expr.c (highest_pow2_factor_for_type): Rename into
11274         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11275         TYPE_ALIGN when the target is a COMPONENT_REF.
11276         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11277
11278 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11279
11280         * config/rs6000/rs6000.c: Formatting fix.
11281         (legitimate_offset_address_p): Correct offset range check.
11282
11283         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11284         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11285         and MASK_STRING.
11286
11287 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11288
11289         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11290         for little endian.
11291         ("ashrdi3_no_power"): Disable for little endian.
11292         (ashrdi3): Same.
11293
11294 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11295
11296         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11297         builtins.
11298
11299 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11300
11301         PR target/14471
11302         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11303         case, checking for -no-mul-bug-abort option.
11304         * configure, config.in: Regenerate.
11305         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11306         and -mno-mul-bug-workaround.
11307         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11308         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11309         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11310         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11311         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11312         sure mulu.d is not last on cache-line.
11313         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11314         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11315         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11316         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11317         -mno-mul-bug-workaround.
11318         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11319         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11320         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11321         relation to MULT in head comment.
11322         (cris_op_str): Abort for MULT.
11323         (cris_print_operand) <case '!'>: New case.
11324
11325 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11326
11327         PR debug/11983
11328         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11329         dw_val_class_vec.  Replace use throughout file.
11330         (dw_float_const): Delete.
11331         (dw_vec_const): New.
11332         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11333         throughout file.
11334         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11335         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11336         (size_of_die): Adjust dw_val_class_vec sizing.
11337         (output_die): Output dw_val_class_vec.
11338         (insert_int, extract_int, insert_float): New functions.
11339         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11340         Handle CONST_VECTOR.
11341         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11342
11343 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11344
11345         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
11346         AltiVec abi cannot co-exist.
11347
11348         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
11349
11350 2004-03-07  Jan Hubicka  <jh@suse.cz>
11351
11352         * except.c (emit_to_new_bb_before):  Break fallthru edges.
11353
11354 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
11355
11356         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
11357         ("*lshrsi3"): Also accept an immediate for 68HC12.
11358         ("*ashrsi3_const"): Likewise.
11359         ("*ashrsi3"): Likewise.
11360         ("*ashlsi3_const"): Likewise.
11361         ("*ashlsi3"): Likewise.
11362         ("cmphi_1_hc12"): Compare two hard register by pushing them and
11363         comparing with a pop; don't use a split for that.
11364         ("cmphi split"): Disable compare split for 68HC12.
11365
11366         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
11367         the status operands if they have side effects.
11368
11369 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11370
11371         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
11372         definition.
11373         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
11374         config/h8300/h8300.h, config/ia64/ia64.h,
11375         config/mcore/mcore.h, config/mmix/mmix.h,
11376         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11377         config/stormy16/stormy16.h, config/v850/v850.h,
11378         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
11379         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
11380         definition.
11381
11382 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11383
11384         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
11385         <XOR_EXPR>: Fold x ^ x as zero.
11386         <AND_EXPR>: Fold x & x as x.
11387
11388 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11389
11390         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
11391         "foo++ == const" into "++foo == const+incr".
11392
11393 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
11394
11395         * config/mips/mips.c (mips_in_small_data_p): Return false if
11396         TARGET_ABICALLS.
11397
11398 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
11399
11400         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
11401         the stack register.
11402         (expand_prologue): Don't make an interrupt or a trap handler a far
11403         symbol.
11404         (m68hc11_initial_elimination_offset): Likewise.
11405
11406 2004-03-06  Richard Henderson  <rth@redhat.com>
11407
11408         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
11409
11410 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11411
11412         * config/ns32k/ns32k-protos.h: Add a prototype for
11413         ns32k_notice_update_cc.
11414         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
11415         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
11416         ns32k_notice_update_cc.
11417
11418 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
11419
11420         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
11421         "*load_multiple_si"): Allow only if reload_completed.
11422         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
11423         Likewise.
11424
11425 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11426
11427         * config/vax/vax-protos.h: Add a prototype for
11428         vax_notice_update_cc.
11429         * config/vax/vax.c (vax_notice_update_cc): New.
11430         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
11431         vax_notice_update_cc.
11432
11433 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
11434
11435         * collect2.c (main): Only export initfunc and finifunc if
11436         LD_INIT_SWITCH not defined.
11437         (scan_prog_file): Only export constructors and destructors if
11438         LD_INIT_SWITCH not defined.  Only export symbols not found in
11439         shared objects.
11440
11441 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11442
11443         * pa.md (icacheflush): Reorder operands to make match_scratch operand
11444         last.
11445         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
11446         from calls to gen_icacheflush.
11447
11448 2004-03-06  Richard Henderson  <rth@redhat.com>
11449
11450         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
11451         (TARGET_LONG_DOUBLE_128): New.
11452         (TARGET_SWITCHES): Add long-double-{128,64}.
11453         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
11454         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
11455         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
11456         (WIDEST_HARDWARE_FP_SIZE): New.
11457         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
11458         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
11459         if TARGET_VAX_FLOAT.
11460         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
11461         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
11462
11463 2004-03-06  Richard Henderson  <rth@redhat.com>
11464
11465         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
11466         botched rtx class conversion.
11467
11468 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11469
11470         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
11471         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
11472
11473         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
11474         macros.
11475         * fold-const.c (fold_mathfn_compare, fold): Likewise.
11476
11477 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
11478
11479         PR target/14343
11480         * config/i386/i386.md (movv2di_internal): Conditionalize on
11481         TARGET_SSE, not TARGET_SSE2.
11482
11483 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
11484
11485         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
11486         duplicated line.
11487
11488 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11489
11490         * builtins.c: Consistently use logN not log* in comments.
11491
11492 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11493
11494         * rtl.h (mem_expr_equal_p): Function prototype added.
11495         * cfgcleanup.c (merge_memattrs): New function.
11496         (flow_find_cross_jump): Call merge_memattrs for matching insns.
11497         * emit-rtl.c (mem_expr_equal_p): New function.
11498
11499 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
11500
11501         * objc/objc-act.c (synth_module_prologue): Const-qualify
11502         objc_selector type if using the GNU runtime; fix generated
11503         signatures for objc_msg_lookup and objc_msg_lookup_super
11504         to match what GNU ObjC headers provide; reformat and clean up.
11505         (synth_self_and_ucmd_args): Use previously constructed (and
11506         hence possibly const-qualified) objc_selector type.
11507
11508 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11509
11510         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
11511
11512 2004-03-05  Jason Merrill  <jason@redhat.com>
11513
11514         * tree.h (TYPE_HASH): Use TYPE_UID.
11515         (TREE_HASH): New macro with old definition of TYPE_HASH.
11516         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
11517         (build_array_type, build_function_type): Likewise.
11518         (build_method_type_directly): Likewise.
11519         (build_offset_type, build_complex_type): Likewise.
11520         (type_hash_list, attribute_hash_list): Likewise. Now static.
11521         * except.c: s/TYPE_HASH/TREE_HASH/.
11522
11523 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
11524
11525         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
11526         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
11527         __va_ndx by 2 words when referencing an argument on the stack.
11528         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
11529         words when an arg on the stack is first seen.
11530
11531 2004-03-05  Paul Brook  <paul@codesourcery.com>
11532
11533         * arm.h (ARM_FLAG_VFP): Remove.
11534         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
11535         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
11536
11537 2004-03-05  Paul Brook  <paul@codesourcery.com>
11538
11539         * function.c (assign_parms): Include pretend alignment offset.
11540
11541 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11542
11543         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
11544         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
11545
11546 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
11547
11548         * configure.ac: When passing --enable-languages to subdir
11549         configure when host != build, make sure we don't pass an empty
11550         value.
11551         * configure: Regenerate.
11552
11553 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
11554
11555         PR 13577
11556         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
11557         options.
11558
11559 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
11560
11561         * simplify-rtx.c (simplify_relational_operation): If
11562         flag_wrapv is set, do not move terms between the two
11563         side of a relational operator.
11564
11565 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
11566
11567         * rtlanal.c: Include target.h and output.h
11568         (rtx_cost, address_cost, default_address_cost): Move from...
11569         * cse.c (rtx_cost, address_cost, default_address_cost):
11570         ... this file.
11571         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
11572         * Makefile.in: Adjust dependencies.
11573
11574 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
11575
11576         * cse.c (cse_end_of_basic_block): Make static.
11577         * local-alloc.c (function_invariant_p): Move to
11578         reload1.c.
11579         * loop.c (libcall_other_reg, record_excess_regs):
11580         Make static.
11581         * reload1.c (function_invariant_p): Moved here
11582         from local-alloc.c, made static.
11583         * rtl.h (cse_end_of_basic_block, function_invariant_p,
11584         libcall_other_reg, record_excess_regs): Remove
11585         declarations.
11586
11587 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11588
11589         * config/m32r/m32r.c (signed_comparison_operator): Add a
11590         missing parenthesis.
11591
11592 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
11593
11594         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
11595         going to call mmap again.  Read the file into the right place.
11596         Give a fatal error if we have to relocate.
11597
11598 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
11599
11600         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
11601         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
11602
11603 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
11604
11605         PR other/14354
11606         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
11607         round the same.  When rounding, clear bits that would cause a
11608         second rounding in pack_d.
11609         (_fpmul_parts): Ditto.  Remove #if 0:d code.
11610
11611 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
11612
11613         PR c++/14425, c++/14426
11614         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
11615         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
11616         Change C++ definitions to accept a 'const int' argument;
11617         the prototypes already do.
11618         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
11619         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
11620         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
11621         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
11622         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
11623         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
11624         end in ..._int; change them to accept an int instead of a char
11625         as the last parameter.
11626
11627 2004-03-04  Phil Edwards  <phil@codesourcery.com>
11628
11629         * genmultilib:  Change '=' to '-' when translating option names
11630         to directory names.
11631
11632 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11633
11634         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
11635         stack slot for temp used for result of BLKmode but in integral mode.
11636
11637 2004-03-04  Jan Hubicka  <jh@suse.cz>
11638
11639         * reload.c (find_reloads): Reorganize if seqeunce to switch.
11640
11641         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
11642         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
11643
11644 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
11645
11646         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
11647         * testsuite/gcc.dg/20040303-1.c: New test.
11648
11649 2004-03-04  Steven Bosscher  <stevenb@suse.de>
11650
11651         * ppro.md: Rewrite as a DFA pipeline description.
11652         * i386.md: Remove all uses of the ppro_uops attribute.
11653         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
11654         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
11655         ix86_sched_reorder, ix86_variable_issue,
11656         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
11657         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
11658         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
11659         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
11660         * athlon.md (athlon_ssecmp_load): Fix comment
11661
11662 2004-03-04  Stuart Hastings  <stuart@apple.com>
11663
11664         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
11665
11666 2004-03-04  Stuart Hastings  <stuart@apple.com>
11667
11668         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
11669         686, tell Darwin assembler to allow prefetch insns, non-empty def
11670         of SUBTARGET_OPTION_TRANSLATE_TABLE.
11671
11672 2004-03-04  DJ Delorie  <dj@redhat.com>
11673
11674         PR optimization/14282
11675         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
11676         between a call and the assignment of its return value.
11677
11678 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11679
11680         * config/h8300/h8300.c: Put a comment for every function.
11681
11682 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
11683
11684         * config/h8300/h8300.md: Add comments about peephole2's.
11685
11686 2004-03-04  Steven Bosscher  <stevenb@suse.de>
11687
11688         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
11689
11690 2004-03-04  Jan Hubicka  <jh@suse.cz>
11691
11692         * cfgcleanup.c (thread_jump): Update call of cselib_init.
11693         * cselib.c (cselib_record_memory): New static variable.
11694         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
11695         Give up on memories when asked for.
11696         (cselib_init): Accept new argument.
11697         * cselib.h (cselib_init): Update prototype.
11698         * gcse.c (local_cprop_pass): Update call of cselib_init.
11699         * loop.c (load_mems): Update call of cselib_init.
11700         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
11701         * sched-deps.c (sched_analyze): Update call of cselib_init.
11702
11703 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
11704             GP <gp@qnx.com>
11705
11706         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
11707         when compiling PIC.
11708
11709 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
11710
11711         PR/14362
11712         * var-tracking.c (track_expr_p): Do not track variables which
11713         should be ignored for debugging purposes.
11714
11715 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11716
11717         * real.c (encode_ibm_extended): Don't bother rounding low double.
11718         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
11719         when fmt->pnan < fmt->p.
11720
11721 2004-03-04  Eric Christopher  <echristo@redhat.com>
11722
11723         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
11724         only range of valid arg registers and fixed_regs.
11725
11726 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11727
11728         PR target/14406
11729         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
11730         (abstf2, abstf2_internal): New define_expand.
11731
11732 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
11733
11734         PR optimization/14235
11735         * expr.c (convert_move): Copy the source to a new pseudo
11736         when converting from a sub-word source to a larger-than-word
11737         register which conflicts with the source.
11738
11739 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
11740
11741         PR 13728
11742         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
11743         parameters with the same name, unless one is a forward decl.
11744         Do not issue a redundant-redeclaration warning for forward
11745         decls of parameters.
11746
11747 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
11748
11749         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
11750         configuration.
11751
11752 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
11753
11754         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
11755
11756 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
11757
11758         * target-def.h (TARGET_OPTF): Delete.
11759         * c-opts.c (TARGET_OPTF): Define.
11760
11761 2004-03-04  Jan Hubicka  <jh@suse.cz>
11762
11763         * cselib.c (cselib_finish): Fix another miss-application of my previous
11764         patch.
11765
11766 2004-03-03  Mike Stump  <mrs@apple.com>
11767
11768         Add framework support for darwin.
11769
11770         * c-incpath.c: Include target.h and machmode.h.
11771         (add_path): Use a consistent style for cpp_dir.  Initialize
11772         p->construct to 0.
11773         (add_cpp_dir_path): New.
11774         (register_include_chains): Add use of extra_includes callback.
11775         (hook_void_int): Add.
11776         (target_c_incpath): Add.
11777         * c-incpath.h (add_cpp_dir_path): New.
11778         (target_c_incpath_s): Add.
11779         (target_c_incpath): Add.
11780         (C_INCPATH_INIT): Add.
11781         * c-opts.c (c_common_missing_argument,
11782         c_common_handle_option): Add -F argument processing.
11783         * c.opt: Add -F argument processing.
11784         * gcc.c (trad_capable_cpp): Add -F argument processing.
11785         * cppfiles.c (find_file_in_dir): Update to use construct
11786         callback.
11787         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
11788         cpp_get_prev): New.
11789         (_cpp_find_file): Use search_path_exhausted.
11790         (make_cpp_dir): Initialize construct to 0.
11791         * cpplib.h (missing_header_cb
11792         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
11793         (cpp_callbacks): Add missing_header
11794         (cpp_dir): Add construct.
11795         * target-def.h: (TARGET_OPTF): New.
11796         * hooks.c (hook_void_int, hook_void_charptr): Add.
11797         * hooks.h (hook_void_int, hook_void_charptr): Add.
11798         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
11799         $(MACHMODE_H) dependencies.
11800         * doc/invoke.texi (Darwin Options): Document -F.
11801         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
11802         (TARGET_OPTF): Add.
11803         * fix-header.c (target_c_incpath): Add.
11804
11805         * config/darwin-c.c: Add c-incpath.h include.
11806         (using_frameworks, find_subframework_file,
11807         find_subframework_header, add_system_framework_path,
11808         frameworks_in_use, num_frameworks, max_frameworks,
11809         add_framework, find_framework, struct framework_header,
11810         framework_header_dirs, framework_construct_pathname,
11811         find_subframework_file, add_system_framework_path,
11812         add_framework_path, framework_defaults,
11813         darwin_register_frameworks, find_subframework_header): Add.
11814         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
11815         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
11816         (CPP_SPEC): Add __APPLE_CC__ support.
11817         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
11818
11819 2004-03-04  Jan Hubicka  <jh@suse.cz>
11820
11821         * cselib.c (cselib_finish): Fix miss-application of my previous
11822         patch.
11823
11824 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
11825
11826         * hooks.c (hook_tree_tree_identity): New.
11827         * hooks.h: Add a prototype for hook_tree_tree_identity.
11828         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
11829         instead of MD_ASM_CLOBBERS.
11830         * system.h (MD_ASM_CLOBBERS): Poison.
11831         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
11832         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
11833         * target.h (gcc_target): Add md_asm_clobbers.
11834         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
11835         (ix86_md_asm_clobbers): New.
11836         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
11837         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
11838         TARGET_MD_ASM_CLOBBERS.
11839
11840 2004-03-03  Stuart Hastings  <stuart@apple.com>
11841
11842         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
11843
11844 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
11845
11846         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
11847
11848         * config/sparc/sparc.h (ASM_FLOAT): Delete.
11849         (ASM_DOUBLE): Likewise.
11850         (ASM_LONGDOUBLE): Likewise.
11851         * config/sparc/pbd.h (ASM_INT_OP): Delete.
11852
11853 2004-03-03  Richard Henderson  <rth@redhat.com>
11854
11855         PR opt/13862
11856         * cselib.c (cselib_record_sets): Don't record multiple sets in
11857         asm insns.
11858
11859 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
11860
11861         * common.opt: Add description of the new -fgcse-after-reload flag.
11862
11863         * flags.h (flag_gcse_after_reload): Declaration of global variable.
11864
11865         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
11866         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
11867         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
11868         get_bb_avail_insn, hash_scan_set_after_reload,
11869         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
11870         gcse_after_reload, get_bb_avail_insn): New functions to implement
11871         gcse-after-reload.
11872         (gcse_after_reload_main): New function, the main entry point to
11873         gcse-after-reload.
11874
11875         * rtl.h (gcse_after_reload_main): Declaration of the new function.
11876
11877         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
11878
11879         * toplev.c (flag_gcse_after_reload): Initialization.
11880
11881         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
11882
11883         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
11884         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
11885         the gcse after reload optimization.
11886
11887         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
11888         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
11889         parameters.
11890
11891         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
11892
11893 2004-03-03  Nicolas Pitre <nico@cam.org>
11894
11895         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
11896         small negative values.
11897
11898 2004-03-03  Jan Hubicka  <jh@suse.cz>
11899
11900         * cselib.c (hash_table):  Remove GTY marker.
11901         (reg_values): Turn into array.
11902         (used_regs): Likewise.
11903         (n_used_regs): New static variable.
11904         (reg_values_old): Kill.
11905         (clear_table): Update uses of arrays.
11906         (cselib_lookup): Likewise.
11907         (cselib_record_set): Likewise.
11908         (cselib_init): Likewise.
11909         (cselib_finish): Likewise.
11910         (cselib_udpate_varray_sizes): Kill.
11911         * cselib.h (cselib_update_varray_sizes): Kill.
11912
11913 2004-03-03  Paul Brook  <paul@codesourcery.com>
11914
11915         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
11916
11917 2004-03-03  Jan Hubicka  <jh@suse.cz>
11918
11919         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
11920         Rename from ...; make statistics transparent.
11921         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
11922         (loc_descriptor): New structure.
11923         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
11924         add_statistics):
11925         New static function.
11926         (ggc_record_overhead, dump_statistics): New global function.
11927         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
11928         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
11929         from ...; accept locations
11930         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
11931         ggc_realloc, ggc_alloc_typed):  ... this one.
11932         from ...; accept locations
11933         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
11934         ggc_alloc_stat): Rename from ... ; pass locations
11935         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
11936         ... this one.
11937         (ggc_alloc_stat): Record overehead.
11938         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
11939         ggc_realloc, ggc_alloc_typed):  Turn to macros
11940         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
11941         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
11942         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
11943         * langhooks.h (lhd_make_node): Declare.
11944         (LANG_HOOKS_MAKE_TYPE): Default to new function,
11945         * langhooks.c (lhd_make_node): New.
11946         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
11947         locations.
11948         (rtx_alloc, swallow_copy_rtx): ... this one.
11949         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
11950         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
11951         * toplpev.c (finalize): Dump stats.
11952         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
11953         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
11954         Rename from ... ; pass locators.
11955         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
11956         build?,  build_decl): Declare.
11957         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
11958         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
11959         Declare.
11960         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
11961         build?,  build_decl): New macros.
11962         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
11963         * statistics.h: New file.
11964
11965 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11966             Richard Sandiford  <rsandifo@redhat.com>
11967
11968         * config/mips/mips.h (MASK_FIX_SB1): Bump.
11969         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
11970         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
11971         * config/mips/mips.c (mips_output_division): Fill the branch delay
11972         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
11973         TARGET_FIX_R4400.
11974         (mips_output_division): Adjust accordingly.
11975         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
11976         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
11977
11978 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
11979
11980         * alias.c (rtx_equal_for_memref_p): Use predicates
11981         to test rtx classes and new rtx class codes, possibly
11982         splitting conditionals that tested against '<' and 'o'.
11983         * caller-save.c (save_call_clobbered_regs): Likewise.
11984         * combine.c (contains_muldiv, find_split_point, subst,
11985         combine_simplify_rtx, simplify_if_then_else,
11986         simplify_set, simplify_logical, expand_compound_operation,
11987         make_compound_operation, if_then_else_cond, known_cond,
11988         apply_distributive_law, cached_nonzero_bits,
11989         cached_num_sign_bit_copies, simplify_shift_const,
11990         gen_binary, simplify_comparison, update_table_tick,
11991         record_value_for_reg, get_lsat_value_validate): Likewise.
11992         * cse.c (mention_regs, find_best_addr, find_comparison_args,
11993         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
11994         Likewise.
11995         * emit-rtl.c (copy_insn_1): Likewise.
11996         * expr.c (force_operand): Likewise.
11997         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
11998         * flow.c (notice_stack_pointer_modification_1,
11999         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12000         and_reg_cond, elim_reg_cond): Likewise.
12001         * function.c (update_epilogue_consts): Likewise.
12002         * genattrtab.c (attr_rtx_1): Likewise.
12003         * genopinit.c (gen_insn): Likewise.
12004         * integrate.c (subst_constants): Likewise.
12005         * jump.c (reversed_comparison_code_parts,
12006         reversed_comparison_code, delete_related_insns,
12007         rtx_renumbered_equal_p): Likewise.
12008         * local-alloc.c (block_alloc): Likewise.
12009         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12010         canonicalize_condition): Likewise.
12011         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12012         Likewise.
12013         * optabs.c (add_equal_node, expand_binop): Likewise.
12014         * predict.c (estimate_probability): Likewise.
12015         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12016         * recog.c (validate_replace_rtx_1, comparison_operator,
12017         offsettable_address_p, constrain_operands): Likewise.
12018         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12019         Likewise.
12020         * regclass.c (scan_one_insn): Likewise.
12021         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12022         * regrename.c (kill_autoinc_value): Likewise.
12023         * reload.c (find_reusable_reload, find_reloads,
12024         reg_overlap_mentioned_for_reload_p): Likewise.
12025         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12026         * rtl.c (copy_rtx): Likewise.
12027         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12028         * rtlanal.c (commutative_operand_precedence): Likewise.
12029         * sched-deps.c (conditions_mutex_p): Likewise.
12030         * sched-rgn.c (is_cfg_nonregular): Likewise.
12031         * simplify-rtx.c (simplify_gen_binary,
12032         simplify_gen_relational, simplify_replace_rtx,
12033         simplify_unary_operation, simplify_binary_operation,
12034         simplify_ternary_operation, simplify_rtx): Likewise.
12035         * unroll.c (reg_dead_after_loop): Likewise.
12036         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12037         print_operand): Likewise.
12038         * config/arc/arc.c (proper_comparison_operator): Likewise.
12039         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12040         Likewise.
12041         * config/avr/avr.c (_reg_unused_after): Likewise.
12042         * config/frv/frv.c (frv_ifcvt_modify_tests,
12043         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12044         * config/i386/i386.c (ix86_comparison_operator,
12045         ix86_carry_flag_operator, fcmov_comparison_operator,
12046         arith_or_logical_operator, print_operand,
12047         ix86_expand_binary_operator, ix86_binary_operator_ok):
12048         Likewise.
12049         * config/i386/i386.md: Likewise.
12050         * config/ia64/ia64.c (not_postinc_memory_operand,
12051         ia64_print_operand, update_set_flags, errata_emit_nops):
12052         Likewise.
12053         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12054         CONSTRAINT_OK_FOR_S): Likewise.
12055         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12056         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12057         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12058         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12059         Likewise.
12060         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12061         eqne_comparison_operator, signed_comparison_operator):
12062         Likewise.
12063         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12064         Likewise.
12065         * config/mmix/mmix (mmix_foldable_comparison_operator,
12066         mmix_comparison_operator): Likewise.
12067         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12068         * config/rs6000/rs6000.c (stmw_operation,
12069         branch_comparison_operator, trap_comparison_operator,
12070         ccr_bit): Likewise.
12071         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12072         * config/s390/s390.c (s390_alc_comparison,
12073         s390_slb_comparison):L Likewise.
12074         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12075         Likewise.
12076         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12077         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12078         emit_hard_tfmode_operation, reg_unused_after)
12079         * doc/md.texi, doc/rtl.texi: Likewise.
12080
12081         * ra-debug.c: Add 2004 to list of copyright years.
12082         * unroll.c: Likewise.
12083
12084         * combine.c (simplify_logical): Remove dummy test,
12085         (apply_distributive_law): Fix typo in comment.
12086         GET_CODE (x) == AND so x is a commutative binary op.
12087         * jump.c (delete_related_insns): simplify loop
12088         condition, move testing of RTX codes inside the loop.
12089         (rtx_renumbered_equal_p): do not use RTX_CODE.
12090         * rtl.c (rtx_class): Declare as enum rtx_class.
12091         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12092         Move to RTX_COMM_COMPARE class.
12093         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12094         Move to RTX_CONST_OBJ class.
12095         * rtl.h (enum rtx_class): New declaration,
12096         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12097         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12098         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12099         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12100         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12101         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12102         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12103         OBJECT_P): New macros.
12104         * config/sparc/sparc.c (noov_compare_op): Remove register
12105         from parameter.
12106
12107 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12108
12109         * target.h: Remove texi jargons in comments.
12110
12111 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12112
12113         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12114         threshold to 0x4f.
12115
12116         Revert:
12117         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12118         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12119         as well.
12120         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12121         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12122
12123 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12124
12125         * doc/md.texi (cbranchmode4): New.
12126
12127 2004-03-02  Eric Christopher  <echristo@redhat.com>
12128
12129         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12130         fix_trunc.
12131         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12132         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12133         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12134         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12135
12136 2004-03-02  Richard Henderson  <rth@redhat.com>
12137
12138         PR middle-end/11767
12139         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12140         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12141         before the compare, if flag_non_call_exceptions.
12142
12143 2004-03-02  Richard Henderson  <rth@redhat.com>
12144
12145         PR middle-end/14327
12146         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12147         emitting the label, not after.
12148
12149 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12150
12151         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12152         (m68hc11_mov_addr_mode): Likewise.
12153         (m68hc11_override_options): Initialize them based on target.
12154         (register_indirect_p): Allow a MEM for indirect addressing modes and
12155         use flags to control what is allowed.
12156         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12157         supported addressing modes.
12158         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12159         (go_if_legitimate_address_internal): Likewise.
12160         (m68hc11_indirect_p): Likewise and check the mode.
12161         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12162
12163 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12164
12165         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12166         (expand_builtin_setjmp_setup): Use
12167         targetm.builtin_setjmp_frame_value instead of
12168         BUILTIN_SETJMP_FRAME_VALUE.
12169         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12170         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12171         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12172         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12173         * targhooks.c (default_builtin_setjmp_frame_value): New.
12174         * targhooks.h: Add a prototype for
12175         default_builtin_setjmp_frame_value.
12176         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12177         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12178
12179 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12180
12181         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12182         sequences of moves.
12183         (add peepholes): New peepholes to optimize sequences adding small
12184         constants.
12185         (bset peepholes): New peepholes to transform an OR in a bset form
12186         (bclr peepholes): Likewise for bclr form.
12187         (cmp peepholes): New peepholes to avoid register copies when comparing.
12188
12189 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12190
12191         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12192         to separate push from moves.
12193         ("*pushdf_internal"): Likewise.
12194         ("*pushsf_internal"): Likewise.
12195         ("*pushsi_internal"): Likewise.
12196         ("movdi_internal"): Use define_insn_and_split; non push operand.
12197         ("movdf_internal"): Likewise.
12198         ("movsf_internal"): Likewise.
12199         ("movsi_internal"): Likewise.
12200         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12201         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12202         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12203
12204 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12205
12206         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12207         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12208         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12209         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12210         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12211         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12212         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12213         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12214         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12215         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12216         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12217
12218 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12219
12220         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12221         (SOFT_XY_REGNUM): Define.
12222         (cmp split): Use the above instead of hard coded numbers.
12223         (8-bit op split): No need to check the mode; allow Q_REG.
12224         (ashift split): Adjust the first operand if it uses the SP and we
12225         are pushing the shifted value.
12226         (plus shift split): Fix when a source is in register D+X.
12227         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12228
12229 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12230
12231         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12232         comparing with Z register.
12233
12234 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12235
12236         * cfgloop.h (struct loop_desc): Removed.
12237         (struct loop): Fields simple, desc and has_desc removed.
12238         (simple_loop_p, count_loop_iterations): Declaration removed.
12239         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12240         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12241         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12242         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12243         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12244         simple_condition_p, simple_increment, count_strange_loop_iterations,
12245         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12246         Removed.
12247         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12248
12249 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12250
12251         * genattrtab.c: Don't handle MATCH_INSN.
12252         * genrecog.c: Likewise.
12253         * gensupport.c: Likewise.
12254         * rtl.def (match_insn): Remove.
12255         * doc/md.texi (match_insn, match_insn2): Remove.
12256
12257 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12258
12259         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12260         macro results in memory allocation.
12261
12262 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12263
12264         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12265         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12266         %(fbsd_dynamic_linker),
12267         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12268         config/i386/freebsd.h
12269         * config/arm/freebsd.h: Ditto.
12270         * config/i386/freebsd.h: Ditto.
12271         * config/i386/freebsd64.h: Ditto.
12272         * config/ia64/freebsd.h: Ditto.
12273         * config/rs6000/sysv4.h: Ditto.
12274         * config/sparc/freebsd.h: Ditto.
12275
12276 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12277
12278         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12279
12280 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12281
12282         * rtl.def (define_combine): Remove.
12283
12284 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12285
12286         * config/h8300/h8300.md: Tweak formatting.
12287
12288 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12289
12290         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12291         *cmphi_h8300_znvc.
12292         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12293
12294 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12295
12296         PR bootstrap/14356
12297         * gcc.c (process_command): Remove const-qualification from argv.
12298         (main): Likewise.
12299
12300 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12301
12302         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12303         pushqi1_h8300hs_advanced.  Adjust its caller.
12304         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12305         Adjust its caller.
12306
12307 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12308
12309         * Makefile.in (install-libgcc, install-multilib): Pass
12310         mkinstalldirs var to libgcc.mk.
12311
12312 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12313
12314         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12315         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12316
12317 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12318
12319         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12320         * config/h8300/h8300.md: Split several peephole2's, each into
12321         two.
12322
12323 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12324
12325         * dominance.c (recount_dominator): Handle postdominators.
12326
12327 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12328
12329         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12330         (NUM_SYMBOL_TYPES): Likewise.
12331         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12332         (mips_unspec_address): Declare.
12333         (mips_gotoff_page, mips_gotoff_global): Delete.
12334         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12335         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12336         (mips_symbolic_constant_p, mips_symbolic_address_p)
12337         (mips_symbol_insns): Handle new symbol types.
12338         (general_symbolic_operand): New predicate.
12339         (mips_unspec_address): Make extern.
12340         (mips_gotoff_page, mips_gotoff_global): Delete.
12341         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12342         Handle new symbol types.
12343         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12344         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
12345         mips_unspec_address directly.
12346         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
12347         the documentation of -mexplicit-relocs.
12348
12349 2004-03-01  Jeff Law  <law@redhat.com>
12350
12351         * fold-const.c (fold): An equality comparison of a non-weak object
12352         against zero has a known result.  Similarly an equality comparison
12353         of the address of two non-weak, unaliased symbols has a known result.
12354
12355         * ggc-page.c (struct page_entry): New field PREV.
12356         (ggc_alloc): Update PREV field appropriately.
12357         (sweep_pages): Likewise.
12358         (ggc_free): Likewise.  Use PREV field rather than loop to
12359         improve ggc_free performance.
12360
12361 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12362
12363         * config/mips/mips.c (mips_output_division): Use the division
12364         instruction to fill the delay slot of a zero check.
12365         (mips_idiv_insns): Adjust accordingly.
12366
12367 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
12368
12369         * config.gcc: Create a default tmake_file for linux, and use
12370         it in all but two linux clauses.  Comment those two.
12371
12372 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
12373
12374         * combine.c (try_combine):  Do not refer to is_replaced.
12375         (gen_lowpart_for_combine):  Perverse subregs now have a
12376         more politically correct name.
12377         * cse.c (cse_insn): Likewise.
12378         * jump.c: Fix bogus reference to delete_insn.
12379
12380 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
12381
12382         PR debug/14328
12383         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
12384         constants as signed values.
12385
12386         PR middle-end/13448
12387         * c-tree.h (readonly_warning): Rename to ...
12388         (readonly_error): ... this.
12389         * c-typeck.c (build_unary_op): Adjust accordingly.
12390         (readonly_warning): Rename to ...
12391         (readonly_error): ... this and issue errors, not warnings.
12392         (build_modify_expr): Call readonly_error, not readonly_warning.
12393         (c_expand_asm_operands): Likewise.
12394         * tree-inline.c (optimize_inline_calls): Do not inline functions
12395         after errors have occurred.
12396
12397 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12398
12399         * configure.ac: Rearrange some threading code for clarity;
12400         add section comment.
12401         * configure: Regenerate.
12402
12403 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12404
12405         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
12406         typos.
12407         * doc/cppopts.texi: Fix a typo.
12408
12409 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12410
12411         * config/i386/i386.md: Fix formatting.
12412
12413 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12414
12415         * configure.ac: Add some comments delineating sections of code.
12416
12417         * doc/install.texi: Note that libada uses autoconf 2.57 also.
12418
12419         * doc/install.texi: Fix idiot typo in previous commit.
12420
12421         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
12422
12423 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12424
12425         * config/h8300/h8300.md: Add comments about peephole2's.
12426
12427 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12428
12429         * config/h8300/h8300.md: Tweak operand numbers of some
12430         peephole2's.
12431
12432 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12433
12434         * config/h8300/h8300.md: Tweak comments about peephole2's.
12435
12436 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
12437
12438         PR middle-end/14203
12439         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
12440         instead of testing whether DECL_RTL is not NULL.
12441
12442 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12443
12444         * config/sh/sh.c: Fix formatting.
12445
12446 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12447
12448         * config/sh/sh.c: Convert to ISO-C.
12449
12450 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
12451
12452         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
12453         my previous patch.
12454
12455         * config/darwin.h (machopic_finish): Output stub even if the
12456         symbol is already defined.
12457
12458 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12459
12460         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
12461
12462 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12463
12464         * genattr.c (main): Don't define
12465         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
12466         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
12467         (DFA_PIPELINE_INTERFACE): Likewise.
12468         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
12469         (DFA_PIPELINE_INTERFACE): Likewise.
12470
12471 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
12472
12473         * config/mips/mips.md (tstsi, tstdi): Delete.
12474
12475 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12476
12477         * config/mips/mips.c (override_options): Remove an obsolete
12478         duplicate definition of the "e" constraint.
12479         * config/mips/mips.h: Update a comment accordingly.
12480
12481 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12482
12483         * config/mips/mips.md: Complete the unfinished R4000
12484         multiply/shift errata workaround.  Improve documentation.
12485         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
12486         has a hilo hazard.
12487         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
12488         (muldi3, muldi3_internal): Likewise.
12489         (muldi3_internal2): Remove, replacing with...
12490         (muldi3_mult3, muldi3_r4000): ...these new patterns.
12491         (mulsidi3): Take the errata into account.
12492         (mulsidi3_32bit): Remove, replacing with...
12493         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
12494         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
12495         (umulsidi3): Take the errata into account.
12496         (umulsidi3_32bit): Remove, replacing with..
12497         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
12498         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
12499         TARGET_FIX_R4000.
12500         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
12501         (smuldi3_highpart, umuldi3_highpart): Likewise.
12502         * doc/invoke.texi: Document the errata workaround.
12503
12504 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12505
12506         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
12507         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12508         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
12509         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
12510         * config/mips/mips.c (mips_idiv_insns): New function.
12511         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
12512         (mips_output_division): Add a workaround for the R4000 divide/shift
12513         errata.
12514         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
12515         the length of an "idiv" instruction.
12516         * doc/invoke.texi: Document the new switches.
12517
12518 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12519
12520         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
12521         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
12522
12523 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12524
12525         PR optimization/14229
12526         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
12527
12528 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
12529
12530         * fold-const.c (fold): Strip NOPs that change the signedness
12531         for RSHIFT too.  Expand comment.
12532
12533 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
12534
12535         PR optimization/7871
12536         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
12537         from or to call insns.
12538
12539 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12540
12541         PR optimization/7871
12542         * flow.c (propagate_one_insn): Interpret calls as setting global
12543         registers, not merely clobbering them.
12544
12545 2004-02-27  Dale Johannesen  <dalej@apple.com>
12546
12547         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
12548         config/darwin-protos.h:  Ditto.
12549         config/darwin.h:  Remove call to it.
12550         * combine.c (distribute_notes): Do not place a REG_DEAD note
12551         when value is both set and used.
12552
12553 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12554
12555         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12556         as well.
12557         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12558         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12559
12560 2004-02-27  Andrew Pinski  <apinski@apple.com>
12561
12562         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
12563         Speedup common case of the type values being in the same order.
12564
12565 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
12566
12567         * config/ia64/ia64.h (no-inline-float-divide): New option.
12568         * config/ia64/ia64.h (no-inline-int-divide): New option.
12569         * config/ia64/ia64.h (no-inline-sqrt): New option.
12570         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
12571         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
12572         * config/ia64/ia64.c (ia64_override_options): Modify error
12573         checking for inlined division/sqrt.
12574
12575 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12576
12577         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
12578         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
12579         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
12580         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
12581         copyright.
12582
12583 2004-02-27  Paul Brook  <paul@codesourcery.com>
12584
12585         * function.c (assign_parms): Don't count pretend args for alignment.
12586
12587 2004-02-27  Richard Henderson  <rth@redhat.com>
12588
12589         * passes.c: New file.
12590         * Makefile.in (OBJS-common): Add it.
12591         * diagnostic.c (rtl_dump_and_exit): Move decl ...
12592         * flags.h (rtl_dump_and_exit): ... here.
12593         * output.h (size_directive_output, last_assemble_variable_decl):
12594         Move from toplev.c.
12595         * rtl.h (reg_alloc): Move from toplev.c.
12596         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
12597         struct dump_file_info, enum dump_file_index, dump_file_tbl,
12598         open_dump_file, close_dump_file, rest_of_decl_compilation,
12599         rest_of_type_compilation, rest_of_handle_final,
12600         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
12601         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
12602         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
12603         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
12604         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
12605         rest_of_handle_tracer, rest_of_handle_if_conversion,
12606         rest_of_handle_if_after_combine, rest_of_handle_web,
12607         rest_of_handle_branch_prob,
12608         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
12609         rest_of_handle_addressof, rest_of_handle_sibling_calls,
12610         rest_of_handle_jump_bypass, rest_of_handle_inlining,
12611         rest_of_handle_null_pointer, rest_of_handle_combine,
12612         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
12613         rest_of_handle_gcse, rest_of_handle_loop_optimize,
12614         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
12615         (decode_d_option): Use enable_rtl_dump_file.
12616         (compile_file, finalize, do_compile): Move profile+combine+graph
12617         cleanup to finish_optimization_passes.
12618         * toplev.h (init_optimization_passes, finish_optimization_passes,
12619         enable_rtl_dump_file): Declare.
12620
12621 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
12622             Roger Sayle  <roger@eyesopen.com>
12623
12624         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
12625         operands to build a tree with swapped operands.
12626         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
12627         'unsignedp' predicate to specify the signedness.
12628
12629 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12630
12631         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
12632         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
12633         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
12634         comment typos and formatting.  Follow spelling conventions.
12635
12636 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
12637
12638         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
12639         fix_truncsfsi2.
12640
12641         * config/rs6000/spe.md: Delete spe_efsctuiz.
12642         Add spe_fixuns_truncsfsi2.
12643         Add spe_fix_truncsfsi2.
12644
12645 2004-02-26  Eric Christopher  <echristo@redhat.com>
12646
12647         * c-lex.c (c_lex_string_translate): New variable.
12648         (lex_string): Use to determine string translation.
12649         * c-pragma.h: Prototype.
12650         * c-parse.in (start_string_translation): New. Set above.
12651         (stop_string_translation): Ditto.
12652         (attribute, attribute_list, asm_def, asm_stmt,
12653         asm_operand): Use above functions.
12654         * cp/parser.c (cp_parser_declaration): Translate strings
12655         unless token is RID_EXTERN. Set c_lex_string_translate
12656         for recursive use.
12657         (cp_parser_asm_definition): Only translate argument strings
12658         to asms.
12659         (cp_parser_asm_operand_list): Ditto.
12660         (cp_parser_attribute_list): Do not translate attribute strings.
12661
12662 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12663
12664         * stmt.c (expand_start_case_dummy): Remove.
12665         * tree.h: Remove the corresponding prototype.
12666
12667 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12668
12669         * builtins.c (apply_args_register_offset): Remove.
12670         * tree.h: Remove the corresponding prototype.
12671
12672 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12673
12674         * stor-layout.c (is_pending_size): Remove.
12675         * tree.h: Remove the corresponding prototype.
12676
12677 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12678
12679         * recog.c (validate_replace_src): Remove.
12680         * recog.h: Remove the corresponding prototype.
12681
12682 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12683
12684         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
12685         MAYBE_REG_PARM_STACK_SPACE.
12686         * function.c: Likewise.
12687         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
12688         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
12689         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
12690         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
12691
12692 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12693
12694         * c-decl.c (c_expand_deferred_function): Remove.
12695         * c-tree.h: Remove the corresponding prototype.
12696
12697 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
12698
12699         * postreload.c (reload_cse_move2add): Generate just a PLUS
12700         instead of an entire SET.
12701
12702 2004-02-26  Jan Hubicka  <jh@suse.cz>
12703
12704         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
12705         /pentium4m.
12706         * i386.c (override_options): Add support for new CPUs.
12707         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
12708         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
12709         constants.
12710         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
12711
12712 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
12713
12714         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
12715
12716 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
12717
12718         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
12719         (sparc_emit_fixunsdi): New prototype.
12720         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
12721         (sparc_emit_fixunsdi): New function.
12722         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
12723         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
12724         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
12725         to sparc_emit_floatunsdi.
12726         (fixuns_truncsfdi2): New expander.
12727         (fixuns_truncdfdi2): Likewise.
12728
12729 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
12730
12731         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
12732         unless HAVE_cc0.
12733
12734 2004-02-25  Richard Henderson  <rth@redhat.com>
12735
12736         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
12737         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
12738         use (op0-op1) == 0 if op0 is a pointer.
12739         * config/alpha/alpha.md (cmpdi): Use some_operand.
12740         (three comparison combine splits): Remove.
12741
12742 2004-02-25  Richard Henderson  <rth@redhat.com>
12743
12744         PR c/12794
12745         * c-common.c (handle_alias_attribute): Reject the attribute if
12746         current_function_decl is set.
12747
12748 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
12749
12750         * config.gcc: Add comment describing extra_gcc_objs.
12751         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
12752         * configure.ac (extra_gcc_objs): New substitution variable.
12753         (host_extra_gcc_objs): Don't substitute.
12754         * configure: Regenerate.
12755         * Makefile.in: Use extra_gcc_objs.
12756
12757 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
12758
12759         * doc/contrib.texi: Add an entry for myself.
12760
12761 2004-02-25  Jan Hubicka  <jh@suse.cz>
12762
12763         * basic-block.h (make_eh_edge, break_superblocks): Declare.
12764         * cfgbuild.c (make_eh_edge):  Make global.
12765         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
12766         * except.c (build_post_landing_pads, connect_post_landing_pads,
12767         dw2_build_landing_pads, sjlj_emit_function_enter,
12768         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12769         sjlj_build_landing_pads): Update CFG.
12770         (emit_to_new_bb_before): New function.
12771         (finish_eh_generation): Do not rebuild the CFG.
12772
12773 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12774
12775         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
12776         target_cpu_default defines.
12777         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
12778         * pa.h (TARGET_DEFAULT): Likewise.
12779
12780 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12781
12782         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
12783         comparisons with regard to signedness.
12784
12785 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
12786
12787         * arm.c (thumb_legitimize_address): New function.
12788         * arm-protos.h: Prototype it.
12789         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
12790         (LEGITIMIZE_ADDRESS): Use it.
12791
12792 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
12793
12794         * reload1.c (reload): Only spill eliminable register with multiple
12795         adjacent elimination alternatives if all alternatives fail.
12796
12797 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
12798
12799         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
12800         is -4095...+4095 inclusive.
12801
12802 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
12803
12804         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
12805         the bootstrap failure with Sun CC 5.4 and 5.5.
12806
12807 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
12808
12809         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
12810         which modifies NEWREG.
12811         (cse_condition_code_reg): Update the mode of CC_REG in
12812         CC_SRC_INSN on our own.
12813
12814 2004-02-24  Michael Matz  <matz@suse.de>
12815
12816         * config/i386/i386.c (ix86_comp_type_attributes): Check for
12817         regparm attributes.
12818
12819 2004-02-24  Richard Henderson  <rth@redhat.com>
12820
12821         * toplev.c (dump_file_tbl): Rename from dump_file.
12822         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
12823         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
12824         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
12825         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
12826         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
12827         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
12828         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
12829         s/rtl_dump_file/dump_file/g.
12830
12831 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
12832
12833         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
12834         (spe_fixuns_truncsfsi2): Delete.
12835
12836         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
12837         (fixuns_truncsfsi2): Delete.
12838
12839 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
12840
12841         PR/14240
12842         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
12843
12844 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
12845
12846         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
12847
12848 2004-02-24  Jason Merrill  <jason@redhat.com>
12849
12850         * tree.c (check_qualified_type): New fn.
12851         (get_qualified_type): Use it.  If type already has the desired
12852         quals, just return it.
12853         * tree.h: Declare it.
12854
12855 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
12856
12857         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
12858         TARGET_SCHED_FINISH_GLOBAL): New macros.
12859
12860         * target.h (md_init_global, md_finish_global): Function
12861         declarations corresponding to new target macros.
12862
12863         * haifa-sched.c (sched_init, sched_finish): Allow target to
12864         call the new schedular hooks.
12865
12866         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
12867         call to update_life_info.
12868
12869         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
12870         flag_schedule_insns for SH4.
12871
12872         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
12873         find_set_regmode_weight, find_insn_regmode_weight,
12874         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
12875         sh_variable_issue, high_pressure, ready_reorder,
12876         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
12877         functions used to throttle the insn movement in first
12878         scheduling pass for SH.
12879
12880         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
12881         TARGET_SCHED_FINISH_GLOBAL.
12882
12883 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
12884
12885         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
12886         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
12887         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
12888         symbols in sections named by the user.
12889         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
12890         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
12891         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
12892         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
12893         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
12894         the above.
12895         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
12896         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
12897         one more pseudo to further improve code generation.
12898         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
12899         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
12900         inside UNSPEC.
12901         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
12902         * config/frv/frv.c (frv_legitimate_address_p): Added
12903         allow_double_reg_p argument.  Adjust all callers.  Use it to
12904         decide whether to enable double-register indirect addressing.
12905         (frv_funcdesc_alias_set): Remove.
12906         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
12907         register.  Emit movdi_ldd.
12908         (ldd_address_operand): New.
12909         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
12910         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12911         (PREDICATE_CODES): Add ldd_address_operand.
12912         * config/frv/frv.md (movdi_ldd): New.
12913         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
12914         intermediate computations if possible.
12915         (symGOTOFF2reg_i): Fix harmless typo.
12916         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
12917         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
12918         relocated p_vaddr to vaddr type.
12919         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
12920         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
12921         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
12922         MEM, or use a funcdesc alias set.  Use regular move instead of
12923         ldd.
12924         (dbl_memory_one_insn_operand): Recognize function descriptors by
12925         type or by alias set, and don't split them.
12926         * config/frv/frv.md (call, call_value): Never use call_internal
12927         for fdpic.
12928         (call_internal, call_value_internal): Never match for FDPIC.
12929         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
12930         call_value_fdpicsi): Require FDPIC.
12931         (ldd): Removed.
12932         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
12933         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
12934         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
12935         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
12936         FDPIC.  Compute data base address.
12937         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
12938         before the other self-specs are processed.
12939         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
12940         Build with -fPIC.
12941         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
12942         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
12943         inhibit_libc is defined.
12944         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
12945         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
12946         __FRV_FDPIC__.
12947         (__RELOC_POINTER): Define.
12948         (_Unwind_IteratePhdrCallback): Use it.
12949         * config/frv/frv.h (Twrite): Define.
12950         (TRANSFER_FROM_TRAMPOLINE): Use it.
12951         * config/frv/linux.h (INVOKE__main): Undefine.
12952         (Twrite): Override.
12953         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
12954         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
12955         (-mlibrary-pic): Emphasize that this option generates EABI code.
12956         (-mcpu): Add fr550.
12957         (-mpack): Remove.
12958         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
12959         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
12960         and CONSTs in FDPIC mode.
12961         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
12962         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
12963         * config/frv/frv.c (move_source_operand): Don't accept symbolic
12964         constants.
12965         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
12966         rather than 'i' constraint for the 2-instruction alternative.
12967         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
12968         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
12969         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
12970         EXTRA_CONSTRAINT_FOR_Y.
12971         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
12972         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
12973         (addsi3): Change 'Y' constraint to 'Q'.
12974         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
12975         * reload.c (CONST_POOL_OK_P): New macro.
12976         (find_reloads): Use it to decide whether a constant can be forced
12977         into memory.
12978         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
12979         constant satisfies got12_operand.
12980         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
12981         (frv_legitimate_address_p): Check for valid unspec offsets using
12982         got12_operand rather than frv_legitimate_fdpic_operand_p.
12983         (frv_legitimate_fdpic_operand_p): Delete.
12984         (frv_emit_movsi): Abort if we try to use the FDPIC register during
12985         or after reload.
12986         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
12987         TARGET_FDPIC.
12988         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
12989         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
12990         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
12991         (frv_fdpic_fptr_operand): Don't declare here.
12992         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
12993         rather than fdpic_got12_operand.
12994         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
12995         got12_operand and const_unspec_operand.
12996         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
12997         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
12998         (symbolic_operand): Remove.
12999         (const_unspec_operand): New predicate.
13000         * config/frv/frv.md (*movsi_got): Use got12_operand.
13001         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13002         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13003         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13004         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13005         * config/frv/frv.c (frv_unspec): New structure.
13006         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13007         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13008         validate CONST indices.  Use frv_output_const_unspec to print them.
13009         (frv_print_operand): Update call to unspec_got_name.  Use
13010         frv_output_const_unspec to print constant unspecs.
13011         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13012         Reject UNSPECs otherwise.
13013         (unspec_got_name): Take the relocation number as argument, not an
13014         rtx containing it.
13015         (frv_output_addr_const_extra): Remove, replacing with...
13016         (frv_output_const_unspec): ...this new function.
13017         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13018         (gpr_or_int12_operand): Use fdpic_got12_operand.
13019         (dbl_memory_one_insn_operand): Likewise.
13020         (fdpic_got12_operand): Use frv_const_unspec_p.
13021         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13022         are already legitimate.  Use frv_small_data_reloc_p when deciding
13023         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13024         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13025         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13026         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13027         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13028         label, for real this time.
13029         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13030         representation of visibility.
13031         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13032         such.
13033         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13034         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13035         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13036         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13037         it was explicitly disabled.
13038         (frv_stack_info): There is no need to save the link register in every
13039         frame unless TARGET_LINKED_FP is true.
13040         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13041         frame pointer if the stack pointer might change value.
13042         (frv_return_addr_rtx): Check and process "count" argument.
13043         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13044         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13045         (frv_find_base_term): Declare.
13046         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13047         (FIND_BASE_TERM): Define.
13048         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13049         small_data_register_operand, small_data_symbolic_operand.  Add
13050         symbolic_operand.
13051         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13052         (frv_print_operand_memory_reference, output_move_single): Remove
13053         special handling for unlegitimized sdata addresses.
13054         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13055         and symbolic addresses.
13056         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13057         (frv_find_base_term): New function.
13058         (int_2word_operand): Check specifically for symbolic address constants.
13059         (pic_register_operand, pic_symbolic_operand): Delete.
13060         (small_data_register_operand, small_data_symbolic_operand): Delete.
13061         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13062         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13063         (move_source_operand): Only accept CONSTs if they're a two-insn
13064         symbolic constant.
13065         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13066         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13067         using gen_symGOTOFF2reg*.
13068         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13069         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13070         themselves a cost of 3 insns.
13071         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13072         Change predicate to symbolic_operand.
13073         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13074         (*movsi_lda_sdata): Delete.
13075         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13076         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13077         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13078         frv-*-*linux*.
13079         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13080         label.
13081         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13082         -multilib-library-pic.
13083         (LINK_SPEC): Add -z text for -mfdpic.
13084         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13085         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13086         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13087         Override.
13088         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13089         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13090         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13091         crtstuff-generated files.
13092         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13093         * config.gcc: Add frv-*-*linux*.
13094         * config/frv/linux.h, config/frv/t-linux: New.
13095         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13096         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13097         when -mfdpic even if a linker script is explicitly listed.
13098         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13099         * config/frv/frv.c (frv_override_options): Clear asm_out
13100         unaligned_op for SImode on FDPIC.
13101         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13102         argument passed to decl_readonly_section.
13103         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13104         whole block run with FDPIC even with -fno-PIC.
13105         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13106         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13107         symbol or label plus offset to memory.
13108         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13109         GOTOFF and GPREL for LABEL_REF.
13110         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13111         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13112         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13113         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13114         * doc/invoke.texi: Document them.
13115         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13116         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13117         (frv_splittable_got_operand): Removed.
13118         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13119         LO_SUM.  Add comments.
13120         (frv_override_options): Moved enabling of FDPIC to
13121         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13122         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13123         (frv_legitimize_fdpic_address): Don't duplicate logic in
13124         frv_emit_movsi.
13125         (frv_gen_GPsym2reg): New.
13126         (unspec_got_name): Added gprel.
13127         (frv_expand_fdpic_call): Add support for inlining PLTs.
13128         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13129         (gpr_or_int12_operand): Added GPREL12.
13130         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13131         (small_data_symbolic_operand): Fail if FDPIC.
13132         (fdpic_splittable_got_operand): Removed.
13133         (fdpic_got12_operand): Added GPREL12.
13134         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13135         when appropriate.  Fix sdata GOTOFF.
13136         (frv_legitimate_constant_p): Require legitimate PIC operand for
13137         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13138         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13139         flag_pic case.
13140         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13141         frv_assemble_integer fails.
13142         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13143         (SUBTARGET_DRIVER_SELF_SPECS): New.
13144         (ASM_SPEC): Don't pass -mno-fdpic.
13145         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13146         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13147         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13148         -multilib-library-pic.
13149         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13150         condexec_si_media_operator, condexec_sf_add_operator and
13151         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13152         and condexec_sf_unary_operator.
13153         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13154         New.
13155         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13156         movsi_internal.  Give them internal names.  movsi_got has type
13157         int.
13158         (fdpic got splitters): Remove.
13159         (symGPREL2reg, symGPREL2reg_hilo): New.
13160         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13161         to -mlibrary-pic.  Map -multilib-library-pic to it.
13162         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13163         Document.
13164         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13165         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13166         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13167         (frv_cannot_force_const_mem): New function.
13168         (const_small_data_p, plus_small_data_p): Update comments on sdata
13169         on FDPIC.
13170         (frv_override_options): Set flag_pie for FDPIC too.
13171         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13172         call-saved registers on FDPIC.
13173         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13174         don't force LR to be preserved.
13175         (frv_expand_prologue): Likewise.
13176         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13177         (frv_frame_pointer_required): Don't force it just because the
13178         FDPIC register is used.
13179         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13180         operand only if !condexec_p.
13181         (frv_legitimize_address): Return the FDPIC-legitimized address.
13182         Don't match small data here on FDPIC.
13183         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13184         symbols.  Use TRUE/FALSE instead of 1/0.
13185         (frv_local_funcdesc_p): New.
13186         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13187         immediates when possible.
13188         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13189         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13190         an UNSPEC_GOT.
13191         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13192         12-bit immediates when possible.
13193         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13194         are not legitimate pic operands.
13195         (frv_in_small_data_p): Re-enable for FDPIC.
13196         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13197         (FRV_GLOBAL_P): Removed.
13198         * config/frv/frv.md: Add modes to CONSTs.
13199         (movsi_got): New.
13200         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13201         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13202         (fdpic splittable operations): Match on flag_pic != 1.
13203         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13204         * config/frv/frv.c (frv_asm_out_constructor,
13205         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13206         bytes, not bits.
13207         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13208         * config/frv/frv.c (frv_assemble_integer): Reject complex
13209         expressions referencing function SYMBOL_REFs.
13210         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13211         (move_source_operand): Reject CONSTs that reference function
13212         SYMBOL_REFs on FDPIC.
13213         (frv_emit_movsi): If we get such a CONST, break it up.
13214         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13215         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13216         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13217         MEM.
13218         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13219         (frv_trampoline_size): Increase for FDPIC.
13220         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13221         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13222         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13223         Disable use of GOTOFF for now.
13224         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13225         Disable use of small data in FDPIC for now.
13226         (frv_asm_output_mi_thunk): Implement for FDPIC.
13227         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13228         * config/frv/frv.c (frv_asm_out_constructor): Use
13229         frv_assemble_integer for FDPIC pointers.
13230         (frv_asm_out_destructor): Likewise.
13231         * config/frv/frv.md (ldd): Fix order of operands.  Use
13232         address_operand for input.
13233         2003-09-18  DJ Delorie  <dj@redhat.com>
13234         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13235         (unspec_got_name): Correct typo.
13236         (frv_emit_movsi): Pre-expand splittable GOTs.
13237         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13238         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13239         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13240         * config/frv/t-frv: Add -mfdpic multilibs.
13241         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13242         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13243         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13244         flag_pic, default to 32-bit pics, require DWORD ops.
13245         (frv_override_options): Add W and Z constraints.
13246         (frv_expand_prologue): No pic prologue for -mfdpic.
13247         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13248         (frv_print_operand_memory_reference): Handle GOT constants.
13249         (frv_legitimate_address_p): Allow GOT constants.
13250         (frv_legitimize_address): Handle GOT addresses too.
13251         (frv_legitimate_fdpic_operand_p): New.
13252         (frv_legitimize_fdpic_address): New.
13253         (unspec_got_name): New.
13254         (frv_output_addr_const_extra): New.
13255         (frv_expand_fdpic_call): New.
13256         (frv_fdpic_fptr_operand): New.
13257         (gpr_or_int12_operand): Handle GOT operands.
13258         (int_2word_operand): Handle GOT operands.
13259         (fdpic_operand): New.
13260         (fdpic_splittable_got_operand): New.
13261         (fdpic_got12_operand): New.
13262         (frv_emit_movsi): Handle GOT operands.
13263         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13264         (frv_print_operand): Support 'g' code for GOT operands.
13265         * config/frv/frv-protos.h: Add prototypes as needed.
13266         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13267         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13268         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13269         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13270         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13271         R_FRV_GOTOFFLO): New.
13272         (movsi_high_got, movsi_lo_sum_got): New.
13273         (*movsi_pic): Don't use this splitter for -mfdpic.
13274         (addsi3): Allow GOT references also.
13275         (call, call_value): Handle -mfdpic separately.
13276         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13277         call_value_fdpicsi): New.
13278         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13279         symGOTOFF2reg_i): New.
13280         * config/frv/frv.h (MASK_FDPIC): New.
13281         (TARGET_FDPIC): New.
13282         (TARGET_SWITCHES): Add -mfdpic.
13283         (FDPIC_FPTR_REGNO): New.
13284         (FDPIC_REGNO): New.
13285         (OUR_FDPIC_REG): New.
13286         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13287         FDPIC_CALL_REGS.
13288         (REG_CLASS_NAMES): Likewise.
13289         (REG_CLASS_CONTENTS): Likewise.
13290         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13291         (EXTRA_CONSTRAINT): Add it here.
13292         (FRV_GLOBAL_P): New.
13293         (OUTPUT_ADDR_CONST_EXTRA): New.
13294
13295 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13296
13297         * config/sparc/sparc.h: Remove commented-out definitions of
13298         TARGET_EDOM and GEN_ERRNO_RTX.
13299
13300 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13301
13302         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13303         df_analyse with df_analyze.
13304
13305 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13306
13307         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13308         beginning of block.
13309
13310 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13311
13312         * calls.c (precompute_arguments): Update comment.
13313
13314 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13315
13316         * et-forest.c: Replace et_occurences with et_occurrences.
13317
13318 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13319
13320         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13321         with iv_analyze.
13322
13323 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13324
13325         * config/i386/i386.c: Rename pni to sse3.
13326         * config/i386/i386.h: Likewise.
13327         * config/i386/i386.md: Likewise.
13328         * config/i386/pmmintrin.h: Likewise.
13329         * doc/extend.texi: Likewise.
13330         * doc/invoke.texi: Likewise.
13331
13332 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13333             Kazu Hirata  <kazu@cs.umass.edu>
13334
13335         Remove -fwritable-strings.
13336         * c-common.c (fix_string_type): Don't check
13337         flag_writable_strings.
13338         (fix_string_type): Likewise.
13339         * c-opts.c (set_std_c89): Don't initialize
13340         flag_writable_strings.
13341         (set_std_c99): Likewise.
13342         * common.opt (fwritable-strings): Remove.
13343         * flags.h: Remove the external declaration of
13344         flag_writable_strings.
13345         * opts.c (common_handle_option) <OPT_fwritable_strings>:
13346         Remove.
13347         * toplev.c (flag_writable_strings): Remove.
13348         (f_options): Remove an entry for writable-strings.
13349         * varasm.c (const_hash_1) <STRING_CST>: Don't check
13350         flag_writable_strings.
13351         (compare_constant) <STRING_CST>: Likewise.
13352         (build_constant_desc): Likewise.
13353         * config/darwin.c (machopic_select_section): Likewise.
13354         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
13355         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
13356         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
13357         * config/mips/mips.c (mips_select_section): Likewise.
13358         (mips_encode_section_info): Likewise.
13359         * config/pa/pa.c (pa_select_section): Likewise.
13360         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
13361         * config/v850/v850.c (v850_select_section): Likewise.
13362         * doc/invoke.texi (-fwritable-strings): Remove.
13363         (-fno-const-strings): Don't mention -fwritable-strings.
13364         * doc/trouble.texi: Don't mention -fwritable-strings.
13365
13366 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
13367
13368         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
13369
13370 2004-02-23  Dale Johannesen  <dalej@apple.com>
13371
13372         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
13373         (movdf_hardfloat64):  Ditto.
13374         (movdf_softfloat64):  Ditto.
13375
13376 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
13377         * config/rs6000/rs6000.c (function_arg): call to
13378         rs6000_mixed_function_arg for DFmode moved to allow
13379         normal DFmode incoming register assignment.
13380
13381 2004-02-23  Dale Johannesen  <dalej@apple.com>
13382
13383         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
13384         (movdf_hardfloat64):  Ditto.
13385
13386 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13387
13388         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
13389         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
13390         copyright.
13391
13392 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
13393
13394         PR c/14156
13395         * c-typeck.c (c_expand_return): Change check for VAR_DECL
13396         to use DECL_P instead.
13397
13398         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
13399         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
13400
13401 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13402
13403         * Makefile.in (opts.o): Depend on target.h.
13404         * opts.c (decode_options): Use targetm.default_short_enums
13405         instead of DEFAULT_SHORT_ENUMS.
13406         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13407         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
13408         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
13409         * target.h (gcc_target): Add default_short_enums.
13410         * config/cris/cris.h: Remove a comment about
13411         DEFAULT_SHORT_ENUMS.
13412         * config/ip2k/ip2k.h: Likewise.
13413         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
13414         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
13415
13416 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13417             Falk Hueffner  <falk@debian.org>
13418
13419         PR c/14188
13420         * builtins.c (expand_builtin_va_arg): Emit an informative message
13421         if a trap is generated.
13422         * c-typeck.c (build_function_call): Likewise.
13423
13424 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13425
13426         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
13427         fopen.
13428         * libgcov.c: Include sys/stat.h.
13429         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
13430         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
13431         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
13432         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
13433
13434 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
13435
13436         * reorg.c: Remove comments about dead ports.
13437
13438 2004-02-22  Christopher Faylor  <cgf@redhat.com>
13439
13440         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
13441         extra host object file when targetting cygwin rather than generic
13442         object files.
13443
13444 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
13445
13446         Merge from tree-ssa:
13447         2003-11-20  Richard Henderson  <rth@redhat.com>
13448
13449                 * tree-inline.c (insert_decl_map): New.
13450                 (remap_decl, remap_type, remap_block, copy_body_r,
13451                 initialize_inlined_parameters, declare_return_variable,
13452                 remap_save_expr): Use it.
13453
13454         * function.c (copy_body_r): Add mapping from id->ret_label to
13455         id->ret_label.  Revert test for ret_label.
13456
13457 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13458
13459         * genoutput.c (process_template): Strip trailing whitespace in @
13460         templates and issue a warning if there was any.
13461
13462 2004-02-21  Christopher Faylor  <cgf@redhat.com>
13463
13464         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
13465         object file when targetting cygwin.
13466         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
13467         overridden by top-level Makefile.
13468
13469 2004-02-21  Roger Sayle  <roger@eyesopen.com>
13470
13471         * config/i386/i386.c (standard_80387_constant_p): Also prefer
13472         the x87's load constant instructions when optimizing for size.
13473
13474 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13475
13476         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
13477         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
13478         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
13479         * fold-const.c: Likewise.
13480         * simplify-rtx.c: Likewise.
13481
13482 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
13483
13484         * combine.c (can_combine_p): Don't ignore SETs marked with
13485         REG_EH_REGION notes.
13486         (try_combine): When attemting to fix unrecognized insns, don't
13487         split a PARALLEL that contains the original i2.
13488
13489 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
13490
13491         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
13492         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
13493         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
13494         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
13495         (vector, pixel, bool): #define to __vector, __pixel and __bool.
13496         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
13497         portion of header.
13498         (__altivec_link_error_invalid_argument): Remove prototype; will use
13499         __builtin_altivec_compiletime_error("vec_*") instead.
13500         (vec_*): Fix/complete set of available operation overloads given the
13501         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
13502         cv-correctness of pointer arguments; in C, always check for correct
13503         argument types before macro expansion.
13504         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
13505         defining Darwin/PowerPC-specific '-f[no-]altivec' and
13506         '-W[no-]altivec-long-deprecated' switches.
13507         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
13508         '__vector', '__pixel' and '__bool' macros using
13509         '__attribute__((altivec(...)))' types.
13510         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
13511         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
13512         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
13513         New type nodes.
13514         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
13515         handling '-W[no-]altivec-long-deprecated'.
13516         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
13517         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
13518         altivec_expand_dst_builtin): Remove casts from integer literals.
13519         (altivec_expand_builtin): Likewise; handle expansion of new
13520         '__builtin_altivec_compiletime_error' function.
13521         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
13522         types, and make them distinct from other vector types; register
13523         '__builtin_altivec_compiletime_error' function.
13524         (print_operand): For 'P', print a full target register name instead of
13525         merely its number.
13526         (rs6000_attribute_table): Add "altivec" attribute.
13527         (rs6000_handle_altivec_attribute): New function.
13528         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
13529         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
13530         maps to).
13531         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
13532         declare.
13533         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
13534
13535 2004-02-20  James E Wilson  <wilson@specifixinc.com>
13536
13537         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
13538         check.
13539         (shift_mix4left+2): Delete redundant pattern.
13540
13541 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13542
13543         * alias.c (OUTGOING_REGNO): Don't define the default.
13544         * builtins.c (OUTGOING_REGNO): Likewise.
13545         (INCOMING_REGNO): Likewise.
13546         (apply_args_register_offset): Always use OUTGOING_REGNO.
13547         * combine.c (OUTGOING_REGNO): Likewise.
13548         * sibcall.c (OUTGOING_REGNO): Likewise.
13549         * defaults.h (INCOMING_REGNO): Provide the default.
13550         (OUTGOING_REGNO): Likewise.
13551
13552 2004-02-21  Jan Hubicka  <jh@suse.cz>
13553
13554         * params.def (max-peeled-insns, max-completely-peeled-insns,
13555         max-once-peeled-insns): Set to 400.
13556
13557 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13558
13559         PR c++/12007
13560         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
13561         are set for parameters before outputing debugging information.
13562
13563 2004-02-20  Falk Hueffner  <falk@debian.org>
13564
13565         PR target/14201
13566         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
13567         numbers.
13568
13569 2004-02-20  Per Bothner  <per@bothner.com>
13570
13571         * input.h:  Don't #include line-map.h.  It may cause link problems
13572         with undefined linemap_line_start when line-map.h is included but
13573         line-map.o is not linked, as currently happens with gengtype on
13574         compilers that don't support inline.
13575         * toplev.c:  So we do have to explicitly #include line-map.h here.
13576
13577 2004-02-20  Richard Henderson  <rth@redhat.com>
13578
13579         * doc/invoke.texi: Add -Wvariadic-macros.
13580
13581 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13582
13583         * haifa-sched.c (sched_emit_insn): Remove.
13584         * sched-int.h: Remove the corresponding prototype.
13585
13586 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13587
13588         Revert:
13589         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13590         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
13591         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13592         * config/cris/cris.h: Remove a comment about
13593         DEFAULT_SHORT_ENUMS.
13594         * config/ip2k/ip2k.h: Likewise.
13595         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
13596
13597 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
13598             Tom Tromey  <tromey@redhat.com>
13599
13600         * doc/install.texi: Moved --disable-libgcj and
13601         --with-system-zlib documentation to new section for
13602         Java-specific options.
13603         Added explicit Cross-Compiler-Specific Options subheading.
13604         Added section for Java-specific options.
13605
13606 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
13607
13608         * doc/install.texi (Building the Ada compiler): Remove
13609         example.
13610
13611 2004-02-20  James E Wilson  <wilson@specifixinc.com>
13612
13613         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
13614
13615 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13616
13617         * gcc.c (process_command): Allow translation of the copyright
13618         symbol but not the rest of the copyright message.
13619         * gcov.c (print_version): Likewise.  Allow translation of the
13620         message about warranty.
13621
13622 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
13623
13624         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
13625         predicate.
13626         ("*andsi_clear"): Tweak constraints to not match postincrement.
13627         Adjust the predicate to exclude a volatile memory reference.
13628         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
13629         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
13630
13631 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
13632
13633         * move-if-change: Remove.
13634         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
13635         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
13636         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
13637         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
13638         (s-gtyp-gen, s-iov): Use the top level move-if-change.
13639         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
13640
13641 2004-02-19  James E Wilson  <wilson@specifixinc.com>
13642
13643         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
13644         for operand2.  Add condition that requires register_operand operand2
13645         before reload.
13646
13647 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
13648             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13649
13650         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
13651         * config/mips/mips.md: Expand comment above unaligned loads and stores.
13652
13653 2004-02-19  Richard Henderson  <rth@redhat.com>
13654
13655         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
13656         * tree.c (build0, build1, build2, build3, build4): Split out from...
13657         (build): ... here.  Call them.
13658         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
13659
13660         * convert.c (convert_to_integer): Remove extra build argument.
13661         * tree-inline.c (expand_call_inline): Likewise.
13662
13663 2004-02-19  Richard Henderson  <rth@redhat.com>
13664
13665         * c-opts.c (warn_variadic_macros): New.
13666         (c_common_handle_option): Set it.
13667         (sanitize_cpp_opts): Copy it to cpp_opts.
13668         * c.opt (Wvariadic-macros): New.
13669         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
13670         * cppinit.c (cpp_create_reader): Initialize it.
13671         * cppmacro.c (parse_params): Check it.
13672
13673 2004-02-19  David Daney <ddaney@avtrex.com>
13674
13675         PR preprocessor/14198
13676         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
13677         builtin_assert ("machine=mips")
13678
13679 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
13682         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13683         * config/cris/cris.h: Remove a comment about
13684         DEFAULT_SHORT_ENUMS.
13685         * config/ip2k/ip2k.h: Likewise.
13686         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
13687
13688 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
13689
13690         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
13691         when passing single SFmode quantities in general registers,
13692         put them in the high half.
13693
13694 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
13695
13696         * doc/md.texi (Standard Names): Document additional dependency on
13697         fix pattern.
13698
13699         * optabs.c (ftruncify): Remove.
13700         (expand_fix): Manually inline ftruncify above.
13701         (can_fix_p): Add FIXME note.
13702
13703 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
13704
13705         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
13706         spe_fixuns_truncsfsi2.
13707
13708         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
13709         fixuns_truncsfsi2.
13710
13711 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
13712
13713         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
13714         * testsuite/gcc.dg/20040219-1.c: New test.
13715
13716 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
13717
13718         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
13719         "*subsf3_cconly"): Subtraction is not commutative.
13720
13721 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
13722
13723         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
13724         (sdbout_symbol): If called before sdbout_init, queue DECL for
13725         later and return.
13726         (sdbout_init): Set sdbout_initialized true, process decls
13727         queued earlier by sdbout_symbol.
13728         (sdbout_finish): Use size_t for index variable.
13729
13730 2004-02-19  Jeff Law  <law@redhat.com>
13731
13732         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
13733         for unordered comparison codes.
13734
13735 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
13736
13737         * reload1.c (reload): Correct comment.
13738         (scan_paradoxical_subregs): Remove #if 0 and old comment.
13739         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
13740         register variables are not used by reload.
13741
13742 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
13743
13744         PR target/14209
13745         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
13746         constraints to not match postincrement.  Adjust the predicate to
13747         exclude a volatile memory reference.
13748
13749 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13750
13751         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
13752
13753 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13754
13755         * hooks.c (hook_void_tree_int): Remove.
13756         (hook_void_constcharptr): Likewise.
13757         (hook_int_void_0): Likewise.
13758         * hooks.h: Remove the prototypes for the above three
13759         functions.
13760         * targhooks.c (hook_bool_machine_mode_true): Remove.
13761         * targhooks.h: Remove the prototype for
13762         hook_bool_machine_mode_true.
13763
13764 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13765
13766         * emit-rtl.c (subreg_realpart_p): Remove.
13767         (reorder_insns_with_line_notes): Likewise.
13768         (end_full_sequence): Likewise.
13769         * rtl.h: Remove the prototype for the above functions.
13770
13771 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13772
13773         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
13774         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13775         config/iq2000/iq2000.h, config/m32r/m32r.h,
13776         config/pdp11/pdp11.h, config/sparc/sparc.h,
13777         config/xtensa/xtensa.h: Remove commented-out or useless
13778         definitions of CASE_VECTOR_PC_RELATIVE.
13779
13780 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
13781
13782         * loop.c (all_sets_invariant_p): Remove.
13783
13784 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13785
13786         PR target/12916
13787         * config/sparc/sparc.h (NPARM_REGS): Delete.
13788         (BASE_RETURN_VALUE_REG): Likewise.
13789         (BASE_OUTGOING_VALUE_REG): Likewise.
13790         (BASE_PASSING_ARG_REG): Likewise.
13791         (BASE_INCOMING_ARG_REG): Likewise.
13792         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
13793         TARGET_ARCH64, not TARGET_V9.
13794         (function_arg_slotno): Dispatch based on the mode class.
13795         Handle vector modes like floating-point modes.
13796         (function_arg_record_value_1): Handle vector types like
13797         floating-point types.
13798         (function_arg_record_value_2): Likewise.
13799         Calculate regno after mode transformation.
13800         (function_arg): Handle vector modes like floating-point modes.
13801         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
13802         If ARCH64, do not recheck alignment.
13803         (function_arg_pass_by_reference): Reorder the conditions.
13804         (sparc_return_in_memory): Move after function_arg_padding.
13805         Implement calling conventions for vector modes.
13806         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
13807         (function_value): Move scope of 'regbase'.
13808         Implement calling conventions for vector modes.
13809         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
13810         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
13811         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
13812         the argument is passed by reference.
13813         (sparc_type_code): Handle vector types.
13814
13815 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
13816
13817         * function.c (assign_parms): When building decl_rtl for
13818         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
13819
13820 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
13821
13822         * expr.c (is_aligning_offset): Check if we are aligning the
13823         expressions's address over BIGGEST_ALIGNMENT in bytes, not
13824         in bits.
13825
13826 2004-02-18  Matt Austern  <austern@apple.com>
13827
13828         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
13829         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
13830         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
13831         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
13832         spec string.
13833         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
13834
13835 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
13836
13837         * dwarf2out.c (loclabel_num): Move outside #ifdef
13838         DWARF2_DEBUGGING_INFO and mark with GTY(()).
13839         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
13840         Mark with GTY(()).
13841         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
13842         Allocate memory with ggc_alloc.  No need to copy anything.
13843         (ia64_hpux_file_end): Update to match.
13844
13845 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
13846
13847         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
13848         by default.
13849
13850 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13851
13852         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
13853         ("divmodtisi3"): Likewise.
13854         ("udivmoddi4", "udivmodtidi3"): Likewise.
13855         ("divmodsi4", "divmoddisi3"): Likewise.
13856         ("udivmodsi4", "udivmoddisi3"): Likewise.
13857         ("udivsi3", "umodsi3"): Likewise.
13858
13859 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13860
13861         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
13862         placeholder insn when chunkifying the pool.
13863
13864 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13865
13866         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
13867         generating PIC code.
13868
13869 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13870
13871         * config/h8300/h8300-protos.h: Add a prototype for
13872         h8300_expand_branch.
13873         * config/h8300/h8300.c (h8300_expand_branch): New.
13874         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
13875         bgtu, beq, bne): Call h8300_expand_branch().
13876
13877 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13878
13879         * config/h8300/h8300-protos.h: Add prototypes for
13880         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
13881         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
13882         (h8300_hard_regno_mode_ok): Likewise.
13883         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
13884         h8300_hard_regno_nregs().
13885         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
13886
13887 2004-02-18  Per Bothner  <per@bothner.com>
13888
13889         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
13890         partly reverts my 2003-10-01 change, because we're back to logically
13891         including <command line> inside the main line.
13892         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
13893         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
13894         Fixes PR preprocessor/14103.
13895
13896         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
13897         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
13898         (cpp_push_include):  Don't need to increment pfile's line field.
13899         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
13900
13901         * c-ppoutput.c (print struct):  New first_time field.
13902         (init_pp_output):  Set print.first_time.
13903         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
13904         which is set also for (say) <command line>.  Clear print.first_time.
13905
13906         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
13907         does not match the code, so fix both.
13908         (should_stack_file):  Inline include_pch_p function.
13909         (include_pch_p):  Remove pointless function.
13910
13911         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
13912
13913 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13914
13915         * config/h8300/h8300.md (four define_peephole2's): Use
13916         h8300_regs_ok_for_stm().
13917
13918 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13919
13920         * config/h8300/h8300-protos.h: Update the prototype for
13921         expand_a_rotate().
13922         * config/h8300/h8300.c (expand_a_rotate): Remove the first
13923         argument.
13924         * config/h8300/h8300.md: Update all callers.
13925
13926 2004-02-18  Jan Hubicka  <jh@suse.cz>
13927
13928         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
13929         floats.
13930         (simplify_binary_operation): Deal with logicals on floats.
13931
13932         * i386.md (SSE fabs splitters): Emit new patterns.
13933         (SSE cmov splitters): Likewise.
13934         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
13935         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
13936         subregs.
13937         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
13938         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
13939
13940 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13941
13942         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
13943         by hand.
13944         (output_a_rotate): Tweak a comment.
13945         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
13946         (*rotlhi3_1): Change to rotlhi3_1.
13947         (*rotlsi3_1): Change to rotlsi3_1.
13948
13949 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
13950
13951         PR target/13866
13952         * arm.c (load_multiple_operation): Don't insist that the source reg
13953         of a post-increment component is the same as the destination.
13954         (store_multiple_operation): Likewise.
13955
13956 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13957
13958         * config/h8300/h8300.md: Move movsf patterns into one section
13959         of the file.
13960
13961 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13962
13963         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
13964         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
13965         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
13966         config/mips/linux64.h, config/pa/pa-64.h,
13967         config/rs6000/aix51.h, config/rs6000/aix52.h,
13968         config/rs6000/spe.md, config/sparc/linux.h,
13969         config/sparc/linux64.h: Update copyright.
13970
13971 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
13972
13973         * config/h8300/h8300.md: Move push patterns into one
13974         section of the file.
13975
13976 2004-02-18  Mark Mitchell <mark@codesourcery.com>
13977
13978         PR c++/11326
13979         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
13980         fntype.
13981
13982 2004-02-18  Paul Brook  <paul@codesourcery.com>
13983
13984         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
13985
13986 2004-02-18  Paul Brook  <paul@codesourcery.com>
13987
13988         PR debug/12934
13989         * dwarf2out.c (loc_descriptor_from_tree): Handle
13990         EXPR_WITH_FILE_LOCATION.
13991
13992 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
13993
13994         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
13995         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
13996         trailing whitespace from instructions.
13997
13998 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
13999
14000         * configure.ac: When generating auto-build.h, pass
14001         --enable-languages to the sub-configure.
14002         Put quotes around ${program_transform_name} when generating
14003         name of as, ld, nm, objdump.
14004         * configure: Regenerate.
14005
14006 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14007
14008         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14009         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14010         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14011         (s-preds, s-iov): Do not depend on move-if-change.
14012
14013 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14014
14015         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14016         (insert_save): Likewise.
14017
14018 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14019
14020         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14021         warning.
14022
14023 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14024
14025         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14026         *one_cmplsi2_h8300.
14027         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14028
14029 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14030
14031         * config/h8300/h8300-protos.h: Update the prototype of
14032         fix_bit_operand().
14033         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14034         argument "what".
14035         * config/h8300/h8300.md: Update all callers.
14036
14037 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14038
14039         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14040         the last argument to "code" from "type".
14041
14042 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14043
14044         * config/h8300/h8300.c: Remove an extern declaration of
14045         rtx_equal_function_value_matters.
14046
14047 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14048
14049         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14050         by hand.
14051         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14052         (*iorqi3_1): Change to iorqi3_1.
14053         (*xorqi3_1): Change to xorqi3_1.
14054
14055 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14056
14057         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14058         typos.
14059
14060 2004-02-17  Jan Hubicka  <jh@suse.cz>
14061
14062         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14063
14064 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14065
14066         PR optimization/14119
14067         * combine.c (try_combine): When attemting to fix unrecognized insns,
14068         don't delete SETs marked with REG_EH_REGION notes.
14069
14070 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14071
14072         * combine.c (simplify_if_then_else): Do not replace
14073         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14074         modes differ.
14075
14076 2004-02017  Steven Bosscher  <stevenb@suse.de>
14077
14078         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14079         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14080         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14081         * ada/utils.c: Likewise.
14082         * cp/decl.c: Likewise.
14083         * f/com.c: Likewise.
14084         * java/class.c: Likewise.
14085
14086 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14087
14088         * config/h8300/h8300.md: Fix comment typos.
14089
14090 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14091
14092         * config/mips/t-iris6gld: Renamed to ...
14093         * config/mips/t-irix-gld: ... this.
14094         * config.gcc (mips-sgi-irix6*): Reflect this
14095         (mips-sgi-irix5*): Use it with GNU ld.
14096
14097         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14098         to ...
14099         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14100         * config/mips/t-irix-gld: Reflect this.
14101         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14102
14103         * config/mips/iris5gld.h: New file.
14104         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14105         Only use collect2 without gas.
14106
14107         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14108         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14109         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14110         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14111
14112         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14113         * config/mips/iris5.h: ... here.
14114
14115         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14116         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14117         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14118
14119         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14120         using irix_startfile_spec, irix_endfile_spec.
14121
14122 2004-02-16  Gunther Nikl  <gni@gecko.de>
14123
14124         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14125
14126 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14127
14128         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14129         insns by hand.
14130
14131 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14132
14133         * cfghooks.c (split_edge): Speed up updating of dominators.
14134
14135 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14136
14137         PR c++/11326
14138         * c-common.c (flag_abi_version): Remove.
14139         * c-common.h (flag_abi_version): Likewise.
14140         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14141         * c.opt (fabi-version): Remove.
14142         * calls.c (expand_call): Always pass a function type to
14143         struct_value_rtx.  Use convert_memory_address.
14144         * common.opt (fabi-version): Add it.
14145         * flags.h (flag_abi_version): Likewise.
14146         (abi_version_at_least): New macro.
14147         * opts.c (common_handle_option): Add OPT_fabi_version.
14148         * toplev.c (flag_abi_version): Define it.
14149         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14150         New function.
14151         (ia64_output_mi_thunk): Use it.
14152         (ia64_struct_value_rtx): Likewise.
14153
14154 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14155
14156         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14157         Don't generate insns by hand.
14158
14159 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14160
14161         PR c++/14178
14162         * doc/invoke.texi (fabi-version): The default is 2 now.
14163
14164 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14165
14166         * loop-iv.c: New file.
14167         * Makefile.in (loop-iv.o): New.
14168         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14169         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14170         num_loop_branches): New functions.
14171         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14172         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14173         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14174         get_simple_loop_desc, free_simple_loop_desc): Declare.
14175         (simple_loop_desc): New inline function.
14176         (struct rtx_iv, struct niter_desc): New.
14177         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14178         * expr.c (force_operand): Handle subregs of expressions created by
14179         loop unroller.
14180         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14181         parts of the initialization to toplev.c
14182         * loop-unroll.c (loop_exit_at_end_p): New.
14183         (unroll_and_peel_loops): Call iv_analysis_done.
14184         (decide_peel_once_rolling, decide_peel_completely,
14185         decide_unroll_stupid, decide_unroll_constant_iterations,
14186         decide_unroll_runtime_iterations, decide_peel_simple,
14187         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14188         unroll_loop_runtime_iterations): Use new simple loop analysis.
14189         * loop-unswitch.c (compare_and_jump_seq): New.
14190         (may_unswitch_on_p): Renamed to ...
14191         (may_unswitch_on): Use new iv analysis.
14192         (reversed_condition): Export.
14193         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14194         * predict.c (estimate_probability): Use new simple loop analysis.
14195         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14196         canon_condition, simplify_using_condition): Declare.
14197         * stor-layout.c (get_mode_bounds): New.
14198         * toplev.c (rest_of_handle_loop2): Some parts of
14199         initialization/finalization moved here from loop-init.c.
14200
14201 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14202
14203         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14204         pointer.
14205         (CALL_USED_REGISTERS): Likewise.
14206         (REG_ALLOC_ORDER): Likewise.
14207         (REG_CLASS) <GENERAL_REGS>: Likewise.
14208
14209 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14210
14211         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14212         in associative operators.
14213         * rtlanal.c (commutative_operand_precedence): Create some new
14214         variables.  Prefer a commutative operand on the left, then
14215         binary expressions, then NEG and NOT.
14216
14217 2004-02-16  Matthias Klose  <doko@debian.org>
14218
14219         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14220         in terms of SHLIB_SOVERSION.
14221         * config/m68k/t-slibgcc-elf-ver: New file.
14222         * config/pa/t-slibgcc-elf-ver: New file.
14223         * config.gcc (m68k-linux, parisc-linux): Use them when not
14224         sjlj exceptions are not configured.
14225
14226 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14227
14228         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14229
14230 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14231
14232         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14233
14234 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14235
14236         * doc/sourcebuild.texi: Mention backends.html.
14237
14238 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14239
14240         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14241         line-map.c, line-map.h, var-tracking.c: Fix comment
14242         formatting.
14243
14244 2004-02-16  Richard Henderson  <rth@redhat.com>
14245
14246         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14247
14248         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14249
14250 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14251
14252         * config/h8300/h8300.md: Remove unnecessary parallels from
14253         all define_insn and define_split patterns.
14254
14255 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14256
14257         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14258         "clobber").
14259
14260 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14261
14262         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14263         '%#'.
14264
14265 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14266
14267         * config/ia64/ia64.c, config/mips/mips.c,
14268         config/mmix/mmix-modes.def: Fix comment typos.
14269
14270 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14271
14272         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14273         (get_directive_line): Remove unused function prototype.
14274
14275 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14276
14277         * tree-inline.c (copy_body_r): Do not replace ret_label.
14278
14279 2004-02-14  Jan Hubicka  <jh@suse.cz>
14280
14281         * i386.c (x86_four_jump_limit): New variable.
14282         (k8_avoid_jump_misspredicts): Rename to ...
14283         (ix86_avoid_jump_misspredicts): .. this one.
14284         (ix86_pad_returns): Break out from ...
14285         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14286         to.
14287         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14288
14289 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14290
14291         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14292         PARALLEL is NULL.
14293
14294 2004-02-14  Per Bothner  <per@bothner.com>
14295
14296         * fix-header.c (line_table):  Move local variable in main to global.
14297         * scan.h (line_table):  Use it.
14298         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14299         line (recently renamed to src_loc) before calling recognized_function.
14300
14301 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14302
14303         * Makefile.in: Fix comment typos.
14304
14305 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14306
14307         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14308         for start_value when it is directly moved into reg, and factorize
14309         the retrieval of GET_MODE (reg).
14310
14311 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14312
14313         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14314         (mips_load_got_global): Delete.
14315         (mips_gotoff_page): Declare.
14316         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14317         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14318         UNSPEC_LOAD_GOT pattern rather than a MEM.
14319         (*load_got[sd]i): New patterns.
14320         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14321         (mips_load_got_page, mips_load_got_global): Delete.
14322         (mips_gotoff_page): New function.
14323         (override_options): Don't initialize mips_got_alias_set.
14324
14325 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14326
14327         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14328         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14329         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14330         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14331         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14332         * config/mips/mips.c: Fix some overly-long lines.
14333         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14334         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14335
14336 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14337
14338         * configure.ac: Search for as, ld below libexec/gcc.
14339         * configure: Regenerate.
14340
14341 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14342
14343         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14344         __builtin_arm_setwcx ().
14345         * config/arm/arm.c (arm_expand_builtin): Generate operands
14346         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
14347
14348 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14349
14350         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
14351         and "wmuluh" to "wmulsm" and "wmulum", respectively.
14352         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
14353         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
14354         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
14355         (_mm_mulhi_pu16): Likewise.
14356
14357 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
14358
14359         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
14360         DECL_NAME != 0 before dereferencing.
14361
14362 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14363
14364         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
14365         (s390_output_addr_const_extra): Declare.
14366         (s390_output_pool_entry): Remove FILE * argument.
14367         * config/s390/s390.c (s390_output_symbolic_const): Remove.
14368         (s390_output_addr_const_extra): New function.
14369         (print_operand_address): Call output_addr_const instead of
14370         s390_output_symbolic_const.
14371         (print_operand): Likewise.
14372         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
14373         Remove FILE * argument.
14374         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
14375         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
14376         call.
14377
14378 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14379
14380         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
14381         (struct edge, struct vertex, struct graph): New.
14382         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
14383         free_graph): New functions.
14384
14385 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
14386
14387         * config/mips/mips.md (casesi_internal, casesi_internal_di):
14388         Use ".set macro" to avoid warnings about multi-instruction
14389         macros, since they're intentional.
14390
14391 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
14392
14393         * config/darwin.h: Add include guards.  Remove old, now incorrect,
14394         comment about STANDARD_EXEC_PREFIX.
14395
14396         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
14397         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
14398         for installing .1 manpages.  Add rules for installing cpp
14399         and gcov manpages under their installed names.
14400
14401 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
14402
14403         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
14404         host, but try LD_FOR_TARGET first.
14405         * configure: Rebuilt.
14406
14407 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14408
14409         * dbxout.c: Move declaration of dbxout_type_decl outside
14410         #ifdef DBX_DEBUGGING_INFO.
14411         * c-parse.in: Don't give the asmdef production a type.
14412
14413 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14414
14415         * debug.h (struct gcc_debug_hooks): Add type_decl field.
14416         (debug_nothing_tree_int): Prototype.
14417         (dwarf_debug_hooks): Delete, unused.
14418         * debug.c (do_nothing_debug_hooks): Update.
14419         (debug_nothing_tree_int): New function.
14420         * langhooks.h (struct lang_hooks_for_decls):
14421         Remove builtin_type_decls field.
14422         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
14423         (LANG_HOOKS_DECLS): Update.
14424         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
14425         Use debug_hooks->type_decl.
14426         * dbxout.c (preinit_symbols): New static.
14427         (dbx_debug_hooks, xcoff_debug_hooks): Update.
14428         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
14429         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
14430         for symbols to output.
14431         (dbxout_type_decl): New function.
14432         (dbxout_symbol): If called before dbxout_init has run, queue
14433         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
14434         to TYPE_DECLs before emitting them.
14435         * xcoffout.c (assign_type_number): Delete.
14436         (xcoff_type_numbers): New static table.
14437         (xcoff_assign_fundamental_type_number): New function.
14438         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
14439         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
14440         * sdbout.c: Include varray.h.
14441         (deferred_global_decls): New static.
14442         (sdb_debug_hooks): Update.
14443         (sdbout_global_decl): If we can't emit something right now,
14444         remember it in deferred_global_decls.
14445         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
14446         (sdbout_init): Initialize deferred_global_decls.
14447         * Makefile.in: Update dependencies of sdbout.o.
14448         * dwarf2out.c (dwarf2out_type_decl): New function.
14449         (dwarf2_debug_hooks): Update.
14450         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
14451         * c-decl.c (getdecls): Just return 0.
14452         (check_for_loop_decls): Don't use getdecls.
14453         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
14454         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
14455
14456 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
14457
14458         * config/s390/s390.c (s390_sched_reorder2): Remove.
14459         (TARGET_SCHED_REORDER2): Do not redefine.
14460
14461 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14462
14463         * c-parse.in (maybe_type_qual): Delete.
14464         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
14465         (asm_argument): New grammar rules.
14466         (extdef_1): Use asmdef.
14467         (maybeasm): Move down with other asm rules; use simple_asm_expr.
14468         (xexpr): Move up with other expression rules.
14469         (stmt): Use asm_stmt.
14470
14471         * c-typeck.c (build_asm_expr): New function - body mostly
14472         pulled from build_asm_stmt.
14473         (build_asm_stmt): Just handle tacking on the volatile qualifier.
14474         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
14475
14476 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
14477
14478         PR bootstrap/13617
14479         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
14480         (mips_declare_object): Make variadic.
14481         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
14482         mips_output_aligned_decl_common.
14483         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
14484         (mips_declare_object): Make variadic.
14485
14486 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14487
14488         * function.c (update_epilogue_consts): Teach about binary operations.
14489
14490         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
14491         previous MEM_VOLATILE in REF.
14492         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
14493         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
14494
14495 2004-02-12  Gunther Nikl  <gni@gecko.de>
14496
14497         * config.gcc: Restore support for m68k-openbsd.
14498
14499 2004-02-12  Jan Hubicka  <jh@suse.cz>
14500
14501         * tree-optimize.c (tree_rest_of_compilation): Do not release
14502         DECL_ARGUMENTS.
14503
14504 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
14505
14506         * doc/install.texi: Fix the spelling of "explicitly".
14507
14508 2004-02-11  Eric Christopher  <echristo@redhat.com>
14509
14510         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
14511         duplicate argument structure of cpp_interpret_string.
14512         * cpphash.h: Move prototype...
14513         * cpplib.h: Here.
14514         * cpplib.c: Fix calls to match new function signature.
14515
14516 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14517
14518         PR c/456
14519         * cppexp.c (num_binary_op): Don't allow comma operators in #if
14520         constant expressions at all outside C99 mode if pedantic.
14521
14522 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
14523
14524         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
14525         (log10_optab, log2_optab): Define corresponding macros.
14526         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
14527         * genopinit.c (optabs): Implement log10_optab and log2_optab
14528         using log10?f2 and log2?f2 patterns.
14529         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
14530         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
14531         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
14532         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
14533
14534         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
14535         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
14536         log2, log2f and log2l built-ins as inline x87 intrinsics.
14537
14538 2004-02-11  Richard Henderson  <rth@redhat.com>
14539
14540         PR target/1532
14541         * flow.c (insn_dead_p): A clobber of a dead hard register is a
14542         dead insn after reload.
14543
14544 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
14545
14546         * tree.h (frame_base_decl): Add GTY marker.
14547         * var-tracking.c (frame_base_decl): Likewise.
14548
14549 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
14550
14551         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
14552         incorrect, hunk.
14553         (add_location_or_const_value_attribute): Use text_section_label,
14554         not TEXT_SECTION_NAME.
14555
14556 2004-02-11  Per Bothner  <per@bothner.com>
14557
14558         Represent column numbers using line-map's source_location.
14559         The "next available source_location" is now managed internally by
14560         line-maps.c rather than by clients.
14561         * line-map.h (struct line_map):  New field column_bits.
14562         <from_line>:  Rename field to start_location.
14563         (struct line_maps):  New fields highest_location and max_column_hint.
14564         (linemap_check_files_exited):  New declaration.
14565         (linemap_line_start):  New declaration.
14566         (linemap_add):  Remove from_line parameter; use highest_location field.
14567         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
14568         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
14569         (CURRENT_LINE_MAP):  Remove macro.
14570         (linemap_position_for_column):  New inline function.
14571         * line-map.c (linemap_init):  Clear new fields.
14572         (linemap_check_files_exited):  New function, extracted from ...
14573         (linemap_free):  Use linemap_check_files_exited.
14574         (linemap_add):  Remove from_line parameter.  Various updates.
14575         (linemap_line_start):  New function.
14576         (linemap_lookeup):  Update for new field names.
14577         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
14578         linemap_position_for_column may unpredictably change the current map,
14579         it is cleaner and simpler for us to not cache it in cpp_reader.
14580         (struct cpp_buffer):  New sysp field.
14581         Changed warned_cplusplus_comments and from_stage3 to bitfields.
14582         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
14583         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
14584         current map using linemap_lookup.
14585         (do_linemarker):  Also set buffer's sysp field.
14586         (destringize_and_run):  No longer need to decrement current line.
14587         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
14588         (search_path_head, open_file_failed):  Use buffer's sysp.
14589         (cpp_make_system_header):  Get current map using linemap_lookup.
14590         Also set buffer's sysp flag.
14591         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
14592         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
14593         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
14594         (struct cpp_reader):  ... and adding saved_line_base field.
14595         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
14596         Update accordingly.  Don't adjust line.
14597         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
14598         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
14599         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
14600         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
14601         * cpplex.c (_cpp_lex_direct):  Likewise.
14602         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
14603         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
14604         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
14605         Remove col field as it is now subsumed by src_loc.
14606         * cpperror.c:  Update various field, parameter, and macro names.
14607         (print_location):  If col==0, try SOURCE_COLUMN of line.
14608         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
14609         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
14610         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
14611         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
14612         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
14613         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
14614         (_cpp_lex_direct):  Use linemap_position_for_column.
14615         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
14616         parameter.  Instead get it from the line_table global.  Adjust callers.
14617         (print):  Remove map field.  Replace line field to src_line.
14618         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
14619         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
14620         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
14621         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
14622         * cpptrad.c (copy_comment):  Rename variable.
14623         * c-lex.c (map):  Remove static variable, for same reason we removed
14624         cpp_reader's map field.
14625         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
14626         to call linemap_lookup.
14627         (cb_line_change):  Token's line field replaced by src_loc.
14628         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
14629         Don't save new_map.
14630
14631         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
14632         source_location.
14633
14634 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
14635
14636         * config/rs6000/altivec.md (*movv4si_internal): At least one
14637         operand must be register_operand.
14638         (*movv8hi_internal1): Likewise.
14639         (*movv16qi_internal1): Likewise.
14640         (*movv4sf_internal1): Likewise.
14641
14642 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
14643
14644         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
14645         operand.
14646         (movv4hi_internal): Same.
14647         (movv2sf_internal): Same.
14648         (movv1di_internal): Same.
14649
14650 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
14651
14652         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
14653         TARGET_OLDABI consistently.
14654         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
14655         mips_va_arg,override_options,compute_frame_size,
14656         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
14657         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
14658         and TARGET_OLDABI consistently.
14659         * config/mips/mips.md (exception_receiver): Likewise.
14660         * config/mips/linux64.h: Likewise.
14661
14662 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
14663
14664         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
14665         Set AltiVec ABI and vrsave as default for ppc64 linux.
14666         (init_cumulative_args): Post error, if try to return
14667         value in AltiVec register without enable AltiVec.
14668         (function_arg_advance): Ditto for passing arguments.
14669
14670 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
14671
14672         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
14673         a label before updating its usage count.
14674
14675 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
14676
14677         * doc/install.texi: Remove extra cd.
14678
14679 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
14680
14681         * c-common.c (vector_size_helper): Remove; call
14682         reconstruct_complex_type() instead.
14683         * tree.c (reconstruct_complex_type): New function
14684         (formerly vector_size_helper() in c-common.c).
14685         (make_vector): Make externally visible.
14686         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
14687
14688 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14689
14690         * config/h8300/h8300-protos.h: Add a prototype for
14691         h8300_regs_ok_for_stm.
14692         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
14693         * config/h8300/h8300.md (stm_h8300s_2_advanced,
14694         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
14695         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
14696         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
14697         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
14698         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
14699         ldm_h8300s_4_normal, ldm_h8300s_4): Use
14700         h8300_regs_ok_for_stm().
14701
14702 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14703
14704         PR c/14088
14705         * real.c (real_from_string): Look for 'X' as well as 'x' in
14706         hexfloat strings.
14707
14708 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14709
14710         * config/h8300/h8300.md: Remove an incorrect comment about
14711         peephole2.  Add comments.
14712
14713 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
14714
14715         PR/14058
14716         * emit-rtl.c (set_decl_incoming_rtl): New.
14717         * tree.h (set_decl_incoming_rtl): New.
14718         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
14719         DECL_INCOMING_RTL.
14720         * ada/misc.c (adjust_decl_rtl): Likewise.
14721
14722 2004-02-10  Per Bothner  <per@bothner.com>
14723
14724         * c-opts.c (c_common_post_options):   Don't emit working directory
14725         in cpp output if -P was specified.
14726
14727 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
14728
14729         PR c/14092
14730         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
14731         negate_expr back to the original type.
14732
14733 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
14734
14735         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
14736         bump retaddr here.
14737
14738 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
14739
14740         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
14741         gen_lowpart_SUBREG): Move under the file in which they
14742         are actually declared.
14743
14744 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
14745
14746         * doc/sourcebuild.texi: Add libada documentation.
14747
14748         * doc/install.texi: Update documentation on Ada build, now
14749         that the GNAT lib and tools are built automatically.
14750
14751 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
14752
14753         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
14754         && TARGET_IRIX.
14755
14756 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
14757
14758         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
14759         boundaries outside build_component_ref() call (a macro in ObjC++).
14760
14761 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
14762
14763         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
14764         (init_cumulative_args): Likewise.
14765         (a7_overlap_mentioned_p): Delete prototype.
14766         * config/xtensa/xtensa.c (struct machine_function): Replace
14767         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
14768         Add set_frame_ptr_insn field.
14769         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
14770         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
14771         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
14772         at the function entry and replace the operand with the pseudo.
14773         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
14774         argument and record this flag in CUMULATIVE_ARGS.
14775         (function_arg): Remove result_mode and special-case code to handle
14776         arguments in a7.  Instead, set need_a7_copy flag when there is an
14777         incoming argument in a7.
14778         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
14779         and use the value recorded in cfun->machine->set_frame_ptr_insn.
14780         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
14781         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
14782         special-case code.
14783         (a7_overlap_mentioned_p): Delete.
14784         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
14785         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
14786         arguments to init_cumulative_args and pass "incoming" flag instead.
14787         (BLOCK_REG_PADDING): Delete.
14788         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
14789         checks for reload_in_progress and reload_completed.  Update calls to
14790         xtensa_copy_incoming_a7.
14791         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
14792         to call xtensa_copy_incoming_a7.
14793
14794 2004-02-09  DJ Delorie  <dj@redhat.com>
14795
14796         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
14797         longer modify standard_exec_prefix, standard_bindir_prefix, or
14798         standard_startfile_prefix.
14799
14800 2004-02-09  James E Wilson  <wilson@specifixinc.com>
14801
14802         PR c++/11295
14803         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
14804         to expand_expr_real call, and pass in alt_rtl as last argument.
14805
14806         PR libstdc++/5625
14807         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
14808         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
14809         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
14810         * except.c (expand_builtin_extend_pointer): New.
14811         * except.h (expand_builtin_extend_pointer): Declare.
14812
14813 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
14814
14815         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
14816         unaligned loads and stores.
14817
14818 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14819
14820         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
14821         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
14822
14823         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
14824         * config/mips/iris5.h: ... here.
14825         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
14826
14827         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
14828         * config/mips/iris5.h: ... here.
14829
14830 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14831
14832         * configure.ac: Remove default executable files before AC_PROG_CC.
14833         * configure: Regenerate.
14834
14835 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
14836
14837         PR target/13721
14838         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
14839         print a operand other than a register.
14840
14841 2004-02-09  Roger Sayle  <roger@eyesopen.com>
14842
14843         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
14844         tree code rather than call fold_convert, which doesn't specify a
14845         default floating point to integer conversion.
14846
14847 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
14848
14849         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
14850         code to support SGS assembler.  Reformat adjacent code where possible.
14851         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
14852         definition.
14853         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
14854         for '%#'.
14855         * config/m68k/linux.h, config/m68k/m68k.c,
14856         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
14857         macros and asm_printf() format strings.
14858         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
14859         * config/m68k/linux.h: Update copyright.
14860         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
14861
14862 2004-02-08  Andreas Schwab  <schwab@suse.de>
14863             Bernardo Innocenti  <bernie@develer.com>
14864
14865         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
14866         REGISTER_PREFIX.
14867         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
14868         frame pointer register, overridable by OS targets.
14869         * (M68K_REGNAME): Macro to obtain register name for asm output,
14870         eventually replacing %a6 with M68K_FP_REG_NAME.
14871         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
14872         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
14873         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
14874         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
14875         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
14876
14877 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
14878
14879         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
14880         hook_rtx_tree_int_null.
14881         * targhooks.c (default_struct_value_rtx): Remove.
14882         * targhooks.h: Remove the prototype for
14883         default_struct_value_rtx.
14884         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
14885         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
14886         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14887         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
14888         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
14889         config/rs6000/rs6000.c, config/s390/s390.c,
14890         config/stormy16/stormy16.c, config/v850/v850.c,
14891         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
14892         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
14893
14894 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
14895
14896         * README.Portability: Change "ISO C89" to "ISO C90".
14897         * c-parse.in (primary, initelt): Likewise.
14898
14899 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
14900
14901         * real.c (encode_ibm_extended): Normalize the input value before
14902         converting it to a double.  Handle the case where a normal value
14903         rounds to infinity.
14904
14905 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
14906
14907         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
14908         warning.
14909         * cse.c (preferrable): Change to preferable. Update all of its
14910         callers.
14911         * genautomata.c (ainsn): Change
14912         first_ainsn_with_given_equialence_num to
14913         first_ainsn_with_given_equivalence_num.  Update all of its
14914         references.
14915
14916 2004-02-08  Jan Hubicka  <jh@suse.cz>
14917
14918         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
14919
14920 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
14921
14922         * function.c (assign_parms): Fix formatting.
14923
14924 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14925
14926         * default.h (PROMOTE_PROTOTYPES): Remove.
14927         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
14928         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
14929         EXPAND_BUILTIN_SAVEREGS): Poison.
14930         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
14931         hook_bool_tree_false.
14932         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14933         * target.h: Replace SETUP_INCOMING_VARARGS with
14934         targetm.calls.setup_incoming_varargs().
14935         * targhooks.c (default_promote_function_return): Remove.
14936         (default_promote_prototypes): Likewise.
14937         (default_struct_value_rtx): Always abort().
14938         (default_expand_builtin_saveregs): Always print an error
14939         message.
14940         (default_setup_incoming_varargs): Do nothing.
14941         (default_pretend_outgoing_varargs_named): Don't depend on
14942         SETUP_INCOMING_VARARGS.
14943         * targhooks.h: Remove the prototype for
14944         default_promote_function_return and
14945         default_promote_prototypes.
14946
14947 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14948
14949         * system.h (SHARED_SECTION_ASM_OP): Poison.
14950         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
14951         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
14952
14953 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
14954
14955         Bug 13856
14956         * c-decl.c (diagnose_mismatched_decls): Only give special
14957         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
14958         is also true.
14959         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
14960         DECL_FUNCTION_CODE when defining a built-in function.
14961         Don't update DECL_ESTIMATED_INSNS.
14962         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
14963         FUNCTION_DECLs.
14964         * tree.h: Delete DECL_ESTIMATED_INSNS.
14965         * tree-inline.c (struct inline_data): Delete inlined_insns field.
14966         (expand_call_inline, optimize_inline_calls): Don't update
14967         DECL_ESTIMATED_INSNS nor inlined_insns.
14968         * cgraphunit.c (cgraph_analyze_function): Don't update
14969         DECL_ESTIMATED_INSNS.
14970
14971 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
14972
14973         * c-common.c (shadow_warning): Delete.
14974         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
14975         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
14976         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
14977         * c-parse.in (free_parser_stacks): Delete.
14978
14979 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
14980
14981         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
14982         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
14983         Use the top level mkinstalldirs, not the one in the gcc subdir.
14984         * mkinstalldirs: Remove (from the gcc subdir).
14985
14986 2004-02-07  Roger Sayle  <roger@eyesopen.com>
14987
14988         PR middle-end/13696
14989         * fold-const.c (fold_convert): New function to provide type
14990         conversion to the middle-end without using convert.
14991         (negate_expr, associate_trees, size_diffop, omit_one_operand,
14992         operand_equal_for_comparison_p, pedantic_omit_one_operand,
14993         invert_truthvalue, optimize_bit_field_compare, range_binop,
14994         decode_field_reference, make_range, build_range_check, unextend,
14995         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
14996         fold_binary_op_with_conditional_arg, fold_inf_compare,
14997         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
14998         convert with calls to fold_convert.
14999
15000 2004-02-07  Jan Hubicka  <jh@suse.cz>
15001
15002         * genrecog.c (find_operand): add extra argument stop.
15003         (validate_pattern): Verify that mach_dup is duplicating operand
15004         defined lexically earlier.
15005
15006 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15007
15008         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15009         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15010         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15011         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15012         config/ia64/ia64.h, config/ip2k/ip2k.h,
15013         config/iq2000/iq2000.h, config/mips/iris5.h,
15014         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15015         config/rs6000/aix51.h, config/rs6000/aix52.h,
15016         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15017         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15018         config/sparc/linux.h, config/sparc/linux64.h,
15019         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15020         config/xtensa/xtensa.h: Remove the definitions of
15021         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15022         MAX_WCHAR_TYPE_SIZE.
15023         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15024         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15025
15026 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15027
15028         PR bootstrap/13990
15029         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15030         gen_rtx_NE.
15031
15032 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15033
15034         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15035         #ifdef ENABLE_CHECKING and #endif.
15036
15037 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15038
15039         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15040         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15041         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15042         integer types and floating point with unsafe_math_optimizations.
15043         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15044         Optimize A - B as A + (-B), if B is easily negated.
15045
15046 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15047
15048         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15049         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15050         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15051         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15052         Update copyright.
15053
15054 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15055
15056         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15057
15058 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15059
15060         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15061         glibc 2.3 or better.
15062
15063 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15064
15065         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15066         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15067
15068 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15069
15070         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15071         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15072         (SHLIB_MKMAP_OPTS): Delete.
15073         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15074         (bispecs): Add rule.
15075         * config/rs6000/libgcc-ppc64.ver: New file.
15076         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15077         (__floatdidf, __floatdisf): Optimize multiply.
15078         (__fixunstfdi): New function.
15079         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15080         real and imag parts larger than one register.
15081         (function_arg): Correct type of reg used when fp arg split partially
15082         to stack.
15083         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15084         and __MACH__ or __powerpc64__.
15085
15086 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15087             Ulrich Weigand  <uweigand@de.ibm.com>
15088
15089         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15090         of gen_highpart or gen_lowpart when the floating point format is
15091         wider than the result mode.
15092
15093 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15094
15095         * dwarf2out.c (loclabel_num): Move into #ifdef
15096         DWARF2_DEBUGGING_INFO.
15097
15098 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15099
15100         * objc/objc-act.c (build_super_template) the 'class' field of
15101         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15102         (get_super_receiver): Likewise.
15103
15104 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15105
15106         * reload1.c (check_eliminable_occurrences): Optimize the reset
15107         of can_eliminate.
15108         (eliminate_regs_in_insn): Likewise.
15109
15110 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15111             Josef Zlomek  <zlomekj@suse.cz>
15112
15113         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15114         at the beginning of function, call dwarf2out_var_location for
15115         NOTE_INSN_VAR_LOCATION note.
15116         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15117         decl_loc_table): New.
15118         (lookup_decl_loc): New function.
15119         (add_var_loc_to_decl): New function.
15120         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15121         only if can_use_fbreg.
15122         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15123         functions.
15124         (loc_descriptor): Likewise. Process VAR_LOCATION.
15125         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15126         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15127         can_use_fbreg == true.
15128         (add_location_or_const_value_attribute): Added parameter enum
15129         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15130         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15131         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15132         with attr == DW_AT_location.
15133         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15134         if frame_base_decl is defined and has a location list.
15135         (gen_variable_die): Call add_location_or_const_value_attribute with
15136         attr == DW_AT_location.
15137         (dwarf2out_var_location): New function.
15138         (dwarf2out_begin_function): New function.
15139         (dwarf2out_init): Create decl_loc_table.
15140
15141 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15142
15143         * loop.c (force_movables): Transitively increase the priorities of
15144         all insns forces by an insn, not just the first one.
15145
15146 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15147             Daniel Berlin <dberlin@dberlin.org>
15148
15149         Josef Zlomek  <zlomekj@suse.cz>
15150         * Makefile.in (var-tracking.o): New.
15151         * common.opt (fvar-tracking): New.
15152         * flags.h (flag_var_tracking): New.
15153         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15154         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15155         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15156         * rtl.c (note_insn_name): Likewise.
15157         * rtl.def (VAR_LOCATION): New.
15158         * rtl.h (NOTE_VAR_LOCATION): New.
15159         (NOTE_VAR_LOCATION_DECL): New.
15160         (NOTE_VAR_LOCATION_LOC): New.
15161         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15162         (variable_tracking_main): New exported function.
15163         * timevar.def (TV_VAR_TRACKING): New.
15164         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15165         (dump_file): "vartrack" was added (-dV).
15166         (flag_var_tracking): New.
15167         (f_options): "var-tracking" was added.
15168         (rest_of_handle_variable_tracking): New function.
15169         (rest_of_compilation): Run variable tracking.
15170         (process_options): If user has not specified flag_var_tracking set it
15171         according to optimize, debug_info_level and debug_hooks.
15172         * tree.h (frame_base_decl): New.
15173         * var-tracking.c: New file.
15174         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15175         (ia64_override_options): Set flags to run variable tracking in machine
15176         dependent reorg instead of toplev.c.
15177         (ia64_reorg): Run variable tracking if wanted.
15178         * doc/invoke.texi: Mention variable tracking in -dV,
15179         add and -fvar-tracking.
15180         * doc/passes.texi: Added variable tracking pass.
15181
15182         Daniel Berlin <dberlin@dberlin.org>
15183         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15184         * dbxout.c (dbx_debug_hooks): Likewise.
15185         (xcoff_debug): Likewise.
15186         * debug.c (do_nothing_debug_hooks): Likewise.
15187         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15188         * dwarfout.c (dwarf_debug_hooks): Likewise.
15189         * sdbout.c (sdb_debug_hooks): Likewise.
15190         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15191         * final.c (final_scan_insn): Call var_location debug hook for each
15192         NOTE_INSN_VAR_LOCATION.
15193
15194 2004-02-06  Jan Hubicka  <jh@suse.cz>
15195
15196         * flow.c (update_life_info): Allocate reg_deaths when called from
15197         scheudler.
15198         (attempt_auto_inc):  Update life ranges accordingly.
15199
15200 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15201
15202         PR debug/11816
15203         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15204
15205 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15206
15207         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15208
15209 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15210
15211         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15212         a separate line info table in use.
15213         Use the correct size for terminators.
15214         (output_die): Use offset, not delta.
15215
15216 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15217
15218         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15219
15220 2004-02-06  Jan Hubicka  <jh@suse.cz>
15221
15222         * recog.c (split_all_insns): Do not update reg info.
15223         * regrename.c (regrename_optimize): Likewise.
15224         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15225         * flow.c (struct propagate_block_info): Add insn_num field.
15226         (reg_deaths): New array.
15227         (life_analysis): Free reg_deaths info.
15228         (allocate_reg_life_data): Allocate reg_deaths array.
15229         (propagate_one_insn): Use new array.
15230         (init_propagate_block): Initialize it.
15231         (free_propagate_block_info): Finish compuation of
15232         REG_LIVE_LENGTH
15233         (attempt_auto_inc): Sanity check that REG_INFO is not
15234         computed at same time.
15235         (mark_used_regs): Update new array.
15236
15237         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15238         substitution.
15239
15240 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15241
15242         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15243         *extendqisi2_short_displ.
15244
15245 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15246
15247         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15248         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15249         (emit_library_call_value_1): Likewise pass nargs.
15250         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15251         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15252         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15253         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15254         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15255         prototype.
15256         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15257         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15258         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15259         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15260         INIT_CUMULATIVE_ARGS.
15261         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15262         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15263         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15264         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15265         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15266         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15267         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15268         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15269         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15270         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15271         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15272         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15273
15274 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15275
15276         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15277         possible.
15278
15279 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15280
15281         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15282         note containing (plus (reg) (const_int)), where reg is an
15283         eliminable reg, then perform the register elimination without
15284         depending on eliminate_regs().
15285
15286 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15287
15288         * config/arc/arc.c (arc_return_in_memory): Check the return
15289         value of int_size_in_bytes against -1.  Don't check
15290         TREE_ADDRESSABLE.
15291         * config/avr/avr.c (avr_return_in_memory): Check the return
15292         value of int_size_in_bytes against -1.
15293         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15294         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15295         Likewise.
15296         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15297         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15298         Likewise.
15299
15300 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15301
15302         * config/frv/frv-protos.h: Remove the prototype for
15303         frv_setup_incoming_varargs.
15304         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15305         (frv_setup_incoming_varargs): Make it static.
15306         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15307
15308 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15309
15310         * config/fr30/fr30-protos.h: Remove the prototype for
15311         fr30_setup_incoming_varargs.
15312         Update the prototypes for fr30_num_arg_regs and
15313         fr30_function_arg_partial_nregs.
15314         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15315         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15316         (fr30_setup_incoming_varargs): Make it static.
15317         Add argument second_time.  Don't do anything when second_time
15318         is nonzero.
15319         (fr30_num_arg_regs): Change the type of the first argument to
15320         enum machine_mode.
15321         (fr30_function_arg_partial_nregs): Change the type of the
15322         second argument to enum machine_mode.
15323         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15324         (SETUP_INCOMING_VARARGS): Remove.
15325
15326 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15327
15328         * config/arc/arc-protos.h: Remove the prototype for
15329         arc_setup_incoming_varargs.
15330         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15331         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15332         (arc_setup_incoming_varargs): Make it static.
15333         (arc_external_libcall): Likewise.
15334         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15335         Remove the commented-out definition of
15336         ASM_OUTPUT_EXTERNAL_LIBCALL.
15337
15338 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15339
15340         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15341         to $$(slibdir) in the installation commands.
15342
15343 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15344
15345         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
15346         with inner_regno, not regno.
15347         * rtlanal.c (refers_to_regno_p): Same.
15348
15349 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15350
15351         * config.gcc: Remove i370 support.
15352
15353 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15354
15355         * doc/install.texi:  Update automake and autoconf version
15356         requirements.  Note where to find gcj automake version.
15357
15358 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15359
15360         * Makefile.in (generate-manpages): Move dependencies to ...
15361         (man): here.
15362         * doc/makefile.texi: Document new targets.
15363         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
15364
15365 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15366
15367         PR/13485
15368         Makefile.in (srcextra):  Add a level of indirection to ...
15369         (gcc.srcextra): ... here.
15370         (po-generated): Delete.
15371         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
15372         options.c.
15373         (start.encap): Remove superfluous lang.srcextra dependency.
15374         objc/Make-lang.in (po-generated):  Delete.
15375
15376 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15377
15378         * config/ia64/ia64.c (REG_GP): Remove.
15379
15380 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15381
15382         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
15383
15384 2004-02-05  Devang Patel  <dpatel@apple.com>
15385
15386         * dwarf2out.c (force_type_die): Look up input type itself
15387         instead of root_type() of type.
15388
15389 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
15390
15391         * config/s390/s390.md ("*tmqidi_ext"): New insn.
15392         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
15393         pre-reload splitters are transformed to post-reload
15394         define_insn_and_split patterns.
15395         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
15396
15397 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15398
15399         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
15400         TARGET_PROMOTE_PROTOTYPES.
15401
15402 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15403
15404         PR middle-end/13750
15405         Revert:
15406         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15407         PR pch/13361
15408         * c-typeck.c (constructor_asmspec): Delete.
15409         (struct initializer_stack): Delete field 'asmspec'.
15410         (start_init): Delete saving of asmspec.
15411         (finish_init): Don't update constructor_asmspec.
15412         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15413         * stmt.c (expand_asm): Duplicate strings from tree.
15414         (expand_asm_operands): Likewise.
15415         * tree.c (tree_size): Update computation of size of STRING_CST.
15416         (make_node): Don't make STRING_CST nodes.
15417         (build_string): Allocate string with tree node.
15418         * tree.def (STRING_CST): Update comment.
15419         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15420         (tree_string): Place contents of string in tree node.
15421         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15422         from tree.
15423
15424 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15425
15426         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
15427         msgid.
15428
15429 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
15430
15431         * config/rs6000/altivec.md (*movv4si_internal): At least one
15432         operand must be altivec_register_operand.
15433         (*movv8hi_internal1): Likewise.
15434         (*movv16qi_internal1): Likewise.
15435         (*movv4sf_internal1): Likewise.
15436
15437 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15438
15439         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
15440         * configure: Regenerate.
15441
15442 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
15443
15444         * doc/install.texi: Update description of --gxx-include-dir to
15445         give correct default value.
15446
15447 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15448
15449         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
15450         8 with MAC_REG.
15451
15452 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15453
15454         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
15455         gen_rtx_PARALLEL.
15456
15457 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15458
15459         * emit-rtl.c: Update the comment about the file.
15460
15461 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15462
15463         * sourcebuild.texi (Test Idioms): Update testcase naming
15464         conventions.
15465
15466 2004-02-04  Per Bothner  <per@bothner.com>
15467
15468         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
15469         * c-ppoutput.c (pp_dir_change):  New function.
15470         * c-common.h (pp_dir_change):  New declaration.
15471         * cpplib.h (struct cpp_options):  Remove working_directory field.
15472         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
15473         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
15474         Don't handle -fworking_directory here, but in c_common_post_options.
15475         (read_original_directory): Don't back up when done.
15476         Don't clear no-longer used working_directory flag.
15477         * cpplib.h:  Update declarations to match.
15478         * c-lex.c (cb_dir_change):  Move to c-opts.c.
15479         (init_c_lex):  Don't set dir_change callback here, since we want
15480         to set it even if flag_preprocess_only.
15481         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
15482         (c_common_post_options):  Set dir_change callback.
15483         Call pp_dir_change if approporiate.
15484         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
15485         unneeded parameter and result. Do LC_RENAME for <built-in>.
15486         (c_common_post_options):  Call cpp_read_main_file here instead.
15487         (c_common_init):  Update accordingly.
15488         (push_command_line_include):  Don't cpp_push_main_file.
15489         Do LC_RENAME rather than LC_LEASE to get back to main file.
15490         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
15491         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
15492         files, but call finish_options for all files.
15493         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
15494         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
15495         cpp_find_main_file + cpp_push_main_file.
15496         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
15497         * opts.c (handle_options):  Only set main_input_filename first time.
15498
15499 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
15500
15501         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
15502
15503 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
15504
15505         * reload.c (find_equiv_reg): When checking for register overlap,
15506         don't index hard_regno_nregs with a pseudo-reg.
15507
15508 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15509
15510         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
15511
15512 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
15513
15514         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
15515         against FIRST_PSEUDO_REGISTER.
15516
15517 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15518
15519         * Makefile.in: Move target, host overrides after per-language
15520         fragments.
15521
15522         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
15523         (GNATLIBCFLAGS): Remove -g.
15524
15525 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15526
15527         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15528         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
15529         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
15530         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
15531         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
15532         config/sparc/sparc.c, config/vax/vax.c: Revert the
15533         replacements of "FALLTHRU" with "Fall through" done in the
15534         previous patch.
15535
15536 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15537
15538         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
15539         config/arm/arm.c, config/arm/arm.md,
15540         config/cris/cris-protos.h, config/fr30/fr30.c,
15541         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
15542         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
15543         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
15544         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
15545         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
15546         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
15547         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
15548         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
15549         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
15550         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
15551         config/s390/s390.md, config/sparc/netbsd-elf.h,
15552         config/sparc/openbsd.h, config/sparc/sparc.c,
15553         config/xtensa/lib2funcs.S: Fix comment formatting.
15554
15555 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15556
15557         * config/alpha/alpha.c, config/arc/arc.c,
15558         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
15559         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
15560         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
15561         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
15562         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
15563         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
15564         config/iq2000/iq2000.c, config/m32r/m32r.c,
15565         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
15566         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
15567         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
15568         config/rs6000/rs6000.h, config/sparc/sparc.c,
15569         config/vax/vax.c: Fix comment typos.  Follow spelling
15570         conventions.
15571
15572 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15573
15574         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
15575         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
15576         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
15577         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
15578         config/arm/fpa.md, config/arm/iwmmxt.md,
15579         config/arm/netbsd-elf.h, config/arm/netbsd.h,
15580         config/m68hc11/m68hc11.md, config/mips/iris5.h,
15581         config/mn10300/mn10300.md, config/rs6000/altivec.md,
15582         config/sparc/netbsd-elf.h: Update copyright.
15583
15584 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
15585
15586         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15587         for all modes whose size is greater than 8 bytes if ARCH32.
15588         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
15589         by reference if ARCH32.
15590
15591 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
15592
15593         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
15594
15595 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15596
15597         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
15598         to before adddi3 insn patterns.
15599         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
15600         "reload_insi"): Move to before addsi3 insn patterns.
15601
15602 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
15603
15604         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
15605         parameter.  Use it instead of current_function_is_thunk.
15606         * function.h (struct function): Update documentation for is_thunk.
15607         * tree.h (CALL_FROM_THUNK_P): New macro.
15608         * config/alpha/alpha.c (alpha_sa_mask): Do not check
15609         no_new_pseudos when testing current_function_is_thunk.
15610         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
15611
15612 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15613
15614         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
15615         TARGET_SETUP_INCOMING_VARARGS.
15616
15617 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15618
15619         * emit-rtl.c (gen_rtx): Remove.
15620         * genattrtab.c: Don't mention gen_rtx in a comment.
15621         * rtl.h: Remove the prototype for gen_rtx.
15622         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
15623
15624 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15625
15626         * config/arc/arc.h, config/fr30/fr30.h
15627         (SETUP_INCOMING_VARARGS): Remove the target-independent
15628         comments.
15629         * doc/tm.texi: Don't mention deprecated target macros.
15630
15631 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15632
15633         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
15634         target-independent comment.
15635
15636 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15637
15638         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
15639         mention deprecated target macros.
15640
15641 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15642
15643         * config.gcc: Remove obsolete ports and configurations.
15644         * config/linux-aout.h, config/netware.h,
15645         config/t-linux-gnulibc1, config/d30v/abi,
15646         config/d30v/d30v-protos.h, config/d30v/d30v.c,
15647         config/d30v/d30v.h, config/d30v/d30v.md,
15648         config/d30v/libgcc1.asm, config/d30v/t-d30v,
15649         config/dsp16xx/dsp16xx-modes.def,
15650         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
15651         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
15652         config/i370/README, config/i370/i370-c.c,
15653         config/i370/i370-protos.h, config/i370/i370.c,
15654         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
15655         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
15656         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
15657         config/i386/moss.h, config/i386/netware.h,
15658         config/i386/svr3.ifile, config/i386/svr3dbx.h,
15659         config/i386/svr3gas.h, config/i386/svr3z.ifile,
15660         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
15661         config/i960/i960-c.c, config/i960/i960-coff.h,
15662         config/i960/i960-modes.def, config/i960/i960-protos.h,
15663         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
15664         config/i960/rtems.h, config/i960/t-960bare,
15665         config/m68k/hp310.h, config/m68k/hp320.h,
15666         config/m68k/hp320base.h, config/m68k/m68kv4.h,
15667         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
15668         Remove.
15669         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
15670         doc/md.texi: Remove mentions of obsolete ports.
15671
15672 2004-02-04  Jan Hubicka  <jh@suse.cz>
15673
15674         * alias.c (find_base_term, get_addr):  Do not dereference NULL
15675         pointer when all VALUE's locations has been invalidated.
15676         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
15677
15678 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
15679
15680         * doc/invoke.texi (x86 options): Fix spelling/wording.
15681
15682 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
15683
15684         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
15685         put the original string in a comment.
15686         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
15687         * config/mips/mips.c (mips_output_ascii): Likewise.
15688         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
15689
15690 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
15691
15692         * system.h (GIV_SORT_CRITERION): Poison.
15693         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
15694         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
15695
15696 2004-02-03  Roger Sayle  <roger@eyesopen.com>
15697
15698         PR target/9348
15699         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
15700         multiplies with a multiplication of the wrong signedness, its the
15701         signedness of the multiplication that we've performed that needs to
15702         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
15703         if expand_mult_highpart_adjust places the result in target.
15704
15705 2004-02-03  Richard Henderson  <rth@redhat.com>
15706
15707         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
15708
15709 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
15710
15711         * config.gcc (sh[234]l): Use little endian fragments.
15712
15713 2004-02-03  Paul Koning  <pkoning@equallogic.com>
15714
15715         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
15716         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
15717         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
15718         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
15719         floating point format.
15720         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
15721         the above functions.
15722         (output_move_quad): Output float values in correct target format.
15723         (legitimate_const_double_p): New function.
15724         * config/pdp11/pdp11.h: Fix typos.
15725         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
15726         (TARGET_FLOAT_FORMAT): Ditto.
15727         (pdp11_f_format, pdp11_d_format): Add external declarations.
15728         (MAX_REGS_PER_ADDRESS): Corrected.
15729         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
15730         (PRINT_OPERAND): Output float literals in target format.
15731
15732 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
15733
15734         PR c++/13975
15735         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
15736         TI_PRIVATE.
15737         (access_public_node): Redefine.
15738         (access_protected_node): Likewise.
15739         (access_private_node): Likewise.
15740         * tree.c (build_common_tree_nodes): Create access_public_node,
15741         access_protected_node, and access_private_node.
15742
15743 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
15744
15745         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
15746         (MASK_INLINE_INT_DIV_THR): Ditto.
15747         (MASK_INLINE_SQRT_LAT): Ditto.
15748         (MASK_INLINE_SQRT_THR): Ditto.
15749         (MASK_DWARF2_ASM): Ditto.
15750         (MASK_EARLY_STOP_BITS): Ditto.
15751
15752 2004-02-02  Paul Brook  <paul@codesourcery.com>
15753
15754         Merge from csl-arm-branch.
15755
15756         2004-01-30  Paul Brook  <paul@codesourcery.com>
15757
15758         * aof.h (REGISTER_NAMES): Add vfp reg names
15759         (ADDITIONAL_REGISTER_NAMES): Ditto.
15760         * aout.h (REGISTER_NAMES): Ditto.
15761         (ADDITIONAL_REGISTER_NAMES): Ditto.
15762         * arm-protos.h: Update/Add Prototypes.
15763         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
15764         Only allow 0.0 for VFP.
15765         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
15766         (values_fp): Rename from values_fpa.  Update Users.
15767         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
15768         Update users.  Only check valid constants for this hardware.
15769         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
15770         Only allow consts for FPA.
15771         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
15772         Only allow consts for FPA.
15773         (use_return_insn): Check for saved VFP regs.
15774         (arm_legitimate_address_p): Handle VFP DFmode addressing.
15775         (arm_legitimize_address): Ditto.
15776         (arm_general_register_operand): New function.
15777         (vfp_mem_operand): New function.
15778         (vfp_compare_operand): New function.
15779         (vfp_secondary_reload_class): New function.
15780         (arm_float_compare_operand): New function.
15781         (vfp_print_multi): New function.
15782         (vfp_output_fstmx): New function.
15783         (vfp_emit_fstm): New function.
15784         (arm_output_epilogue): Output VPF reg restore code.
15785         (arm_expand_prologue): Output VFP reg save code.
15786         (arm_print_operand): Add 'P'.
15787         (arm_hard_regno_mode_ok): Return modes for VFP regs.
15788         (arm_regno_class): Return classes for VFP regs.
15789         (arm_compute_initial_elimination_offset): Include space for VFP regs.
15790         (arm_get_frame_size): Ditto.
15791         * arm.h (FIXED_REGISTERS): Add VFP regs.
15792         (CALL_USED_REGISTERS): Ditto.
15793         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
15794         (FIRST_VFP_REGNUM): Define.
15795         (LAST_VFP_REGNUM): Define.
15796         (IS_VFP_REGNUM): Define.
15797         (FIRST_PSEUDO_REGISTER): Include VFP regs.
15798         (HARD_REGNO_NREGS): Handle VFP regs.
15799         (REG_ALLOC_ORDER): Add VFP regs.
15800         (enum reg_class): Add VFP_REGS.
15801         (REG_CLASS_NAMES): Ditto.
15802         (REG_CLASS_CONTENTS): Ditto.
15803         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
15804         (REG_CLASS_FROM_LETTER): Add 'w'.
15805         (EXTRA_CONSTRAINT_ARM): Add 'U'.
15806         (EXTRA_MEMORY_CONSTRAINT): Define.
15807         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
15808         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
15809         (REGISTER_MOVE_COST): Ditto.
15810         (PREDICATE_CODES): Add arm_general_register_operand,
15811         arm_float_compare_operand and vfp_compare_operand.
15812         * arm.md (various): Rename as above.
15813         (divsf3): Enable when TARGET_VFP.
15814         (divdf3): Ditto.
15815         (movdfcc): Ditto.
15816         (sqrtsf2): Ditto.
15817         (sqrtdf2): Ditto.
15818         (arm_movdi): Disable when TARGET_VFP.
15819         (arm_movsi_insn): Ditto.
15820         (movsi): Only split with general regs.
15821         (cmpsf): Use arm_float_compare_operand.
15822         (push_fp_multi): Restrict to TARGET_FPA.
15823         (vfp.md): Include.
15824         * vfp.md: New file.
15825         * fpa.md (various): Rename as above.
15826         * doc/md.texi: Document ARM w and U constraints.
15827
15828         2004-01-15  Paul Brook  <paul@codesourcery.com>
15829
15830         * config.gcc: Add with_fpu.  Allow with-float=softfp.
15831         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
15832         Break out of loop when we find a float-abi.  Fix typo.
15833         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
15834         Set -mfloat-abi=.
15835         * doc/install.texi: Document --with-fpu.
15836
15837         2003-01-14  Paul Brook  <paul@codesourcery.com>
15838
15839         * config.gcc (with_arch): Add armv6.
15840         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
15841         * config/arm/arm.c (arm_overrride_options): Ditto.
15842
15843         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
15844
15845         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
15846         (FL_ARCH6): Renamed from FL_ARCH6J.
15847         (arm_arch3m): Renamed from arm_fast_multiply.
15848         (arm_arch6): Renamed from arm_arch6j.
15849         * arm.h: Update all uses of above.
15850         * arm-cores.def: Likewise.
15851         * arm.md: Likewise.
15852
15853         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
15854         not arm6j.  Add entry for arch armv6.
15855
15856         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
15857
15858         * arm.c (arm_emit_extendsi): Delete.
15859         * arm-protos.h (arm_emit_extendsi): Delete.
15860         * arm.md (zero_extendhisi2): Also handle zero-extension of
15861         non-subregs.
15862         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
15863         (thumb_zero_extendhisi2): Only match if not v6.
15864         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
15865         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
15866         (thumb_extendqisi2): Likewise.
15867         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
15868         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
15869         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
15870         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
15871         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
15872         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
15873         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
15874         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
15875         (arm_extendqisi2addsi): Likewise.
15876
15877         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
15878
15879         Revert this change:
15880         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
15881         + REG addressing modes.
15882
15883         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
15884         + REG addressing modes.
15885
15886         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
15887
15888         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
15889         CONSTANT_P_RTX.
15890
15891         2003-30-12  Paul Brook  <paul@codesourcery.com>
15892
15893         * longlong.h: protect arm inlines with !defined (__thumb__)
15894
15895         2003-30-12  Paul Brook  <paul@codesourcery.com>
15896
15897         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
15898
15899         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
15900
15901         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
15902         change.
15903
15904         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
15905
15906         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
15907         to the virtual incoming args pointer for downward stacks.
15908
15909         2003-12-29  Paul Brook  <paul@codesourcery.com>
15910
15911         * config/arm/arm-cores.def: Add cost function.
15912         * config/arm/arm.c (arm_*_rtx_costs): New functions.
15913         (arm_rtx_costs): Remove
15914         (struct processors): Add rtx_costs field.
15915         (all_cores, all_architectures): Ditto.
15916         (arm_override_options): Set targetm.rtx_costs.
15917         (thumb_rtx_costs): New function.
15918         (arm_rtx_costs_1): Remove cases handled elsewhere.
15919         * config/arm/arm.h (processor_type): Add COSTS parameter.
15920
15921         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
15922
15923         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
15924         (arm926ejs.md): Include it.
15925         * config/arm/arm926ejs.md: New pipeline description.
15926
15927         2003-12-24  Paul Brook  <paul@codesourcery.com>
15928
15929         * config/arm/arm.c (arm_arch6j): New variable.
15930         (arm_override_options): Set it.
15931         (arm_emit_extendsi): New function.
15932         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
15933         * config/arm/arm.h (arm_arch6j): Declare.
15934         * config/arm/arm.md: Add sign/zero extend insns.
15935
15936         2003-12-23  Paul Brook  <paul@codesourcery.com>
15937
15938         * config/arm/arm.c (all_architectures): Add armv6.
15939         * doc/invoke.texi: Document it.
15940
15941         2003-12-19  Paul Brook  <paul@codesourcery.com>
15942
15943         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
15944         insn patterns to match.
15945         * config/arm/arm-generic.md: Ditto.
15946         * config/arm/cirrus.md: Ditto.
15947         * config/arm/fpa.md: Ditto.
15948         * config/amm/iwmmxt.md: Ditto.
15949         * config/arm/arm1026ejs.md: Ditto.
15950         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
15951         for 11_loadb.
15952
15953         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
15954
15955         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
15956         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
15957         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
15958         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
15959         arm_no_early_mul_dep): Correctly deal with conditional execution,
15960         parallels and single shift operations.
15961         (arm_no_early_alu_shift_value_dep): Define.
15962         * arm.md (attr type): Replace 'normal' with 'alu',
15963         'alu_shift' and 'alu_shift_reg'.
15964         (attr core_cycles): Adjust.
15965         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
15966         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
15967         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
15968         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
15969         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
15970         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
15971         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
15972         attribute appropriately.
15973         * config/arm/arm1026ejs.md (alu_op): Adjust.
15974         (alu_shift_op, alu_shift_reg_op): New.
15975         * config/arm/arm1136.md: Add better bypasses for early
15976         registers. Remove load[234] and store[234] bypasses.
15977         (11_alu_op): Adjust.
15978         (11_alu_shift_op, 11_alu_shift_reg_op): New.
15979
15980         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
15981
15982         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
15983         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
15984         * config/arm/arm.c (arm_no_early_store_addr_dep,
15985         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
15986         * config/arm/arm1026ejs.md: Add load-store bypass.
15987         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
15988         Add bypasses between instructions.
15989
15990         2003-12-10  Paul Brook  <paul@codesourcery.com>
15991
15992         * config/arm/arm.c (arm_fpu_model): New variable.
15993         (arm_fload_abi): New variable.
15994         (target_fpe_name): Rename from target_fp_name.
15995         (target_fpu_name): New variable.
15996         (arm_is_cirrus): Remove.
15997         (fpu_desc): New struct.
15998         (all_fpus): Define.
15999         (pf_model_for_fpu): Define.
16000         (all_loat_abis): Define.
16001         (arm_override_options): Set fp arch flags based on -mfpu=
16002         and -float-abi=.
16003         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16004         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16005         (*): Use new TARGET_* flags.
16006         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16007         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16008         (TARGET_SOFT_FLOAT): Ditto.
16009         (TARGET_SOFT_FLOAT_ABI): New.
16010         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16011         TARGET_HARD_FLOAT.
16012         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16013         (TARGET_OPTIONS): Add -mfpu=.
16014         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16015         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16016         (arm_pf_model): Define.
16017         (arm_float_abi_type): Define.
16018         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16019         * config/arm/arm.md: Use new TARGET_* flags.
16020         * config/arm/cirrus.md: Ditto.
16021         * config/arm/fpa.md: Ditto.
16022         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16023         * config/arm/semi.h (ASM_SPEC): Ditto.
16024         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16025         (FPUTYPE_DEFAULT): Set to VFP.
16026         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16027
16028         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16029
16030         PR target/12476
16031         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16032         'bx' instead of 'b' to avoid branch range restrictions.  Output
16033         the thunk immediately before the thunked-to function.
16034         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16035         .thumb_func if a thunk is being generated.  Emit .code 16 along
16036         with .thumb_func if a thunk is not being generated.
16037
16038         2003-11-15  Nicolas Pitre <nico@cam.org>
16039
16040         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16041         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16042         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16043         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16044         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16045
16046         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16047             Ian Lance Taylor  <ian@wasabisystems.com>
16048
16049         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16050         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16051
16052         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16053
16054         * config/arm/arm.md (insn):  Add new V6 instruction names.
16055         (generic_sched):  New attr.
16056         * config/arm/arm-generic.md:  Use generic_sched here.
16057         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16058         stages of pipeline.  Adjust latency counts accordingly.
16059         * config/arm/arm1136jfs.md:  New file.
16060
16061         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16062
16063         * config/arm/arm.h (processor_type): New enumeration type.
16064         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16065         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16066         (CPP_CPU_ARCH_SPEC): Likewise.
16067         * config/arm/arm.c (arm_tune): New variable.
16068         (all_cores): Use cores.def.
16069         (all_architectures): Add representative processor.
16070         (arm_override_options): Restructure way in which tuning
16071         information is deduced.
16072         * arm.md: Update "insn" and "type" attributes throughout.
16073         (insn): New attribute.
16074         (type): Compute "mult" from "insn" attribute.  Add load2,
16075         load3, load4 alternatives.
16076         (arm automaton): Move to arm-generic.md.
16077         * config/arm/arm-cores.def: New file.
16078         * config/arm/arm-generic.md: Likewise.
16079         * config/arm/arm1026ejs.md: Likewise.
16080
16081 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16082
16083         * doc/invoke.texi (SPARC options): Remove -mflat and
16084         all -mxxx (xxx:chip) options.
16085         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16086         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16087         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16088         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16089         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16090         * config/sparc/sparc.c: Likewise.
16091         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16092         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16093         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16094         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16095         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16096         (sparc_flat_must_save_register_p): Likewise.
16097         (sparc_flat_compute_frame_size): Likewise.
16098         (sparc_flat_save_restore): Likewise.
16099         (sparc_flat_function_prologue): Likewise.
16100         (sparc_flat_function_epilogue): Likewise.
16101         (sparc_flat_epilogue_delay_slots): Likewise.
16102         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16103         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16104         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16105         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16106         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16107         (CONDITIONAL_REGISTER_USAGE): Likewise.
16108         (FRAME_POINTER_REQUIRED): Likewise.
16109         (INITIAL_ELIMINATION_OFFSET): Likewise.
16110         (BASE_RETURN_VALUE_REG): Likewise.
16111         (BASE_OUTGOING_VALUE_REG): Likewise.
16112         (BASE_PASSING_ARG_REG): Likewise.
16113         (BASE_INCOMING_ARG_REG): Likewise.
16114         (INCOMING_REGNO): Likewise.
16115         (OUTGOING_REGNO): Likewise.
16116         (LOCAL_REGNO): Likewise.
16117         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16118         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16119         (EPILOGUE_USES): Likewise.
16120         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16121         ("flat" attribute): Delete.
16122         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16123         handling.
16124         (call followed by jump define_peephole's): Delete.
16125         (exception_receiver): Likewise.
16126         (builtin_setjmp_receiver): Likewise.
16127         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16128
16129 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16130
16131         PR c/11658
16132         PR c/13994
16133         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16134         on langhooks.h.
16135         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16136         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16137         Include langhooks.h.  Replace c_common_truthvalue_conversion
16138         with the truthvalue_conversion language hook throughout.
16139         (expr_no_commas): Call default_conversion before save_expr
16140         for the first term of the production 'x ? : y'.
16141         * c-common.c (c_common_truthvalue_conversion): Remove
16142         obsolete block.  Invoke recursively the hook instead
16143         of this function.
16144         * c-convert.c (convert): handle ERROR_MARK_NODE.
16145         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16146         returned by the truthvalue_conversion language hook.
16147         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16148         c_objc_common_truthvalue_conversion.
16149         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16150         New function.
16151         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16152         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16153         c_objc_common_truthvalue_conversion.
16154
16155 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16156
16157         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16158         of gen_rtx.
16159         (LIBCALL_VALUE): Likewise.
16160         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16161         gen_rtx_CC0 instead of gen_rtx.
16162         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16163         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16164         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16165         gen_rtx.
16166         (m68hc11_emit_logical): Likewise.
16167
16168 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16169
16170         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16171         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16172         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16173         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16174         config/mips/mips.md, config/mmix/mmix.c,
16175         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16176         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16177         config/rs6000/altivec.md, config/s390/s390.c,
16178         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16179         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16180         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16181         constants that are readily available.
16182
16183 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16184
16185         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16186         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16187         instead of GEN_INT (0).  Do the same for other constants that
16188         are readily available.
16189
16190 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16191
16192         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16193         gen_rtx.
16194         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16195         instead of gen_rtx.
16196         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16197         gen_rtx.
16198         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16199         gen_rtx_ASHIFT instead of gen_rtx.
16200         (udivmodqi4): Likewise.
16201
16202 2004-02-02  Richard Henderson  <rth@redhat.com>
16203
16204         PR target/13789
16205         * expr.c (store_expr): Use force_operand before emit_move_insn.
16206
16207 2004-02-02  Jeff Law  <law@redhat.com>
16208             Roger Sayle  <roger@eyesopen.com>
16209
16210         * tree.c (commutative_tree_code, associative_tree_code): New
16211         functions.
16212         (iterative_hash_expr): Use commutative_tree_code.
16213         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16214         * fold-const.c (operand_equal_p): Use commutative_tree_code
16215         rather than inlining the commutativity check.
16216         (fold): Likewise.
16217
16218 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16219
16220         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16221         * config/frv/frv-protos.h: Remove the prototype for
16222         frv_function_arg_keep_as_reference.
16223         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16224         Remove.
16225         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16226         * config/stormy16/stormy16.h: Remove the commented-out
16227         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16228
16229 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16230
16231         PR target/13914
16232         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16233         for retaddr_column.
16234
16235 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16236
16237         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16238         gen_rtx.
16239
16240 2004-02-02  Eric Christopher  <echristo@redhat.com>
16241             Zack Weinberg  <zack@codesourcery.com>
16242
16243         * c-opts.c (c_common_handle_option): Add -finput-charset.
16244         * c.opt: Ditto.
16245         * cppcharset.c (one_iso88591_to_utf8): Remove.
16246         (convert_iso88591_utf8): Ditto.
16247         (conversion_tab): Remove 8859-1 converter.
16248         (_cpp_input_to_utf8): Remove.
16249         (_cpp_init_iconv_buffer): Ditto.
16250         (_cpp_close_iconv_buffer): Ditto.
16251         (_cpp_convert_input): New function.
16252         (_cpp_default_encoding): Ditto.
16253         * cpphash.h: Add/remove prototypes for above.
16254         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16255         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16256         for narrow execution and input character sets.
16257         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16258         * doc/cppopts.texi: Document -finput-charset.
16259
16260 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16261
16262         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16263         against FIRST_PSEUDO_REGISTER.
16264
16265 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16266
16267         * doc/invoke.texi (SPARC options): Further improve.
16268
16269 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16270
16271         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16272         config/h8300/h8300.c, config/ip2k/ip2k.md,
16273         config/iq2000/iq2000.c, config/mips/mips.c,
16274         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16275         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16276         config/v850/v850.md: Fix indentation.
16277
16278 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16279
16280         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16281         arguments on a 16-byte boundary in the parameter array if ARCH64.
16282         Split handling of TFmode.
16283
16284 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16285
16286         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16287         Don't test CONSTANT_P (x).
16288         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16289         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16290         Fix misindentation.
16291
16292 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16293
16294         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16295
16296 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16297
16298         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16299         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16300         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16301         config/iq2000/iq2000.c, config/m32r/m32r.c,
16302         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16303         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16304         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16305         config/stormy16/stormy16.c, config/v850/v850.md,
16306         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16307
16308 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16309
16310         * config/mcore/mcore.c (block_move_sequence): Replace
16311         gen_rtx_CONST_INT with GEN_INT.
16312
16313 2004-02-02  Jan Hubicka  <jh@suse.cz>
16314
16315         * alias.c (record_set): Use hard_regno_nregs.
16316         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16317         * builtins.c (apply_args_size): Likewise.
16318         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16319         mark_set_regs, add_stored_regs, mark_referenced_regs,
16320         insert_restore, insert_save, insert_one_insn): Likewise.
16321         * cfgcleanup.c: Include regs.h
16322         (mark_effect, mentions_nonequal_regs): Likewise.
16323         * cfgrtl.c (mark_killed_regs): Likewise
16324         * combine.c (update_table_tick, record_value_for_reg,
16325         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16326         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16327         reg_bitfield_target_p, distribute_notes): Likewise.
16328         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16329         exp_equiv_p, cse_insn): Likewise.
16330         * cselib.c (cselib_lookup): Likewise.
16331         (cselib_invalidate_regno, cselib_record_set): Likewise.
16332         * df.c (df_ref_record): Likewise.
16333         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16334         Likewise.
16335         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16336         count_or_remove_death_notes_bb): Likewise.
16337         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16338         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16339         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16340         * integrate.c (mark_stores): Likewise.
16341         * jump.c (delete_prior_computation): Likewise.
16342         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16343         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16344         * loop.c (LOOP_REGNO_NREGS): Likewise.
16345         * postreload.c (reload_combine, reload_combine_note_store,
16346         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
16347         * ra-colorize.c (combine, color_usable_p, get_free_reg,
16348         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
16349         try_recolor_web, insert_coalesced_conflicts, check_colors,
16350         break_precolored_alias): Likewise.
16351         * ra-debug.c: Include regs.h
16352         (ra_print_rtx_object): Likewise.
16353         * ra-rewrite (choose_spill_colors): Likewise.
16354         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
16355         * ra.c (init_ra): Likewise.
16356         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
16357         peep2_find_free_register): Likewise.
16358         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
16359         * regclass.c (hard_regno_nregs): New array.
16360         (init_reg_modes_once): Initialize it.
16361         (choose_hard_reg_mode): Use it.
16362         (record_reg_classes): Likewise.
16363         * regmove.c (mark_flags_life_zones): Likewise.
16364         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
16365         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
16366         copy_value, maybe_mode_change, find_oldest_value_reg,
16367         copyprop_hardreg_forward_1):
16368         * regs.h (hard_regno_nregs): Declare.
16369         * realod.c (reload_inner_reg_of_subreg): Use it.
16370         (push_reload, combine_reloads, find_dummy_reload,
16371         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
16372         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
16373         reload_adjust_reg_for_mode): Likewise.
16374         * reload1.c (compute_use_by_pseudos, count_pseudo,
16375         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
16376         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
16377         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
16378         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
16379         delete_output_reload): Likewise.
16380         * resource.c (update_live_status, mark_referenced_resources,
16381         mark_set_resources, mark_target_live_regs): Likewise.
16382         * rtlanal.c:  Include regs.h
16383         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
16384         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
16385         subreg_regno_offset, subreg_offset_representable_p,
16386         hoist_test_store): Likewise.
16387         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16388         * sched-rgn.c (check_live_1, update_live_1): Likewise.
16389         * stmt.c: Include regs.h
16390         (decl_conflicts_with_clobbers_p): Likewise.
16391         * varasm.c (make_decl_rtl): Likewise.
16392         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
16393
16394 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16395
16396         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
16397         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
16398         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
16399         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
16400         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
16401         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
16402         config/iq2000/iq2000.h, config/m32r/m32r.c,
16403         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
16404         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
16405         config/mcore/mcore.c, config/mcore/mcore.h,
16406         config/mcore/mcore.md, config/mips/mips.c,
16407         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
16408         config/rs6000/rs6000.c, config/s390/s390.c,
16409         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
16410         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
16411         "gen_rtx (FOO, " with "gen_rtx_FOO (".
16412
16413 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16414
16415         * config/h8300/h8300.md (two peephole2's): New.
16416
16417 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
16418
16419         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
16420         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
16421         (ASM_CPU_SPEC): Likewise
16422         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
16423         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
16424
16425 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16426
16427         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
16428         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
16429         (expand_builtin): Always call expand_builtin_pow.
16430
16431 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16432
16433         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
16434         BUILT_IN_SIGNBITL): New GCC builtins.
16435         * builtins.c (expand_builtin_signbit): New function to RTL expand
16436         calls to signbit, signbitf and signbitl as inline intrinsics.
16437         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
16438         (fold_builtin_signbit): New function to perform constant folding
16439         of signbit, signbitf and signbitl.
16440         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
16441
16442         * doc/extend.texi: Document new signbit{,f,l} builtins.
16443
16444 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
16445
16446         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
16447
16448 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
16449
16450         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
16451         "mips_const_double_ok" and "simple_memory_operand", which were
16452         removed from the MIPS port with the mips-3_4-rewrite branch merge.
16453         * config/mips/mips.c (mips16_lay_out_constants): Update comment
16454         for removal of simple_memory_operand.
16455
16456 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16457
16458         * config/c4x/c4x.md: Use GEN_INT instead of
16459         gen_rtx (CONST_INT, ...).
16460
16461 2004-01-31  Richard Henderson  <rth@redhat.com>
16462
16463         * varasm.c (output_constant_pool): Don't zap the pool.
16464
16465 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16466
16467         * genrecog.c (decision_type): Add DT_const_int.
16468         (write_cond) [DT_const_int]: Print a comparison against small
16469         constant.
16470         (write_node): Simplify comparisons against small constants
16471         before printing tests.
16472
16473 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16474
16475         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
16476         instead of gen_rtx_CONST_INT.
16477
16478 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16479
16480         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
16481         instead of gen_rtx_CONST_INT.
16482
16483 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16484
16485         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
16486         hook_bool_CUMULATIVE_ARGS_false.
16487         * targhooks.c (default_strict_argument_naming): Rename to
16488         hook_bool_CUMULATIVE_ARGS_false.
16489         * targhooks.h: Update the prototype for
16490         default_strict_argument_naming.
16491
16492 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16493
16494         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
16495         * config/sh/sh.h: Likewise.
16496         * config/sh/sh.md: Likewise.
16497
16498 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
16499
16500         * doc/invoke.texi (SPARC options): Restructure and update.
16501
16502 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16503
16504         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
16505         STRICT_ARGUMENT_NAMING): Poison.
16506         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
16507         hook_bool_tree_false.
16508         * targhooks.c (default_promote_function_args): Remove.
16509         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
16510         Don't check incoming.
16511         (default_strict_argument_naming): Don't use
16512         STRICT_ARGUMENT_NAMING.
16513         * targhooks.h: Remove the prototype for
16514         default_promote_function_args.
16515
16516 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16517
16518         * config/i386/i386-protos.h: Remove the prototype for
16519         ix86_setup_incoming_varargs.
16520         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
16521         (ix86_setup_incoming_varargs): Make it static.
16522         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
16523
16524 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16525
16526         * alloc-pool.c: Fix comment typos.
16527         * builtin-types.def: Likewise.
16528         * builtins.def: Likewise.
16529         * c-pretty-print.c: Likewise.
16530         * df.h: Likewise.
16531         * reload1.c: Likewise.
16532
16533 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16534
16535         * doc/invoke.texi: Follow spelling conventions.
16536         * doc/tm.texi: Likewise.
16537
16538 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16539
16540         * doc/install.texi: Fix typos.
16541         * doc/invoke.texi: Likewise.
16542
16543 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
16544
16545         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
16546         registers as pointers.
16547         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
16548
16549 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
16550
16551         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
16552         and restore it to gen_lowpart_general on exit.
16553         (gen_lowpart_for_combine): Adjust all callers to go through
16554         gen_lowpart.
16555         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
16556         and restore it to gen_lowpart_general on exit.
16557         (gen_lowpart_if_possible): Adjust all callers to go through
16558         gen_lowpart.
16559         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
16560         (gen_lowpart): Declare as pointer to function, initialized to
16561         gen_lowpart_general.
16562         * rtl.h (gen_lowpart): Declare as pointer to function.
16563
16564 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16565
16566         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
16567         * calls.c: Likewise.
16568         * emit-rtl.c: Likewise.
16569         * function.c: Likewise.
16570         * reload1.c: Likewise.
16571         * config/i386/cygming.h: Likewise.
16572         * config/i386/i386.c: Likewise.
16573         * config/i386/winnt.c: Likewise.
16574
16575 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
16576
16577         PR bootstrap/9249
16578         * doc/install.texi: document --enable-__cxa_atexit option.
16579         * configure.ac: Disable __cxa_atexit if not supported.
16580         * configure: Regenerate.
16581
16582 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
16583
16584         * ggc-zone.c (ggc_free): New function.
16585
16586 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16587
16588         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
16589         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
16590         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
16591         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
16592         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
16593         config/alpha/alpha.c, config/alpha/alpha.h,
16594         config/alpha/alpha.md, config/alpha/unicosmk.h,
16595         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
16596         config/c4x/c4x-protos.h, config/c4x/c4x.md,
16597         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
16598         config/frv/frvend.c, config/i386/cygming.h,
16599         config/i386/djgpp.h, config/i386/emmintrin.h,
16600         config/i386/gthr-win32.c, config/i386/i386-interix.h,
16601         config/i386/i386-protos.h, config/i386/openbsd.h,
16602         config/i386/winnt.c, config/i386/xm-mingw32.h,
16603         config/i386/xmmintrin.h, config/ia64/ia64.md,
16604         config/iq2000/iq2000.md, config/m32r/m32r.md,
16605         config/m68k/m68k.md, config/mcore/mcore-elf.h,
16606         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
16607         config/mips/iris5gas.h, config/mips/iris6.h,
16608         config/mips/iris6gas.h, config/mips/linux.h,
16609         config/mips/mips.md, config/mips/netbsd.h,
16610         config/mips/openbsd.h, config/mips/windiss.h,
16611         config/pa/fptr.c, config/rs6000/aix.h,
16612         config/rs6000/altivec.h, config/rs6000/darwin.h,
16613         config/rs6000/xcoff.h, config/s390/s390-protos.h,
16614         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
16615         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
16616         config/sparc/sol2.h: Update copyright.
16617
16618 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
16619
16620         * Makefile.in (abs_docdir, abs_srcdir): Define.
16621         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
16622
16623 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16624
16625         * genconfig.c (main): Have CC0_P check its operand even on a
16626         target without cc0.
16627
16628 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16629
16630         * config/alpha/alpha.c: Remove mentions of deprecates macros
16631         in comments, remove some target-independent comments about target
16632         macros, and/or add minimal function comments for target hook
16633         implementations.
16634         * config/avr/avr.c: Likewise.
16635         * config/ia64/ia64.h: Likewise.
16636         * config/ip2k/ip2k.c: Likewise.
16637         * config/iq2000/iq2000.c: Likewise.
16638         * config/m32r/m32r.h: Likewise.
16639         * config/m68hc11/m68hc11.c: Likewise.
16640         * config/mcore/mcore.c: Likewise.
16641         * config/mmix/mmix.c: Likewise.
16642         * config/mn10300/mn10300.c: Likewise.
16643         * config/pa/pa.c: Likewise.
16644         * config/pdp11/pdp11.c: Likewise.
16645         * config/rs6000/rs6000.h: Likewise.
16646         * config/sh/sh.c: Likewise.
16647         * config/sh/sh.h: Likewise.
16648         * config/sparc/sparc.c: Likewise.
16649         * config/sparc/sparc.h: Likewise.
16650         * config/stormy16/stormy16.c: Likewise.
16651         * config/xtensa/xtensa.c: Likewise.
16652
16653 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
16654
16655         PR optimization/12147
16656         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
16657         RELOAD_FOR_OPADDR_ADDR.
16658         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
16659         might be reused as RELOAD_FOR_OPADDR_ADDR register.
16660
16661 2004-01-30  Jan Hubicka  <jh@suse.cz>
16662
16663         * reload.c (get_secondary_mem): Fix updating of
16664         secondary_memlocs_elim_used.
16665
16666 2004-01-30  Richard Henderson  <rth@redhat.com>
16667
16668         * varasm.c (struct rtx_const, struct pool_constant): Remove.
16669         (MAX_RTX_HASH_TABLE): Remove.
16670         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
16671         (first_pool, last_pool, pool_offset): Remove.
16672         (struct rtx_constant_pool): Split out from ...
16673         (struct varasm_status): ... here.  Reference one via pointer.
16674         (struct constant_descriptor_rtx): Merge struct pool_constant.
16675         (SYMHASH): Remove.
16676         (decode_rtx_const): Remove.
16677         (const_hash_rtx, compare_constant_rtx): Remove.
16678         (record_constant_rtx): Remove.
16679         (const_desc_rtx_hash, const_desc_rtx_eq): New.
16680         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
16681         (const_rtx_hash_1, const_rtx_hash): New.
16682         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
16683         (simplify_subtraction): Use simplify_rtx.
16684         (force_const_mem): Rewrite to use new data structures.
16685         (find_pool_constant): Likewise.
16686         (get_pool_constant, get_pool_constant_mark,
16687         get_pool_constant_for_function, get_pool_mode,
16688         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
16689         (output_constant_pool_2): Split out from output_constant_pool.
16690         (output_constant_pool_1): Likewise.  Use new pool datastructures.
16691         (output_constant_pool): Zap entire pool datastructure.
16692         (mark_constant): Use new pool datastructures.
16693         (mark_constants): Use for_each_rtx.
16694         (mark_constant_pool): Use new pool datastructures.
16695
16696 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
16697
16698         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
16699         Copy operands[1] to pseudo for simplify_gen_subreg.
16700
16701 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16702
16703         * gcse.c (bypass_block): Fix a typo in the previous check-in
16704         to the file.
16705
16706 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
16707
16708         * toplev.c: Include alloc-pool.h.
16709         * Makefile.in (toplev.c): Update dependencies.
16710
16711 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16712
16713         * combine.c (simplify_shift_const, case XOR): Be careful when
16714         commuting XOR with ASHIFTRT.
16715
16716 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16717             Eric Botcazou  <ebotcazou@libertysurf.fr>
16718
16719         * config/sparc/sparc-protos.h: Remove the prototype for
16720         sparc_builtin_saveregs.
16721         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16722         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16723         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16724         (TARGET_STRUCT_VALUE_RTX): Likewise.
16725         (TARGET_RETURN_IN_MEMORY): Likewise.
16726         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
16727         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
16728         (sparc_builtin_saveregs): Make it static.
16729         (sparc_promote_prototypes): New.
16730         (sparc_struct_value_rtx): Likewise.
16731         (sparc_return_in_memory): Likewise.
16732         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
16733         (PROMOTE_FUNCTION_RETURN): Likewise.
16734         (RETURN_IN_MEMORY): Likewise.
16735         (STRUCT_VALUE): Likewise.
16736         (STRUCT_VALUE_INCOMING): Likewise.
16737         (EXPAND_BUILTIN_SAVEREGS): Likewise.
16738         (STRICT_ARGUMENT_NAMING): Likewise.
16739         (PROMOTE_PROTOTYPES): Likewise.
16740
16741         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
16742
16743 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
16744
16745         PR c/12818
16746         * varasm.c (const_hash_1) <STRING_CST>: Use the
16747         address to compute the hash value if flag_writable_strings.
16748         (compare_constant) <STRING_CST>: Compare the addresses
16749         if flag_writable_strings.
16750         (build_constant_desc): Do not copy the expression for a
16751         STRING_CST if flag_writable_strings.
16752
16753 2004-01-30  Jan Hubicka  <jh@suse.cz>
16754
16755         * alloc-pool.c: Include hashtab.h
16756         (alloc_pool_descriptor): New structure
16757         (alloc_pool_hash): New global variable.
16758         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
16759         (create_alloc_pool): Update statistics.
16760         (free_alloc_pool): Likewise.
16761         (pool_alloc): Likewise.
16762         (output_info): New structure
16763         (print_statistics, dump_alloc_pool_statistics): New function.
16764         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
16765         (dump_alloc_pool_statistics): Declare.
16766         * toplev.c (finalize):  Dump statistics.
16767
16768         * reload.c (secondary_memlocs_elim_used): New static variable.
16769         (get_secondary_mem): Update it.
16770         (find_reloads): Use it.
16771
16772 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
16773
16774         * toplev.c: Fix broken checkin of 2003-12-30, again.
16775
16776 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
16777
16778         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
16779         s390*-*-* targets by specifying a 'nop' insn.
16780         * configure: Regenerate.
16781
16782 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
16783
16784         PR target/11475
16785         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
16786
16787 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
16788
16789         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
16790         of addr when creating MEM copy.
16791
16792 2004-01-29  Devang Patel  <dpatel@apple.com>
16793
16794         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
16795
16796 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
16797
16798         PR inline-asm/6162
16799         * reload.c (find_reloads): Only support one pair of commutative
16800         operands.
16801
16802 2004-01-29  Roger Sayle  <roger@eyesopen.com>
16803
16804         PR java/13824
16805         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
16806         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
16807         recursion.
16808
16809 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
16810
16811         * config/frv/frv.c: Don't mention deprecated macros in
16812         comments.  Remove some target-independent comments about
16813         target macros.
16814         * config/frv/frv.h: Likewise.
16815
16816 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16817
16818         * cfghooks.c (split_block): Set probability and count of the
16819         new edge.
16820
16821 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
16822
16823         * dwarf2out.c (struct die_struct): Added field decl_id.
16824         (decl_die_table): Changed to hash table.
16825         (decl_die_table_allocated): Deleted.
16826         (decl_die_table_in_use): Deleted.
16827         (DECL_DIE_TABLE_INCREMENT): Deleted.
16828         (decl_die_table_hash): New function.
16829         (decl_die_table_eq): New function.
16830         (lookup_decl_die): Lookup in a hash table.
16831         (equate_decl_number_to_die): Insert into a hash table.
16832         (dwarf2out_init): Init hash table decl_die_table.
16833
16834 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
16835
16836         PR optimization/13424
16837         * expr.c (store_constructor): Revert 2003-12-03 change.
16838
16839         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
16840         expected before returning early.  Avoid sharing RTL if they
16841         need to be changed.
16842
16843         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
16844         handling so that memory attributes are preserved.  Don't call
16845         ix86_set_move_mem_attrs.
16846         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
16847         (ix86_expand_clrstr): Rename src argument to
16848         dst.  Rework rep_stos and strset handling so that memory attributes
16849         are preserved.
16850         (ix86_expand_strlen): Pass src argument to
16851         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
16852         memory attributes are preserved.
16853         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
16854         change_address instead of gen_rtx_MEM.
16855         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
16856         expanders.
16857         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
16858         strmovqi, strmovqi_rex64): Remove.
16859         (rep_mov*, strmov*): Prefix insn names with *.
16860         (strset, strset_singleop, rep_stos): New expanders.
16861         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
16862         strsetqi, strsetqi_rex64): Remove.
16863         (rep_stos*, strset*): Prefix insn names with *.
16864         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
16865         to SImode.
16866         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
16867         are preserved.
16868         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
16869         Prefix insn names with *.
16870         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
16871         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
16872         (strlenqi_1): New expander.
16873         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
16874
16875 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16876
16877         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
16878         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
16879         verify_flow_info): Declaration removed.
16880         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
16881         (debug_bb, debug_bb_n): Add argument to dump_bb call.
16882         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
16883         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
16884         instead of delete_block.
16885         * cfghooks.c: Include timevar.h and toplev.h.
16886         (cfg_hooks): Define here.
16887         (verify_flow_info, dump_bb): Moved from cfg.c.
16888         (redirect_edge_and_branch, redirect_edge_and_branch_force,
16889         split_block, split_block_after_labels, move_block_after,
16890         delete_basic_block, split_edge, create_basic_block,
16891         create_empty_bb, can_merge_blocks_p, merge_blocks,
16892         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
16893         New functions.
16894         * cfghooks.h (struct cfg_hooks): Added fields name,
16895         make_forwarder_block, tidy_fallthru_edge and
16896         move_block_after. Changed type of verify_flow_info, dump_bb,
16897         split_block fields. Renamed cfgh_split_edge and delete_block
16898         fields.
16899         (redirect_edge_and_branch, redirect_edge_and_branch_force,
16900         split_block, delete_block, split_edge, create_basic_block,
16901         can_merge_blocks_p, merge_blocks): Macros removed.
16902         (cfg_hooks): Do not export.
16903         (verify_flow_info, dump_bb, redirect_edge_and_branch,
16904         redirect_edge_and_branch_force, split_block, split_block_after_labels,
16905         move_block_after, delete_basic_block, split_edge, create_basic_block,
16906         create_empty_bb, can_merge_blocks_p, merge_blocks,
16907         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
16908         Declare.
16909         (cfg_layout_rtl_cfg_hooks): Declare.
16910         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
16911         New functions.
16912         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
16913         (redirect_edge_with_latch_update): Removed.
16914         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
16915         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
16916         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
16917         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
16918         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
16919         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
16920         cfghooks.c.
16921         (rtl_create_basic_block): Coding style fix.
16922         (rtl_tidy_fallthru_edge, rtl_move_block_after,
16923         rtl_make_forwarder_block): New functions.
16924         (update_cfg_after_block_merging): Removed.
16925         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
16926         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
16927         to dump_bb.
16928         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
16929         find_if_case_2): Don't update dominators.
16930         * timevar.def (TV_CFG_VERIFY): New.
16931         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
16932         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
16933         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
16934         (remove_bbs): Don't call remove_bbs.
16935         (create_preheader): Use make_forwarder_block.
16936         (mfb_keep_just, mfb_update_loops): New static functions.
16937
16938 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
16939
16940         * config/avr/avr.h: Remove target-independent comments about
16941         target macros.
16942
16943 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
16944
16945         * timevar.c (timevar_print): Mention when checking is enabled.
16946
16947 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
16948
16949         * c-lex.c (c_lex): Rename to...
16950         (c_lex_with_flags): Add new parameter to get CPP flags.
16951         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
16952         * c-pragma.h (c_lex_with_flags): Declare.
16953
16954 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16955
16956         * config/mcore/mcore.c (mcore_external_libcall): Add a
16957         comment.
16958         (mcore_return_in_memory): Likewise.
16959
16960 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16961
16962         * config/mcore/mcore-protos.h: Remove the prototype for
16963         mcore_setup_incoming_varargs.
16964         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
16965         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
16966         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16967         (TARGET_PROMOTE_PROTOTYPES): Likewise.
16968         (TARGET_STRUCT_VALUE_RTX): Likewise.
16969         (TARGET_RETURN_IN_MEMORY): Likewise.
16970         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16971         (mcore_setup_incoming_varargs): Make it static.  Receive the
16972         first argument by reference.  Add argument second_time.
16973         (mcore_external_libcall): New.
16974         (mcore_return_in_memory): Likewise.
16975         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
16976         (PROMOTE_FUNCTION_RETURN): Likewise.
16977         (STRUCT_VALUE): Likewise.
16978         (RETURN_IN_MEMORY): Likewise.
16979         (SETUP_INCOMING_VARARGS): Likewise.
16980         (PROMOTE_PROTOTYPES): Likewise.
16981         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
16982
16983 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
16984
16985         * config/m32r/m32r-protos.h: Remove the prototype for
16986         m32r_setup_incoming_varargs.
16987         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
16988         (TARGET_STRUCT_VALUE_RTX): Likewise.
16989         (TARGET_RETURN_IN_MEMORY): Likewise.
16990         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
16991         (m32r_return_in_memory): New.
16992         (m32r_setup_incoming_varargs): Make it static.
16993         * config/m32r/m32r.h: Remove #undef of
16994         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
16995         definitions of PROMOTE_FUNCTION_ARGS and
16996         PROMOTE_FUNCTION_RETURN.
16997         (PROMOTE_PROTOTYPES): Remove.
16998         (RETURN_IN_MEMORY): Likewise.
16999         (STRUCT_VALUE): Likewise.
17000
17001 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17002
17003         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17004         (TARGET_STRUCT_VALUE_RTX): Likewise.
17005         (m68k_struct_value_rtx): Likewise.
17006         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17007         STRUCT_VALUE_REGNUM.
17008         (PROMOTE_PROTOTYPES): Remove.
17009         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17010         STRUCT_VALUE_REGNUM.
17011         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17012         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17013
17014 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17015
17016         * config/stormy16/stormy16.c
17017         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17018         TARGET_BUILD_BUILTIN_VA_LIST.
17019
17020 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17021
17022         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17023         (TARGET_STRUCT_VALUE_RTX): Likewise.
17024         (TARGET_RETURN_IN_MEMORY): Likewise.
17025         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17026         (v850_return_in_memory): Likewise.
17027         (v850_setup_incoming_varargs): Likewise.
17028         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17029         (SETUP_INCOMING_VARARGS): Likewise.
17030         (RETURN_IN_MEMORY): Likewise.
17031         (STRUCT_VALUE): Likewise.
17032
17033 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17034
17035         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17036         (fr30_setup_incoming_varargs): Don't use
17037         STRICT_ARGUMENT_NAMING.
17038         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17039         (STRICT_ARGUMENT_NAMING): Likewise.
17040
17041 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17042
17043         * config/frv/frv-protos.h: Remove the prototype for
17044         frv_expand_builtin_saveregs.
17045         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17046         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17047         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17048         STRUCT_VALUE_REGNUM.
17049         (frv_expand_builtin_saveregs): Make it static.
17050         (frv_struct_value_rtx): New.
17051         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17052
17053 2004-01-29  Jan Hubicka  <jh@suse.cz>
17054
17055         PR c++/12850
17056         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17057         initial pointers.
17058         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17059         for functions that will be only inlined.
17060         (cgraph_mark_function_to_output): Likewise.
17061         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17062         do not clear function body.
17063         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17064         (tree_rest_of_compilation): Reorganize the logic releasing function
17065         body to use callgraph datastructure.
17066
17067 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17068
17069         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17070         to register_operand.
17071
17072 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17073
17074         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17075         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17076         match_operand expressions so that all match_dups appear
17077         lexically after their corresponding match_operands.
17078
17079 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17080
17081         * config/h8300/h8300.c (WORD_REG_USED): Use
17082         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17083         (compute_saved_regs): Likewise.
17084         (h8300_expand_prologue): Likewise.  Allocate locals after
17085         saving registers.
17086         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17087         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17088         registers.
17089         (h8300_initial_elimination_offset): Adjust for the new frame
17090         layout, which swaps flips the order of locals and saved
17091         registers.
17092         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17093         (HARD_FRAME_POINTER_REGNUM): New.
17094         (ELIMINABLE_REGS): Add an elimination rule from
17095         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17096         (REGISTER_NAMES): Add fp.
17097         * config/h8300/h8300.md (FP_REG): Change to 11.
17098         (HFP_REG): New.
17099
17100 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17101
17102         * genrecog.c (write_node): Remove a useless local variable.
17103
17104 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17105
17106         * Makefile.in (options.c options.h): Use stamp file s-options to
17107         avoid unnecessary rebuilds.
17108         (options.o): New target listing dependencies.
17109         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17110         (STAGESTUFF): Add s-gtyp-gen.
17111
17112 2004-01-28  Richard Henderson  <rth@redhat.com>
17113
17114         * ggc.h (ggc_free): Declare.
17115         * ggc-common.c (ggc_realloc): Use it.
17116         * ggc-page.c: Remove lots of inline markers.
17117         (globals): Add free_object_list.
17118         (ggc_alloc): Tidy.
17119         (ggc_free, validate_free_objects): New.
17120         (poison_pages): Provide default.
17121         (ggc_collect): Call validate_free_objects; emit markers to
17122         the debug file.
17123
17124 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17125             Jim Wilson  <wilson@specifixinc.com>
17126
17127         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17128         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17129         scratch pointer.
17130         (ia64_secondary_reload_class): Delete case GR_REGS.
17131         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17132         Do not allocate a scratch register.
17133         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17134
17135 2004-01-28  Jan Hubicka  <jh@suse.cz>
17136
17137         * gcse.c (bypass_block): Prevent edges to be unified when we are
17138         about to emit compenstation code.
17139
17140 2004-01-28  Nick Clifton  <nickc@redhat.com>
17141
17142         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17143         the setcwx insn into a register.
17144
17145 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17146
17147         * config/fp-bit.c (pack_d): When using paired doubles to implement
17148         a long double, round the high part separately.
17149         (unpack_d): Fix the case in which the high part is a power of two
17150         and the low part is a nonzero value of the opposite sign.
17151
17152 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17153
17154         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17155         (TARGET_STRUCT_VALUE_RTX): Likewise.
17156         (c4x_external_libcall): Likewise.
17157         (c4x_struct_value_rtx): Likewise.
17158         * config/c4x/c4x.h: Remove.
17159         (STRUCT_VALUE_REGNUM): Likewise.
17160         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17161
17162 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17163
17164         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17165         (TARGET_STRUCT_VALUE_RTX): Likewise.
17166         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17167         (STRUCT_VALUE): Likewise.
17168         (PROMOTE_PROTOTYPES): Likewise.
17169
17170 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17171
17172         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17173         CONST_INT before using INTVAL.
17174
17175 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17176
17177         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17178         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17179         frame if !TARGET_BACKCHAIN.
17180         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17181         TARGET_BACKCHAIN.
17182         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17183
17184 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17185
17186         * ia64.c (ia64_function_arg): When placing HFAs in integer
17187         registers, do not special case the mode used for complex
17188         types.  Do not advance int_regs until the current register
17189         is full.
17190
17191 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17192
17193         PR target/7297
17194         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17195
17196 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17197
17198         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17199         slow, unaligned loads and stores while debugging.  Fix formatting.
17200
17201 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17202
17203         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17204         of computing wmode.
17205         (restore_stack_nonlocal): Same.
17206
17207 2004-01-27  Devang Patel <dpatel@apple.com>
17208
17209         * Makefile.in (dwarf2out.o): Depend on input.h
17210         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17211         imported_module_or_decl.
17212         (xcoff_debug_hooks): Same.
17213         * sdbout.c (sdb_debug_hooks): Same.
17214         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17215         * debug.c (do_nothing_debug_hooks): Same.
17216         (debug_nothing_tree_tree): New function.
17217         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17218         * dwarf2out.c: Include input.h.
17219         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17220         (remove_child_TAG): New function.
17221         (dwarf_tag_name): Handle DW_TAG_imported_module.
17222         (gen_subprogram_die): Equate decl number to declaration die. Do not
17223         remove all children dies while reusing declaration die for definition.
17224         Instead, selectively remove only formal parameters.
17225         (gen_variable_die): Equate variable decl to declaration die.
17226         (gen_field_die): Equate field decl to line number.
17227         (force_namespace_die): Replace it with ...
17228         (force_decl_die): ... this.
17229         (force_type_die): New function.
17230         (setup_namespace_context): Replace use of force_namespace_die() with
17231         force_decl_die().
17232         (gen_namespace_die): Same.
17233         (dwarf2out_imported_module_or_decl): New function.
17234
17235 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17236
17237         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17238         on CQImode and CHImode incoming arguments in register a7.
17239         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17240         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17241         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17242         xtensa_copy_incoming_a7 before reload.
17243
17244 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17245
17246         * coverage.c (get_coverage_counts): Give a different message
17247         if flag_guess_branch_prob is set.
17248         * predict.c (counts_to_freqs): Return an int.
17249         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17250         calculate estimates.
17251
17252 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17253
17254         * config/iq2000/iq2000-protos.h: Remove the prototype for
17255         iq2000_setup_incoming_varargs.
17256         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17257         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17258         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17259         (TARGET_STRUCT_VALUE_RTX): Likewise.
17260         (TARGET_RETURN_IN_MEMORY): Likewise.
17261         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17262         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17263         (iq2000_return_in_memory): Likewise.
17264         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17265         first argument by reference.
17266         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17267         (PROMOTE_FUNCTION_RETURN): Likewise.
17268         (PROMOTE_PROTOTYPES): Likewise.
17269         (RETURN_IN_MEMORY): Likewise.
17270         (STRUCT_VALUE): Likewise.
17271         (SETUP_INCOMING_VARARGS): Likewise.
17272         (STRICT_ARGUMENT_NAMING): Likewise.
17273
17274 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17275
17276         * fixinc/fixinc.c (test_test): Initialize res.
17277         (start_flexer): Initialize pz_cmd_save.
17278
17279 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17280
17281         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17282         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17283
17284 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17285
17286         PR 7198
17287         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17288         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17289         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17290         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17291         Possibly rename pattern for consistency.
17292         Remove ??? comments suggesting that this be done.
17293         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17294         New patterns.
17295         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17296         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17297         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17298         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17299         Update to match.
17300
17301 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17302
17303         * config/arm/arm.c (output_return_instruction): Only restore IP
17304         into SP if frame_pointer_needed.
17305
17306 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17307
17308         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17309         for SCmode and DCmode if ARCH32.
17310         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17311         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17312         if ARCH32.
17313         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17314         if ARCH32.
17315         (BASE_OUTGOING_VALUE_REG): Likewise.
17316
17317 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17318
17319         PR target/10904
17320         PR target/13058
17321         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17322         Forbid mode changes from SImode for lower FP regs if ARCH64.
17323
17324 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17325
17326         * Makefile.in (bt-load.o): Depend on except.h.
17327         * bt-load.c (except.h): #include.
17328         (compute_defs_uses_and_gen): If insn at end of BB can throw
17329         within this function, consider registers used by it unavailable for
17330         btr migration.
17331         (move_btr_def): If insn at end of BB can throw, insert before rather
17332         than after.
17333
17334         * flags.h (flag_btr_bb_exclusive): Declare.
17335         * toplev.c (flag_btr_bb_exclusive): New variable.
17336         (f_options): Add btr-bb-exclusive.
17337         * bt-load.c (augment_live_range): Restore old behaviour if
17338         flag_btr_bb_exclusive is set.
17339         * common.opt: Add entry for -fbtr-bb-exclusive.
17340         * opts.c (common_handle_options): Same.
17341         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17342
17343         * bt-load.c (btrs_live_at_end): New variable.
17344         (compute_defs_uses_and_gen): Compute its pointed-to array.
17345         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
17346         (augment_live_range): When augmenting with a new dominator,
17347         use only its btrs_live_at_end set, but also add in the full set
17348         of the old dominator.
17349         (btr_def_live_range): Use btrs_live_at_end.
17350         (move_btr_def): Set other_btr_uses_before_def, and move new set
17351         to the end of the basic block, if appropriate.
17352         (migrate_btr_defs): Allocate and free btrs_live_at_end.
17353
17354         * bt-load.c (basic_block_freq): Remove outdated comment.
17355
17356 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
17357
17358         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
17359         (PREDICATE_CODES): Remove duplicate.
17360         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
17361         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
17362         (MASK_PROFILE_KERNEL): Adjust define.
17363
17364 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
17365
17366         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
17367         of long string literals from 32 bytes to sizeof (void *) when !-Os
17368         and to 1 with -Os.
17369
17370 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17371
17372         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
17373         constant addresses in the normal mode.
17374
17375 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17376
17377         * system.h (CHAR_BITFIELD): Delete.
17378         (BOOL_BITFIELD): New.
17379         * c-decl.c (c_scope): Use BOOL_BITFIELD.
17380         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
17381
17382 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17383
17384         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17385         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17386         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17387         (TARGET_STRUCT_VALUE_RTX): Likewise.
17388         (TARGET_RETURN_IN_MEMORY): Likewise.
17389         (arc_return_in_memory): Likewise.
17390         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
17391         (PROMOTE_FUNCTION_RETURN): Likewise.
17392         (RETURN_IN_MEMORY): Likewise.
17393         (STRUCT_VALUE): Likewise.
17394
17395 2004-01-26  Richard Henderson  <rth@redhat.com>
17396
17397         * c-parse.in (extension): Use itype.
17398         (SAVE_EXT_FLAGS): Don't allocate a tree.
17399         (RESTORE_EXT_FLAGS): Don't read a tree.
17400
17401 2004-01-26  Jan Hubicka  <jh@suse.cz>
17402
17403         * cselib.c (discard_useless_values):  Clear out value pointer pointing
17404         to datastructure to be recycled.
17405
17406 2004-01-25  Jan Hubicka  <jh@suse.cz>
17407
17408         * genextract.c (main): Do not output the memset when not checking.
17409
17410 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17411
17412         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
17413         switch statement instead of a chain of if statements.
17414
17415 2004-01-26  Jeff Law  <law@redhat.com>
17416
17417         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
17418         acute accents for Petur Runolfsson's entry.
17419
17420 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17421
17422         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
17423         (TARGET_RETURN_IN_MEMORY): Likewise.
17424         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
17425         (RETURN_IN_MEMORY): Likewise.
17426
17427 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17428
17429          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
17430          unaligned load/store into smaller loads and stores.
17431
17432 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17433
17434         * function.c (assign_parms): Do not assign
17435         long long argument to memory in prologue if
17436         is it loaded into register.
17437
17438 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17439
17440          PR middle-end/13779
17441          * expr.c (emit_group_load): split constant
17442          correctly into register components of PARALLEL insn.
17443
17444 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17445
17446         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
17447         Use adjust_address_nv directly with appropriate mode.
17448         (restore_stack_nonlocal): Ditto.
17449
17450 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17451
17452         * config/xtensa/xtensa-protos.h: Remove the prototype for
17453         xtensa_builtin_saveregs.
17454         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17455         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17456         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17457         (TARGET_STRUCT_VALUE_RTX): Likewise.
17458         (TARGET_RETURN_IN_MEMORY): Likewise.
17459         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17460         (xtensa_builtin_saveregs): Make it static.
17461         (xtensa_return_in_memory): New.
17462         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
17463         (PROMOTE_FUNCTION_RETURN): Likewise.
17464         (PROMOTE_PROTOTYPES): Likewise.
17465         (STRUCT_VALUE): Likewise.
17466         (RETURN_IN_MEMORY): Likewise.
17467         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17468
17469 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17470
17471         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
17472         (arm_setup_incoming_varargs): Likewise.
17473         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
17474
17475 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17476
17477         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
17478         (cris_setup_incoming_varargs): Likewise.
17479         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
17480
17481 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17482
17483         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
17484         (ns32k_struct_value_rtx): Likewise.
17485         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
17486         NS32K_STRUCT_VALUE_REGNUM.
17487
17488 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17489
17490         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17491         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17492         (TARGET_STRUCT_VALUE_RTX): Likewise.
17493         (arm_struct_value_rtx): Likewise.
17494         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
17495         (STRUCT_VALUE): Likewise.
17496         (STRUCT_VALUE_REGNUM): Likewise.
17497         (PROMOTE_PROTOTYPES): Likewise.
17498
17499 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17500
17501         * config/ia64/ia64-protos.h: Remove the prototype for
17502         ia64_setup_incoming_varargs and ia64_return_in_memory.
17503         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
17504         (TARGET_RETURN_IN_MEMORY): Likewise.
17505         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17506         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17507         (ia64_setup_incoming_varargs): Adjust the arguments to meet
17508         the requirement of TARGET_SETUP_INCOMING_VARARGS.
17509         (ia64_return_in_memory): Make it static.  Change the return
17510         type to bool from int.  Add an argument.
17511         (ia64_struct_value_rtx): New.
17512         * config/ia64/ia64.h: Remove commented-out definitions of
17513         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
17514         PROMOTE_PROTOTYPES.
17515         (RETURN_IN_MEMORY): Remove.
17516         (STRUCT_VALUE_REGNUM): Likewise.
17517         (STRICT_ARGUMENT_NAMING): Likewise.
17518
17519 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
17520
17521         PR target/13666
17522         * config/sparc/sparc.c (function_arg_union_value): New function.
17523         (function_arg): Use it to deal with unions.
17524         (function_value): Likewise.  Define 'regbase' only for ARCH64.
17525         Replace a conditional statement by a simpler one.
17526
17527 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
17528
17529         * config/mips/mips.c (mips16_optimize_gp): Delete.
17530         (mips_reorg): Don't call it.
17531
17532 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17533
17534         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
17535         (floatunsqihf2): Remove operand 6.
17536         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
17537         fix patterns.
17538         (ldi_conditional, ldf_conditional): Validate operands.
17539
17540 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17541
17542         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
17543         (HAVE_GAS_HIDDEN): Undefine as interim measure.
17544
17545 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17546
17547         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
17548         memory references if TARGET_EXPOSE_LDP nonzero.
17549
17550 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17551
17552         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
17553
17554 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17555
17556         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
17557         invalid operand combinations.
17558
17559 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17560
17561         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
17562         c4x_legitimate_address_p.  Fix post_modify check.
17563
17564         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
17565         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
17566
17567 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17568
17569         * config/pa/pa-protos.h: Remove the prototype for
17570         hppa_builtin_saveregs.  Add a prototype for
17571         pa_return_in_memory.
17572         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
17573         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17574         (TARGET_STRUCT_VALUE_RTX): Likewise.
17575         (TARGET_RETURN_IN_MEMORY): Likewise.
17576         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17577         (pa_struct_value_rtx): Likewise.
17578         (pa_return_in_memory): Likewise.
17579         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
17580         PA_STRUCT_VALUE_REGNUM.
17581         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
17582         (EXPAND_BUILTIN_SAVEREGS): Remove.
17583         (PROMOTE_PROTOTYPES): Likewise.
17584         (PROMOTE_FUNCTION_RETURN): Likewise.
17585
17586 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17587
17588         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
17589         (TARGET_STRUCT_VALUE_RTX): Likewise.
17590         (vax_struct_value_rtx): Likewise.
17591         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
17592         VAX_STRUCT_VALUE_REGNUM.
17593         (PROMOTE_PROTOTYPES): Remove.
17594
17595 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17596
17597         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
17598
17599 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
17600
17601         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
17602         and MIPS64 have HI/LO interlocks.  Update comment.
17603
17604 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17605
17606         * config/stormy16/stormy16-protos.h: Remove the prototype for
17607         xstormy16_setup_incoming_varargs.
17608         * config/stormy16/stormy16.c
17609         (xstormy16_setup_incoming_varargs): Remove.
17610         (xstormy16_return_in_memory): New.
17611         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17612         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17613         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17614         (TARGET_STRUCT_VALUE_RTX): Likewise.
17615         (TARGET_RETURN_IN_MEMORY): Likewise.
17616         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
17617         (PROMOTE_FUNCTION_RETURN): Likewise
17618         (PROMOTE_PROTOTYPES): Likewise
17619         (RETURN_IN_MEMORY): Likewise
17620         (STRUCT_VALUE): Likewise
17621         (SETUP_INCOMING_VARARGS): Likewise
17622
17623 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
17624
17625         * config/mips/mips.c (mips_offset_within_object_p): New function.
17626         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
17627         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
17628         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
17629
17630 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17631
17632         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
17633         (PROMOTE_FUNCTION_RETURN): Likewise.
17634
17635 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17636
17637         * config/mn10300/mn10300-protos.h: Remove the prototype for
17638         mn10300_builtin_saveregs.
17639         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
17640         (TARGET_STRUCT_VALUE_RTX): Likewise.
17641         (TARGET_RETURN_IN_MEMORY): Likewise.
17642         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17643         (mn10300_return_in_memory): Likewise.
17644         (mn10300_builtin_saveregs): Make it static.
17645         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
17646         (RETURN_IN_MEMORY): Likewise.
17647         (STRUCT_VALUE): Likewise.
17648         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17649
17650 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
17651
17652         PR bootstrap/13853
17653         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
17654
17655 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17656
17657         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
17658         using ccr.
17659
17660 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17661
17662         * config/i860/i860-protos.h: Remove the prototype for
17663         i860_saveregs.
17664         * config/i860/i860.c (i860_saveregs): Make it static.
17665         (i860_struct_value_rtx): New.
17666         (TARGET_STRUCT_VALUE_RTX): Likewise.
17667         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17668         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
17669         I860_STRUCT_VALUE_REGNUM.
17670         (EXPAND_BUILTIN_SAVEREGS): Remove.
17671
17672 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17673
17674         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
17675         (TARGET_RETURN_IN_MEMORY): Likewise.
17676         (m68hc11_struct_value_rtx): Likewise.
17677         (m68hc11_return_in_memory): Likewise.
17678         * config/m68hc11/m68hc11.h: Remove a commented-out definition
17679         of PROMOTE_PROTOTYPES.
17680         (RETURN_IN_MEMORY): Remove.
17681         (STRUCT_VALUE_REGNUM): Likewise.
17682
17683 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17684
17685         * config/mmix/mmix-protos.h: Remove the prototype for
17686         mmix_setup_incoming_varargs.
17687         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17688         (TARGET_STRUCT_VALUE_RTX): Likewise.
17689         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17690         (mmix_setup_incoming_varargs): Make it static.
17691         (mmix_struct_value_rtx): New.
17692         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
17693         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
17694         (STRUCT_VALUE_REGNUM): Remove.
17695         (SETUP_INCOMING_VARARGS): Likewise.
17696
17697 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17698
17699         * config/mips/mips-protos.h: Remove the prototypes for
17700         mips_setup_incoming_varargs and mips_return_in_memory.
17701         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17702         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17703         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17704         (TARGET_STRUCT_VALUE_RTX): Likewise.
17705         (TARGET_RETURN_IN_MEMORY): Likewise.
17706         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17707         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17708         (mips_setup_incoming_varargs): Match the prototype for
17709         TARGET_SETUP_INCOMING_VARARGS.
17710         (mips_return_in_memory): Make it static.  Add argument fntype.
17711         (mips_strict_argument_naming): New.
17712         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
17713         (PROMOTE_FUNCTION_ARGS): Likewise.
17714         (PROMOTE_FUNCTION_RETURN): Likewise.
17715         (STRUCT_VALUE): Likewise.
17716         (RETURN_IN_MEMORY): Likewise.
17717         (SETUP_INCOMING_VARARGS): Likewise.
17718         (STRICT_ARGUMENT_NAMING): Likewise.
17719
17720 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17721
17722         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
17723         (TARGET_RETURN_IN_MEMORY): Likewise.
17724         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17725         (ip2k_return_in_memory): Likewise.
17726         (ip2k_setup_incoming_varargs): Likewise.
17727         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
17728         (STRUCT_VALUE): Likewise.
17729         (STRUCT_VALUE_INCOMING): Likewise.
17730         (SETUP_INCOMING_VARARGS): Likewise.
17731
17732 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
17733
17734         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
17735         (TARGET_RETURN_IN_MEMORY): Likewise.
17736         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17737         (avr_return_in_memory): Remove.
17738         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
17739         (STRUCT_VALUE): Likewise.
17740         (STRUCT_VALUE_INCOMING): Likewise.
17741         (STRICT_ARGUMENT_NAMING): Likewise.
17742
17743 2004-01-25  Jan Hubicka  <jh@suse.cz>
17744
17745         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
17746
17747 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
17748
17749         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
17750         (mips_regno_mode_ok_for_base_p): Declare.
17751         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
17752         (FRAME_POINTER_REGNUM): Renumber to 78.
17753         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
17754         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
17755         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
17756         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
17757         (REG_MODE_OK_FOR_BASE_P): Likewise.
17758         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
17759         entry for 77 to "$arg" and entry for 78 to "$frame".
17760         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
17761         (mips_reg_mode_ok_for_base_p): Remove.
17762         (mips_regno_mode_ok_for_base_p): New function, derived from old
17763         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
17764         restrictions unless we're being strict.
17765         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
17766
17767 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17768
17769         * c-common.h: Fix comment typos.
17770         * c-decl.c: Likewise.
17771         * cgraphunit.c: Likewise.
17772         * combine.c: Likewise.
17773         * et-forest.c: Likewise.
17774         * flow.c: Likewise.
17775         * function.c: Likewise.
17776         * ifcvt.c: Likewise.
17777         * integrate.c: Likewise.
17778         * jump.c: Likewise.
17779         * postreload.c: Likewise.
17780         * varray.c: Likewise.
17781
17782 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17783
17784         * doc/frontends.texi: Update copyright.
17785         * doc/gcov.texi: Likewise.
17786         * doc/gty.texi: Likewise.
17787         * doc/sourcebuild.texi: Likewise.
17788         * doc/standards.texi: Likewise.
17789
17790 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
17791
17792         PR target/12978
17793         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
17794         Remove movstrqi_small because it conflicts with movstrqi_large.
17795
17796 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17797
17798         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17799         (TARGET_STRUCT_VALUE_RTX): Likewise.
17800         (cris_struct_value_rtx): Likewise.
17801         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
17802         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
17803         STRUCT_VALUE_REGNUM.
17804         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
17805
17806 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
17807
17808         PR bootstrap/13848
17809         * cse.c (cse_cc_succs): Change the mode of the source expression
17810         as soon as decide we need a new mode.  Don't permit changing modes
17811         if we found a match in a successor block.
17812         (cse_condition_code_reg): Save original mode of source expression
17813         so that we know whether we have to change the mode in other
17814         insns.
17815
17816 2004-01-24  Jan Hubicka  <jh@suse.cz>
17817
17818         * emit-rtl.c (change_address, adjust_address_1, offset_address,
17819         widen_memory_access):  Return early when there is nothing to change.
17820
17821 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
17822
17823         * simplify-rtx.c (simplify_relational_operation): Don't
17824         simplify address == constant into address + -constant == 0.
17825
17826 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17827
17828         * gcc.c (process_command): Don't internationalize the
17829         Copyright message.
17830         * mips-tfile.c (main): Likewise.
17831
17832 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
17833
17834         * cse.c: (cse_cc_succs) Fix comparison warning.
17835
17836 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17837
17838         * config/h8300/h8300.md: Remove extraneous USE in expanders.
17839
17840 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17841
17842         * config/h8300/h8300-protos.h: Provide prototypes for
17843         h8300_legitimate_constant_p and h8300_legitimate_address_p.
17844         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
17845         (h8300_rtx_ok_for_base_p): Likewise.
17846         (h8300_legitimate_address_p): Likewise.
17847         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
17848         h8300_legitimate_constant_p.
17849         (RTX_OK_FOR_BASE_P): Remove.
17850         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
17851
17852 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17853
17854         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
17855         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
17856         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
17857         (REG_OK_FOR_BASE_STRICT_P): Likewise.
17858         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
17859         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
17860         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
17861         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
17862
17863 2004-01-24  Jan Hubicka  <jh@suse.cz>
17864
17865         * cselib.c (remove_useless_values):  Do not access discarded values.
17866
17867 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
17868
17869         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
17870         arrays.
17871
17872 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
17873
17874         * recog.c: Fix a typo in copyright.
17875
17876 2004-01-23  Andrew Pinski  <apinski@apple.com>
17877
17878         * config/rs6000/rs6000.md (call): Fix misappiled patch.
17879         (call_value): Likewise.
17880
17881 2004-01-23  Richard Henderson  <rth@redhat.com>
17882
17883         PR opt/12941
17884         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
17885         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
17886         if SHIFT_COUNT_TRUNCATED is set.
17887
17888 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
17889
17890         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
17891         separate real and imaginary parts.
17892         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
17893
17894 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
17895
17896         PR target/13674
17897         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
17898         loading into GPR.
17899
17900 2004-01-23  Jan Hubicka  <jh@suse.cz>
17901
17902         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
17903         change.
17904
17905         * alloc-pool.c (align_four): Kill.
17906         (create_alloc_pool): Align size to eight.
17907         (free_alloc_pool, free_pool): Invalidate deallocated data.
17908
17909 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
17910
17911         PR gcc/1532
17912         * cse.c (cse_change_cc_mode): New static function.
17913         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
17914         (cse_condition_code_reg): New function.
17915         * rtl.h (cse_condition_code_reg): Declare.
17916         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
17917         * target.h (struct gcc_target): Add fixed_condition_code_regs and
17918         cc_modes_compatible.
17919         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
17920         (TARGET_CC_MODES_COMPATIBLE): Define.
17921         (TARGET_INITIALIZER): Add new initializers.
17922         * targhooks.c (default_cc_modes_compatible): New function.
17923         * targhooks.c (default_cc_modes_compatible): Declare.
17924         * hooks.c (hook_bool_intp_intp_false): New function.
17925         * hooks.h (hook_bool_intp_intp_false): Declare.
17926         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
17927         (TARGET_CC_MODES_COMPATIBLE): Define.
17928         (ix86_fixed_condition_code_regs): New static function.
17929         (ix86_cc_modes_compatible): Likewise.
17930         * doc/tm.texi (Condition Code): Document new hooks.
17931
17932 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17933
17934         * fixinc/inclhack.def (bad_lval): Renamed to ...
17935         (alpha_bad_lval): ... this.
17936         Removed file list.
17937         Restrict to alpha*-dec-osf*.
17938         * fixinc/fixincl.x: Regenerate.
17939         * fixinc/tests/base/dirent.h: Remove, moving test ...
17940         * fixinc/tests/base/testing.h: ... here, reflecting new name.
17941
17942 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
17943
17944         PR c/13814
17945         * c-decl.c (diagnose_mismatched_decls): Also discard a
17946         built-in if we encounter an old-style definition with the
17947         same name.
17948
17949 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
17950
17951         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
17952         set to default{32,64}.
17953
17954 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
17955
17956         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
17957         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
17958
17959 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
17960             Olivier Hainque  <hainque@act-europe.fr>
17961
17962         * fold-const.c (fold_binary_op_with_conditional_arg): Only
17963         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
17964
17965 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
17966
17967         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
17968         size for minipool references.
17969
17970 2004-01-23  Roger Sayle  <roger@eyesopen.com>
17971
17972         * real.c (real_floor, real_ceil): Tweak to allow input and output
17973         arguments to overlap.
17974         (real_round): New function to implement round(3m) semantics.
17975         * real.h (real_round): Prototype here.
17976         * builtins.c (fold_builtin_round): New function to constant fold
17977         round, roundf and roundl.
17978         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
17979
17980 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
17981
17982         PR optimization/13819
17983         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
17984         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
17985         (sh_handle_sp_switch_attribute): Remove warning.
17986
17987 2004-01-23  Jan Hubicka  <jh@suse.cz>
17988
17989         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
17990
17991 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
17992
17993         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
17994         may or may not return non-NIL.
17995         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
17996         check CANNOT_CHANGE_MODE_CLASS
17997
17998 2004-01-23  Jan Hubicka  <jh@suse.cz>
17999
18000         * basic-block.h (PROP_POSTRELOAD): New macro.
18001         (CLEANUP_LOG_LINKS): New.
18002         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18003         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18004
18005         * cselib.c (value_pool): New.
18006         (new_cselib_val): Use pool.
18007         (cselib_init): Initialize value_pool
18008         (cselib_finish): Free pool.
18009
18010 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18011
18012         * config/sparc/sparc.c (scan_record_type): New function.
18013         (function_arg_slotno): Use it to determine which kinds of
18014         registers the record can be passed in.
18015
18016 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18017
18018         * config/pa/fptr.c: Fix old-style definition.
18019
18020 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18021
18022         PR optimization/13724
18023         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18024         represents the zero bits produced by a ZERO_EXTEND operation.
18025
18026 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18027
18028         PR optimization/13821
18029         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18030         correctly calculate the lowpart offset of the contracted subreg.
18031
18032 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18033
18034         * doc/invoke.texi (Optimize Options): Note that --param arguments
18035         are subject to change without notice.
18036
18037 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18038
18039         * config.gcc (mips-sgi-irix6*o32): Removed.
18040         * config/mips/iris6-o32-as.h: Likewise.
18041         * config/mips/iris6-o32-gas.h: Likewise.
18042         * config/mips/iris6-o32.h: Likewise.
18043
18044 2004-01-22  Jan Hubicka  <jh@suse.cz>
18045
18046         * cfgcleanup.c (first_pass): New static variable.
18047         (try_forward_edges):  Add work limiting check for threading.
18048         (try_crossjump_bb):  Add work limiting check for crossjumping.
18049         (try_optimize_cfg):  Maintain first pass variable.
18050
18051 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18052
18053         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18054         handles complex and vector modes.
18055
18056 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18057
18058         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18059         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18060         (STRICT): Likewise.
18061
18062 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18063
18064         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18065         (genrtl_for_stmt): Remove emit_nop calls.
18066
18067 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18068
18069         PR target/13713
18070         PR target/13324
18071         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18072         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18073         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18074
18075 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18076
18077         * config/arm/arm.c: Include "debug.h".
18078         (thumb_pushpop): Take two new arguments.  Add some commentary.
18079         Output frame information when pushing.
18080         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18081         thumb_pushpop.
18082         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18083         offset, and pass it to thumb_pushpop.  Output CFI information.
18084         (thumb_expand_prologue): Add some frame-related markers and notes.
18085
18086 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18087
18088         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18089         for TARGET_64BIT.
18090         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18091         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18092
18093 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18094             Paolo Bonzini  <bonzini@gnu.org>
18095
18096         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18097         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18098         * rtl.h (subreg_lsb_1): Prototype here.
18099         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18100         sign extensions.
18101
18102 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18103
18104         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18105         macro need not be defined if jump-tables should contain
18106         relative addresses only when -fPIC or -fPIC is in effect.
18107
18108 2004-01-22  Jan Hubicka  <jh@suse.cz>
18109
18110         * alias.c (reg_base_value): Turn into varray.
18111         (reg_base_value_size): Kill.
18112         (old_reg_base_value): New deletable varray.
18113         (alias_invariant_size): New variable.
18114         (REG_BASE_VALUE): Update to use varray.
18115         (find_base_value): Likewise.
18116         (record_set): Likewise.
18117         (record_base_value): Likewise.
18118         (memrefs_conflict_p): Likewise.
18119         (record_set): Likewise
18120         (record_base_value): Likewise.
18121         (memrefs_conflict_p): Use alias_invariant_size.
18122         (init_alias_analysis): Use varray; set alias_invariant_size;
18123         rescale other arrays to be sized by maxreg.
18124         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18125
18126 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18127
18128         * config/sparc/sparc.c (function_arg_slotno): Use
18129         FLOAT_TYPE_P to detect FP fields in structures.
18130         (function_arg_record_value_1): Likewise.
18131         (function_arg_record_value_2): Likewise.
18132
18133 2004-01-22  Jan Hubicka  <jh@suse.cz>
18134
18135         * function.c (allocate_struct_function): Do not initialize expr, emit
18136         and varasm.
18137         (prepare_function_start): Do it here.
18138         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18139
18140 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18141
18142         PR target/13559
18143         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18144         to 'word_mode' once the first slot has been filled.
18145
18146 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18147
18148         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18149         computation of the number of integer registers required.
18150
18151 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18152
18153         * config/i386/i386.md: Simplify certain comparisons of
18154         const_int.
18155
18156 2004-01-21  Andrew Pinski  <apinski@apple.com>
18157
18158         PR target/13785
18159         * config/rs6000/rs6000.md (call_value): Force operand
18160         1 not operand 0 into a register.
18161
18162 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18163
18164         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18165         unwind-dw2-fde.h: Update copyright.
18166
18167 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18168
18169         * pa-protos.h: Update copyright.
18170         * pa.h: Likewise.
18171         * pa.md: Likewise.
18172
18173 2004-01-21  Caroline Tice  <ctice@apple.com>
18174
18175         PR target/12308
18176         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18177         flags register.
18178         (fix_truncdfdi2): Likewise.
18179         (fix_truncsfdi2): Likewise.
18180         (*fix_truncdi_1): Likewise.
18181         (fix_truncxfsi2): Likewise.
18182         (fix_truncdfsi2): Likewise.
18183         (fix_truncsfsi2): Likewise.
18184         (*fix_truncsi_1): Likewise.
18185         (fix_truncxfhi2): Likewise.
18186         (fix_truncdfhi2): Likewise.
18187         (fix_truncsfhi2): Likewise.
18188         (*fix_trunchi_1): Likewise.
18189
18190 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18191
18192         * alias.c, basic-block.h, c-common.c, c-common.h,
18193         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18194         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18195         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18196         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18197         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18198         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18199         genautomata.c, genconditions.c, genemit.c, genflags.c,
18200         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18201         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18202         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18203         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18204         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18205         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18206         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18207         unwind.h, varray.c, varray.h: Update copyright.
18208
18209 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18210
18211         * config/h8300/coff.h: Update copyright.
18212         * config/h8300/elf.h: Likewise.
18213         * config/h8300/h8300-protos.h: Likewise.
18214         * config/h8300/h8300.c: Likewise.
18215         * config/h8300/h8300.h: Likewise.
18216         * config/h8300/h8300.md: Likewise.
18217
18218 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18219
18220         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18221         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18222         ultrix_unistd): New hacks.
18223         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18224         ULTRIX_CONST2_CHECK): Add checks.
18225         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18226         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18227         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18228         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18229         * fixinc/tests/base/locale.h: New file.
18230         * fixinc/fixincl.x: Rebuilt.
18231
18232 2004-01-21  Andreas Jaeger  <aj@suse.de>
18233             Michael Matz  <matz@suse.de>
18234
18235         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18236
18237 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18238
18239         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18240         _Jv_RegisterClasses through a function pointer.
18241
18242 2004-01-21  Falk Hueffner  <falk@debian.org>
18243
18244         PR target/12898
18245         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18246         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18247         which need multiple instructions to emit.
18248
18249 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18250
18251         * config/m32r/m32r.h (CPP_SPEC): Define.
18252
18253 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18254
18255         * c-decl.c (merge_decls): Kill different_binding_level and
18256         different_tu arguments; simplify throughout.
18257         (duplicate_decls): Likewise.
18258         (pushdecl, merge_translation_unit_decls): Update calls to
18259         duplicate_decls.
18260
18261 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18262
18263         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18264         $(SYSTEM_H).
18265         (print-rtl1.o): Depend on $(SYSTEM_H).
18266
18267 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18268
18269         PR bootstrap/12730
18270         * configure.ac: Delete definition and subsitution of docdir.
18271         Add info, man, srcman and srcinfo to target hooks. Create doc/
18272         directory.
18273         * configure: Regenerate.
18274         * Makefile.in: Don't substitute docdir and delete all references
18275         throughout.
18276         (MAKEINFOFLAGS): Define.
18277         (stmp-docobjdir): Delete.
18278         (INFOFILES, MANFILES): Define.
18279         (info): Call lang.info, srcinfo and lang.srcinfo.
18280         (generated-manpages): Call lang.man, srcman and lang.srcman.
18281         (srcinfo, srcman): New rules to copy back files to source directory.
18282         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18283         (install-man): Revamp rule.
18284         (clean): Update dvi directory.
18285         (distclean): Delete TAGS from front end directorys.
18286         (maintainer-clean): Delete all document files in source directory.
18287
18288         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18289         (objc.srcman, objc.srcinfo): Likewise.
18290
18291 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18292
18293         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18294         (matherr_decl): rename & relocate as exception_structure.
18295         This fix must precede the math_exception fix.
18296
18297 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18298
18299         * fold-const.c (fold_convert): Rename to fold_convert_const.
18300         (fold_convert_const): Change arguments to take a tree_code,
18301         a type and the operand/expression to be converted.  Return
18302         NULL_TREE if no simplification is possible.  Add support for
18303         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18304         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18305         Adjust call to fold_convert to match new fold_convert_const.
18306         Avoid modifying the tree passed to fold in-place.
18307
18308 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18309
18310         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18311         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18312         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18313
18314 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18315
18316         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18317         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18318         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18319         (emit_move_sequence): Check scratch_reg first in various if statements.
18320         Extend source simplification to handle all 64-bit CONST_INTs.
18321         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18322         frame size.
18323         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18324         frame offset calculations.
18325         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18326         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18327         LEGITIMATE_64BIT_CONST_INT_P): Define.
18328         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18329         any CONST_INT as legitimate during and after reload.
18330         (VAL_32_BITS_P, INT_32_BITS): Define.
18331         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18332
18333 2004-01-20  Jan Hubicka  <jh@suse.cz>
18334
18335         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18336         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18337         containing hard regs are shared.
18338         (gen_hard_reg_clobber): New function.
18339         (hard_reg_clobbers): New array.
18340         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18341         (copy_rtx): Do not copy clobbers containing hard regs.
18342         * rtl.h (gen_hard_reg_clobber): Declare.
18343
18344 2004-01-20  Jan Hubicka  <jh@suse.cz>
18345
18346         * varray.c:  Include hashtab.h
18347         (varray_descriptor): New structure.
18348         (hash_descriptor, eq_descriptor, varray_descriptor,
18349         print_statistics): New static functions
18350         (varray_init, varray_grow): Update statistics
18351         (dump_varray_statistics): New function.
18352         * varray.h (dump_varray_statistics): Declare.
18353         * toplev.c (finalize): Call it.
18354         * Makefile.in (varray.o): Add dependency.
18355
18356 2004-01-20  Jan Hubicka  <jh@suse.cz>
18357
18358         * cselib.c: Include alloc-pool.h
18359         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
18360         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
18361         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
18362         unchain_one_elt_loc_list_pool, unchain_one_value,
18363         new_cselib_val): Simplify using allocpool.
18364         (cselib_init): Initialize allocpools.
18365         (cselib_finish): Finish allocpools.
18366         * Makefile.in (cselib.o): Depend on alloc-pool.h
18367
18368 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
18369
18370         * config/mips/mips.c (mips_load_call_address): Make the call insn
18371         use $gp if it could be calling a lazy binding stub.
18372
18373 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18374
18375         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
18376         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18377         (TARGET_STRUCT_VALUE_RTX): Likewise.
18378         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
18379         (PROMOTE_FUNCTION_RETURN): Remove.
18380         (STRUCT_VALUE): Remove.
18381
18382 2004-01-20  Denis Chertykov  <denisc@overta.ru>
18383
18384         PR bootstrap/13735
18385         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
18386         register as pointer after reload.
18387
18388 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18389
18390         PR optimization/12440
18391         * loop.c: Include ggc.h.
18392         (loop_optimize): Run garbage collector between optimization of loops.
18393         * Makefile.in (loop.o): Add GGC_H dependency.
18394
18395 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
18396
18397         * gcc/config/rs6000/rs6000.c (function_arg) Handle
18398         vector register special in function without prototype.
18399         (function_arg_advance): Vector parameters get always
18400         GPRs allocated for the linux64 target.
18401
18402 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18403
18404         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
18405         not TARGET_M32RX_MASK.
18406
18407 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
18408
18409         PR target/13557
18410         * config/sparc/sparc.c (function_arg): Reorder the cases.
18411
18412 2004-01-19  Per Bothner  <per@bothner.com>
18413
18414         Move cpp_reader's line_maps field to a shared global.
18415         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
18416         and change the type to a pointer rather than a struct.
18417         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
18418         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
18419         Likewise.
18420         * cppfiles.c (validate_pch):  Likewise.
18421         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
18422         Likewise.
18423         * cpperror.c (print_location):  Likewise.
18424         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
18425         * cppinit.c (cpp_create_reader):  Handle new parameter.
18426         (cpp_destroy):  Don't free line_maps - that's no longer our job.
18427         * input.h (line_table):  New variable.
18428         * toplev.c (line_table):  Declare variable.
18429         (general_init):  Initialize line_table.
18430         * c-opts.c (c_common_init_options):  Pass line_table to
18431         cpp_create_reader.
18432         * fix-header.c (read_scan_file):  New local variable line_table.
18433         Initialize, and pass it to cpp_create_reader.
18434         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
18435         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
18436
18437 2004-01-19  Per Bothner  <per@bothner.com>
18438
18439         Implement a cache for linemap_lookup.
18440         * line-map.h (struct_line_maps):  Add cache field.
18441         * line-map.c (linemap_init):  Zero cache field.
18442         (linemap_add):  Set cache field to offset of newly allocated map.
18443         (linemap_lookup):  Use and set cache field.
18444
18445 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18446
18447         PR optimization/13567
18448         * cse.c (cse_basic_block): Call cse_insn with a non-null
18449         libcall_insn for the last SET insn of a no-confilict block.
18450
18451 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18452
18453         * Makefile.in (target_noncanonical, program_transform_name): Use
18454         immediate define instead of deferred.
18455         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
18456         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
18457         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
18458         deferred backquote.
18459
18460 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18461
18462         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
18463         true unconditionally.
18464         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
18465         Remove.
18466         (build_unary_op, build_modify_expr): Don't handle extended
18467         lvalues.
18468         (build_component_ref, build_conditional_expr): Call non_lvalue
18469         instead of pedantic_non_lvalue.
18470         (build_c_cast): Don't condition use of non_lvalue on pedantic.
18471         * fold-const.c (fold): Don't check pedantic directly for
18472         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
18473         passed to pedantic_non_lvalue.
18474         * doc/extend.texi: Remove documentation of extended lvalues.
18475
18476 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18477
18478         PR optimization/5263
18479         * simplify-rtx.c (associative_constant_p): Delete.
18480         (simplify_associative_operation): Rewrite to linearize terms, and
18481         attempt to simplify new term against both left and right subterms.
18482         (simplify_binary_operation): Call swap_commutative_operands_p on
18483         op0 and op1, not trueop0 and trueop1.  Move the initialization of
18484         trueop0 and trueop1 down to where first needed.
18485         (simplify_relational_operation): Likewise.
18486         * rtlanal.c (commutative_operand_precedence): Also order constant
18487         operands using avoid_constant_pool_reference.
18488
18489 2004-01-19  Richard Henderson  <rth@redhat.com>
18490
18491         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
18492         don't check memory mode.
18493         (unaligned_memory_operand): Likewise.
18494         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
18495         abort for op0 not MEM.
18496
18497         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
18498         is not a reg, copy to a scratch first.
18499         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
18500         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
18501         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
18502         (reload_inqi, reload_inhi): Fix mode of op0.
18503         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
18504         reload_outhi_help): Likewise.  Use define_insn_and_split.
18505
18506         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
18507         as well as $29 dead.
18508
18509 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
18510
18511         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
18512         "tls_object" for thread-local objects.
18513         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
18514         "#tls" for thread-local sections.
18515         * configure.ac (thread-local checks): Specify --fatal-warnings in
18516         every binutils-specific checks.  For sparc*-*-*, test whether the
18517         OS is Solaris and the tools are native and act accordingly.
18518         * configure: Rebuild.
18519
18520 2004-01-19  Jeff Law  <law@redhat.com>
18521
18522         * contrib.texi: Update Paolo Carlini's entry.  New entries for
18523         Jerry Quinn and Petur Runolfsson.
18524
18525 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18526
18527         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
18528         size, don't use the larger zero-extending loads.
18529
18530 2004-01-19  Richard Henderson  <rth@redhat.com>
18531
18532         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
18533         * alpha.md (UNSPEC_NT_LDA): Remove.
18534         (UNSPEC_CVTLQ, cvtlq): New.
18535         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
18536         (extendsidi2_fix): Remove.
18537         (extendsidi2 splitter): Use cvtlq.
18538         (extendsidi2 fp peepholes): Remove.
18539         (cvtql): Use SFmode instead of SImode.
18540         (fix_trunc?fsi): Update to match.
18541         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
18542         (movsi): Rename from movsi_nofix, remove f alternatives.
18543         (movsi_nt_vms): Similarly.
18544         (movsi_fix, movsi_nt_vms_fix): Remove.
18545         (nt_lda): Remove.
18546         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
18547
18548 2004-01-19  Jan Hubicka  <jh@suse.cz>
18549
18550         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
18551         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
18552         list.
18553         (cgraph_remove_unreachable_nodes): New function
18554         (cgraph_decide_inlining_of_small_function): Fix pasto.
18555         (cgraph_decide_inlining_incrementally): Fix pasto.
18556         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
18557
18558 2004-01-19  Steven Bosscher  <stevenb@suse.de>
18559
18560         * gengtype.c (header_file): Make it static.
18561         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
18562         * gengtype.h (header_file): No longer extern.
18563
18564 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18565
18566         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
18567         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
18568         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
18569
18570 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18571
18572         * stmt.c (HAVE_casesi): Define it not already defined.
18573         (HAVE_tablejump): Likewise.
18574         (expand_end_case_type): Resort to the binary tree method if
18575         neither casesi or tablejump is available.
18576
18577 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
18578
18579         * final.c (final_scan_insn): Make non-static again.
18580         * output.h (final_scan_insn): Re-add prototype.
18581         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
18582         to final_scan_insn call.
18583         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
18584         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
18585         * config/pa/pa.c (output_lbranch, output_call): Likewise.
18586         * config/sh/sh.c (print_slot): Likewise.
18587         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
18588         (output_sibcall, sparc_flat_function_epilogue): Likewise.
18589
18590 2004-01-18  Jan Hubicka  <jh@suse.cz>
18591
18592         * basic-block.h (try_redirect_by_replacing_jump): Declare.
18593         * cfgcleanup.c (try_optimize_cfg): Use it.
18594         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
18595         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
18596         Kill hack.
18597         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
18598
18599         Revert:
18600         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18601
18602                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
18603                 even after reload, just don't remove the actual jump tables.
18604
18605 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18606
18607         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
18608
18609 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18610
18611         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
18612         the size of a pointer in bytes.
18613
18614 2004-01-18  Roger Sayle  <roger@eyesopen.com>
18615
18616         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
18617         live "next" variable, which could lead to an infinite loop.
18618
18619 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
18620
18621         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
18622         block.
18623
18624         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18625         Check for NULL in the chain and remove repeated code.
18626
18627 2004-01-18  Jan Hubicka  <jh@suse.cz>
18628
18629         * coverage.c (checksum_string): Rename to ...
18630         (coverage_checksum_string): ... this one, Use crc32_string; recognize
18631         names containing random number and zero the number out in order to get
18632         match.
18633
18634 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
18635
18636         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
18637
18638 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18639
18640         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
18641         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
18642         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
18643         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
18644         doc/trouble.texi: Remove trailing whitespace.
18645
18646 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
18647
18648         PR target/7618
18649         * config/mips/mips.c: Include cfglayout.h.
18650         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
18651         (mips_unspec_offset_high): Add temporary register argument.
18652         (mips_load_call_address): New function, split out from...
18653         (mips_expand_call): ...here.
18654         (mips_output_cplocal): New function.
18655         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
18656         (mips_emit_loadgp): New function, split out from...
18657         (mips_expand_prologue): ...here.
18658         (mips_output_mi_thunk): New function.
18659
18660 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
18661
18662         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
18663         mcpu32): Remove redundant checks for implied target predefines.
18664
18665 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
18666
18667         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18668         Return type is unsigned int not int.
18669         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
18670         Likewise.
18671
18672 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18673
18674         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
18675         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
18676         "GNU/Linux" and "Microsoft Windows" terminology.
18677
18678 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
18679
18680         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
18681         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
18682         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
18683         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
18684         @smallexample instead of @example.
18685
18686 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
18687
18688         * objc/objc-act.c (build_objc_method_call): Use target
18689         hooks instead of macros to determine if ..._stret
18690         dispatchers should be used (NeXT runtime only).
18691
18692 2004-01-17  Roger Sayle  <roger@eyesopen.com>
18693
18694         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
18695         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
18696
18697 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
18698
18699         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
18700         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
18701         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
18702         macros.
18703         * reload1.c (emit_reload_insns): Use them.
18704         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
18705         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
18706         for NULL PATTERN.
18707
18708 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
18709
18710         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
18711         (final_scan_insn): Update to take an additional SEEN argument.  Emit
18712         a line note after the prologue.  Make static.
18713         (line_note_exists): Remove.
18714         (final): Don't initialize line_note_exists.  Update call to
18715         final_scan_insn.
18716         * output.h (final_scan_insn): Remove prologue.
18717         * function.c (set_insn_locators): Update comment.
18718         (thread_prologue_and_epilogue_insns): Add a comment.
18719
18720 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
18721
18722         PR target/10781
18723         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
18724         Prototype.
18725         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
18726         New function.
18727         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
18728         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
18729         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
18730
18731 2004-01-17  Jan Hubicka  <jh@suse.cz>
18732
18733         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
18734         commit.
18735
18736         * toplev.c (HAVE_conditional_execution): Provide default.
18737         (rest_of_handle_reorder_blocks): For conditional_execution target
18738         update liveness once after all transformations
18739         (rest_of_compilation): Do crossjumping before ce3.
18740
18741 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
18742
18743         * alias.c (new_alias_set): Mark last_alias_set for PCH.
18744         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
18745         for PCH.
18746         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
18747         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
18748         (get_TOC_alias_set): Mark 'set' for PCH.
18749
18750 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18751
18752         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
18753         even after reload, just don't remove the actual jump tables.
18754
18755 2004-01-17  J. Brobecker  <brobecker@gnat.com>
18756
18757         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
18758         Remove checks for is_ada() and TREE_UNSIGNED.
18759         (subrange_type_die): Emit a byte_size attribute if the subrange
18760         type size is different from the base type size.
18761         (modified_type_die): Replace call to is_ada_subrange_type() by
18762         call to is_subrange_type().
18763
18764 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
18765
18766         * config/sh/sh.c: Include ggc.h.
18767
18768 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
18769
18770         * Makefile.in (MD5_H): New.
18771         (fold-const.o): Depend on md5.h.
18772         (dwarf2out.o): Likewise.
18773         (cppfiles.o): Likewise.
18774         * cppfiles.c: Include md5.h.
18775         (should_stack_file): Check against list read from PCH file.
18776         (struct pchf_data): New.
18777         (pchf): New variable.
18778         (struct pchf_adder_info): New.
18779         (pchf_adder): New.
18780         (pchf_save_compare): New.
18781         (_cpp_save_file_entries): New.
18782         (_cpp_read_file_entries): New.
18783         (struct pchf_compare_data): New.
18784         (pchf_compare): New.
18785         (check_file_against_entries): New.
18786         * cpphash.h (_cpp_save_file_entries): Prototype.
18787         (_cpp_read_file_entries): Prototype.
18788         * cpppch.c (cpp_write_pch_state): Write the list of headers.
18789         (cpp_read_state): Read the list of headers.
18790
18791 2004-01-17  Jan Hubicka  <jh@suse.cz>
18792
18793         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
18794         builtin_expect specially.
18795         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
18796         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
18797         * invoke.texi (max-inline-insns-single): Set to 100.
18798         (large-function-insns): Set to 3000.
18799
18800 2004-01-16  Eric Christopher  <echristo@redhat.com>
18801             Chandrakala Chavva <cchavva@redhat.com>
18802
18803         * cppcharset.c (one_iso88591_to_utf8): New function.
18804         (convert_iso88591_utf8): Ditto. Use.
18805         (conversion_tab): Use.
18806         (_cpp_input_to_utf8): New function.
18807         (_cpp_init_iconv_buffer): Ditto.
18808         (_cpp_close_iconv_buffer): Ditto.
18809         * cpphash.h: Prototype new functions.
18810         (cpp_buffer): Add input_cset_desc.
18811         * cppinit.c: Add input_charset default.
18812         * cpplib.c (cpp_push_buffer): Support init and
18813         close of iconv.
18814         * cpplib.h (cpp_options): Add input_charset.
18815
18816 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18817
18818         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
18819         * config/alpha/unicosmk.h: Remove a commented-out definition
18820         of ASM_OUTPUT_SECTION_NAME.
18821         * config/stormy16/stormy16.h: Likewise.
18822
18823 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18824
18825         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
18826         (alpha___extern_prefix_sys_stat): ... this.
18827         Apply to <sys/mount.h>, too.
18828         Tweak to match more variations.
18829         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
18830
18831         * fixinc/inclhack.def (alpha___extern_prefix,
18832         alpha___extern_prefix_standards): New hacks to obey
18833         __PRAGMA_EXTERN_PREFIX.
18834         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
18835         test.
18836         * fixinc/tests/base/standards.h: Likewise.
18837
18838         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
18839         variations.
18840         New testcase.
18841         * fixinc/tests/base/pthread.h: Handle it.
18842
18843         * fixincl/inclhack.def (bad_lval): Sort file list.
18844         Add many missing files up to Tru64 UNIX V5.1B.
18845         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
18846         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
18847         order.
18848
18849         * fixinc/fixincl.x: Regenerate.
18850
18851 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
18852
18853         * version.c (version_string): Change to 3.5.0.
18854         * doc/include/gcc-common.texi (version-GCC): Likewise.
18855
18856 2004-01-16  Jan Hubicka  <jh@suse.cz>
18857
18858         * i386.md (load_tp_di): Fix pasto.
18859
18860         PR opt/13608
18861         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
18862
18863         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
18864         pp_c_character_constant, pp_c_floating_constant,
18865         pp_c_additive_expression, pp_c_shift_expression,
18866         pp_c_equality_expression, pp_c_and_expression,
18867         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
18868         pp_c_logical_and_expression): Remove inline modifier.
18869         * dwarf2out.c (get_AT): Likewise.
18870         * et-forest.c (et_splay): Likewise.
18871         * ra.h (ra_alloc, ra_calloc): Likewise
18872
18873 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18874
18875         * config/frv/frv-protos.h: Fix comment formatting.
18876         * config/frv/frv.c: Likewise.
18877         * config/frv/frv.h: Likewise.
18878         * config/frv/frv.md: Likewise.
18879         * config/frv/frvbegin.c: Likewise.
18880         * config/frv/frvend.c: Likewise.
18881
18882 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
18883
18884         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
18885         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
18886         LINKER_DOES_NOT_WORK_WITH_DWARF2.
18887         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
18888
18889 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
18890
18891         PR 11864
18892         * postreload.c (reload_cse_simplify_operands): Don't remove
18893         implicit extension from LOAD_EXTEND_OP.
18894
18895 2004-01-16  Jan Hubicka  <jh@suse.cz>
18896
18897         PR opt/11350
18898         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
18899         after reload.
18900         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
18901         rtl_try_redirect_by_replacing_branch): Likewise.
18902
18903 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
18904
18905         PR pch/13689
18906         * alias.c (struct alias_set_entry): Mark for GC.
18907         (alias_sets): Make static, mark for GC.
18908         (record_alias_subset): Use GC to allocate alias structures.
18909         * varray.c (element): Make generic varrays GCed.
18910
18911         PR pch/13361
18912         * c-typeck.c (constructor_asmspec): Delete.
18913         (struct initializer_stack): Delete field 'asmspec'.
18914         (start_init): Delete saving of asmspec.
18915         (finish_init): Don't update constructor_asmspec.
18916         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
18917         * stmt.c (expand_asm): Duplicate strings from tree.
18918         (expand_asm_operands): Likewise.
18919         * tree.c (tree_size): Update computation of size of STRING_CST.
18920         (make_node): Don't make STRING_CST nodes.
18921         (build_string): Allocate string with tree node.
18922         * tree.def (STRING_CST): Update comment.
18923         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
18924         (tree_string): Place contents of string in tree node.
18925         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
18926         from tree.
18927
18928         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
18929         altivec operands.
18930
18931 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18932
18933         * c-common.h: Fix comment formatting.
18934         * c-cppbuiltin.c: Likewise.
18935         * c-pragma.c: Likewise.
18936         * calls.c: Likewise.
18937         * collect2.c: Likewise.
18938         * cppcharset.c: Likewise.
18939         * cpptrad.c: Likewise.
18940         * dbxout.c: Likewise.
18941         * defaults.h: Likewise.
18942         * dwarf2out.c: Likewise.
18943         * fold-const.c: Likewise.
18944         * genautomata.c: Likewise.
18945         * genconditions.c: Likewise.
18946         * genflags.c: Likewise.
18947         * gengtype.c: Likewise.
18948         * integrate.c: Likewise.
18949         * loop.c: Likewise.
18950         * predict.c: Likewise.
18951         * sdbout.c: Likewise.
18952
18953 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
18954
18955         * config/ia64/ia64.md (*movti_internal): C output template
18956         extracted to ia64.c.
18957         (*movti_internal_reg): Delete.
18958         (reload_inti, reload_outti): Use the correct mode on operand 2
18959         in the first place, don't fix it up in the output template.
18960         (movtf, reload_ointf, reload_outtf): New expanders.
18961         (*movtf_internal): New define_insn_and_split.
18962         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
18963         make static; do not hand TFmode CONST_DOUBLEs to split_double.
18964         (ia64_split_tmode_move): New function, body mostly pulled
18965         from ia64.md:*movti_internal.
18966         (ia64_function_arg_words): New function, extracted common
18967         logic from ia64_function_arg et seq.
18968         (ia64_function_arg_offset): Likewise.  Handle correctly the
18969         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
18970         (ia64_function_arg, ia64_function_arg_partial_nregs)
18971         (ia64_function_arg_advance): Use ia64_function_arg_words and
18972         ia64_function_arg_offset.
18973         (ia64_function_value): TCmode does not go in float regs.
18974         (ia64_secondary_reload_class): Also handle TFmode.
18975         * config/ia64/ia64-protos.h: Remove prototype for
18976         ia64_split_timode; add prototype for ia64_split_tmode_move.
18977
18978 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
18979
18980         * Makefile.in (MAINT): Make it an immediate assignment.
18981
18982 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18983
18984         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
18985
18986 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
18987
18988         * config/h8300/coff.h: Replace Hitachi with Renesas.
18989         * config/h8300/elf.h: Likewise.
18990         * config/h8300/h8300-protos.h: Likewise.
18991         * config/h8300/h8300.c: Likewise.
18992         * config/h8300/h8300.h: Likewise.
18993         * config/h8300/h8300.md: Likewise.
18994         * config/h8300/lib1funcs.asm: Likewise.
18995
18996 2004-01-15  Andrew Pinski  <apinski@apple.com>
18997
18998         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
18999         around it.
19000
19001 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19002
19003         * config/h8300/h8300.c (h8300_return_in_memory): New.
19004         (TARGET_STRUCT_VALUE_RTX): Likewise.
19005         (TARGET_RETURN_IN_MEMORY): Likewise.
19006         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19007         (RETURN_IN_MEMORY): Likewise.
19008
19009 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19010
19011         PR optimization/13375
19012         * gcse.c (handle_avail_expr): Just return if the source is not a
19013         single set.
19014
19015 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19016             Daniel Jacobowitz  <drow@mvista.com>
19017
19018         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19019         (EQUIV): Define.
19020         (ARM_FUNC_ALIAS): New macro.
19021         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19022         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19023
19024 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19025
19026         PR optimization/12372
19027         * calls.c (expand_call): Add call_fusage data for stack arguments in
19028         constant calls.
19029
19030 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19031
19032         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19033         (rs6000_elf_declare_function_name): Formatting.
19034         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19035
19036 2004-01-15  Jan Hubicka  <jh@suse.cz>
19037
19038         PR bootstrap/13692
19039         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19040         previous patch.
19041
19042 2004-01-15  Richard Henderson  <rth@redhat.com>
19043
19044         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19045         integer regs of the same call-savedness.
19046
19047 2004-01-15  Andreas Schwab  <schwab@suse.de>
19048
19049         PR bootstrap/13562
19050         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19051         status for NOTB/NOTW/NEGW methods.
19052
19053 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19054
19055         * doc/invoke.texi: Update dump file names.  Fix a typo.
19056
19057 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19058
19059         * builtins.c (expand_builtin_va_end): Don't use
19060         EXPAND_BUILTIN_VA_END.
19061         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19062         * config/d30v/d30v.h: Remove a commented-out definition of
19063         EXPAND_BUILTIN_VA_END.
19064         * config/stormy16/stormy16.h: Likewise.
19065
19066 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19067
19068         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19069         * targhooks.c (default_struct_value_rtx): Don't use
19070         STRUCT_VALUE_INCOMING_REGNUM.
19071
19072 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19073
19074         PR bootstrap/12744
19075         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19076         GENINSRC and not parsedir.  Define srcextra as a langhook.
19077         * configure: Regenerate.
19078         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19079         parsedir and delete all references throughout.  Conditionally define
19080         rule for srcextra dependent on GENINSRC.
19081         (stmp-docobjdir): Delete.
19082         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19083         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19084         and gengtype-yacc.h back to source directory.
19085         (maintainer-clean): Delete all parse files in source directory.
19086         (distclean): Delete generated files.
19087
19088         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19089         (objc-parse.c, objc-parse.y): Don't use parsedir.
19090         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19091         directory if requested.
19092         (po-generated): Don't use parsedir.
19093         (objc.maintainer-clean): Delete above files from source directory.
19094
19095 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19096
19097         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19098
19099 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19100
19101         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19102         TARGET_RETURN_IN_MEMORY.
19103
19104 2004-01-15  Jan Hubicka  <jh@suse.cz>
19105
19106         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19107         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19108         functions accepting SSE arguments
19109         (function_arg): Warn only when asked to warn.
19110         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19111
19112 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19113
19114         * c-parse.in (stmts_and_decls): Make label at end of compound
19115         statement a hard error.
19116
19117 2004-01-14  Jan Hubicka  <jh@suse.cz>
19118
19119         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19120         * cgraph.h (cgraph_local_info): Sort fields by size; add
19121         redefined_extern_inline
19122         (cgraph_global_info): Sort fields by size.
19123         (cgraph_node): Likewise.
19124         * cgraphunit.c (cgraph_finalize_function): Se
19125         local.redefined_extern_inline on redefinition.
19126         (cgraph_analyze_function): Use it; fix formating.
19127
19128 2004-01-14  Jan Hubicka  <jh@suse.cz>
19129
19130         PR c++/10776
19131         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19132         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19133         bitmaps
19134         (cache_size): New variable
19135         (add_dependence): Update use; canonize early memory locations
19136         (sched_analyze_1): Likewise.
19137         (sched_analyze_2): Likewise.
19138         (init_dependency_caches): Initialize bitmaps.
19139         (free_dependency_caches): Free bitmaps
19140
19141 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19142
19143         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19144         targetm.calls.strict_argument_naming().
19145         * target.h: Likewise.
19146
19147 2004-01-14  Richard Henderson  <rth@redhat.com>
19148
19149         PR debug/13231
19150         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19151         instructions.
19152
19153 2004-01-14  Richard Henderson  <rth@redhat.com>
19154
19155         PR c++/12491
19156         * except.c (struct eh_region): Add u.fixup.resolved.
19157         (resolve_one_fixup_region): Split out from ...
19158         (resolve_fixup_regions): ... here.
19159
19160 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19161
19162         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19163
19164 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19165
19166         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19167         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19168         (STRUCT_VALUE): Remove.
19169
19170 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19171
19172         * system.h: Poison PROMOTED_MODE
19173         * integrate.c (expand_inline_function): Don't mention the
19174         PROMOTED_MODE.
19175         * loop.c (update_giv_derive): Same.
19176         * tree.h (DECL_RTL): Same.
19177
19178 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19179
19180         PR target/9365
19181         * sh.c (gen_block_redirect): Add special handling of RETURN.
19182         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19183         far branch target (i.e. it's a return).
19184
19185 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19186
19187         * regrename.c (find_oldest_value_reg): Fix a warning.
19188
19189 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19190
19191         PR bootstrap/12527
19192         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19193         Move linux-gas.h and linux-elf.h before aout.h.
19194         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19195         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19196
19197 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19198
19199         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19200         (CONST_INT, VOIDmode, ...).
19201
19202 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19203
19204         * regrename.c (find_oldest_value_reg): If the replacement uses
19205         multiple hard registers, check that all of them are in CLASS.
19206
19207 2004-01-14  Jan Hubicka  <jh@suse.cz>
19208
19209         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19210         impossible.
19211
19212 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19213
19214         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19215
19216 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19217
19218         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19219         Calculate always vrsave_mask if TARGET_ALTIVEC.
19220         (rs6000_emit_prologue): Emit code for vrsave
19221         only if TARGET_ALTIVEC_VRSAVE.
19222         (rs6000_emit_epilogue): Likewise.
19223
19224 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19225
19226         * config/sparc/sparc.md (tie_add32): Fix pasto.
19227         (tie_add64): Likewise.
19228
19229 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19230
19231         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19232
19233 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19234
19235         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19236         * config/iq2000/iq2000.c: Likewise.
19237         * config/iq2000/iq2000.md: Likewise.
19238
19239 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19240
19241         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19242         (subrange_type_die): Add handle for nameless subrange types.
19243
19244 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19245
19246         * config/h8300/h8300-protos.h: Replace do_movsi with
19247         h8300_expand_movsi.
19248         * config/h8300/h8300.c (do_movsi): Change to
19249         h8300_expand_movsi.
19250         * config/h8300/h8300.md (movsi): Replace do_movsi with
19251         h8300_expand_movsi.
19252         (movsf): Likewise.
19253
19254 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19255
19256         * config/h8300/h8300.c (dosize): Change to
19257         h8300_emit_stack_adjustment.  Update callers.
19258
19259 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19260
19261         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19262         the source being post_inc.  Tighten the predicate for the
19263         destination to register_operand.
19264         (movstricthi): Likewise.
19265
19266 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19267
19268         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19269         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19270         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19271
19272 2004-01-14  Jan Hubicka  <jh@suse.cz>
19273
19274         Partial fix PR c++/12850
19275         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19276         at zero nest level.
19277
19278 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19279
19280         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19281         pseudo-register.
19282
19283 2004-01-13  Devang Patel <dpatel@apple.com
19284
19285         PR debug/7078
19286         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19287         NAMESPACE_DECL memebers.
19288
19289 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19290
19291         PR c++/12709
19292         * c-common.c (finish_fname_decls): Use the chain only if the
19293         tree is an expr_stmt.
19294
19295 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19296
19297         * rtl.def: Add comment about new option in automata_option.
19298
19299         * genautomata.c (PROGRESS_OPTION): New macro.
19300         (progress_flag): New global variable.
19301         (gen_automata_option): Process `progress'.
19302         (transform_insn_regexps, check_unit_distributions_to_automata,
19303         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19304         expand_automata, write_automata): Print about the progress only if
19305         progress_flag.  Remove fflush.
19306         (initiate_automaton_gen): Process command line flag `-progress'.
19307
19308         * doc/md.texi: Describe the new option.
19309
19310 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19311
19312         * cfg.c (dump_bb): Dump entry edges.
19313
19314 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19315
19316         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19317         references from SImode.
19318         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19319
19320 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19321
19322         * system.h (TEXT_SECTION): Poison.
19323         * varasm.c (text_section): Don't use TEXT_SECTION.
19324         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19325         * doc/tm.texi (TEXT_SECTION): Remove.
19326
19327 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19328
19329         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19330
19331 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19332
19333         * unwind-libunwind.c: Delete.
19334
19335 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19336
19337         PR 13656
19338         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19339         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19340         them at the very end.
19341         (validate_proto_after_old_defn): Restructure for comprehensibility;
19342         make error messages clearer.
19343
19344 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19345
19346         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
19347         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
19348         * varray.c: No need to prototype error.
19349         (varray_check_failed): Wrap long string onto two lines.
19350         (varray_underflow): New function.
19351
19352 2004-01-13  Steven Bosscher  <stevenb@suse.de>
19353
19354         PR c++/13376
19355         * function.h (struct function): Kill `name' field.
19356         (current_function_name): Make it an extern function.
19357         * function.c (current_function_name): New function.
19358         * graph.c: Update all uses of current_function_name.
19359         * gcse.c: Likewise.
19360         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
19361         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
19362         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
19363         instead of a strcmp with "main".
19364
19365 2004-01-13  Jan Hubicka  <jh@suse.cz>
19366
19367         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
19368
19369         * cgraphunit.c (cgraph_optimize_function):  Always do
19370         optimize_inline_calls when there is always_inline callee.
19371         (cgraph_decide_inlining): Fix formating.
19372         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
19373         functions.
19374         (expand_call_inline): Likewise.
19375         * toplev.h (sorry): Fix prototype.
19376
19377 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19378
19379         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
19380         conditional jumps that drop through to unconditional jumps or the
19381         end of the sequence.
19382
19383 2004-01-13  Jan Hubicka  <jh@suse.cz>
19384
19385         * alias.c (new_alias_set): Construct the alias_set varray.
19386         (init_alias_once): Don't do it here.
19387
19388 2004-01-12  Marc Espie <espie@openbsd.org>
19389
19390         * system.h: handle YYBYACC like YYBISON.
19391
19392 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
19393
19394         PR target/10847
19395         * config.gcc: No longer includes conflicting header sparc/sol2.h when
19396         building on sparc64-*-openbsd*.
19397
19398 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
19399
19400         PR debug/13539
19401         * dbxout.c (dbxout_type): Protected inheritance is not
19402         private but protected.
19403
19404 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19405
19406         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
19407
19408 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
19409
19410         PR optimization/12508.
19411         * combine.c (try_combine): Remove a dead set in a parallel
19412         even if its destination is a subreg.
19413
19414         Revert:
19415         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
19416         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
19417         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
19418
19419 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
19420
19421         * real.c: Update copyright date.
19422         * emit-rtl.c: Likewise.
19423         * rtl.h: Likewise.
19424         * dwarf2out.c: Likewise.
19425         * config/rs6000/darwin-ldouble.c: Likewise.
19426         * config/rs6000/rs6000.md: Likewise.
19427
19428 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19429
19430         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
19431         TFmode to SImode libfuncs.
19432
19433 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19434
19435         PR middle-end/11397
19436         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
19437
19438 2004-01-12  Jan Hubicka  <jh@suse.cz>
19439
19440         PR opt/12826
19441         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
19442         stored.
19443
19444         PR opt/12863
19445         * cfgcleanup.c (label_is_jump_target_p): Move to...
19446         * rtlanal.c (label_is_jump_target_p): ... here.
19447         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
19448         edges unified with branch edges.
19449
19450 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
19451
19452         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
19453         high word of an integral CONST_DOUBLE.
19454
19455 2004-01-12  Paul Brook  <paul@codesourcery.com>
19456
19457         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
19458
19459 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
19460
19461         PR target/13585
19462         * sh-protos.h (check_use_sfunc_addr): Declare.
19463         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
19464         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
19465
19466 2004-01-12  Jan Hubicka  <jh@suse.cz>
19467
19468         * alias.c:  Invlude varray.h
19469         (alias_sets): Turn into varray.
19470         (get_alias_set_entry): Use VARRAY; mark inline.
19471         (mems_in_disjoint_alias_sets_p): Mark inline.
19472         (record_alias_subset): Use varray.
19473         (init_alias_once): Initialize varray.
19474         (new_alias_set): Grow array.
19475         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
19476
19477 2004-01-12  Jan Hubicka  <jh@suse.cz>
19478
19479         Partial fix for PR opt/10776 II
19480         * cselib.c: Include params.h
19481         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
19482         locations.
19483         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
19484         * Makefile.in (cselib.o): Depend on params.h
19485
19486 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19487
19488         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
19489         simplify_unary_operation if the operand has a known mode.
19490
19491 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
19492
19493         PR target/13534
19494         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
19495         predicate to handle 'ld' conform addresses.
19496         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
19497         contraint.
19498         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
19499         are memory contraints.
19500         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
19501         New prototype.
19502         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
19503         Change 'o' to 'Y' constraint.
19504         (*movdf_softfloat64): Ditto.
19505
19506 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
19507
19508         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
19509         brace-enclosed syntax in all C output statements.
19510
19511 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19512
19513         PR target/13401
19514         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19515         Objective-C language type value is 14.
19516
19517 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
19518
19519         PR c/12148
19520         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
19521         `int' in a number of places to make sure we always have a SImode
19522         and not a HImode.  Add a 'L' suffix to a number of constants.
19523
19524 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19525
19526         * pa.c: Don't include obstack.h.
19527
19528         * pa.md: Correct constraint in pattern for loading PIC label address.
19529
19530 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19531
19532         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
19533          before defining.
19534
19535 2004-01-11  Steven Bosscher  <stevenb@suse.de>
19536
19537         PR fortran/9972
19538         * toplev.c (rest_of_handle_inline): Also consider functions
19539         for deferral if the language is GNU F77.
19540
19541 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
19542
19543         * c-decl.c (diagnose_arglist_conflict): Add missing space to
19544         diagnostic messages.
19545
19546 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
19547
19548         PR middle-end/13392
19549         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
19550         to drop through label.  Don't fall back to SCC even when conditional
19551         jump has not been found.
19552
19553 2004-01-11  Jan Hubicka  <jh@suse.cz>
19554
19555         * invoke.texi: Fix syntax error in previous patch.
19556
19557         Partial fix for PR opt/10776
19558         * Makefile.in (reload.o): Include param.h
19559         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
19560         * reload.c: Include params.h.
19561         (find_equiv_reg): Work limiting check.
19562         * invoke.texi: Document.
19563
19564 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
19565
19566         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
19567         out-of-bounds accesses to string constants.  Simplify mips16
19568         case accordingly.
19569
19570 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
19571
19572         PR optimization/13469
19573         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
19574         reload_cse_regs (-fnon-call-exceptions only).
19575
19576 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
19577
19578         * config/mcore/lib1.asm: Fix comment formatting.
19579         * config/mcore/mcore-elf.h: Likewise.
19580         * config/mcore/mcore.c: Likewise.
19581         * config/mcore/mcore.h: Likewise.
19582         * config/mcore/mcore.md: Likewise.
19583
19584 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
19585
19586         * c-decl.c (duplicate_decls): Break apart into...
19587         (diagnose_arglist_conflict, validate_proto_after_old_defn)
19588         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
19589         ... these new functions.  Restructure for comprehensibility.
19590         Remove various archaic special cases.  Always report the
19591         location of the previous declaration when a diagnostic is issued.
19592         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
19593         (match_builtin_function_types): Delete unnecessary forward declaration.
19594
19595 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
19596
19597         * genautomata.c (make_automaton, NDFA_to_DFA):
19598         Print progress bars with '.' characters instead of '*'.
19599         (build_automaton): Change notes to match.
19600
19601 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
19602
19603         * config/m32r/m32r.md: Use define_constants for unspec and
19604         unspec_volatile.
19605
19606 2004-01-10  Jan Hubicka  <jh@suse.cz>
19607
19608         PR opt/11635
19609         * expr.c (expand_expr_real):  More curefully expand union casts.
19610
19611 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
19612
19613         * config/m32r/m32r.md (flush_icache): Use 1 for
19614         unspec_volatile.
19615
19616 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
19617             James E Wilson  <wilson@specifixinc.com>
19618
19619         PR debug/12860
19620         * dbxout.c (dbxout_symbol): Remove initialization of
19621         current_sym_code, current_sym_value, and current_sym_addr.
19622         (dbxout_symbol_location): Same.
19623         (dbxout_prepare_symbol): Zero current_sym_code,
19624         current_sym_value, and current_sym_addr.
19625
19626 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
19627
19628         * tree.c (get_unwidened): Reorder conditions so that the null pointer
19629         check is done first.
19630
19631 2004-01-09  Eric Christopher  <echristo@redhat.com>
19632
19633         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
19634         if we're running mark_constant_function.
19635
19636 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
19637
19638         PR target/12561
19639         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
19640
19641 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
19642
19643         PR debug/11231
19644         * dbxout.c (dbxout_type_fields): Return if any item is
19645         error_mark_node or the type is error_mark_node.
19646
19647 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
19648
19649         * config/rs6000/darwin-ldouble.c: Add big comment explaining
19650         exactly what is expected as a 'long double'.
19651         (_xlqadd): When a value to be returned is representable as a
19652         'double', just return it directly, do not construct it using a union.
19653         Also, correct final fixup.
19654         (_xlqmul): Likewise.
19655         (_xlqdiv): Likewise.
19656         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
19657
19658         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
19659
19660 2004-01-09  Richard Henderson  <rth@redhat.com>
19661
19662         * recog.c (constrain_operands): Validate mem operands.
19663
19664 2004-01-09   James E Wilson  <wilson@specifixinc.com>
19665
19666         * gcc.c (init_spec): Remove -lunwind from shared case.
19667         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
19668
19669 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
19670
19671         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
19672         * configure: Regenerate
19673
19674 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
19675
19676         PR c/11234
19677         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
19678         between function and object pointers.
19679         (digest_init): When comparing a pointer to function type to the
19680         target type, only apply TREE_TYPE once to the pointer to function
19681         type.
19682         * except.c (for_each_eh_label_1): Treat data as a pointer to a
19683         function pointer rather than casting it to a function pointer.
19684         (for_each_eh_label): Update caller.
19685         * recog.h (struct insn_data): Use a struct or union for output.
19686         * genoutput.c (output_insn_data): Update.
19687         * final.c (get_insn_template): Update.
19688
19689 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
19690
19691         * expr.h (expand_expr): Make it a macro, not a function.
19692         (expand_expr_real): New function.
19693         * expr.c (store_expr): Adjust logic for deciding whether or not to
19694         copy the value returned by expand_expr.
19695         (expand_expr): Rename to ...
19696         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
19697         calls to language hooks.
19698         * c-common.h (c_expand_expr): Adjust prototype.
19699         * c-common.c (c_expand_expr): Add alt_rtl parameter.
19700         * langhooks-def.h (lhd_expand_expr): Change prototype.
19701         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
19702         * langhooks.h (lang_hooks): Change type of expand_expr.
19703         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
19704         (last_expr_alt_rtl): Likewise.
19705         (expand_expr_stmt_value): Set last_expr_alt_rtl.
19706         (clear_last_expr): Clear it.
19707         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
19708         (expand_end_bindings): Save and restor last_expr_alt_rtl.
19709         * tree.def (RTL_EXPR): Give it an additional operand.
19710         * tree.h (RTL_EXPR_ALT_RTL): New macro.
19711
19712 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19713
19714         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
19715         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
19716
19717 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19718
19719         PR target/13380.
19720         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
19721         or (ne:SI (reg:CC 17) (const_int 0)).
19722         Be specific about modes wherever possible.
19723
19724 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19725
19726         * config/m32r/m32r.c (m32r_expand_block_move): Call
19727         gen_movestrsi_internal with two more arguments.
19728         (m32r_output_block_move): Adjust operand numbers.
19729         Properly update the source and destination pointers.
19730         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
19731         'r+'.  Change the set detinations to match_operand.
19732
19733 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19734
19735         * final.c (FIRST_INSN_ADDRESS): Remove.
19736         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
19737         * system.h (FIRST_INSN_ADDRESS): Poison.
19738         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
19739         * config/m32r/m32r-protos.h: Remove the prototype for
19740         m32r_first_insn_address.
19741         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
19742         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
19743         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
19744
19745 2004-01-09  J. Brobecker  <brobecker@gnat.com>
19746
19747         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
19748         we just created.
19749         (is_ada_subrange_type): DIEs for enumeration subtypes should be
19750         emitted as subrange types too.
19751         (subrange_type_die): Add handling of enumeration subtypes.
19752
19753 2004-01-08  Richard Henderson  <rth@redhat.com>
19754
19755         PR opt/12441
19756         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
19757         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
19758         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
19759         (ix86_address_cost): Be prepared for SUBREGed registers.
19760         (legitimate_address_p): Accept SUBREGed registers.
19761
19762 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
19763
19764         * Makefile.in: Rename configure.in to configure.ac
19765         * doc/sourcebuild.texi: Likewise.
19766         * configure: Regenerate.
19767         * config.in: Regenerate.
19768
19769 2004-01-08  Stuart Hastings  <stuart@apple.com>
19770
19771         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
19772
19773 2004-01-08  Jan Hubicka  <jh@suse.cz>
19774
19775         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
19776
19777 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
19778
19779         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
19780         (UNSPEC_FIX_TRUNC_TF): New constant.
19781         (movtf_internal): Make splitter active only when insn is active.
19782         (extenddftf2): Rewrite to properly load zero into low part.
19783         (extenddftf2_internal): New.
19784         (extendsftf2): Rewrite.
19785         (truncdftf2): Correct length.
19786         (floatditf2): Delete.
19787         (fix_trunc_helper): New.
19788         (fix_trunctfdi2): Use fix_trunc_helper.
19789         (fix_trunctfsi2): Likewise.fix_trunc
19790         (fix_trunctfsi2_internal): New.
19791
19792         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
19793         addresses are legitimate on Darwin even when flag_pic.
19794         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
19795         non-offsettable addresses for loads of TFmode constants.
19796
19797 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19798
19799         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
19800         variables in the appropriate bss section.
19801
19802 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
19803
19804         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
19805         target_flags has MASK_POWERPC64 when -m64.
19806         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
19807         to 620, 630, power3, power4 and rs64a entries.
19808         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
19809
19810 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
19811
19812         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
19813         floating-point constants.
19814
19815 2004-01-08  J. Brobecker  <brobecker@gnat.com>
19816
19817         * dwarf2out.c (subrange_type_die): Add context_die parameter.
19818         Create the subrange_type DIE using the given context DIE.
19819         (modified_type_die): Update call to subrange_type_die.
19820
19821 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
19822
19823         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
19824         Add multiple-include guard.
19825
19826 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
19827
19828         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
19829         all vector constant loadable by vsplt*.
19830         (output_vec_const_move): Likewise.
19831
19832 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
19833
19834         PR c/6024
19835         * c-typeck.c (comptypes): Only treat enumerated types in the same
19836         translation unit as compatible with each other when they are the
19837         same type.
19838         * doc/extend.texi: Update.
19839
19840 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
19841
19842         PR c/12165
19843         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
19844         array type from the array element type.
19845
19846 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
19847
19848         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
19849         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
19850         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
19851         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
19852         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
19853
19854 2004-01-06  Eric Christopher  <echristo@redhat.com>
19855
19856         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
19857         (DWARF2_DEBUGGING_INFO): Define.
19858         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
19859         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
19860         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
19861         for irix as.
19862         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
19863         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
19864         * config/mips/iris5gas.h: Ditto.
19865         (DBX_DEBUGGING_INFO): Remove.
19866         (DWARF2_DEBUGGING_INFO): Ditto.
19867         (MIPS_DEBUGGING_INFO): Ditto.
19868         (PREFERRED_DEBUGGING_TYPE): Ditto.
19869         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
19870         (PREFERRED_DEBUGGING_TYPE): Ditto.
19871         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
19872         * config/mips/elf64.h: Ditto.
19873
19874 2004-01-06  Jan Hubicka  <jh@suse.cz>
19875
19876         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
19877         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
19878
19879 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
19880
19881         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
19882         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
19883         * config/rs6000/darwin-ldouble.c: New.
19884
19885         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
19886         for constants.
19887         (constant_subword): Delete.
19888         * rtl.h (constant_subword): Delete prototype.
19889         (immed_double_const): Is not in varasm.c.
19890         * simplify-rtx.c (simplify_immed_subreg): New.
19891         (simplify_subreg): Use simplify_immed_subreg.
19892
19893         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
19894         than trying to generate RTL directly.
19895         (fix_trunctfsi2): Use expand_fix rather than trying to generate
19896         RTL directly.
19897
19898         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
19899
19900 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
19901
19902         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
19903         function into a separate macro.
19904         (read_only_data_section): Add void argument.
19905         (private_data_section): Same.
19906         (read_only_private_data_section): Same.
19907         (toc_section): Same.
19908
19909 2004-01-06  Jan Hubicka  <jh@suse.cz>
19910
19911         * invoke.texi:  Remove typo in last change.
19912
19913         PR target/10301
19914         * config.gcc: Accept opteron and athlon-64 as variants
19915         of k8.
19916         * i386.c (override_options): Likewise.
19917         * invoke.texi (i386 -mtune): Expand documentation.
19918
19919 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19920
19921         * alias.c: Fix comment typos.
19922         * builtins.c: Likewise.
19923         * cfg.c: Likewise.
19924         * df.c: Likewise.
19925         * dominance.c: Likewise.
19926         * dwarf2out.c: Likewise.
19927         * emit-rtl.c: Likewise.
19928         * expr.c: Likewise.
19929         * final.c: Likewise.
19930         * fold-const.c: Likewise.
19931         * gcse.c: Likewise.
19932         * genattrtab.c: Likewise.
19933         * genrecog.c: Likewise.
19934         * gensupport.c: Likewise.
19935         * ggc-zone.c: Likewise.
19936         * integrate.c: Likewise.
19937         * local-alloc.c: Likewise.
19938         * loop.c: Likewise.
19939         * recog.c: Likewise.
19940         * regmove.c: Likewise.
19941         * reg-stack.c: Likewise.
19942         * reorg.c: Likewise.
19943         * rtlanal.c: Likewise.
19944         * rtl.h: Likewise.
19945         * sched-ebb.c: Likewise.
19946         * simplify-rtx.c: Likewise.
19947         * toplev.c: Likewise.
19948         * varasm.c: Likewise.
19949
19950 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19951
19952         * doc/install.texi: Fix typos.
19953         * doc/invoke.texi: Likewise.
19954         * doc/md.texi: Likewise.
19955
19956 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
19957
19958         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
19959
19960 2004-01-06  Jan Hubicka  <jh@suse.cz>
19961
19962         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
19963         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
19964         of MMX_REGPARM.
19965         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
19966         add MMX_REGPARM.
19967         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
19968         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
19969         (MMX_REGPARM_MAX): Similarly for -mmmx.
19970
19971 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19972
19973         * config/sh/linux.h: Fix comment formatting.
19974         * config/sh/netbsd-elf.h: Likewise.
19975         * config/sh/sh.c: Likewise.
19976         * config/sh/sh.h: Likewise.
19977         * config/sh/vxworks.h: Likewise.
19978
19979 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19980
19981         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
19982         * toplev.c (output_file_directive): Don't use
19983         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
19984
19985 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
19986
19987         * toplev.c: Fix broken checkin of 2003-12-30.
19988
19989 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
19990
19991         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
19992         (USING_MMAP): We don't support non-mmap.
19993         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
19994         large objects.
19995         (struct page_entry): Remove bytes_free.
19996         (struct page_table_chain): Remove.
19997         (struct globals): Remove page_table member.
19998         (loookup_page_table_entry): Function deleted.
19999         (set_page_table_entry): Ditto.
20000         (ggc_allocated_p): No longer need page table lookups.
20001         (ggc_marked_p): Ditto.
20002         (alloc_small_page): Don't care about bytes_free anymore.
20003         (alloc_large_page): Round up size.
20004         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20005         their size the new way.
20006         Remove page table lookups and setting.
20007         (ggc_get_size): Calculate large object size the new way.
20008         (sweep_pages): Redo to account for fact that we no longer have
20009         bytes_free.
20010         (ggc_collect): No longer need to reincrement bytes_free.
20011         (ggc_pch_alloc_object): Handle new large objects properly.
20012         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20013
20014 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20015
20016         * doc/invoke.texi: Remove a page break.
20017
20018 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20019
20020         * config/avr/avr.c (avr_output_function_prologue): Remove an
20021         extra pair of curly braces.
20022
20023 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20024
20025         * config/mn10300/mn10300.c: Fix comment formatting.
20026         * config/mn10300/mn10300.h: Likewise.
20027
20028 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20029
20030         * tree.h: Update documentation on nothrow_flag.
20031         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20032         types.
20033
20034 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20035
20036         * doc/invoke.texi: Remove traces of dead ports.
20037
20038 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20039
20040         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20041         option.
20042
20043 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20044
20045         PR target/12945
20046         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20047         counter labels.
20048         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20049         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20050         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20051         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20052         (mips_symbol_insns): Don't trust the local/global classification.
20053         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20054         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20055         -mno-explicit-relocs.
20056         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20057         between local and global symbols.
20058
20059 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20060
20061         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20062         (mips_preferred_reload_class): Declare.
20063         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20064         (EXTRA_CONSTRAINT): Update accordingly.
20065         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20066         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20067         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20068         mips_dangerous_for_la25_p.
20069         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20070         if mips_dangerous_for_la25_p.
20071
20072 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20073
20074         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20075         warning.
20076
20077 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20078
20079         * configure.ac: Use AC_PROG_CPP_WERROR.
20080         * configure: Regenerate.
20081
20082 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20083
20084         * .cvsignore: Add autom4te.cache.
20085
20086 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20087
20088         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20089         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20090         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20091         then architecture options, then ABI options.  General rewording.
20092
20093 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20094
20095         PR c/3414
20096         * doc/extend.texi: Clarify definition of malloc attribute.
20097
20098 2004-01-04  Jan Hubicka  <jh@suse.cz>
20099
20100         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20101         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20102         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20103         (cgraph_inline_p): Add extra argument reason.
20104         * cgraphunit.c: Minor formating fixes.
20105         cgraph_first_inlined_callee): New functions.
20106         (record_call_1): Record builtins too.
20107         (cgraph_analyze_function): Update inline_failed messages.
20108         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20109         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20110         (cgraph_check_inline_limits): Likewise; Add argument reason.
20111         (cgraph_set_inline_failed): New static function.
20112         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20113         reasons.
20114         (cgraph_inline_p): Add new argument reason.
20115         * tree-inline.c (expand_call_inline):  Update warning.
20116
20117 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20118
20119         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20120         with modern equivalents.
20121         * configure: Regenerate.
20122
20123         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20124         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20125         * configure: Regenerate.
20126
20127         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20128
20129         * configure.in: Rename to configure.ac.
20130         * configure.ac: Renamed from configure.in; make minimum necessary
20131         changes for autoconf 2.5x.
20132         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20133         * configure: Regenerate with autoconf 2.57.
20134
20135 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20136
20137         * config/mips/linux.h: Fix comment formatting.
20138         * config/mips/mips.c: Likewise.
20139         * config/mips/mips.h: Likewise.
20140         * config/mips/mips.md: Likewise.
20141         * config/mips/netbsd.h: Likewise.
20142         * config/mips/windiss.h: Likewise.
20143
20144 2004-01-02  Richard Henderson  <rth@redhat.com>
20145
20146         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20147         for sse and 387; add suppression for mmx.
20148
20149 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20150
20151         * loop.c (loop_optimize): Free all loops_info's mems.
20152
20153         * c-typeck.c (finish_init): Free spelling_base before
20154         setting it again.
20155
20156         * cfgloop.c (flow_loops_find): Always free the sbitmap
20157         headers.
20158
20159         * predict.c (estimate_probability): Free bbs after being
20160         done with it.
20161
20162 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20163
20164         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20165         const_8bit_operand and call_address_operand.
20166
20167 2004-01-02  Jan Hubicka  <jh@suse.cz>
20168
20169         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20170         when there is nothing to inline but warnings are requested.
20171         (cgraph_decide_inlining):  Fix memory leak.
20172
20173 2004-01-02  Jan Hubicka  <jh@suse.cz>
20174
20175         * expr.c (store_constructor):  Fix pasto in previous patch.
20176
20177 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20178
20179         * config/i386/cygming.h: Fix comment formatting.
20180         * config/i386/djgpp.h: Likewise.
20181         * config/i386/gthr-win32.c: Likewise.
20182         * config/i386/i386-interix.h: Likewise.
20183         * config/i386/i386.c: Likewise.
20184         * config/i386/i386.h: Likewise.
20185         * config/i386/openbsd.h: Likewise.
20186         * config/i386/winnt.c: Likewise.
20187         * config/i386/xm-mingw32.h: Likewise.
20188
20189 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20190
20191         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20192         copyright and last modification dates.
20193
20194 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20195
20196         * doc/install.texi (Specific): Mention x86_64.
20197
20198 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20199
20200         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20201         Call force_operand on plus_constant result.
20202
20203 2004-01-01  Jan Hubicka  <jh@suse.cz>
20204
20205         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20206         * expr.c (store_constructor): Use vec_init pattern.
20207         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20208         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20209         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20210         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20211         New patterns.
20212         (sse2_unpc?pd): Fix pattern.
20213         (sse2_movlpd): Kill.
20214         (sse2_movsd): Deal with movlpd too.
20215         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20216         (ix86_expand_vector_init): New.
20217         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20218         * md.texi (vec_set, vec_extract): Document
20219
20220 2003-12-31  Jan Hubicka  <jh@suse.cz>
20221
20222         PR opt/13473
20223         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20224         ASM input operands
20225
20226         PR opt/12617
20227         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20228         (dump_file): Likewise.
20229         (rest_of_compilation): Likewise.
20230
20231         PR debug/13367
20232         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20233         flag_really_no_inline we inline always_inline functions.
20234         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20235         for non-always_inline functions when there is flag_really_no_inline.
20236         (cgraph_decide_inlining): Limit work done when not inlining.
20237         (cgraph_decide_inlining_incrementally): Likewise.
20238         (cgraph_optimize_function): Check whether something got inlined.
20239         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20240         extern inline functions when not inlining.
20241
20242         * opts.c (decode_options):  Disable crossjumping at -O1
20243         * invoke.texi (-O1): Document change.
20244
20245 See ChangeLog.10 for earlier changes.