OSDN Git Service

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