OSDN Git Service

* cse.c (cse_set_around_loop): When changing a constant load
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-11-27  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * cse.c (cse_set_around_loop): When changing a constant load
4         to a register -register copy, add a REG_EQUAL note.
5
6 2003-11-27  Randolph Chung  <tausq@debian.org>
7             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8
9         * pa.c (hppa_profile_hook): Split gen_call_profiler into separate 
10         insns.  Use the regular call expander for the call to the profiler.
11         * pa.md (call_profiler): Delete.
12         (load_offset_label_address): New insn to load the address of the
13         current function for the profiler.
14         (lcla1, lcla2): New insns to output a code label and load its address.
15
16 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
17
18         * final.c (final_scan_insn): Remove commented-out code.
19
20 2003-11-27  Nathanael Nerode  <neroden@gcc.gnu.org>
21
22         * doc/install.texi: Remove ADAC reference and make accurate.
23
24 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
25
26         * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG.
27         (FUNCTION_VALUE_REGNO_P): Likewise.
28         * config/h8300/h8300.md: Define R0_REG.
29
30 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
31
32         * config/h8300/h8300.c: Fix formatting.
33         * config/h8300/h8300.md: Likewise.
34
35 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
36
37         * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment.
38
39 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
40
41         * config/h8300/h8300.md: Give names to anonymous insns.
42
43 2003-11-27  Kazu Hirata  <kazu@cs.umass.edu>
44
45         * config/h8300/h8300.md (extendqisi2): Remove constraints.
46
47 2003-11-27  Gunther Nikl  <gni@gecko.de>
48
49         * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo.
50
51 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
52
53         PR optimization/13041
54         * final.c (frame_pointer_needed): Fix comment.
55         * reload1.c (reload): Decrease alignment of the frame
56         pointer if it was used for register allocation.
57
58 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
59
60         PR target/12900
61         * reg-stack (move_for_stack_reg): New prototype.  Return
62         whether a control flow insn was deleted.
63         (subst_stack_regs_pat): Likewise, using the information provided
64         by move_for_stack_reg.
65         (subst_stack_regs): Likewise, using the information provided
66         by subst_stack_regs_pat.
67         (convert_regs_1): Record whether a control flow insn was deleted,
68         using the information provided by subst_stack_regs.  Purge dead
69         edges only if a control flow insn was deleted.
70
71 2003-11-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
72
73         PR middle-end/8028
74         PR middle-end/9890
75         PR middle-end/11151
76         PR middle-end/12210
77         PR middle-end/12503
78         PR middle-end/12692
79         * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx
80         as the base address to copy the memory arguments to.
81
82 2003-11-26  Danny Smith  <dannysmith@users.sourceforge.net>
83
84         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare
85         function aliases as functions.
86
87 2003-11-26  Nathanael Nerode  <neroden@gcc.gnu.org>
88
89         * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal
90         of ADAC.
91         * configure: Regenerate.
92
93         * Makefile.in: Remove references to ADAC.
94
95         * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long.
96         * configure: Regenerate.
97
98 2003-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
99             Olivier Hainque  <hainque@act-europe.fr>
100
101         PR target/6466
102         * config/sparc/sparc-protos.h (compute_frame_size): New prototype.
103         (sparc_flat_compute_frame_size): Likewise.
104         (sparc_flat_save_restore): Move prototype...
105         * config/sparc/sparc.c (sparc_flat_save_restore): ...here.
106         (save_regs): New prototype.
107         (build_big_number): Likewise.
108         (apparent_fsize): Change type to HOST_WIDE_INT.
109         (actual_fsize): Likewise.
110         (frame_base_offset): Likewise.
111         (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64.
112         Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
113         [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway
114         to load a 64-bit constant.
115         (sparc_nonflat_function_prologue): Change string descriptor to
116         HOST_WIDE_INT_PRINT_DEC.  Change offset type to HOST_WIDE_INT.
117         (output_restore_regs): Change offset type to HOST_WIDE_INT.
118         (sparc_nonflat_function_epilogue): Change string descriptor to
119         HOST_WIDE_INT_PRINT_DEC.  Use build_big_number.
120         (output_sibcall): Change size type to HOST_WIDE_INT.  Use
121         build_big_number.  Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
122         (sparc_frame_info): Change types for several components.
123         (sparc_flat_compute_frame_size): Update types according to previous
124         change.
125         (sparc_flat_function_prologue): Change string descriptor to
126         HOST_WIDE_INT_PRINT_DEC.  Change offset type to int.  Use
127         build_big_number.
128         (sparc_flat_function_epilogue): Change offset type to int.
129         Rename 'size1' into 'reg_offset1'.  Change string descriptor to
130         HOST_WIDE_INT_PRINT_DEC.  Use build_big_number.  Change big number
131         limit to 4096 instead of 4095.
132
133         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to
134         HOST_WIDE_INT.
135
136 2003-11-24  Waldek Hebisch <hebisch@math.uni.wroc.pl>
137
138         * function.c: Make outer_function-chain external.
139         * function.h: Likewise.
140
141 2003-11-24  Richard Sandiford  <rsandifo@redhat.com>
142
143         * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when
144         using GNU ld.
145         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the
146         whole of the previous STARTFILE_SPEC except crtbegin.o%s.
147         (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s.
148         (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above.
149         (SUBTARGET_EXTRA_SPECS): Define.
150         * config/mips/iris6gld.h (LINK_SPEC): Change -init function
151         to __gcc_init and -fini function to __gcc_fini.
152         (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o.
153         (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o.
154         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define.
155         * config/mips/t-iris6gld,
156         * config/mips/irix6-crti.asm,
157         * config/mips/irix6-crtn.asm: New files.
158
159 2003-11-24  Eric Christopher  <echristo@redhat.com>
160
161         PR C/13014
162         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New.
163         (start_function): Use.
164         (c_push_function_context): Ditto.
165         (c-pop_function_context): Ditto.
166         (language_function): Move...
167         * c-tree.h: ... here. Add x_in_iteration_stmt, and
168         x_in_case_stmt.
169         * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use
170         c_in_iteration_stmt, c_in_case_stmt for parser state. Move
171         check for valid break or continue statment here...
172         * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From
173         here. Change original errors to abort.
174
175 2003-11-24  Jan Hubicka  <jh@suse.cz>
176
177         * fold-const.c (fold):  Do not return early when optimizing COMPONENT_REF
178         and constant.
179
180 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
181
182         * config/h8300/h8300.md (tablejump_h8300): Change to
183         *tablejump_h8300.
184         (tablejump_h8300h): Change to *tablejump_h8300hs_advanced.
185         (tablejump_normal_mode): Change to *tablejump_h8300hs_normal.
186         (indirect_jump_h8300): Change to *indirect_jump_h8300.
187         (indirect_jump_h8300h): Change to
188         *indirect_jump_h8300hs_advanced.
189         (indirect_jump_normal_mode): Change to
190         *indirect_jump_h8300hs_normal.
191
192 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
193
194         * config/h8300/h8300.md: Remove constraints from expanders.
195
196 2003-11-24  Kazu Hirata  <kazu@cs.umass.edu>
197
198         * config/h8300/h8300.md: (stm_h8300s_2): Change the name to
199         stm_h8300s_2_advanced.
200         (stm_h8300s_2_normal): New.
201         (stm_h8300s_2): Likewise.
202         (stm_h8300s_3): Change the name to stm_h8300s_3_advanced.
203         (stm_h8300s_3_normal): New.
204         (stm_h8300s_3): Likewise.
205         (stm_h8300s_4): Change the name to stm_h8300s_4_advanced.
206         (stm_h8300s_4_normal): New.
207         (stm_h8300s_4): Likewise.
208         (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced.
209         (ldm_h8300s_2_normal): New.
210         (ldm_h8300s_2): Likewise.
211         (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced.
212         (ldm_h8300s_3_normal): New.
213         (ldm_h8300s_3): Likewise.
214         (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced.
215         (ldm_h8300s_4_normal): New.
216         (ldm_h8300s_4): Likewise.
217         (two peephole2's): Enable only with !TARGET_NORMAL_MODE.
218         (two peephole2's): New.
219
220 2003-11-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
221
222         * genattrtab.c (simplify_cond): Update indices correctly.
223         (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection,
224         attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New.
225         (check_attr_test, encode_units_mask, compute_alternative_mask,
226         make_alternative_compare, simplify_and_tree,
227         attr_rtx_cost, simplify_test_exp, gen_attr,
228         write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT.
229         * rtl.def (EQ_ATTR_ALT): New.
230
231 2003-11-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
232
233         * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros.
234         (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str):
235         New variables.
236         (main): Initialize them.
237         (find_attr): Canonicalize the attribute name string.
238         (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize
239         string arguments.
240         (attr_printf, attr_eq): Use DEF_ATTR_STRING.
241         (check_attr_test, check_attr_value, make_length_attrs,
242         write_length_unit_log, simplify_by_exploding, gen_attr,
243         write_test_expr, write_attr_value, write_eligible_delay,
244         write_complex_function, make_internal_attr,
245         write_const_num_delay_slots): Changed due to change of type of
246         find_attr.
247         (fill_attr, evaluate_eq_attr, simplify_and_tree,
248         attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use
249         strcmp_check.
250
251 2003-11-23  Kazu Hirata  <kazu@cs.umass.edu>
252
253         PR target/13122
254         * config/h8300/h8300.c (push): Call push_h8300hs_normal in
255         normal mode.
256         (pop): Call pop_h8300hs_normal in normal mode.
257         * config/h8300/h8300.md: Likewise.
258         (pushqi1_h8300hs_normal): New.
259         (pushqi1): Call pushqi1_h8300hs_normal in normal mode.
260         (pushhi1_h8300hs_normal): New.
261         (pushhi1): Call pushhi1_h8300hs_normal in normal mode.
262         (push_h8300hs_normal): New.
263         (pop_h8300hs_normal): Likewise.
264
265 2003-11-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
266
267         * genattrtab.c (count_sub_rtxs): Removed.
268
269 2003-11-23  Richard Earnshaw  <rearnsha@arm.com>
270
271         * recog.c (preprocess_constraints): Only zero those elements of
272         recog_op_alt that are needed for this insn.
273         * arm.c (note_invalid_constants): A function can't contain invalid
274         constants if it has no constraints.
275
276 2003-11-22  Jan Hubicka  <jh@suse.cz>
277
278         * i386.c (classify_argument): Pass __float128 in memory.
279         (ix86_return_in_memory): Likewise.
280         (ix86_libcall_value): Likewsie.
281
282 2003-11-22  Kazu Hirata  <kazu@cs.umass.edu>
283
284         * config/h8300/h8300.c (dosize): Convert to ISO-C.
285
286 2003-11-22  J"orn Rennecke <joern.rennecke@superh.com>
287
288         * flow.c (update_life_info): Amend comment about when a register
289         can become dead.
290
291 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
292
293         * doc/.cvsignore: Delete.
294
295 2003-11-21  Daniel Berlin  <dberlin@dberlin.org>
296             David Edelsohn  <edelsohn@gnu.org>
297
298         * dwarf2out.c (add_location_or_const_value_attribute): Add support
299         for PARALLEL.
300
301 2003-11-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
302
303         * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error.
304         (TARGET_LIBGCC2_CFLAGS): Define.
305
306         * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare.
307         (__do_global_ctors): Likewise.
308
309 2003-11-21  Mark Wielaard  <mark@klomp.org>
310
311         * doc/invoke.texi (-O2): Doesn't enable -fweb.
312
313 2003-11-21  Kazu Hirata  <kazu@cs.umass.edu>
314
315         * doc/invoke.texi: Mention dV and dZ.
316
317 2003-11-21  Kazu Hirata  <kazu@cs.umass.edu>
318
319         * doc/invoke.texi: Update dump file names.
320         Remove de, dW, and dX.
321
322 2003-11-20  James E Wilson  <wilson@specifixinc.com>
323
324         PR c/13133
325         * reload1.c (reload): Delete special handling for setjmp.
326
327 2003-11-21  Andreas Tobler  <a.tobler@schweiz.ch>
328
329         * mklibgcc.in: Evaluate shlib_slibdir_qual during link
330         step too.
331         * config/t-slibgcc-darwin: Adjust install path.
332         * config/rs6000/t-darwin: Revert multilib matches since
333         it is not used on darwin.
334
335 2003-11-20  Richard Henderson  <rth@redhat.com>
336
337         * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files.
338         * Makefile.in (OBJS-common, GTFILES): Don't reference them.
339         (gtype-desc.o, toplev.o, flow.o): Remove ssa.h.
340         (ssa.o, ssa-dce.o, ssa-ccp.o): Remove.
341         * flow.c: Don't include ssa.h.
342         (set_phi_alternative_reg): Remove.
343         (calculate_global_regs_live): Don't call it.
344         (mark_used_regs): Don't handle PHI.
345         * gengtype.c (open_base_files): Don't reference ssa.h.
346         * rtl.def (PHI): Remove.
347         * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill.
348         * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce.
349         * opts.c (common_handle_option): Likewise.
350         * toplev.c (f_options): Likewise.
351         (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove.
352         (dump_file): Update to match.
353         (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove.
354         (rest_of_handle_ssa): Remove.
355         (rest_of_compilation): Don't call it.
356         * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove.
357         * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce.
358         * doc/passes.texi (SSA optimizations): Remove.
359
360 2003-11-20  Bob Wilson  <bob.wilson@acm.org>
361
362         * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line.
363         * configure: Regenerate.
364
365 2003-11-20  Kelley Cook  <kcook@gcc.gnu.org>
366
367         * Makefile.in (Makefile): Pass along CONFIG_SHELL.
368
369 2003-11-20 David Mosberger  <davidm@hpl.hp.com>
370
371         * config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
372         (SHLIB_LC): Define.
373         * unwind-libunwind.c (_Unwind_GetCFA): Implement.
374         (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
375
376 2003-11-20  Fariborz Jahanian  <fjahanian@apple.com>
377             David Edelsohn  <edelsohn@gnu.org>
378
379         * calls.c (expand_call): Allocate new temp in pass1.
380         (store_one_arg): If PARALLEL, calculate excess using mode size of
381         rtvec elt.
382         * expr.c (emit_push_insn): If PARALLEL, calculate offset using
383         mode size of rtvec elt.
384         * function.c (assign_parms): Use parm in register, if available.
385
386 2003-11-20  Kazu Hirata  <kazu@cs.umass.edu>
387
388         * config/h8300/lib1funcs.asm (MOVP): Remove.
389         (ADDP): Likewise.
390         (CMPP): Likewise.
391
392 2003-11-20  Richard Earnshaw  <rearnsha@arm.com>
393
394         * arm.c (use_return_insn): New argument, SIBLING.  Support returning
395         with a single instruction if the stack has been decremented by 4
396         and we have a frame pointer.  Update all callers.
397         (output_return_instruction): Likewise.
398         (arm_output_epilogue): Change argument to SIBLING.  Calculate
399         really_return from the new argument.  Update all callers.
400         * arm.h (USE_RETURN_INSN): Pass NULL for the sibling.
401         * arm.md (sibcall_epilogue): Call use_return_insn directly, and
402         pass the sibling call.
403         * arm-protos.h (use_return_insn, arm_output_epilogue): Update
404         prototypes.
405
406 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
407
408         * Makefile.in (extraclean): Delete.
409         * configure.in (target_list): Remove extraclean.
410         * configure: Regenerate.
411         * doc/makefile.texi, doc/sourcebuild.texi: Update.
412         * objc/Make-lang.in (objc.extraclean): Delete.
413
414 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
415
416         * Makefile.in (lang_checks): Add.
417         (check-c++, check-f77, check-java, check-g++, check-g77,
418         check-objc): Remove hardcoded targets.
419         * doc/sourcebuild.texi: Document testsuite hooks.
420         * objc/Make-lang.in (check-objc, lang_checks): Add.
421
422 2003-11-19  Scott Snyder  <snyder@fnal.gov>
423
424         PR target/13131
425         * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a
426         flag, not a constant.
427
428 2003-11-19  Kelley Cook  <kcook@gcc.gnu.org>
429
430         * config/arc/arc-protos.h: Update to C90 prototypes.
431         * config/arc/arc.c: Likewise.
432         * config/arc/initfini.c: Likewise.
433
434 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
435
436         * stmt.c (expand_goto): Memory clobbers added.
437
438 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
439
440         * reload.c (find_reloads): Added missing type casts.
441
442 2003-11-19  James E Wilson  <wilson@specifixinc.com>
443
444         * combine.c (sets_function_arg_p): Delete unused function.
445
446 2003-11-19  Eric Christopher  <echristo@redhat.com>
447
448         * reload1.c (reload): Revert 2 previous checkins.
449
450 2003-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>
451
452         * cpptrad.c (_cpp_scan_out_logical_line): Improve test for
453         whether directive begins at the beginning of a line.
454
455 2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
456
457         * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries.
458
459 2003-11-19  Gerald Pfeifer  <gp@suse.de>
460
461         * doc/install.texi (Specific): Remove information on old versions
462         of glibc versus old versions of GCC.
463
464 2003-11-19  Richard SAndiford  <rsandifo@redhat.com>
465
466         * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
467         the register lowpart is a TRULY_NOOP_TRUNCATION.
468
469 2003-11-19  Richard Henderson  <rth@redhat.com>
470
471         * config/i386/i386.c (print_reg): Handle QI and HI modes for
472         non Q regs.
473
474 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
475
476         * config/config.gcc (powerpc-*-darwin*): Add libgcc build
477         specification file.
478         * config/t-slibgcc-darwin: New file, libgcc build specification.
479         * config/t-darwin: Add libgcc2 flag -fPIC.
480         * config/rs6000/t-darwin: Multilib matches float.
481         * libgcc-darwin.ver: New file, contains libgcc symbols.
482
483 2003-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
484
485         * config/ns32k/ns32k.h: Remove obsolete comment.
486
487 2003-11-18  Roger Sayle  <roger@eyesopen.com>
488
489         PR middle-end/11821
490         * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
491         size for calls to libgcc's div & mod subroutines when using -Os.
492
493 2003-11-18  Jan Hubicka  <jh@suse.cz>
494
495         * cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
496
497 2003-11-18  Marc Espie  <espie@openbsd.org>
498
499         * config/rs6000/sysv4.h: OpenBSD hooks.
500
501 2003-11-18  Richard Henderson  <rth@redhat.com>
502
503         * expr.c (expand_expr): Don't look through constant arrays if
504         they don't bind locally.
505
506 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
507
508         * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
509         when seeing if truncation or extension.
510
511 2003-11-17  Eric Christopher  <echristo@redhat.com>
512
513         * reload1.c (reload): Fix previous change.
514
515 2003-11-17  Scott Snyder  <snyder@fnal.gov>
516
517         PR debug/11325
518         * dwarf2out.c (struct die_struct): Add die_definition field.
519         (add_AT_specification): New.
520         (gen_subprogram_die, gen_variable_die,
521         gen_struct_or_union_type_die): Use it.
522         (prune_unused_types_mark): If we're marking a forward declaration,
523         also mark the full definition, if it exists.
524
525 2003-11-16  Nick Clifton  <nickc@redhat.com>
526
527         * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete.
528         * config/stormy16/stormy16-protos.h (xstormy16_build_va_list):
529         Remove prototype.
530         * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename
531         to xstormy16_build_builtin_va_list and make static.
532         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
533
534 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
535
536         * config/h8300/h8300-protos.h: Add the prototype for
537         same_cmp_following_p.
538         * config/h8300/h8300.c (same_cmp_following_p): New.
539         * config/h8300/h8300.md (peephole2): Use it.
540
541 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
542
543         * config/h8300/h8300.md: Don't use REGNO when its operand is
544         not guaranteed to be a REG.
545
546 2003-11-16  Richard Sandiford  <rsandifo@redhat.com>
547
548         * Makefile.in (expr.o): Depend on $(TARGET_H).
549         * target.h (return_in_msb): New target hook.
550         * target-def.h (TARGET_RETURN_IN_MSB): New macro.
551         (TARGET_CALLS): Include it.
552         * calls.c (shift_returned_value): New function.
553         (expand_call): Use it.
554         * expr.c: Include target.h.
555         (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when
556         deciding what padding is needed.  Change the name of the local
557         padding variable from big_endian_correction to padding_correction.
558         * stmt.c (shift_return_value): New function.
559         (expand_return): Use it.  Adjust memory->register copy in the same
560         way as copy_blkmode_from_reg.  Only change the return register's
561         mode if it was originally BLKmode.
562         * doc/tm.texi (TARGET_RETURN_IN_MSB): Document.
563         * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define.
564         (mips_fpr_return_fields): New, split out from mips_function_value.
565         (mips_return_in_msb, mips_return_fpr_pair): New functions.
566         (mips_function_value): Rework to use the functions above.
567         * config/mips/irix6-libc-compat.c: Delete.
568         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine.
569
570 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
571
572         * doc/install.texi (--enable-checking): Update valgrind's URL.
573
574 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
575
576         * config/h8300/h8300.md: Fix warnings by replacing -2147483648
577         with -2147483647 - 1.
578
579 2003-11-16  Gerald Pfeifer  <gerald@pfeifer.com>
580
581         Fix links in online manuals.
582         * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info.
583         (Precompiled Headers): @pxref to cpp, not cpp.info.
584
585 2003-11-16  Jason Merrill  <jason@redhat.com>
586
587         * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub
588         files in each directory and TAGS files that include them for each
589         front end.
590
591 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
592
593         * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit
594         3 of S2L.
595         (modnorm): Likewise.
596         (exitdiv): Look at bit 3 of S2L only.
597
598 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
599
600         * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings.
601         (DO_GLOBAL_DTORS_BODY): Likewise.
602
603 2003-11-15  Joseph S. Myers  <jsm@polyomino.org.uk>
604
605         * doc/install.texi (Prerequisites): Refine documentation of
606         autoconf, automake and perl requirements.  Document required
607         gettext version.
608
609 <2003-11-14  Jason Merrill  <jason@redhat.com>
610
611         * function.c (assign_parms): Use TREE_TYPE to determine the real
612         type of the argument object.
613
614 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
615
616         * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
617         iteration.
618
619 2003-11-14  Fariborz Jahanian <fjahanian@apple.com>
620
621         * config/rs6000/rs6000.c (rs6000_move_block_from_reg):
622           New routine to save vararg registers on stack. Support for
623           -mpowerpc64 in mixed mode.
624
625 2003-11-14  Bernardo Innocenti  <bernie@develer.com>
626
627         * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing
628         for MOTOROLA versus MIT syntax.  Improves readability and provides
629         better compile-time error checking for both code paths.
630
631 2003-11-14  Kelley Cook  <kcook@gcc.gnu.org>
632
633         * config/frv/frv-protos.h: Update for C90.
634         * config/frv/frv.h: Likewise.
635         * config/frv/frvbegin.c: Likewise.
636         * config/frv/frv.c: Likewise.
637         (frv_adjust_field_align): Delete unused variable.
638
639 2003-11-14  Geoffrey Keating  <geoffk@apple.com>
640
641         * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN'
642         to each place where TARGET_LONG_DOUBLE_128 is used with
643         DEFAULT_ABI == ABI_AIX.
644
645         * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found'
646         message comply with GNU standards.
647
648 2003-11-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
649
650         PR/6552
651         * function.c (struct epi_info): New field const_equiv.
652         (update_epilogue_consts): New function.
653         (keep_stack_depressed): Clear new field and verify scratch register
654         doesn't have it set.
655         Call new function via note_stores.
656         (handle_epilogue_set): Allow setting SP equiv reg in different mode.
657         Allow PLUS where second operand is register known set to constant.
658         (emit_equiv_load): Write load using proper mode if source different.
659         * config/mips/mips.md (return_internal): Put (return) first.
660
661 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
662
663         * config/h8300/lib1funcs.asm (___udivsi3): Add a comment.
664
665 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
666
667         * config/h8300/lib1funcs.asm (modsi3): Don't save unused
668         registers.
669         (divsi3): Likewise.
670         (reti): Don't restore unused registers.
671
672 2003-11-14  Nick Clifton  <nickc@redhat.com>
673
674         * config/fr30/fr30.c: Include toplev.h
675
676 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
677
678         * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL.
679
680 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
681
682         * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C
683         function definition syntax.
684
685 2003-11-14  Eric Christopher  <echristo@redhat.com>
686
687         * reload1.c (reload): Revert previous patch. Make
688         check for assignment into reg_equiv_address stricter.
689
690 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
691
692         * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS.
693
694 2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
695
696         * config/frv/frv.c (frv_in_small_data_p): Return false for unknown
697         section names.
698
699 2003-11-14  Jason Merrill  <jason@redhat.com>
700
701         PR middle-end/12526
702         * tree.c (build): A CALL_EXPR has side-effects if its arguments do.
703         * calls.c (call_expr_flags): New fn.
704         * tree.h: Declare it.
705
706 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
707
708         * config/h8300/lib1funcs.asm (__udivsi3): Remove.
709         (divmodsi3): Change the name to ___udivsi3.
710         Update all callers.
711
712 2003-11-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
713
714         * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
715         __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
716         __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
717         __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
718         __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
719         __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
720         Const-ify and/or initialize automatic variables at declaration.
721
722 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses
725         of er4 with er3.  Adjust all callers.
726
727 2003-11-13  Andrew Pinski <apinski@apple.com>
728
729         * config/darwin.c (machopic_output_possible_stub_label):
730         Allow stub symbol be not defined when outputting possible
731         stub label.
732
733 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
734
735         * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
736         instead of exitdiv.
737         (___umodsi3): Likewise.
738         (exitdiv): Do not restore any register.
739         (reti): Restore registers.
740
741 2003-11-13  Steven Bosscher  <stevenb@suse.de>
742
743         * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
744
745 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
746
747         * config/h8300/lib1funcs.asm: Fix comment typos.
748
749 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
750
751         * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
752         unused registers.  Don't jump to exitdiv.
753         (umodsi3): Likewise.
754
755 2003-11-13  Mark Mitchell  <mark@codesourcery.com>
756             Kean Johnston <jkj@sco.com>
757
758         PR c/13029
759         * toplev.c (check_global_declarations): Do not warn about unused
760         static consts.
761
762 2003-11-13  Pavel Pisa  <pisa@cmp.felk.cvut.cz>
763             Kazu Hirata  <kazu@cs.umass.edu>
764
765         * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using
766         the approximate quotient method.
767
768 2003-11-13  Richard Earnshaw  <rearnsha@arm.com>
769
770         * combine.c (distribute_notes): When re-distributing the notes from
771         an insn we are about to delete, ensure we can't end up with a cyclic
772         list of notes.
773
774 2003-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
775
776         PR optimization/12926
777         * expr.c (expand_assignment) [COMPONENT_REF]: Don't put
778         the UNCHANGING_RTX_P flag on memory references to read-only
779         components that are not addressable.
780
781 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
782
783         * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in
784         DenHighNonZero.
785
786 2003-11-13  Jan Hubicka  <jh@suse.cz>
787
788         PR opt/12275
789         * c-decl.c (finish_decl): Use change_decl_assembler_name.
790         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
791         * varasm.c (make_decl_rtl): Likewise.
792         * cgraph.c (change_decl_assembler_name): New function.
793         * tree.h (set_decl_assembler_name): Kill dead declaration.
794         (change_decl_assembler_name): Declare.
795
796         * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
797         * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
798
799 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
800
801         * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore
802         an unused register.
803
804 2003-11-12  Richard Sandiford  <rsandifo@redhat.com>
805
806         PR bootstrap/12752
807         * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first.
808         (MULTILIB_OSDIRNAMES): Reorder accordingly.
809
810 2003-11-12  Janis Johnson  <janis187@us.ibm.com>
811
812         * rs6000-protos.h (rs6000_initial_elimination_offset): Add.
813         (rs6000_stack_info): Remove.  (debug_stack_info): Remove.
814         (rs6000_emit_eh_reg_restore): Add
815         * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
816         of vars_size and total_size to HOST_WIDE_INT.
817         (emit_frame_save): Change parameter size to HOST_WIDE_INT.
818         (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
819         (debug_stack_info): Make static; change output format of HOST_WIDE_INT
820         values.
821         (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md.
822         (rs6000_initial_elimination_offset): New, with code formerly in
823         INITIAL_ELIMINATION_OFFSET.
824         * rs6000.h (rs6000_stack_t): Remove.
825         (INITIAL_ELIMINATION_OFFSET): Replace code with call to function
826         rs6000_initial_elimination_offset.
827         * rs6000.md (UNSPECV_EH_RR split): Replace code with call to
828         rs6000_emit_eh_reg_restore.
829
830 2003-11-12  Mike Stump  <mrs@apple.com>
831
832         * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
833         is the argumnt we are processing so that warnings and errors
834         will have that information.
835         * c-tree.h (c_convert_parm_for_inlining): Add argnum.
836         * lang-hooks-def.h
837         (lhd_tree_inlining_convert_parm_for_inlining): Likewse.
838         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
839         * langhooks.h (convert_parm_for_inlining): Likewise.
840         * tree-inline.c (initialize_inlined_parameters): Compute and
841         pass argnum down.
842
843 2003-11-12  Alexey Starovoytov  <alexey.starovoytov@sun.com>
844             Roger Sayle  <roger@eyesopen.com>
845
846         PR optimization/12953
847         * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN
848         before switch by FUNCTION_CODE.
849
850 2003-11-12  Richard Earnshaw  <rearnsha@arm.com>
851
852         * arm.md (storehi): Avoid use of explicit subreg.
853         (storehi_bigend, storeinthi, movhi_bigend): Likewise.
854
855 2003-11-12  J"orn Rennecke <joern.rennecke@superh.com>
856
857         * config/sh/sh.md (prefetch): New pattern.
858
859 2003-11-11  Eric Christopher  <echristo@redhat.com>
860
861         * reload1.c (reload): Verify that addresses for
862         reg_equiv_* are valid for the architecture.
863
864 2003-11-11  Eric Christopher  <echristo@redhat.com>
865
866         * function.c (purge_addressof_1): Add libcall check.
867         Remove test for cached replacements on fallback case.
868         Simplify mode comparisons. Add libcall test for
869         paradoxical subregs.
870
871 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
872
873         * config/h8300/t-h8300: Fix an obsolete comment.
874
875 2003-11-11  James E Wilson  <wilson@specifixinc.com>
876
877         * expmed.c (store_bit_field, extract_bit_field): Revert last two
878         changes.
879
880 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
881
882         * config/h8300/lib1funcs.asm: Replace DenHighZero with
883         DenHighNonZero.
884
885 2003-11-11  Jan Hubicka  <jh@suse.cz>
886
887         * cgraphunit.c (cgraph_function_possibly_inlined_p): Use
888         really_no_inline.
889
890 2003-11-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
891
892         * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
893         generating 64-bit code.
894
895 2003-11-10  David Edelsohn  <edelsohn@gnu.org>
896
897         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
898         accidental commit in previous change.
899
900 2003-11-10  Fariborz Jahanian <fjahanian@apple.com>
901
902         * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
903         * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
904         address recognition.
905         (macho_lo_sum_memory_operand): Routine to recognize macho-style
906         address recognition.
907
908 2003-11-10  Richard Henderson  <rth@redhat.com>
909
910         * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
911
912 2003-11-10  Matt Austern  <austern@apple.com>
913
914         * config/darwin-protos.h (darwin_assemble_visibility): Declare.
915         * config/darwin.c (darwin_assemble_visibility): Define.  Warn for
916         anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
917         * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
918         darwin_assemble_visibility instead of default.
919
920 2003-11-10  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
921
922         PR target/12865
923         * config/sparc/sparc.c (sparc_initialize_trampoline): Call
924         __enable_execute_stack only after writing onto the stack.
925         (sparc64_initialize_trampoline): Likewise.
926
927 2003-11-09  Roger Sayle  <roger@eyesopen.com>
928
929         * loop.c (check_dbra_loop): Try swapping the comparison operands
930         of the loop condition to identify a suitable induction variable.
931         * unroll.c (loop_iterations): Likewise.
932
933 2003-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
934
935         * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
936         sparc64 #cpu and #machine assertions.
937
938 2003-11-09  Richard Henderson  <rth@redhat.com>
939
940         * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H.
941
942 2003-11-09  Jan Hubicka  <jh@suse.cz>
943
944         * tree-optimize.c (tree_rest_of_compilation): Fix warning.
945
946         * cgraphunit.c (cgraph_expand_function): Use
947         cgraph_possibly_inlined_p.
948         * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
949
950         * opts.c (common_handle_option): Do not set max-inline-insns.
951         * params.def: Update comments.
952         (PARAM_MAX_INLINE_INSNS): Kill.
953         * invoke.texi (max-inline-insns): Kill.
954
955 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
956
957         PR c/3190
958         PR c/8714
959         * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
960         * invoke.texi: Update.
961
962 2003-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
963
964         PR optimization/12630
965         * pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
966         Handle length computation 64-bit moves.
967         (compute_clrstr_length, output_block_clear): Implement block clear.
968         (output_block_move): Handle 64-bit moves.
969         (pa_adjust_insn_length): Use compute_movstr_length and
970         compute_clrstr_length.
971         * pa.md (movstrsi): Revise operand order and comments.  Don't use
972         match_scratch.
973         (movstrsi_internal): Delete.
974         (movstrsi_prereload, movstrsi_postreload): New insns.  Define splitter
975         and peephole2 patterns to transform prereload to postreload form.
976         (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
977         clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
978         clrstrdi_postreload): New patterns for 64-bit block move, and block
979         clear.
980         * pa-protos.h (output_block_clear): New prototype.
981
982 2003-11-08  Andreas Schwab  <schwab@suse.de>
983
984         * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
985         XCOFF_DEBUGGING_INFO.
986
987 2003-11-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
988
989         * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
990
991 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
992
993         * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
994         redundant parens.
995
996         * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
997         (find_file_in_dir): Likewise.
998         (_cpp_find_file): Print message if no header file is found
999         but an invalid PCH file was.
1000
1001 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1002
1003         * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
1004         expressions as lvalues.
1005         (internal_build_compound_expr): Remove special handling for
1006         non-pedantic case.
1007         * doc/extend.texi: Document that all extended lvalues are now
1008         deprecated.
1009
1010 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
1011
1012         PR 11654
1013         * dbxout.c (struct dbx_file): Do not save for PCH.
1014         (current_file): Likewise.
1015         (dbxout_init): Don't allocate struct dbx_file using GC.
1016         (dbxout_start_source_file): Likewise.
1017
1018 2003-11-07  Falk Hueffner  <falk@debian.org>
1019
1020         * config/alpha/elf.h, config/alpha/unicosmk.h,
1021         config/alpha/vms.h: Convert to ISO C90.
1022
1023 2003-11-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1024
1025         * config/arm/pe.h: Convert to ISO C90.
1026
1027 2003-11-07  J"orn Rennecke <joern.rennecke@superh.com>
1028
1029         * sh-protos.h (sh_pch_valid_p): Declare.
1030         * sh.c ("intl.h"): Include.
1031         (TARGET_PCH_VALID_P): Override.
1032         (sh_target_switches): New variable.
1033         (target_switches): Define.
1034         (sh_pch_valid_p): New function.
1035
1036         * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
1037
1038 2003-11-07  Jan Hubicka  <jh@suse.cz>
1039
1040         * i386.c (x86_64_sign_extended_value):  Return false from tls variables.
1041         (x86_64_zero_extended_value):  likewise.
1042
1043 2003-11-07  Richard Sandiford  <rsandifo@redhat.com>
1044
1045         * config/mips/mips.md (loadgp): Take $25 as a second operand.
1046         * config/mips/mips.c (mips_expand_prologue): Modify accordingly.
1047
1048 2003-11-06  Matt Austern <austern@apple.com>
1049
1050         * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
1051         field instead of hanging an attribute object off the decl.
1052         * tree.h (DECL_VISIBLITY): New accessor macro for
1053         symbol_visibility field in struct tree_decl.
1054         (enum symbol_visibility): Move definition to before tree_decl.
1055         (struct tree_decl): Define new two-bit field, symbol_visibility.
1056         (decl_visibility): Remove declaration.
1057         * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
1058         instead of decl_visibility.
1059         (default_binds_local_p_1):  Use DECL_VISIBILITY instead of
1060         decl_visibility.
1061         (decl_visibility): Remove.
1062
1063 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1064
1065         * config/s390/s390.c (s390_emit_epilogue): Recognize more cases
1066         where register 14 will be saved.
1067
1068 2003-11-06  Geoffrey Keating  <geoffk@apple.com>
1069
1070         * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
1071         (USE_ALTIVEC_FOR_ARG_P): Likewise.
1072         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
1073         Take a pointer as the CUM parameter.  Update callers.
1074         (USE_ALTIVEC_FOR_ARG_P): Likewise.  Also correct for Darwin/AIX
1075         32-bit ABIs.
1076         (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P.  Correct case
1077         of vector parameters as named arguments of stdarg function.
1078         (function_arg): Likewise.
1079
1080         * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
1081         -maltivec is specified, not the non-existent -faltivec.
1082
1083 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
1084
1085         * config/s390/s390-protos.h (s390_function_value): Declare.
1086         * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
1087         (s390_return_in_memory): New function.
1088         (s390_function_value): New function.
1089         (s390_function_arg_float): Return false for all arguments larger
1090         than 8 bytes.
1091         (s390_function_arg_pass_by_reference): Likewise.  Return true for
1092         all vector arguments.
1093         (s390_function_arg_integer): New function.
1094         (s390_function_arg_advance): Call it.  Add sanity checks.
1095         (s390_function_arg): Likewise.
1096         * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
1097         (LIBCALL_VALUE): Likewise.
1098         (RET_REG): Remove.
1099         (RETURN_IN_MEMORY): Remove.
1100
1101 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1102
1103         * config/mips/mips-protos.h (mips_initial_elimination_offset): Change
1104         return type to HOST_WIDE_INT.
1105         * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
1106         Make initialized a bool.  Make register masks unsigned ints.
1107         (compute_frame_size): Make same mask change here.  Use HOST_WIDE_INT
1108         where appropriate.
1109         (mips_initial_elimination_offset): Return a HOST_WIDE_INT.
1110         (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
1111
1112 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1113
1114         * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
1115         negation.
1116
1117 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
1118
1119         * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
1120
1121 2003-11-06  Momchil Velikov  <velco@fadata.bg>
1122
1123         * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
1124         for VR4111 too.
1125
1126 2003-11-06  Jan Hubicka  <jh@suse.cz>
1127
1128         * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
1129         missing casts.
1130
1131 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
1132
1133         * genmodes.c: Change the word "bitsize" to "precision" throughout.
1134         * machmode.def: Likewise.
1135         * machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
1136         (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
1137         (GET_MODE_PRECISION): New macro.
1138         (mode_bitsize): Renamed mode_precision.
1139         * stor-layout.c (mode_for_size, smallest_mode_for_size):
1140         Use GET_MODE_PRECISION; clarify comments.
1141
1142 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1143
1144         * doc/install-old.texi: Remove old documentation of building
1145         cross-compilers.
1146         * doc/install.texi: Move some of it to here.
1147
1148 2003-11-05  Per Bothner  <pbothner@apple.com>
1149
1150         PR preprocessor/12891
1151         * c-opts.c (finish_options):  Set include_cursor to disable premature
1152         calls to push_command_line_include from cpp_scan_nooutput.
1153         Fixes bug reported by DJ Delorie.
1154
1155 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
1156
1157         * config/rs6000/rs6000.c (setup_incoming_varargs): Remove
1158         code supporting old-style varargs.
1159
1160         * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
1161         an intermediate register for better optimisation.
1162
1163 2003-11-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1164
1165         PR optimization/10080
1166         * cfgloopanal.c (variable_initial_value, variable_initial_values,
1167         simple_loop_exit_p): Record the fact that initial value is extended
1168         from inner mode.
1169         (count_strange_loop_iterations, count_loop_iterations): Handle
1170         ivs that iterate in a narrower mode. Fix handling of overflows.
1171         Improve handling of NE conditions.
1172         (inverse, fits_in_mode_p): New static functions.
1173         (simple_increment): Detect variables that iterate in a narrower mode.
1174         * cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
1175
1176 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
1177
1178         * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
1179         error.
1180
1181         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
1182         needs VRSAVE.
1183
1184 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1185
1186         * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
1187         conditional expressions as lvalues.
1188
1189 2003-11-05  Kazu Hirata  <kazu@cs.umass.edu>
1190
1191         * tsystem.h: Add the prototype of strlen.
1192         * unwind-pe.h (read_encoded_value_with_base): Add an
1193         appropriate cast to handle a case where the pointer size is
1194         smaller than sizeof (int).
1195
1196 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
1197
1198         * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
1199         (mips_delegitimize_address): Delete.
1200         (mips_gotoff_global, mips_load_got_page): Declare.
1201         (mips_load_got_global, mips_rewrite_small_data): Declare.
1202
1203         * config/mips/mips.h (FIND_BASE_TERM): Remove definition.
1204         (DANGEROUS_FOR_LA25_P): Use global_got_operand.
1205         (PREDICATE_CODES): Add global_got_operand, local_got_operand and
1206         small_data_pattern.  Remove CONST from const_arith_operand's entry.
1207
1208         * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
1209         (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
1210         (mips_constant_type): Delete.
1211         (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
1212         SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
1213         (NUM_SYMBOL_TYPES): New macro.
1214         (mips_address_type): Remove ADDRESS_INVALID.
1215         (machine_function): Add has_gp_insn_p.
1216         (mips_constant_info): Delete.
1217         (mips_address_info): Add the address type as an extra field.  Replace
1218         the c field with symbol_type.
1219         (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
1220         (TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
1221         (mips_reloc_offset_ok_p, mips_classify_constant): Delete.
1222         (mips_split_const, mips_symbolic_constant_p): New functions.
1223         (mips_symbolic_address_p): Take the symbol type and mode as arguments.
1224         (mips_classify_address): Return true if the address is valid, storing
1225         its type in INFO.  Use mips_symbolic_constant_p.  Use mips_lo_relocs[]
1226         to test whether a LO_SUM address is allowed.
1227         (mips_symbol_insns): Return 0 for general mips16 symbols.
1228         Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
1229         Handle the new SYMBOL_GOTOFF_*s.
1230         (mips_address_insns): Update call to mips_classify_address.
1231         (mips_const_insns): Be more fussy about HIGH constants.  Remove use
1232         of mips_classify_constant.  Be more accurate about CONSTs.
1233         (mips_global_pic_constant_p): Delete.
1234         (const_arith_operand): Only accept CONST_INTs.
1235         (call_insn_operand): Remove call to mips_classify_constant.
1236         Let mips_symbolic_constant_p check for invalid offsets.
1237         (move_operand): Check for general_operands first.  Only accept symbolic
1238         constants if they satisfy mips_symbolic_constant_p and cannot be split.
1239         (symbolic_constant): Use mips_symbolic_constant_p.
1240         (global_got_operand, local_got_operand): New predicates.
1241         (stack_operand): Update call to mips_classify_address.
1242         (mips_legitimate_address_p): Likewise.
1243         (mips_reloc, mips_lui_reloc): Delete.
1244         (mips_force_temporary): Only use the given temporary if no_new_pseudos.
1245         Use emit_move_insn.
1246         (mips_split_symbol, mips_unspec_address): New functions.
1247         (mips_unspec_offset_high): New function.
1248         (mips_load_got): Replace reloc argument with a symbol_type.
1249         Use mips_unspec_address to create the address and put it in a
1250         LO_SUM with the base register.
1251         (mips_load_got16, mips_load_got32): Delete.
1252         (mips_emit_high, mips_legitimize_symbol): Delete.
1253         (mips_gotoff_global): New function.
1254         (mips_load_got_page, mips_load_got_global): New functions.
1255         (mips_legitimize_symbol): Inline handling of LO_SUM splits.
1256         (mips_legitimize_const_move): Likewise.  Remove HIGH handling.
1257         Inline code to handle constants plus invalid offsets.  Use
1258         mips_split_symbol to legitimize constant pool addresses.
1259         (mips_delegitimize_address): Delete.
1260         (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
1261         a cost of 1 insn.  Give the rest a cost of CONSTANT_POOL_ADDRESS.
1262         (mips_subword): Pass memrefs through mips_rewrite_small_data.
1263         (mips_output_move): Remove use of mips_classify_constant.
1264         (mips_expand_call): Use mips_unspec_offset_high to calculate the
1265         high part of the GOT address for calls to global functions.
1266         (override_options): Initialize mips_split_p[], mips_lo_relocs[]
1267         and mips_hi_relocs[].
1268         (print_operand): Use print_operand_reloc to handle '%h' and '%R'.
1269         Remove use of mips_classify_constant.
1270         (mips_reloc_string): Delete.
1271         (print_operand_reloc): New function.
1272         (print_operand_address): Update call to mips_classify_address.
1273         (mips_rewrite_small_data_p, small_data_pattern_1): New functions.
1274         (small_data_pattern): New predicate.
1275         (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
1276         (mips_function_has_gp_insn): New function.
1277         (mips_global_pointer): Use it.
1278         (mips_gp_insn): Delete.
1279         (mips_expand_prologue): When compiling for n32/n64 abicalls, use a
1280         single loadgp pattern to initialize $gp.  Pass it the offset of _gp
1281         from the start of the current function.
1282         (mips16_gp_pseudo_reg): Revert last patch.
1283
1284         * config/mips/mips.md (RELOC_*): Delete.
1285         (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
1286         (got): New insn attribute.
1287         (type): Set to "load" if got == load.
1288         (length): Set to 4 if got == load, 8 if got == xgot_high.
1289         (lui[sd]i): Delete.
1290         (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
1291         (*got_disp[sd]i, *got_page[sd]i): Likewise.
1292         (*low[sd]i): Change constraints to "d".  Add a new define_split to
1293         rewrite small data constants into LO_SUMs.
1294         (loadgp): New insns.
1295
1296 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1297
1298         * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
1299
1300 2003-11-04  DJ Delorie  <dj@redhat.com>
1301
1302         * config/v850/v850.md (mulhisi3): Expand the const_int case
1303         separately to avoid trying to sign extend the const.
1304
1305 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
1306
1307         * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
1308         addresses to be shared.
1309         (force_const_mem): Return a copy of the pool entry.
1310
1311 2003-11-03  Andreas Jaeger  <aj@suse.de>
1312
1313         * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again.
1314
1315 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
1316
1317         * Makefile.in (cpp.dvi): New target split from cpp.info.
1318         (gcc.dvi):  New target split from gcc.info.
1319         (gccint.dvi): New target split from gccint.info.
1320         (cppinternals.dvi): New target split from cppinternals.info
1321         (gccinstall.info): New specific rule.
1322         (gccinstall.dvi): Likewise.
1323         (dvi): Move targets to $(docobjdir).
1324         ($(docobjdir)/%.dvi): New implicit rule.
1325
1326 2003-11-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1327
1328         * doc/gty.texi (tag, desc): Say more about role of desc values in
1329         selecting between tags.
1330
1331 2003-11-03  Alexander Kabaev  <ak03@gte.com>
1332
1333         * real.c (encode_ieee_single): Ensure proper promotion.
1334
1335 2003-11-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1336
1337         * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
1338         and Andrew Pinski.
1339
1340 2003-11-03  Syd Polk  <spolk@apple.com>
1341
1342         * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
1343         marketing names to the list of supported processors.
1344         * config/rs6000/rs6000.h: Ditto.
1345         * doc/invoke.texi: Ditto.
1346         * config.gcc: Ditto.
1347
1348 2003-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1349
1350         * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
1351         Merge two substitutions.
1352         * fixinc/fixincl.x: Regenerate.
1353         Fixes PR bootstrap/12666.
1354
1355 2003-11-03  Joseph S. Myers  <jsm@polyomino.org.uk>
1356
1357         * doc/install-old.texi: Remove VMS documentation.
1358
1359 2003-11-03  Jan Hubicka  <jh@suse.cz>
1360
1361         * i386.c (override_options):  Remove hack enabling 128bit long double
1362         commited by accident.
1363
1364 2003-11-02  Per Bothner  <per@bothner.com>
1365
1366         * c-opts.c (needValue):  Do cpp_find_main_file before processing
1367         any imacros flags, so pfile->main_file is set for the latter.
1368
1369 2003-11-03  Andreas Jaeger  <aj@suse.de>
1370             Zack Weinberg  <zack@codesourcery.com>
1371
1372         * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings.
1373         (SYSCALLS.c.X-warn): Suppress warnings.
1374
1375 2003-11-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1376
1377         PR optimization/12845
1378         * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
1379
1380 2003-11-02  Zack Weinberg  <zack@codesourcery.com>
1381
1382         * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
1383         * config/i386/i386.c (print_reg): Abort on a virtual register
1384         if code != -1; not if file == asm_out_file.
1385         * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
1386         (DEBUG_PRINT_REG): Delete, unused.
1387
1388 2003-11-02  Andreas Schwab  <schwab@suse.de>
1389
1390         * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
1391         empty to avoid conflict with the definition from configure.
1392
1393 2003-11-02  Roger Sayle  <roger@eyesopen.com>
1394
1395         PR optimization/10817
1396         * ifcvt.c (noce_emit_move_insn): Improve documentation comment.
1397         (noce_try_move): New function to optimize an if-the-else into an
1398         unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
1399         (noce_process_if_block): Attempt simplification with noce_try_move.
1400
1401         * simplify-rtx.c (simplify_ternary_operation): Some minor fixes
1402         and improvements to the optimizations of IF_THEN_ELSE expressions.
1403         (simplify_subreg): Silence signed/unsigned comparison warning.
1404
1405 2003-11-02  Richard Sandiford  <rsandifo@redhat.com>
1406
1407         * Makefile.in (targhooks.o, reload.o): Update dependencies.
1408         (GTFILES): Add targhooks.c.
1409         (gt-targhooks.h): New rule; depend on s-gtype.
1410         * target.h (direct_pool_load_p): New hook.
1411         * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
1412         (TARGET_INITIALIZER): Include it.
1413         * targhooks.h (default_direct_pool_load_p): Declare.
1414         (hook_bool_machine_mode_true): Declare.
1415         * targhooks.c: Include insn-config.h, recog.h, ggc.h and
1416         gt-targhooks.h.
1417         (pool_symbol): New variable.
1418         (default_direct_pool_load_p): New function.
1419         (hook_bool_machine_mode_true): New function.
1420         * reload.c: Include target.h.
1421         (find_reloads): If an alternative will force a constant into memory,
1422         count an extra reload if constant pool symbols are not valid
1423         addresses.  If an alternative uses memory to move values between
1424         registers, count the move as two reloads rather than one.
1425         * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
1426         * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
1427
1428 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1429
1430         PR optimization/12799
1431         * postreload.c (reload_cse_move2add): Generate the add2
1432         patterns manually.
1433
1434 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1435
1436         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1437         Return 0 for all complex modes whose size is lesser or equal to
1438         a word.  Add a ??? comment for the condition used with 16-byte
1439         aligned modes.
1440
1441 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
1442
1443         * .cvsignore: Remove c-parse* and tradcif.c.
1444         * objc/.cvsignore: Delete.
1445
1446 2003-11-01  Roger Sayle  <roger@eyesopen.com>
1447
1448         * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
1449         of NULL.
1450
1451 2003-11-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1452
1453         * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
1454
1455         * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
1456
1457         * collect2.c (scan_libraries): Fix typos.
1458
1459         PR preprocessor/12847
1460         * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
1461         cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
1462         c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
1463         DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
1464         "CPP_".
1465
1466 2003-11-01  Fariborz Jahanian  <fjahanian@apple.com>
1467
1468         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
1469         no_units calculation.
1470
1471 2003-11-01  Andreas Jaeger  <aj@suse.de>
1472
1473         * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
1474         enumeration list.
1475
1476 2003-11-01  Andreas Schwab  <schwab@suse.de>
1477
1478         * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
1479         prototypes.
1480         (SBSS_SECTION_FUNCTION): Likewise.
1481
1482 2003-11-01  Andreas Jaeger  <aj@suse.de>
1483
1484         * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files.
1485
1486 2003-11-01  Andreas Tobler  <a.tobler@schweiz.ch>
1487
1488         * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
1489         prototypes.
1490
1491 2003-11-01  Andreas Jaeger  <aj@suse.de>
1492
1493         * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
1494         (uw_frame_state_for): Constify variables.
1495         (extract_cie_info): Constify first argument.
1496
1497         * unwind-dw2-fde-darwin.c: Adjust prototype of
1498         _Unwind_Find_registered_FDE for recent changes.
1499         (examine_objects): Constify return value and local variable result.
1500         (_Unwind_Find_FDE): Constify return value and local variable ret.
1501
1502 2003-10-31  Per Bothner  <pbothner@apple.com>
1503
1504         * c-opts.c (finish_options):  Change to returns boolean - false iff
1505         the call to cpp_find_main_file fails.
1506         (c_common_init):  Skip preprocess_file if finish_options failed.
1507         (c_common_parse_file):  Break if finish_options failed.
1508         Fixes PR preprocessor/12545.
1509
1510 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1511
1512         * aclocal.m4: Blacklist ultrix* for mmap file.
1513         * configure: Rebuilt.
1514
1515         * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
1516         reg_parm_stack_space.
1517         * toplev.c (default_get_pch_validity): Fix warning.
1518
1519         * vax.c: Include toplev.h.
1520         (vax_init_libfuncs): Fix typo (umod).
1521         * vax.h (ASM_COMMENT_START): Define.
1522         (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
1523
1524 2003-10-31  Roger Sayle  <roger@eyesopen.com>
1525
1526         PR middle-end/11968
1527         * expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
1528         confusing comment; distributivity isn't handled in expand_expr.
1529         * fold-const.c (extract_muldiv_1 <PLUS_EXPR>):  Allow overflow
1530         in distributivity, if wrap-around semantics are specified with
1531         -fwrapv.
1532
1533 2003-11-01  Alan Modra  <amodra@bigpond.net.au>
1534
1535         PR 12315
1536         * final.c (profile_function): Allow for NULL svrtx.
1537
1538 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1539
1540         * pa.c (pa_select_section): Use new style declaration.
1541         * som.h (readonly_data): Likewise.
1542
1543 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1544
1545         * config/rs6000/rs6000.c: Update to C90 prototypes.
1546
1547 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1548
1549         PR target/7513
1550         * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
1551         code.
1552
1553 2003-10-31  Andreas Jaeger  <aj@suse.de>,
1554             Zack Weinberg  <zack@codesourcery.com>
1555
1556
1557         * crtstuff.c (__register_frame_info, __register_frame_info_bases)
1558         (__deregister_frame_info, __deregister_frame_info_bases):
1559         Constify void * argument.
1560         * unwind-dw2-fde.h (struct fde_vector):
1561         Constify 'orig_data' and 'array' fields.
1562         (__register_frame_info, __register_frame_info_bases)
1563         (__deregister_frame_info, __deregister_frame_info_bases):
1564         Constify void * argument.
1565         (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
1566         return values, and casts of type fde *, struct dwarf_fde *,
1567         and struct dwarf_cie *.
1568         * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
1569         (__deregister_frame_info, __deregister_frame_info_bases):
1570         Constify void * argument.
1571         (get_cie_encoding, ): Constify struct dwarf_cie * argument.
1572         (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
1573         (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
1574         fde_split, SWAP, frame_downheap, frame_heapsort)
1575         (classify_object_over_fdes, add_fdes, linear_search_fdes,
1576         binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
1577         binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
1578         Constify arguments, local variables, return values, and casts
1579         of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
1580         Use const pointer types in sizeof expressions, for clarity.
1581         * unwind-dw2-fde-glibc.c
1582         (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
1583         (struct unw_eh_callback_data): Constify 'ret' field.
1584
1585 2003-10-31  Fariborz Jahanian  <fjahanian@apple.com>
1586             David Edelsohn  <edelsohn@gnu.org>
1587
1588         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
1589         (function_arg): Call it.
1590         (rs6000_function_value): Widen integral return value to mode based
1591         on TARGET_32BIT, not word_mode.
1592         * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
1593         (UNITS_PER_ARG): New.
1594         (RS6000_ARG_SIZE): Use it.
1595
1596 2003-10-31  Gerald Pfeifer  <gerald@pfeifer.com>
1597
1598         * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
1599         and gengtype-yacc.h.
1600
1601 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1602
1603         PR optimization/8896
1604         * postreload.c (reload_combine): Check that REGY doesn't die in an
1605         insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
1606
1607 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1608
1609         PR/10239
1610         * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
1611
1612 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1613
1614         PR/11640
1615         * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
1616         immediatelly before BARRIER.
1617
1618 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1619
1620         * Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
1621
1622 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1623
1624         PR target/11271
1625         * reload.c (find_reloads_address): Handle any register in
1626         (PLUS (PLUS (REG) (REG)) (CONST_INT).
1627
1628 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1629
1630         * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
1631         ENABLE_GC_CHECKING not in GGC_POISON.
1632
1633 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
1634
1635         PR bootstrap/9863
1636         * configure.in: Bail out if awk is missing.
1637         * configure: Regenerate.
1638
1639         PR ada/12761
1640         * Makefile.in: Move default definitions of X_ADA_CFLAGS,
1641         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
1642
1643 2003-10-30  Richard Henderson  <rth@redhat.com>
1644
1645         * c-objc-common.c (c_tree_printer): Handle types correctly.
1646         Factor code a bit.
1647
1648 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
1649
1650         * value-prof.c, web.c: Update to C90.
1651
1652 2003-10-30  Eric Christopher  <echristo@redhat.com>
1653
1654         * function.c (purge_addressof_1): Add case for REG_RETVAL
1655         notes when modes are unequal.
1656
1657 2003-10-31  Jan Hubicka  <jh@suse.cz>
1658
1659         * i386-modes.def: Add XFmode format adjustment.
1660
1661 2003-10-30  Jan Hubicka  <jh@suse.cz>
1662
1663         * real.c (encode_ieee_extended): Back out previous patch.
1664
1665 2003-10-30  Jan Hubicka  <jh@suse.cz>
1666
1667         * real.c (encode_ieee_extended): Initialize whole array.
1668         * reg-stack.c (move_for_stack_reg0: Use always XFmode.
1669         * i386-modes.def: Change definitions of TFmode and XFmode.
1670         * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
1671         code.
1672         (construct_container): Allow constructing of TFmode integer containers.
1673         (ix86_return_in_memory):  XFmode is not returned in memory.
1674         (init_ext_80387_constants): Always use XFmode.
1675         (print_operand): Likewise.
1676         (ix86_prepare_fp_compare_regs): Likewise.
1677         (split_to_parts): Deal with TFmode.
1678         (split_long_move): Simplify.
1679         (ix86_init_mmx_sse_builtins): Add __float80, __float128.
1680         (ix86_memory_move_cost): Do not confuse TFmode.
1681         * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
1682         (IS_STACK_MODE): TFmode is not stack mode.
1683         (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
1684         (VALID_SSE_REG_MODE): Allow TFmode.
1685         (VALID_FP_MODE_P): Disallow TFmode.
1686         (VALID_INT_MODE_P): Allow TFmode in 64bit mode.
1687         * i386.md (TFmode patterns): Kill.
1688         (movtf, motf_rex64): New patterns.
1689
1690 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1691
1692         * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code.
1693
1694 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1695
1696         * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate.
1697         (mov_lwr, mov_swl, mov_swr): Likewise.
1698         (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
1699
1700 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1701
1702         * config/mips/mips.c (mips_global_pointer): Don't try to use $25.
1703
1704 2003-10-30  Richard Henderson  <rth@redhat.com>
1705
1706         * config/mips/mips.c (mips_build_builtin_va_list): Use runtime
1707         test for irix6 rather than preprocessor test.
1708
1709 2003-10-30  Richard Henderson  <rth@redhat.com>
1710
1711         * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
1712
1713 2003-10-30  Ulrich Weigand  <uweigand@de.ibm.com>
1714
1715         * config/s390/s390.c (struct machine_function): Use save_return_addr_p
1716         as a general flag that the return address register needs to be saved,
1717         not necessarily because of __builtin_return_addr (0).
1718         (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
1719         remove special handling of zSeries machines.
1720         (s390_optimize_prolog): Remove TEMP_USED argument, treat the return
1721         register as a regular register on zSeries machines.
1722         (s390_reorg): Adjust calls to s390_split_branches and
1723         s390_optimize_prolog.
1724         (s390_frame_info): On zSeries machines, do not assume the return
1725         register is always used.  Update regs_ever_live with current data
1726         for the special registers.
1727         (s390_emit_epilogue): Use save_return_addr_p to determine whether
1728         the return register was saved.
1729         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
1730         RETURN_REGNUM fixed on zSeries machines.
1731         (REG_ALLOC_ORDER): Use RETURN_REGNUM last.
1732         * config/s390/s390.md ("*doloop_si"): Handle branch overflow
1733         via ahi-jgne pair on zSeries machines.
1734         ("*doloop_di"): Likewise.
1735         ("*doloop_di_long"): Remove.
1736
1737 2003-10-30  Richard Earnshaw  <rearnsha@arm.com>
1738
1739         * arm.c (arm_override_options): Revert change of arm_constant_limit
1740         when optimizing for size.
1741
1742 2003-10-29  Richard Henderson  <rth@redhat.com>
1743
1744         * fold-const.c (fold_single_bit_test): Convert the input to the
1745         operational intermediate type.
1746
1747 2003-10-29  Richard Henderson  <rth@redhat.com>
1748
1749         * builtins.c (std_build_builtin_va_list): New.
1750         * expr.h (std_build_builtin_va_list): Declare.
1751         * defaults.h (BUILD_VA_LIST_TYPE): New.
1752         * system.h (BUILD_VA_LIST_TYPE): Poison.
1753         * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
1754         * target.h (struct gcc_target): Add build_builtin_va_list.
1755         * tree.c (build_common_tree_nodes_2): Use it.
1756
1757         * config/alpha/alpha-protos.h, config/alpha/alpha.c,
1758         config/alpha/alpha.h, config/alpha/unicosmk.h,
1759         config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
1760         config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
1761         config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
1762         config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
1763         config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
1764         config/mips/mips.h, config/rs6000/rs6000-protos.h,
1765         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1766         config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
1767         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
1768         config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
1769         config/xtensa/xtensa.h: Rename foo_build_va_list to
1770         foo_build_builtin_va_list; make it static.  Define
1771         TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
1772         Update protos.
1773
1774         * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
1775         * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
1776
1777 2003-10-29  James E Wilson  <wilson@specifixinc.com>
1778
1779         * recog.c (asm_operand_ok): Add missing break after case 'X'.
1780         Change if statements to else if statements in default case.
1781         (extract_constrain_insn_cached): Fix misspelling of constrain_operands
1782         in comment.
1783         (constrain_operands_cached): Likewise.
1784         (constrain_operands): Change if statements to else if statements in
1785         default case.
1786         * reload.c (find_reloads): Likewise.
1787
1788 2003-10-29  Richard Henderson  <rth@redhat.com>
1789
1790         * config/m68k/m68k.c (notice_update_cc): Clear cc status for
1791         shifts and rotates.
1792
1793 2003-10-30  Alan Modra  <amodra@bigpond.net.au>
1794
1795         * config/rs6000/rs6000.md: Remove duplicate pattern.
1796
1797 2003-10-29  Hans-Peter Nilsson  <hp@axis.com>
1798
1799         * real.c (do_divide): Initialize result with a 0.
1800
1801         * configure.in <enable-checking for valgrind>: Look for
1802         <valgrind/memcheck.h> first.  AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
1803         if it exists.
1804         * configure, config.in: Regenerate.
1805         * ggc-common.c [ENABLE_VALGRIND_CHECKING &&
1806         HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>.  Use
1807         #elif for other alternatives.
1808         * ggc-page.c: Ditto.
1809         * ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
1810         include structure from ggc-common.c.
1811
1812 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1813
1814         * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
1815         (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
1816         * pa.c (pa_adjust_insn_length): Check for btable branches using
1817         attribute TYPE_BTABLE_BRANCH.
1818         (pa_reorg): Simplify.
1819         * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
1820         (ASM_OUTPUT_ADDR_VEC_ELT): As above.
1821         (ASM_OUTPUT_ADDR_DIFF_ELT): As above.
1822         * pa.md (btable_branch): New instruction type.
1823         (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
1824         btable branches.
1825         (define_delay): Add btable branches to insn types that may have an
1826         insn in the delay position.
1827         (Z2, Z3): Add btable branch to list.
1828         Simplify unamed pattern set copy pic_label_operand to register.  Add
1829         PA 2.0 variant.
1830         (short_jump): New jump for use in branch tables.
1831         (casesi, casesi0): Revise for new branch table formats.
1832         (casesi32, casesi32p, casesi64p): New casesi patterns.
1833         (indirect_jump): Move.
1834
1835 2003-10-29  David Edelsohn  <edelsohn@gnu.org>
1836
1837         * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
1838         !TARGET_POWERPC64.
1839         (UNITS_PER_GPR_WORD): Delete.
1840         (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD.
1841         (HARD_REGNO_MODE_OK): Same.
1842         (CLASS_MAX_NREGS): Same.
1843
1844 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1845
1846         * pa.h (ASM_COMMENT_START): Define.
1847
1848 2003-10-29  Zack Weinberg  <zack@codesourcery.com>
1849
1850         * genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
1851         MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
1852         component, not zero.
1853
1854 2003-10-29  Andreas Schwab  <schwab@suse.de>
1855
1856         * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
1857
1858 2003-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1859
1860         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1861         Never return 1 for complex integral modes whose size is lesser or
1862         equal to a word.
1863         (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
1864         in the comment.
1865         (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
1866         modes.
1867         (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
1868         greater than 16 bytes by reference.
1869
1870 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1871
1872         * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
1873         not TARGET_ILP32.
1874         (ia64_initialize_trampoline): Use globalize_label target call.
1875
1876 2003-10-29  Andreas Schwab  <schwab@suse.de>
1877
1878         * doc/install.texi (Building): Add a sentence about building Ada
1879         for a canadian cross.
1880
1881 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1882
1883         * config/ia64/ia64.c (cmptf_libfunc): New static.
1884         (ia64_expand_compare): Add logic to open-code calls to
1885         _U_Qfcmp for TFmode comparisons.
1886         (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
1887         Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
1888         never be generated anymore.
1889         * config/ia64/ia64.md (cmptf): New expander.
1890
1891 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1892
1893         * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
1894         (*sqrt_approx): New instruction pattern for approximate square roots.
1895         (*setf_exp_xf): New instruction pattern for exponentiation.
1896         (*maddxf4_alts_truncsf): New instruction pattern for truncation.
1897         (sqrtsf2_internal_thr): New define_and_split implementing
1898         throughput-optimized inline calculation of SFmode square root.
1899         (sqrtdf2_internal_thr): Likewise for DFmode.
1900         (sqrtxf2_internal_thr): Likewise for XFmode.
1901         (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
1902         latency- and throughput-optimized square root algorithms.
1903         * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
1904         TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
1905         New macros.
1906         (TARGET_SWITCHES): Add -minline-sqrt-min-latency and
1907         -minline-sqrt-max-throughput.
1908         * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
1909         and -minline-sqrt-max-throughput are given, notify the user
1910         that both options cannot be used simultaneously.
1911         If -minline-sqrt-min-latency is given, notify the user that
1912         this mode is not yet implemented.
1913         (rtx_needs_barrier): Reformat initial comment to obey
1914         72-character width limit.  Support UNSPEC_SETF_EXP and
1915         UNSPEC_FR_SQRT_RECIP_APPROX.
1916
1917 2003-10-29  Alan Modra  <amodra@bigpond.net.au>
1918
1919         * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr
1920         moves.
1921
1922 2003-10-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1923
1924         PR target/11598
1925         PR libgcj/10610
1926         * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
1927
1928 2003-10-28  Richard Earnshaw  <rearnsha@arm.com>
1929
1930         * arm.c (arm_output_epilogue): When using a frame pointer, don't emit
1931         an extra stack adjustment insn if the stack pointer is already
1932         pointing at the right place.
1933         (use_return_insn): Allow a return insn to be used when we have a
1934         frame pointer if the stack pointer is in the right place.
1935         (output_return_instruction): Handle it.
1936
1937 2003-10-28  Andreas Jaeger  <aj@suse.de>
1938
1939         * ggc-zone.c (check_cookies): Add missing variable.
1940         Add void to prototypes.
1941
1942 2003-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1943
1944         * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
1945         * crtstuff.c (__do_global_ctors_1): Move prototype.
1946         * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
1947         appropriate.
1948         * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
1949         Mark parameter with __attribute__((unused)).
1950
1951 2003-10-27  Zack Weinberg  <zack@codesourcery.com>
1952
1953         * c-decl.c (pushdecl): Clarify comment.
1954
1955 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
1956
1957         * doc/install.texi: Update instructions for Ada cross builds
1958
1959         PR ada/5909:
1960         * doc/sourcebuild.texi: Document Ada test suite.
1961
1962 2003-10-27  Stephane Carrez  <stcarrez@nerim.fr>
1963
1964         * config/m68hc11/m68hc11.c: Convert to ISO C90.
1965         * config/m68hc11/m68hc11-protos.h: Likewise.
1966
1967 2003-10-27  Jan Hubicka  <jh@suse.cz>
1968             Eric Botcazou  <ebotcazou@libertysurf.fr>
1969
1970         * toplev.c (enum dump_file_index, dump_file): Fix ordering of
1971         webizer pass dump.
1972
1973 2003-10-27  Jakub Jelinek  <jakub@redhat.com>
1974             Jan Hubicka  <jh@suse.cz>
1975
1976         * reload1.c (struct elim_table): Change offset, initial_offset and
1977         previous_offset fields to HOST_WIDE_INT.
1978         (offsets_at): Change from int to HOST_WIDE_INT.
1979         (reload): Adjust offsets_at initialization.
1980         (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
1981         (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
1982         * config/i386/i386.c (ix86_compute_frame_layout): Change offset type
1983         to HOST_WIDE_INT.  Don't save regs using mov for huge frame sizes
1984         if TARGET_64BIT.
1985         (pro_epilogue_adjust_stack): New function.
1986         (ix86_expand_prologue, ix86_expand_epilogue): Use it.
1987         * config/i386/i386.md (pro_epilogue_adjust_stack): Remove.
1988         (pro_epilogue_adjust_stack_1): Remove * in front of name.
1989         (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
1990         (pro_epilogue_adjust_stack_rex64_2): New insn.
1991
1992         * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
1993
1994         * config/i386/i386.c (ix86_expand_call): Replace 40 with
1995         FIRST_REX_INT_REG + 3 /* R11 */.
1996
1997 2003-10-26  Richard Henderson  <rth@redhat.com>
1998
1999         * config/alpha/alpha.md (attr cannot_copy): New.
2000         (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
2001         prologue_ldgp_er_2, prologue_ldgp_1): Set it.
2002         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
2003
2004 2003-10-26  Daniel Berlin  <dberlin@dberlin.org>
2005
2006         * ggc-zone.c:  New file, zone allocating collector.
2007         * configure: Accept zone option for --with-gc
2008         * configure.in: Ditto.
2009         * ggc.h (ggc_pch_count_object): Pass bool indicating
2010         stringiness. Update all callers.
2011         (ggc_pch_alloc_object): Ditto.
2012         (ggc_pch_write_object): Ditto.
2013         (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
2014         type.
2015         (ggc_alloc_rtvec): Ditto.
2016         (ggc_alloc_tree): Use zone allocation, since some things using this macro
2017         aren't a single typecode.
2018         * ggc-none.c (ggc_alloc_typed): New function.
2019         (ggc_alloc_zone): Ditto.
2020         * ggc-page.c: Ditto on both functions.
2021
2022 2003-10-26  Gunther Nikl  <gni@gecko.de>
2023
2024         * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
2025         frame information is always valid.
2026         (m68k_output_function_prologue): Remove superfluous TARGET_68881
2027         test; fix formatting.
2028
2029 2003-10-26  Gunther Nikl  <gni@gecko.de>
2030
2031         * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
2032         reg_rev_mask computation.
2033         (m68k_output_function_prologue): Fix usage of current_frame (one typo
2034         and one missing); use reg_rev_mask not reg_mask.
2035         (m68k_output_function_epilogue): Fix usage of current_frame;
2036         use fpu_rev_mask not fpu_mask.
2037
2038 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
2039
2040         * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
2041         num_saved_regs, use current_frame.reg_no instead.
2042
2043 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
2044             Paul Dale  <pauli@snapgear.com>
2045
2046         * doc/extend.texi (interrupt_handler): Add m68k to the
2047         list of processors implementing it.
2048         * doc/invoke.texi (-msep-data): Document new m68k option.
2049         (-mno-sep-data): Likewise.
2050         (-mid-shared-library): Likewise.
2051         (-mno-id-shared-library): Likewise.
2052         (-mshared-library-id): Likewise.
2053
2054 2003-10-26  Andreas Jaeger  <aj@suse.de>
2055
2056         * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
2057         comparison.
2058         (_Unwind_SetGR): Likewise.
2059
2060 2003-10-26  Ottavio Campana <ottavio@campana.vi.it>
2061
2062         PR target/12690
2063         * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
2064
2065 2003-10-26  Gunther Nikl  <gni@gecko.de>
2066
2067         * config/m68k/m68k.c (m68k_output_function_prologue): Move front
2068         comment from here to...
2069         (m68k_save_reg): ...here. Fix comment formatting.
2070         (m68k_output_function_prologue): Fix comment formatting.
2071         (m68k_output_function_epilogue): Likewise.
2072         (const_method): Likewise.
2073
2074 2003-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2075
2076         * toplev.c (default_get_pch_validity): Guard the use of
2077         target_options with #ifdef TARGET_OPTIONS.
2078         (default_pch_valid_p): Likewise.
2079
2080 2003-10-26  Andreas Jaeger  <aj@suse.de>
2081             Zack Weinberg  <zack@codesourcery.com>
2082             Andreas Tobler <toa@pop.agri.ch>
2083
2084         * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
2085         (output_die): Likewise.
2086         (print_die): Likewise.
2087
2088 2003-10-26  Andreas Jaeger  <aj@suse.de>
2089
2090         * tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
2091         dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
2092         dwarf2out.c change.
2093
2094         * toplev.c (default_pch_valid_p): Fix warning.
2095
2096 2003-10-25  Roger Sayle  <roger@eyesopen.com>
2097
2098         * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
2099         RTL nodes.  If an operator's operands are unchanged, return the
2100         original argument unchanged.
2101
2102 2003-10-26  Graham Stott  <graham.stott@btinternet.com>
2103
2104         Fix bootstrap failure.
2105         * expmed.c (store_bit_field): Don't compare bitsize against
2106         modes with zero bit-size.
2107
2108         (extract_bit_field): Likewise
2109
2110 2003-10-25  Jan Hubicka  <jh@suse.cz>
2111
2112         * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
2113         (cfa_loc): Likewise.
2114         (reg_save, stack_adjust_offset, queue_reg_save): Replace long by
2115         HOST_WIDE_INT.
2116         (args_size, old_args_size): change type to HOST_WIDE_INT.
2117         (dwarf2out_def_cfa, dwarf2out_args_size,
2118         dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
2119         (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
2120         (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
2121         AT_offset): Use HOST_WIDE_INT.
2122         (based_loc_descr): offset is HOST_WIDE_INT.
2123         (add_data_member): Likewise.
2124         (add_const_value_attribute): Simplify.
2125
2126 2003-10-25  Richard Henderson  <rth@redhat.com>
2127
2128         * config/i386/i386.c (ix86_eax_live_at_start_p): New.
2129         (ix86_expand_prologue): Save and restore eax around stack probe
2130         if it's live.
2131
2132 2003-10-25  Jan Hubicka  <jh@suse.cz>
2133
2134         * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
2135
2136 2003-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2137
2138         PR target/12712
2139         * reg-stack.c (convert_regs_1): Create an arbitrary input stack
2140         if the block has no predecessors.
2141         (convert_regs_2): Document the problem with successors whose
2142         only predecessor is the block to be processed.
2143         (convert_regs): Don't create the arbitrary input stack here.
2144
2145 2003-10-24  Zack Weinberg  <zack@codesourcery.com>
2146
2147         * genmodes.c (struct mode_data): Add contained and next_cont
2148         fields.
2149         (complete_mode): Maintain linked list of modes that have a
2150         given component.
2151         (emit_mode_unit_size): Delete.
2152         (emit_mode_nunits): New.
2153         (emit_insn_modes_c): Update to match.
2154         (emit_mode_adjustments): Propagate size and alignment
2155         adjustments from component modes to their containers.
2156         * machmode.h (mode_unit_size): Delete.
2157         (mode_nunits): New.
2158         (GET_MODE_NUNITS): Just return the value in the table.
2159         (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
2160         GET_MODE_SIZE.
2161         * expmed.c (store_bit_field, extract_bit_field): Can use a
2162         plain move instruction if bitsize >= GET_MODE_BITSIZE of
2163         destination/source mode, respectively.
2164         * varasm.c (assemble_real): Write out the full size of the
2165         constant, not just its bitsize.
2166         (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
2167
2168         * config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
2169         Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
2170         alignment of XF and TF modes in compliance with ia64 ABIs.
2171         Can now hardwire the format of both modes.
2172         * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
2173         (general_tfmode_operand, destination_tfmode_operand)
2174         (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
2175         general_xfmode_operand, destination_xfmode_operand,
2176         xfreg_or_fp01_operand, spill_xfmode_operand respectively.
2177         (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
2178         and float80_type be 96 so they get XFmode.  Use !TARGET_HPUX,
2179         not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
2180         __float128.
2181         * config/ia64/ia64.h: Default TARGET_HPUX to 0.
2182         Change TFmode to XFmode wherever appropriate.  Remove all
2183         references to INTEL_EXTENDED_IEEE_FORMAT.
2184         (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
2185         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
2186         (PREDICATE_CODES): Update to match function renames.
2187         * config/ia64/ia64.md: Change TF to XF throughout; rename all
2188         patterns to match.  Remove all references to
2189         INTEL_EXTENDED_IEEE_FORMAT.  Update predicate calls to match
2190         function renames.
2191         * config/ia64/ia64-protos.c: Update all prototypes to match
2192         renamed functions.
2193         * config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
2194         Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
2195         * config/ia64/lib1funcs.asm: Add __divxf3 as new name for
2196         __divtf3; keep old name for backward compatibility.
2197         (L__compat): New section providing forwarding stubs for
2198         __fixtfti, __fixunstfti, __floattitf.
2199         * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
2200
2201 2003-10-24  Geoffrey Keating  <geoffk@apple.com>
2202
2203         PR 10757
2204         * c-pch.c: Include target.h.  Improve comments.
2205         (struct c_pch_validity): Add target_data_length.
2206         (pch_init): Add target's validity data.
2207         (c_common_valid_pch): Check target's validity data.
2208         * target-def.h (TARGET_GET_PCH_VALIDITY): New.
2209         (TARGET_PCH_VALID_P): New.
2210         (TARGET_INITIALIZER): Add new fields.
2211         * target.h: Include tm.h.
2212         (struct gcc_target): Add get_pch_validity, pch_valid_p.
2213         * toplev.h (default_get_pch_validity): New prototype.
2214         (default_pch_valid_p): New prototype.
2215         * toplev.c (default_get_pch_validity): New routine.
2216         (default_pch_valid_p): New routine.
2217         * Makefile.in (TARGET_H): Add TM_H.  Replace all users of
2218         target.h with $(TARGET_H).
2219         (c-pch.o): Add TARGET_H.
2220         * doc/tm.texi (PCH Target): New node.
2221         (TARGET_GET_PCH_VALIDITY): Document.
2222         (TARGET_PCH_VALID_P): Document.
2223
2224 2003-10-24  Kelley Cook  <kcook@gcc.gnu.org>
2225
2226         * Makefile.in: Define a vpath for %.texi.  Remove explicit $(docdir)
2227         and $(docdir)/include from any *.texi dependencies.
2228         ($(docobjdir)/%.dvi): Depend on stmp-docobjdir.
2229         ($(docobjdir)/%.1): Depend on .pod instead of .texi.
2230         ($(docobjdir)/%.7): Likewise.
2231         (%.pod): New implicit rule.
2232         (cpp.pod): New dependency only rule.
2233         (gcc.pod): New intermediate rule with dependencies and commands.
2234         (gfdl.pod): Likewise.
2235         (fsf-funding.pod): Likewise.
2236
2237 2003-10-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2238
2239         * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and
2240         related code.
2241         * fixinc/fixinc.ptx: Remove.
2242         * fixinc/fixinc.svr4: Remove.
2243
2244 2003-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
2245
2246         * config/s390/s390.c (load_multiple_operation): Allow both SImode
2247         and DImode if word_mode is DImode.
2248         (store_multiple_operation): Likewise.
2249         * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise.
2250         ("*load_multiple_di"): Allow only if word_mode == DImode.
2251         ("movqi"): Use LLGC whenever TARGET_ZARCH.
2252         ("fix_truncdfsi2"): Fix incorrect temporary size.
2253         ("fix_truncsfsi2"): Likewise.
2254         ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint
2255         string for function return value operand.
2256         ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise.
2257
2258 2003-10-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2259
2260         * c-parse.in (array_declarator): Use expr_no_commas.
2261         Fixes PR c/11943.
2262
2263 2003-10-24  Richard Sandiford  <rsandifo@redhat.com>
2264
2265         * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and
2266         associated includes in #ifndef inhibit_libc.
2267
2268 2003-10-24  Roger Sayle  <roger@eyesopen.com>
2269
2270         * doc/libgcc.texi: Document some more of the libgcc API.
2271
2272 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
2273
2274         * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for
2275         comparing a constant with small negative numbers and add costing
2276         for constants in conjunction with AND.
2277         (note_invalid_constants): Tidy previous change.
2278         (thumb_cmp_operand): Tidy.
2279         (thumb_cmpneg_operand): New function.
2280         * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing
2281         for size.
2282         (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define.
2283         (PREDICATE_CODES): Add thumb_cmpneg_operand.
2284         * arm.md (cbranchsi4): Convert to define_expand.  Handle comparison
2285         with a negative constant.
2286         (cbranchsi4_insn): Matcher for cbranchsi4.
2287         (cbranchsi4_scratch): Similar, but a scratch is available for
2288         handling negative constants.
2289         (movsi_cbranchsi4): New pattern.
2290         (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch
2291         and use the TST instruction.
2292         (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1)
2293         (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing
2294         cannot see high regs or memory alternatives.
2295         (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns.
2296
2297 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
2298
2299         * arm.c (note_invalid_constants): Try to extract the constant
2300         pool value using avoid_constant_pool_reference; only use
2301         get_pool_constant if that returns the original reference.
2302
2303 2003-10-24  Jan Hubicka  <jh@suse.cz>
2304
2305         PR c++/12624
2306         * varasm.c (notice_global_symbol): Disqualify global registers.
2307
2308 2003-10-23  Roger Sayle  <roger@eyesopen.com>
2309
2310         PR middle-end/11414
2311         * loop.c (load_mems): Use redirect_jump to forward jumps from
2312         the original loop end label to the new "loop sink" block's label.
2313
2314 2003-10-23  Roger Sayle  <roger@eyesopen.com>
2315
2316         PR middle-end/12705
2317         * optabs.c (expand_binop): When expanding complex operations
2318         inline, always calculate result into a new temporary register.
2319         Minor code clean-ups.
2320
2321 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2322
2323         * objc/lang-specs.h: Handle -print-objc-runtime-info.
2324         * doc/invoke.texi (Objective-C Dialect Options): Document it.
2325
2326 2003-10-24  Danny Smith  <dannysmith@users.sourceforge.net>
2327
2328         * config/i386/cygwin.asm: Add copyright notice. Add comment
2329         on why this code is needed.
2330
2331 2003-10-23  Kazu Hirata  <kazu@cs.umass.edu>
2332
2333         * config/h8300/clzhi2.c: Fix warnings.
2334         * config/h8300/ctzhi2.c: Likewise.
2335         * config/h8300/fixunssfsi.c: Likewise.
2336         * config/h8300/parityhi2.c: Likewise.
2337         * config/h8300/popcounthi2.c: Likewise.
2338
2339 2003-10-23  James E Wilson  <wilson@specifixinc.com>
2340
2341         * gcc.c (option_map): Delete --target and --use-version.
2342
2343 2003-10-23  Fariborz Jahanian  <fjahanian@apple.com>
2344             David Edelsohn  <edelsohn@gnu.org>
2345
2346         * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not
2347         TARGET_POWREPC64.
2348         (UNITS_PER_GPR_WORD): Define.
2349         (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD.
2350         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
2351         (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD.
2352         (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD.
2353         * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for
2354         DFmode and DImode in 32-bit ABI / 64-bit computation mode.
2355         (rs6000_emit_prologue): Select reg_mode and reg_size using
2356         TARGET_32BIT, not TARGET_POWERPC64.
2357         (rs6000_function_value): Generate PARALLEL for DImode in 32-bit
2358         ABI / 64-bit computation mode
2359
2360 2003-10-22  Andrew Haley  <aph@redhat.com>
2361
2362         * toplev.c (output_file_directive): Allow for null input_name.
2363
2364 2003-10-22  Waldek Hebisch <hebisch@math.uni.wroc.pl>
2365
2366         * config/i386/i386.c (classify_argument): Handle SET_TYPE.
2367
2368 2003-10-22  Chris Demetriou  <cgd@broadcom.com>
2369
2370         * configure.in: In --enable-generated-files-in-srcdir option
2371         handling, fix default case handling.
2372         * configure: Regenerate.
2373
2374 2003-10-22  Phil Edwards  <phil@codesourcery.com>
2375
2376         * config.gcc:  Update *-*-vxworks* generic hook and comments.
2377         (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks,
2378         mips-wrs-windiss, sh-wrs-vxworks):  New stanzas.
2379         * genmultilib:  Allow the MULTILIB_OSDIRNAMES to be mapped directly.
2380         * config/svr4.h (SWITCH_TAKES_ARG):  Undefine it before redefining it.
2381         * config/windiss.h:  New file.
2382         * config/arm/t-vxworks:  New file.
2383         * config/arm/vxworks.h:  New file.
2384         * config/i386/t-vxworks:  New file.
2385         * config/i386/vxworks.h:  New file.
2386         * config/mips/t-vxworks:  New file.
2387         * config/mips/vxworks.h:  New file.
2388         * config/mips/windiss.h:  New file.
2389         * config/sh/t-vxworks:  New file.
2390         * config/sh/vxworks.h:  New file.
2391
2392 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2393
2394         * config/h8300/h8300.c (h8300_output_function_epilogue): Remove.
2395         (h8300_saveall_function_p): New.
2396         (h8300_insert_attributes): Insert the saveall attribute if
2397         #pragma saveall is specified.
2398         (h8300_attribute_table): Add saveall.
2399         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2400         * doc/extend.texi: Mention the saveall attribute.
2401
2402 2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2403
2404         * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
2405         deprecation of casts as lvalues.
2406         * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
2407         * fixinc/fixincl.x: Regenerate.
2408         * fixinc/tests/base/obstack.h: New test.
2409
2410 2003-10-22  Andreas Schwab  <schwab@suse.de>
2411
2412         PR target/12676
2413         * config/m68k/m68k.c (output_addsi3): Fix range check to work on
2414         LP64 platforms.
2415
2416 2003-10-22  Jan Hubicka  <jh@suse.cz>
2417
2418         * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check
2419         presence of DW_AT_inline.
2420         (gen_subprogram_die): Likewise; do not abort instead of emitting
2421         DW_AT_not_inline.
2422
2423 2003-10-22  Jan Hubicka  <jh@suse.cz>
2424
2425         * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when
2426         global info is not ready.
2427
2428 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2429
2430         * doc/extend.texi: Mention H8S wherever H8/300H is mentioned.
2431
2432 2003-10-22  Ulrich Weigand  <uweigand@de.ibm.com>
2433
2434         * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ...
2435         ("*movstr_short"): ... into this insn pattern.
2436         ("movstr_short"): New expander.
2437         ("*movstr_long_64"): Rename from "movstr_long_64", simplify.
2438         ("*movstr_long_31"): Rename from "movstr_long_31", simplify.
2439         ("movstr_long"): New expander.
2440         ("clrstr_short_64", "clrstr_short_31"): Merge ...
2441         ("*clrstr_short"): ... into this insn pattern.
2442         ("clrstr_short"): New expander.
2443         ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify.
2444         ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify.
2445         ("clrstr_long"): New expander.
2446         ("cmpmem_short_64", "cmpmem_short_31"): Merge ...
2447         ("*cmpmem_short"): ... into this insn pattern.
2448         ("cmpmem_short"): New expander.
2449         ("*cmpmem_long_64"): Rename from "cmpmem_long_64".
2450         ("*cmpmem_long_31"): Rename from "cmpmem_long_31".
2451         ("cmpmem_long"): New expander.
2452         * config/s390/s390.c (s390_expand_movstr): Use new expanders.
2453         (s390_expand_clrstr): Likewise.
2454         (s390_expand_cmpmem): Likewise.
2455
2456 2003-10-22  Mark Mitchell  <mark@codesourcery.com>
2457
2458         * c-pch.c (struct c_pch_validity): Add pch_init field.
2459         (pch_init): Set it.
2460         (c_common_valid_pch): Check it.
2461
2462 2003-10-22  David Taylor <dtaylor@emc.com>
2463
2464         PR debug/12500
2465         * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
2466
2467 2003-10-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2468
2469         * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call
2470         alpha_return_in_memory if no VALTYPE specified.
2471
2472 2003-10-22  Jan Hubicka  <jh@suse.cz>
2473
2474         PR debug/12389
2475         * Makefile.in (dwarf2out.o): Depend on cgraph.h.
2476         * cgraph.c (cgraph_function_possibly_inlined_p): New function.
2477         * cgraph.h (cgraph_function_possibly_inlined_p): Declare.
2478         (cgraph_global_info): Add flag inlined
2479         * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
2480         cgraph_function_possibly_inded_p
2481         * cgraphunit.c (mark_inline): Set inlined flag.
2482         * toplev.c (rest_of_decl_compilation): Call outlining_inline_function
2483         only for possibly inlined functions.
2484         * c-decl.c (duplicate_decls): Never output abstract DIE representing old
2485         body of function.
2486
2487 2003-10-22  Andrew Haley  <aph@redhat.com>
2488
2489         * varasm.c (output_constructor): Make constructor annotation
2490         conditional on ASM_COMMENT_START.
2491
2492 2003-10-21  Jason Merrill  <jason@redhat.com>
2493
2494         * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type.
2495         (get_narrower): Likewise.
2496
2497         * stor-layout.c (layout_decl): Do packed field alignment for
2498         bit-fields, too.
2499
2500 2003-10-21  Eric Christopher  <echristo@redhat.com>
2501
2502         * expr.c (convert_move): Use FLOAT_EXTEND for extensions.
2503
2504 2003-10-21  Geoffrey Keating  <geoffk@apple.com>
2505
2506         * c-pch.c: Add comments in various places.
2507         (struct c_pch_validity): Add the lengths of various strings.
2508         (host_machine): New static.
2509         (target_machine): New static.
2510         (get_ident): Bump version number.
2511         (pch_init): Write out version, host, target validity data.
2512         (c_common_valid_pch): Check version, host, target.
2513         * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and
2514         TARGET_MACHINE.
2515
2516 2003-10-21  Jason Merrill  <jason@redhat.com>
2517
2518         * tree.h (IS_EXPR_CODE_CLASS): Use strchr.
2519         (EXPR_P): New macro.
2520
2521 2003-10-21  Zack Weinberg  <zack@codesourcery.com>
2522
2523         * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
2524         * config/ia64/ia64.c (ia64_expand_fetch_and_op,
2525         ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
2526         DImode.   Use convert_move to load ar.ccv.
2527         (ia64_expand_compare_and_swap): Likewise.
2528         If expand_expr doesn't put 'old' and 'new' in the proper
2529         modes, run them through convert_to_mode.
2530
2531 2003-10-21  Eric Christopher  <echristo@redhat.com>
2532
2533         * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL
2534         for too large bitfields.
2535
2536 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2537
2538         * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO.
2539
2540 2003-10-21  Andrew Haley  <aph@redhat.com>
2541
2542         * varasm.c (output_constructor): Annotate constructor.
2543
2544 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2545
2546         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod
2547         on existence of destination file.
2548
2549 2003-10-21  Jan Hubicka  <jh@suse.cz>
2550
2551         * haifa-sched.c (choose_ready): Initialize index.
2552
2553 2003-10-21  Jason Merrill  <jason@redhat.com>
2554
2555         * tree.c (build1): Fix off-by-one error.
2556
2557 2003-10-21  Robert Millan  <robertmh@gnu.org>
2558
2559         * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions.
2560         * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions.
2561         * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file.
2562         * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu.
2563
2564 2003-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2565
2566         * web.c: Fix various comments.
2567
2568 2003-10-20  Nicolas Pitre <nico@cam.org>
2569
2570         * config/arm/arm.c (arm_override_options): Set arm_constant_limit
2571         to 2 instead of 1 when optimize_size is true.  Gather code based on
2572         optimize_size together.  Add comment about XScale load latency.
2573
2574 2003-10-21  Gunther Nikl  <gni@gecko.de>
2575
2576         * config/m68k/m68k.c (m68k_output_function_prologue): Remove
2577         obsolete comments.
2578
2579 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2580
2581         * Makefile.in: Get parsedir and docobjdir from configure.
2582         * configure.in: Recogonize --enable-generated-files-in-srcdir.
2583         Pass along parsedir and docobjdir.
2584         * configure: Regenerate.
2585         * doc/install.texi: Document --enable-generated-files-in-srcdir.
2586
2587 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2588
2589         * Makefile.in: Define $(docdir) before the Make-lang.in fragments are
2590         included.
2591
2592 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2593
2594         * c-common.c (expand_tree_builtin): Ensure creal and cimag
2595         functions do not return lvalues.
2596
2597 2003-10-20  Jason Merrill  <jason@redhat.com>
2598
2599         PR c/12553
2600         * tree.c (build1) <ADDR_EXPR>: Set TREE_SIDE_EFFECTS
2601         appropriately.
2602
2603         PR c/11446
2604         * stor-layout.c (layout_decl): Fix alignment handling.
2605
2606 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2607
2608         * doc/extend.texi: Deprecate casts as lvalues.
2609
2610 2003-10-20  Jan Hubicka  <jh@suse.cz>
2611
2612         * toplev.c (rest_of_compilation): Fix webizer pass ordering.
2613
2614         * cgraphunit.c (decide_is_function_needed):  Fix test dealing
2615         with functions implicitly made inline.
2616
2617         * cgraphunit.c (cgraph_decide_inlining_incrementally):  New function.
2618         (cgraph_finalize_function): Use it.
2619         (cgraph_mark_inline): Allow incrmental decisions
2620         * invoke.texi (max-inline-slope, min-inline-insns): Kill.
2621         * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill.
2622         * tree-inline.c (limits_allow_inlining): Kill.
2623         (expand_call_inline): Always use unit-at-a-time path.
2624
2625 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2626
2627         * fixinc/inclhack.def (hpux11_snprintf): New edit.
2628         * fixinc/fixincl.x: Regenerate.
2629         * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
2630
2631 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
2632
2633         * Makefile.in (install-info): Simplify.
2634         ($(DESTDIR)$(infodir)/%.info): New rule.
2635         * configure.in (target_list): Remove install-info.
2636         * doc/.cvsignore (gcc.info*): Remove.
2637         (gccint.info*): Likewise.
2638         (gccinstall.info*): Likewise.
2639         (cpp.info*): Likewise.
2640         (cppinternals.info*): Likewise.
2641         (*.info*): Add it.
2642         * doc/sourcebuild.texi: Update description of install-info.
2643         * objc/Make-lang.in (objc.install-info): Remove.
2644
2645 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2646
2647         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
2648         Use it in _MIPS_SIM definition.
2649         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2650
2651 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2652
2653         * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
2654         virtual register, but only if file == asm_out_file.
2655         * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
2656         for ARG_POINTER_REGNUM.
2657
2658 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2659
2660         * c-common.c (registered_builtin_types): New static.
2661         (c_common_type_for_mode): Consult registered_builtin_types.
2662         (c_register_builtin_type): Add type to registered_builtin_types.
2663         * optabs.c (init_floating_libfuncs): Initialize libfuncs for
2664         all MODE_FLOAT modes, not just the ones corresponding to
2665         float_type_node, double_type_node, and long_double_type_node.
2666
2667 2003-10-20  Richard Henderson  <rth@redhat.com>
2668
2669         * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
2670         * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
2671
2672 2003-10-20  Dorit Naishlos  <dorit@il.ibm.com>
2673
2674         * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
2675         support new flag -minsert-sched-nops.
2676         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
2677         * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
2678         support new flag -minsert-sched-nops.
2679         (is_cracked_insn, is_microcoded_insn): New functions.
2680         (rs6000_sched_finish): New function.
2681         (rs6000_issue_rate): Return 5 for power4.
2682         (get_next_active_insn, insn_terminates_group_p): New
2683         functions.
2684         (is_costly_group, force_new_group): New functions.
2685         (redefine_groups, pad_groups): New functions.
2686         (rs6000_variable_issue): Use new functions.
2687         * doc/invoke.texi (-minsert-sched-nops): Document new
2688         option.
2689
2690 2003-10-20  David S. Miller  <davem@redhat.com>
2691
2692         * config/sparc/sparc.md (type attribute): Add new insn types
2693         fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
2694         (patterns emitting VIS insns): Use them.
2695         * config/sparc/ultra1_2.md: Add VIS scheduling rules.
2696         * config/sparc/ultra3.md: Likewise.
2697
2698 2003-10-20  Falk Hueffner  <falk@debian.org>
2699
2700         PR target/12654
2701         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
2702         comparison against constant by adjusting the argument except for
2703         EQ and NE.
2704
2705 2003-10-19  Mark Mitchell  <mark@codesourcery.com>
2706
2707         * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
2708         arm1136jfs, and armv6j.
2709         * config/arm/arm.c (FL_ARCH6J): New macro.
2710         (FL_VFPV2): Likewise.
2711         (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
2712         and arm1136jfs.
2713         (all_architectures): Add entry for armv6j.
2714         (arm_override_options): Add entries for arm926ejs, arm1026ejs,
2715         arm1136js, and arm1136jfs.
2716         * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
2717         (TARGET_CPU_arm1026ej_s): Likewise.
2718         (TARGET_CPU_arm1136j_s): Likewise.
2719         (TARGET_CPU_arm1136jf_s): Likewise.
2720         * doc/invoke.texi: Document new ARM cores and architecture
2721         variants.
2722
2723 2003-10-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2724
2725         * Makefile.in (toplev.o): Add value-prof.h dependency.
2726         (value-prof.o): Add REGS_H dependency.
2727         * common.opt (fprofile-values, fvpt): New.
2728         * flags.h (flag_value_profile_transformations): Declare.
2729         * opts.c (common_handle_option): Handle -fprofile_values and
2730         -fvpt.
2731         * profile.c (branch_prob): Don't remove death notes here.
2732         * timevar.def (TV_VPT): New.
2733         * value-prof.c: Include regs.h.
2734         (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
2735         gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
2736         mod_subtract_transform, value_profile_transformations): New.
2737         (insn_values_to_profile): Call insn_divmod_values_to_profile.
2738         (find_values_to_profile): Add dumps.
2739         * value-prof.h (value_profile_transformations): Declare.
2740         * toplev.c: Include value-prof.h.
2741         (rest_of_handle_value_profile_transformations): New.
2742         (enum dump_file_index): Add DFI_vpt.
2743         (dump_file): Add vpt dump.
2744         (flag_value_profile_transformations): New.
2745         (lang_independent_options): Add flag_profile_values and
2746         flag_value_profile_transformations.
2747         (rest_of_compilation): Call
2748         rest_of_handle_value_profile_transformations.
2749         (process_options): Let -fvpt imply -fprofile-values.
2750         * doc/invoke.texi (-fvpt): Document.
2751
2752 2003-10-19  Jan Hubicka  <jh@suse.cz>
2753
2754         * i386.c (print_reg): Do not abort on certain registers.
2755
2756         PR optimization/12612
2757         * reg-stack.c (subst_stack_regs_pat):  Use st(1) for clobbers.
2758         * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
2759         match_scratch; avoid bogus paralles.
2760
2761         PR target/12674
2762         * i386.c (ix86_function_regparm): Disable implicit register passing
2763         conventions when profiling.
2764
2765 2003-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
2766             Richard Henderson  <rth@redhat.com>
2767
2768         PR optimization/8178
2769         * config/i386/i386.md (*movsi_zero): Delete.
2770         (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
2771
2772 2003-10-19  Richard Henderson  <rth@redhat.com>
2773
2774         * config/alpha/alpha.c (fix_operator): New.
2775         (divmod_operator): Tidy.
2776         (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
2777         * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
2778         (PREDICATE_CODES): Update.
2779         * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
2780         (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
2781         (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
2782         (fix_truncsfdi_ieee): Likewise.
2783         (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
2784         (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
2785         * config/alpha/alpha-protos.h: Update.
2786
2787 2003-10-19  Richard Sandiford  <rsandifo@redhat.com>
2788
2789         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
2790         * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
2791         * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
2792         constant operands.
2793
2794 2003-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2795
2796         * doc/extend.texi: Fix typos.
2797         * doc/invoke.texi: Likewise.
2798
2799 2003-10-18  Nicolas Pitre <nico@cam.org>
2800
2801         * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
2802         XScale optimizations not arm_arch_xscale.
2803         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
2804
2805 2003-10-18  Ulrich Weigand  <uweigand@de.ibm.com>
2806
2807         * config/s390/s390-protos.h (shift_count_operand): Add prototype.
2808         * config/s390/s390.c (shift_count_operand): New function.
2809         (s390_extra_constraint): Use it to implement 'Y' constraint.
2810         (print_shift_count_operand): New function.
2811         (print_operand): Use it to implement '%Y'.
2812         * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
2813         (PREDICATE_CODES): Add shift_count_operand.
2814         * config/s390/s390.md ("rotldi3"): Merge alternatives,
2815         using "shift_count_operand" predicate and "Y" constraint,
2816         and "%Y" to output the combined shift count.
2817         ("rotlsi3"): Likewise.
2818         ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
2819         ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
2820         "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
2821         ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
2822         ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
2823         ("lshrsi3"): Likewise.
2824
2825 2003-10-18  Gunther Nikl  <gni@gecko.de>
2826
2827         * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
2828         argument to asm_fprintf statement.
2829
2830 2003-10-18  Fariborz Jahanian  <fjahanian@apple.com>
2831
2832         * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
2833         (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
2834         a "long long" argument.
2835
2836 2003-10-18  Alexandre Oliva  <aoliva@redhat.com>
2837
2838         * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
2839         as well.
2840
2841 2003-10-18  Richard Sandiford  <rsandifo@redhat.com>
2842
2843         * rtl.h (rtl_size): Declare.
2844         (rtunion): Remove rtwint.
2845         (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
2846         (RTX_HDR_SIZE, RTX_SIZE): New macros.
2847         (RTL_CHECK1): Adjust for new rtx_def layout.
2848         (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
2849         (XWINT, XCWINT): Likewise.  Access the rtx structure directly.
2850         (X0WINT): Remove.
2851         (X0ANY): New macro.
2852         * rtl.def: Adjust comments for new rtx_def layout.
2853         * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
2854         number of slots.
2855         * rtl.c (rtx_size): New array.
2856         (rtx_alloc): Adjust call to ggc_alloc_rtx.  Use RTX_HDR_SIZE.
2857         (copy_rtx): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2858         (shallow_copy_rtx): Adjust call to ggc_alloc_rtx.  Use RTX_SIZE.
2859         * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
2860         * emit-rtl.c (copy_most_rtx): Likewise.
2861         (copy_rtx_if_shared): Use RTX_SIZE.
2862         (copy_insn_1): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2863         * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call.  Use RTX_HDR_SIZE.
2864         * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
2865         (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
2866         an array.  Adjust output for new rtx_def layout.
2867         * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
2868         * reload1.c (eliminate_regs): Use RTX_SIZE.
2869         * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
2870         * gdbinit.in (pi): Likewise.
2871
2872 2003-10-18  Jan Hubicka  <jh@suse.cz>
2873
2874         * integrate.c (copy_decl_for_inlining): Revert previous patch.
2875
2876 2003-10-18  Jan Hubicka  <jh@suse.cz>
2877
2878         * integrate.c (copy_decl_for_inlining): Fix copying of copies.
2879
2880 2003-10-18  Roger Sayle  <roger@eyesopen.com>
2881
2882         * libgcc.texi: Group multi-word types, such as "long double" and
2883         "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
2884         Document __unord?f2 as returning a non-zero value, not just one.
2885
2886 2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
2887
2888         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
2889         ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
2890
2891 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2892
2893         * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
2894         match_operand.
2895
2896 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2897
2898         * config/sparc/sparc.c (function_arg_record_value_1): New fourth
2899         parameter packed_p.  Search for a DECL_PACKED field only if
2900         packed_p is false.  Pass packed_p recursively.
2901         (function_arg_record_value_2): Likewise.
2902         (function_arg_record_value): Update calls to
2903         function_arg_record_value_1 and function_arg_record_value_2.
2904
2905 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2906
2907         * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
2908         was successfully forced to memory before using the result.
2909
2910 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2911
2912         PR optimization/8178
2913         * config/i386/i386.md (*movsi_zero): New insn to set
2914         a register to zero on TARGET_USE_MOV0 targets.
2915
2916 2003-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2917
2918         * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
2919         (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
2920
2921 2003-10-17  David Edelsohn  <edelsohn@gnu.org>
2922
2923         * doc/invoke.texi (gcse-las): Fix typo.
2924
2925 2003-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2926
2927         * doc/install.texi: Remove first part of the sentence for
2928         zsh not working.  Change gcc to GCC.
2929
2930         PR bootstrap/12546
2931         * doc/install.texi: Document that zsh does not work when
2932         configuring gcc.
2933
2934 2003-10-17  Nathanael Nerode  <neroden@gcc.gnu.org>
2935
2936         * config/ptx4.h: Switch to DWARF 2; update comments.
2937
2938 2003-10-17  Segher Boessenkool  <boessen@de.ibm.com>
2939             Hartmut Penner  <hpenner@de.ibm.com>
2940
2941         PR 10404, partial 11591, partial 11601
2942         * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
2943         "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
2944         "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
2945         "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
2946         "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
2947         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
2948         (altivec_expand_stv_builtin): Adjust for the memory_operand.
2949         (altivec_expand_builtin): Call altivec_expand_lv_builtin.
2950         (altivec_init_builtins): Use `long int' for memory offsets.
2951
2952 2003-10-17  Jan Hubicka  <jh@suse.cz>
2953
2954         * opts.c  (common_handle_option): Handle OPT_fweb
2955         * invoke.texi (-fweb): Add missing parts of documentation.
2956
2957 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2958
2959         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
2960         before redefinition.
2961
2962 2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>
2963
2964         * common.opt: Add description of the new -fgcse-las flag.
2965         * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
2966         * gcse.c (hash_scan_set): Handle the case of store expression and
2967         insert the memory expression to the hash table, this way we make it
2968         possible to discover redundant loads after stores and remove them.
2969         (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
2970         to pre_insert_copies, it is not the correct place to call it after
2971         adding stores to be in the available expression hash table.
2972         (pre_insert_copies): Added the call to update_ld_motion_stores when
2973         one or more copies were inserted.
2974         * opts.c (common_handle_option): Handle the -fgcse-las flag.
2975         * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
2976
2977         * doc/invoke.tex: Document new -fgcse-las flag.
2978
2979 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
2980
2981         * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
2982         for posterity, then remove it.
2983
2984 2003-10-17  Richard Earnshaw <rearnsha@arm.com>
2985             Nathan Sidwell  <nathan@codesourcery.com>
2986
2987         * config/arm/arm.c (use_return_insn): Not a single instruction, if
2988         there's a frame pointer.
2989         (arm_output_epilogue): Protect stack pointer from being corrupted
2990         on interrupt.
2991
2992 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2993
2994         * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
2995
2996 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2997
2998         * combine.c (simplify_set): Do not clear out undobuf.other_insn
2999         already set elsewhere.
3000
3001 2003-10-17  Kelley Cook  <kcook@gcc.gnu.org>
3002
3003         * config/i386/i386.c (ix86_expand_prologue):  Use
3004         gen_allocate_stack_worker.
3005
3006 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3007
3008         * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
3009         without gas.
3010         (mips-sgi-irix6*): Likewise.
3011
3012         * config/mips/iris6gas.h: New file.
3013         * gcc/config.gcc (mips-sgi-irix6*): Use it.
3014
3015         * config/mips/mips.h (TARGET_IRIX): Provide default.
3016         (TARGET_IRIX5): Likewise.
3017         (TARGET_SGI_O32_AS): Likewise.
3018         * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
3019         (TARGET_IRIX5): Likewise.
3020         * config/mips/iris6.h (TARGET_IRIX6): Remove.
3021         (TARGET_IRIX5): Redefine as 0.
3022
3023         * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
3024         linker workaround with TARGET_IRIX and mips_abi instead of
3025         ASM_OUTPUT_UNDEF_FUNCTION.
3026         (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
3027         testing TARGET_IRIX and mips_abi explicitly.
3028         * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
3029         * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
3030
3031         * config/mips/mips.c (irix_output_external_libcall): Renamed from
3032         mips_output_external_libcall.
3033         Use new TARGET_IRIX in guard.
3034         * config/mips/mips-protos.h (irix_output_external_libcall): Match
3035         this.
3036         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
3037
3038         * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
3039         Define as 0.
3040
3041         * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
3042         depending on mips_abi.
3043         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
3044         * config/mips/mips.c (mips_output_function_prologue): Test
3045         FUNCTION_NAME_ALREADY_DECLARED at runtime.
3046         (mips_output_function_epilogue): Likewise.
3047         (build_mips16_function_stub): Likewise.
3048         (build_mips16_call_stub): Likewise.
3049         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
3050         default.
3051
3052         * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
3053         IRIX 6 O32 assembler.
3054         (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
3055         (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
3056         _MIPS_SIM for O32 ABI.
3057         (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
3058         (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
3059         (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
3060         Integrate O32 version.
3061         (SUBTARGET_ASM_SPEC): Handle -mabi=32.
3062         (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
3063         O32 ABI.
3064         (BSS_SECTION_ASM_OP_32): Define.
3065         (BSS_SECTION_ASM_OP_64): Likewise.
3066         (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
3067         using them.
3068         (TARGET_ASM_NAMED_SECTION): Reflect renaming.
3069         Move up to allow override for O32 ABI without GNU as.
3070         (EH_FRAME_SECTION_NAME): Define explicitly.
3071         (MUST_USE_SJLJ_EXCEPTIONS): Define.
3072         [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
3073         DTORS_SECTION_ASM_OP): Dummy definitions.
3074         (TARGET_ASM_NAMED_SECTION): Undef statically.
3075         (EH_FRAME_SECTION_NAME): Likewise.
3076         (ASM_OUTPUT_FILENAME): Integrate mips.h version.
3077         (LINK_SPEC): Only use default options -call_shared -no_unresolved
3078         without -r.
3079         Don't pass -init, -fini with -mabi=32.
3080         (COLLECT_PARSE_FLAG): Define.
3081
3082         * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
3083         TARGET_IRIX.
3084         Renamed to use irix_ prefix.
3085         (iris6_asm_named_section): Likewise.
3086         (iris_section_align_entry_eq): Likewise.
3087         (iris_section_align_entry_hash): Likewise.
3088         (iris6_file_start): Likewise.
3089         (iris6_section_align_1): Likewise.
3090         (iris6_file_end): Likewise.
3091         (iris6_section_type_flags): Likewise.
3092         (iris_section_align_htab): Likewise.
3093         (iris_orig_asm_out_file): Likewise.
3094         [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
3095         (TARGET_ASM_FILE_END): Likewise.
3096         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3097
3098         * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
3099         (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
3100         override_options instead.
3101         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
3102         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
3103         * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
3104         flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
3105         assemblers.
3106         Likewise for constructor/destructor handling.
3107         (override_options): Handle IRIX O32 assembler quirks.
3108         [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
3109         without gas.
3110         (mips_file_start): Use new TARGET_IRIX.
3111         (mips_declare_object_name): No special processing for IRIX O32
3112         assembler.
3113         (mips_finish_declare_object): Likewise.
3114         (irix_asm_output_align): Renamed from iris6_asm_output_align.
3115         Don't record alignment for O32 ABI.
3116         (irix_file_start): Renamed from iris6_file_start.
3117         Return early for O32 ABI.
3118         (irix_file_end): Renamed from iris6_file_end.
3119         Don't emit .section directives for O32 ABI.
3120         * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
3121         * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
3122
3123         * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
3124         (MULTILIB_OSDIRNAMES): Likewise.
3125
3126 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3127
3128         * collect2.c (COLLECT_PARSE_FLAG): Provide default.
3129         (main): Use it.
3130         * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
3131
3132 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
3133
3134         * arm-modes.def (CC_Nmode): New condition code mode.
3135         * arm.c (thumb_condition_code): Delete.
3136         (arm_select_cc_mode): Handle single-bit test for Thumb.
3137         (arm_print_operand, cases 'd' and 'D'): Don't special case the
3138         condition code logic for Thumb.
3139         (get_arm_condition_code): Handle CC_Nmode.
3140         (thumb_cbrch_target_operand): New function.
3141         * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
3142         * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
3143         * arm.md: Add Thumb split patterns for zero_extract and
3144         sign_extract.
3145         (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
3146         (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
3147         (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
3148         (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
3149         (cbranchne_decr1): Re-work to use CC_Nmode.
3150
3151         * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
3152         by the return instruction.  Add a use of the link register if it
3153         wasn't stored.
3154
3155 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
3156
3157         * flow.c (init_propagate_block_info): Don't abort if a conditional
3158         jump is not a comparison of a register.  Instead, just don't record
3159         conditional life information.
3160
3161 2003-10-16  Jan Hubicka  <jh@suse.cz>
3162
3163         PR optimization/12630
3164         * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
3165         for operands 7 and 8.
3166
3167 2003-10-16  Kelley Cook  <kcook@gcc.gnu.org>
3168
3169         * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
3170
3171 2003-10-16  Danny Smith  <dannysmith@users.sourceforge.net>
3172
3173         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3174
3175         * config/i386/winnt.c (gen_stdcall_suffix): Make static
3176         (gen_fastcall_suffix): Likewise.
3177         (i386_pe_dllexport_p): Likewise.
3178         (i386_pe_dllimport_p): Likewise.
3179         (i386_pe_mark_dllexport): Likewise.
3180         (i386_pe_mark_dllimport): Likewise.
3181         (i386_pe_asm_named_section): Fix formatting.
3182
3183 2003-10-16  Zack Weinberg  <zack@codesourcery.com>
3184
3185         * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
3186         * system.h: Declare snprintf if necessary.
3187         * configure, config.in: Regenerate.
3188
3189 2003-10-15  David Edelsohn  <edelsohn@gnu.org>
3190
3191         * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
3192         arguments if TARGET_ALTIVEC_ABI.
3193
3194 2003-10-15  Roger Sayle  <roger@eyesopen.com>
3195
3196         * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
3197         fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
3198         fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
3199         New functions.
3200         (expand_builtin_memcpy): Use integer_zerop instead of testing
3201         host_integerp and tree_low_cst directly.  Move misapplied hunk
3202         for optimization wher SRC and DEST point to the same location.
3203         (expand_builtin_mempcpy): From here.
3204         (expand_builtin_memmove): Use integer_zerop instead of testing
3205         host_integerp and tree_low_cst_directly.
3206         (expand_builtin_memset): Likewise.
3207         (expand_builtin_memcmp): Likewise (and for integer_onep).
3208         (expand_builtin_strncmp): Likewise.
3209         (fold_builtin): Call the appropriate fold_builtin_foo functions
3210         to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
3211         strcmp and strncmp.
3212
3213 2003-10-15  Geoffrey Keating  <geoffk@apple.com>
3214
3215         * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
3216         prototype.  Clean up some whitespace.
3217         * config/darwin.c: Use gen_rtx_FOO (...) rather than
3218         gen_rtx (FOO, ...).
3219         (machopic_non_lazy_ptr_name): Make static.
3220         (name_needs_quotes): Allow '.' and '$' unquoted.
3221         (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
3222         case.
3223
3224 2003-10-15  Gábor Lóki  <alga@rgai.hu>
3225
3226         * fold-const.c (tree_swap_operands_p): Disable some features
3227         when optimizing for size.
3228
3229 2003-10-15  David Daney  <ddaney@avtrex.com>
3230
3231         * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
3232         * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
3233         from leaf functions.
3234         (DWARF_FRAME_RETURN_COLUMN): Ditto.
3235         (SIGNAL_UNWIND_RETURN_COLUMN): New, used
3236         by MD_FALLBACK_FRAME_STATE_FOR.
3237         * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
3238
3239 2003-10-15  Zack Weinberg  <zack@codesourcery.com>
3240
3241         * genmodes.c: Include hashtab.h.
3242         (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
3243         (adj_bytesize, adj_alignment, adj_format, new_adjust)
3244         (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
3245         (print_maybe_const_decl, emit_mode_adjustments): New.
3246         (known_modes): Rename to modes.
3247         (find_mode): Kill class argument; look up in hash table.
3248         (new_mode): Insert into hash table also.
3249         (new_adjust): New.
3250         (reset_float_format, make_partial_integer_mode)
3251         (make_vector_mode): Tweak error reporting.
3252         (reset_float_format): Correct type of fourth argument.
3253         (emit_insn_modes_h): Add #defines to help make mode_size,
3254         mode_base_align, and real_format_for_mode conditionally const.
3255         (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
3256         (emit_real_format_for_mode): Likewise, but temporarily disabled.
3257         (emit_insn_modes_c): Call emit_mode_adjustments.
3258         (main): Initialize modes_by_name.
3259         * Makefile.in: Update dependencies.
3260         * machmode.def: Document EXPR arguments and new ADJUST_* statements.
3261         * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
3262         declarations of mode_size and mode_base_align.  Declare
3263         init_adjust_machine_modes.
3264         * toplev.c (backend_init): Call init_adjust_machine_modes.
3265
3266 2003-10-15  Olivier Hainque  <hainque@act-europe.fr>
3267
3268         * genmodes.c (calc_wider_mode): Allocate enough room for all the
3269         entries we'll possibly assign in the sort buffer.
3270
3271 2003-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
3272
3273         * config.gcc (s390x-ibm-tpf*): New target.
3274         * doc/install.texi: Document it.
3275         * config/s390/t-tpf: New file.
3276         * config/s390/tpf.h: New file.
3277
3278 2003-10-15  Hans-Peter Nilsson  <hp@axis.com>
3279
3280         PR target/12598
3281         * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
3282         (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
3283         Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
3284         ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
3285         (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
3286         (define_split "*mov_sidesi_mem"+28, +29, +30): Use
3287         replace_equiv_address, not gen_rtx_MEM.
3288         * config/cris/cris.c (cris_mem_op): New match_operator function.
3289         (cris_notice_update_cc): Use replace_equiv_address, not
3290         gen_rtx_MEM.
3291         * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
3292
3293 2003-10-15  Bernardo Innocenti <bernie@develer.com>
3294
3295         * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
3296         MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
3297         definitions after the other flags.
3298
3299 2003-10-14  Ziemowit Laski  <zlaski@apple.com>
3300
3301         * c-parse.in (methoddef, methodproto): Call objc_add_method()
3302         instead of add_method().
3303         * objc/objc-act.c (objc_check_decl): Do not check for
3304         constant_string_type.
3305         (add_method): Rename to objc_add_method().
3306         (really_start_method): Call objc_add_method() instead of
3307         add_method().
3308         * objc/objc-act.h (add_method): Rename to objc_add_method().
3309
3310 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3311
3312         * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
3313         (s390_slb_comparison): Likewise.
3314         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
3315         New functions.
3316         * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
3317         and s390_slb_comparison.
3318         * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
3319         zSeries machines.
3320         ("*adddi3_31z", "*subdi3_31z"): New insns.
3321         ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
3322         "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
3323         New insns.
3324
3325 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3326
3327         * configure.in: Clean up some feedback echoes.
3328         * configure: Regenerate.
3329
3330         * aclocal.m4: Properly quote names of macros being defined.
3331
3332         * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
3333
3334 2003-10-14  Steve Ellcey  <sje@cup.hp.com>
3335
3336         * config/ia64/ia64.c (ia64_expand_call): Force function address
3337         to DImode.
3338         * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
3339
3340 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3341
3342         * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
3343         "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
3344         ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
3345         "*divsf3_ibm"): Likewise.
3346
3347 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3348
3349         * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
3350         target_alias with target_noncanonical.
3351
3352 2003-10-14  Geoffrey Keating  <geoffk@apple.com>
3353
3354         * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
3355         and add case for machines where outgoing register parameters
3356         get stack space.
3357
3358         * config/darwin.c (machopic_indirect_data_reference): Use a scratch
3359         register when generating indirect address.
3360
3361 2003-10-14  Richard Earnshaw  <rearnsha@arm.com>
3362
3363         * arm.c (arm_addimm_operand): MODE arguemnt is unused.
3364         * arm.md (cbranchne_decr1): Fix bootstrap warning.
3365
3366 2003-10-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3367
3368         * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
3369         * fixinc/fixincl.x: Regenerate.
3370         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
3371         testcase.
3372         Fixes PR bootstrap/9330.
3373
3374 2003-10-13  Eric Christopher  <echristo@redhat.com>
3375
3376         * config/frv/frv.c (frv_adjust_field_align): Redo check for
3377         too wide bitfields.
3378         (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
3379         * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
3380         (SBSS_SECTION_ASM_OP): Remove.
3381         (EXTRA_SECTIONS): Remove in_sbss.
3382         (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
3383         (SBSS_SECTION_FUNCTION, sbss_section): Remove.
3384         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
3385         named_section.
3386
3387 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
3388
3389         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
3390         uses of ${target_alias} for directory names (and other places which
3391         won't like the empty string) with ${target_noncanonical}.  Introduce
3392         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
3393         available.
3394         * configure: Regenerate.
3395
3396 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
3397
3398         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
3399         * config/arm/arm.md: For splits which rely on conditional moves,
3400         remove ! TARGET_IWMMXT condition.
3401
3402 2003-10-13  David S. Miller  <davem@redhat.com>
3403
3404         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
3405         (find_cond_trap): Always increment if we emit a conditional
3406         trap insn.
3407
3408 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
3409
3410         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
3411         with min-insn-modes.o.
3412         (STAGESTUFF): Add min-insn-modes.c.
3413         (genobjs): Add genmodes.o.
3414         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
3415         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
3416         (min-insn-modes.c, min-insn-modes.o): New rules.
3417         (s-modes): Also generate min-insn-modes.c.
3418         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
3419         * genmodes.c (struct mode_data): Add format field.
3420         (blank_mode, validate_mode, complete_mode): Update to match.
3421         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
3422         (_SCALAR_MODE): Kill.
3423         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
3424         (emit_insn_modes_c_header): Adjust.
3425         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
3426         (emit_min_insn_modes_c): New functions.
3427         (emit_insn_modes_c): Call emit_real_format_for_mode.
3428         (main): Add -m option to generate min-insn-modes.c.
3429         * machmode.h: Update documentation.  Add format argument to
3430         all uses of FLOAT_MODE.
3431         * real.c: Don't define real_format_for_mode here.
3432
3433         * dwarfout.c: Move default definition of PRINT_REG...
3434         * defaults.h: ...here.
3435         * print-rtl.c: Include tm_p.h.
3436         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
3437         Kill.
3438         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
3439         this entire block with #ifndef GENERATOR_FILE.
3440         * regclass.c: Unconditionally define reg_names.
3441         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
3442         Don't define DEBUG_REGISTER_NAMES.
3443         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
3444         redefinition of REGISTER_NAMES.
3445         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
3446
3447         * combine.c: Change all preprocessor conditionals on
3448         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
3449         for clarity.
3450         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
3451         * configure.in: Don't define EXTRA_CC_MODES.
3452         * configure, config.in: Regenerate.
3453         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
3454
3455         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
3456         May assume that GET_MODE_CLASS is accurate for extra CC modes
3457         at all times.
3458
3459         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
3460         number of arguments to aggregate_value_p.
3461
3462         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
3463         * machmode.def: Explain ARCH-modes.def.  Document
3464         RESET_FLOAT_FORMAT.  Improve commentary on various mode
3465         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
3466         XF, or TF modes here.  Remove backward-compatibility
3467         definition of CC.
3468
3469         * config/alpha/alpha-modes.def: New file; define TF mode.
3470         * config/arc/arm-modes.def: Define XF mode.
3471         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
3472         float format for SF and DF modes.
3473  &nbs