OSDN Git Service

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