OSDN Git Service

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