OSDN Git Service

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