OSDN Git Service

2003-11-19 Andreas Krebbel <krebbel1@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * stmt.c (expand_goto): Memory clobbers added.
4
5 2003-11-19  Andreas Krebbel  <krebbel1@de.ibm.com>
6
7         * reload.c (find_reloads): Added missing type casts.
8
9 2003-11-19  James E Wilson  <wilson@specifixinc.com>
10
11         * combine.c (sets_function_arg_p): Delete unused function.
12
13 2003-11-19  Eric Christopher  <echristo@redhat.com>
14
15         * reload1.c (reload): Revert 2 previous checkins.
16
17 2003-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>
18
19         * cpptrad.c (_cpp_scan_out_logical_line): Improve test for
20         whether directive begins at the beginning of a line.
21
22 2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
23
24         * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries.
25
26 2003-11-19  Gerald Pfeifer  <gp@suse.de>
27
28         * doc/install.texi (Specific): Remove information on old versions
29         of glibc versus old versions of GCC.
30
31 2003-11-19  Richard SAndiford  <rsandifo@redhat.com>
32
33         * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
34         the register lowpart is a TRULY_NOOP_TRUNCATION.
35
36 2003-11-19  Richard Henderson  <rth@redhat.com>
37
38         * config/i386/i386.c (print_reg): Handle QI and HI modes for
39         non Q regs.
40
41 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
42
43         * config/config.gcc (powerpc-*-darwin*): Add libgcc build
44         specification file.
45         * config/t-slibgcc-darwin: New file, libgcc build specification.
46         * config/t-darwin: Add libgcc2 flag -fPIC.
47         * config/rs6000/t-darwin: Multilib matches float.
48         * libgcc-darwin.ver: New file, contains libgcc symbols.
49
50 2003-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
51
52         * config/ns32k/ns32k.h: Remove obsolete comment.
53
54 2003-11-18  Roger Sayle  <roger@eyesopen.com>
55
56         PR middle-end/11821
57         * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
58         size for calls to libgcc's div & mod subroutines when using -Os.
59
60 2003-11-18  Jan Hubicka  <jh@suse.cz>
61
62         * cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
63
64 2003-11-18  Marc Espie  <espie@openbsd.org>
65
66         * config/rs6000/sysv4.h: OpenBSD hooks.
67
68 2003-11-18  Richard Henderson  <rth@redhat.com>
69
70         * expr.c (expand_expr): Don't look through constant arrays if
71         they don't bind locally.
72
73 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
74
75         * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
76         when seeing if truncation or extension.
77
78 2003-11-17  Eric Christopher  <echristo@redhat.com>
79
80         * reload1.c (reload): Fix previous change.
81
82 2003-11-17  Scott Snyder  <snyder@fnal.gov>
83
84         PR debug/11325
85         * dwarf2out.c (struct die_struct): Add die_definition field.
86         (add_AT_specification): New.
87         (gen_subprogram_die, gen_variable_die,
88         gen_struct_or_union_type_die): Use it.
89         (prune_unused_types_mark): If we're marking a forward declaration,
90         also mark the full definition, if it exists.
91
92 2003-11-16  Nick Clifton  <nickc@redhat.com>
93
94         * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete.
95         * config/stormy16/stormy16-protos.h (xstormy16_build_va_list):
96         Remove prototype.
97         * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename
98         to xstormy16_build_builtin_va_list and make static.
99         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
100
101 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
102
103         * config/h8300/h8300-protos.h: Add the prototype for
104         same_cmp_following_p.
105         * config/h8300/h8300.c (same_cmp_following_p): New.
106         * config/h8300/h8300.md (peephole2): Use it.
107
108 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
109
110         * config/h8300/h8300.md: Don't use REGNO when its operand is
111         not guaranteed to be a REG.
112
113 2003-11-16  Richard Sandiford  <rsandifo@redhat.com>
114
115         * Makefile.in (expr.o): Depend on $(TARGET_H).
116         * target.h (return_in_msb): New target hook.
117         * target-def.h (TARGET_RETURN_IN_MSB): New macro.
118         (TARGET_CALLS): Include it.
119         * calls.c (shift_returned_value): New function.
120         (expand_call): Use it.
121         * expr.c: Include target.h.
122         (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when
123         deciding what padding is needed.  Change the name of the local
124         padding variable from big_endian_correction to padding_correction.
125         * stmt.c (shift_return_value): New function.
126         (expand_return): Use it.  Adjust memory->register copy in the same
127         way as copy_blkmode_from_reg.  Only change the return register's
128         mode if it was originally BLKmode.
129         * doc/tm.texi (TARGET_RETURN_IN_MSB): Document.
130         * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define.
131         (mips_fpr_return_fields): New, split out from mips_function_value.
132         (mips_return_in_msb, mips_return_fpr_pair): New functions.
133         (mips_function_value): Rework to use the functions above.
134         * config/mips/irix6-libc-compat.c: Delete.
135         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine.
136
137 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
138
139         * doc/install.texi (--enable-checking): Update valgrind's URL.
140
141 2003-11-16  Kazu Hirata  <kazu@cs.umass.edu>
142
143         * config/h8300/h8300.md: Fix warnings by replacing -2147483648
144         with -2147483647 - 1.
145
146 2003-11-16  Gerald Pfeifer  <gerald@pfeifer.com>
147
148         Fix links in online manuals.
149         * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info.
150         (Precompiled Headers): @pxref to cpp, not cpp.info.
151
152 2003-11-16  Jason Merrill  <jason@redhat.com>
153
154         * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub
155         files in each directory and TAGS files that include them for each
156         front end.
157
158 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
159
160         * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit
161         3 of S2L.
162         (modnorm): Likewise.
163         (exitdiv): Look at bit 3 of S2L only.
164
165 2003-11-15  Kazu Hirata  <kazu@cs.umass.edu>
166
167         * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings.
168         (DO_GLOBAL_DTORS_BODY): Likewise.
169
170 2003-11-15  Joseph S. Myers  <jsm@polyomino.org.uk>
171
172         * doc/install.texi (Prerequisites): Refine documentation of
173         autoconf, automake and perl requirements.  Document required
174         gettext version.
175
176 <2003-11-14  Jason Merrill  <jason@redhat.com>
177
178         * function.c (assign_parms): Use TREE_TYPE to determine the real
179         type of the argument object.
180
181 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
182
183         * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
184         iteration.
185
186 2003-11-14  Fariborz Jahanian <fjahanian@apple.com>
187
188         * config/rs6000/rs6000.c (rs6000_move_block_from_reg):
189           New routine to save vararg registers on stack. Support for
190           -mpowerpc64 in mixed mode.
191
192 2003-11-14  Bernardo Innocenti  <bernie@develer.com>
193
194         * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing
195         for MOTOROLA versus MIT syntax.  Improves readability and provides
196         better compile-time error checking for both code paths.
197
198 2003-11-14  Kelley Cook  <kcook@gcc.gnu.org>
199
200         * config/frv/frv-protos.h: Update for C90.
201         * config/frv/frv.h: Likewise.
202         * config/frv/frvbegin.c: Likewise.
203         * config/frv/frv.c: Likewise.
204         (frv_adjust_field_align): Delete unused variable.
205
206 2003-11-14  Geoffrey Keating  <geoffk@apple.com>
207
208         * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN'
209         to each place where TARGET_LONG_DOUBLE_128 is used with
210         DEFAULT_ABI == ABI_AIX.
211
212         * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found'
213         message comply with GNU standards.
214
215 2003-11-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
216
217         PR/6552
218         * function.c (struct epi_info): New field const_equiv.
219         (update_epilogue_consts): New function.
220         (keep_stack_depressed): Clear new field and verify scratch register
221         doesn't have it set.
222         Call new function via note_stores.
223         (handle_epilogue_set): Allow setting SP equiv reg in different mode.
224         Allow PLUS where second operand is register known set to constant.
225         (emit_equiv_load): Write load using proper mode if source different.
226         * config/mips/mips.md (return_internal): Put (return) first.
227
228 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
229
230         * config/h8300/lib1funcs.asm (___udivsi3): Add a comment.
231
232 2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
233
234         * config/h8300/lib1funcs.asm (modsi3): Don't save unused
235         registers.
236         (divsi3): Likewise.
237         (reti): Don't restore unused registers.
238
239 2003-11-14  Nick Clifton  <nickc@redhat.com>
240
241         * config/fr30/fr30.c: Include toplev.h
242
243 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
244
245         * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL.
246
247 2003-11-14  Richard Earnshaw  <rearnsha@arm.com>
248
249         * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C
250         function definition syntax.
251
252 2003-11-14  Eric Christopher  <echristo@redhat.com>
253
254         * reload1.c (reload): Revert previous patch. Make
255         check for assignment into reg_equiv_address stricter.
256
257 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
258
259         * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS.
260
261 2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
262
263         * config/frv/frv.c (frv_in_small_data_p): Return false for unknown
264         section names.
265
266 2003-11-14  Jason Merrill  <jason@redhat.com>
267
268         PR middle-end/12526
269         * tree.c (build): A CALL_EXPR has side-effects if its arguments do.
270         * calls.c (call_expr_flags): New fn.
271         * tree.h: Declare it.
272
273 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
274
275         * config/h8300/lib1funcs.asm (__udivsi3): Remove.
276         (divmodsi3): Change the name to ___udivsi3.
277         Update all callers.
278
279 2003-11-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
280
281         * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
282         __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
283         __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
284         __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
285         __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
286         __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
287         Const-ify and/or initialize automatic variables at declaration.
288
289 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
290
291         * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses
292         of er4 with er3.  Adjust all callers.
293
294 2003-11-13  Andrew Pinski <apinski@apple.com>
295
296         * config/darwin.c (machopic_output_possible_stub_label):
297         Allow stub symbol be not defined when outputting possible
298         stub label.
299
300 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
301
302         * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
303         instead of exitdiv.
304         (___umodsi3): Likewise.
305         (exitdiv): Do not restore any register.
306         (reti): Restore registers.
307
308 2003-11-13  Steven Bosscher  <stevenb@suse.de>
309
310         * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
311
312 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
313
314         * config/h8300/lib1funcs.asm: Fix comment typos.
315
316 2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
317
318         * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
319         unused registers.  Don't jump to exitdiv.
320         (umodsi3): Likewise.
321
322 2003-11-13  Mark Mitchell  <mark@codesourcery.com>
323             Kean Johnston <jkj@sco.com>
324
325         PR c/13029
326         * toplev.c (check_global_declarations): Do not warn about unused
327         static consts.
328
329 2003-11-13  Pavel Pisa  <pisa@cmp.felk.cvut.cz>
330             Kazu Hirata  <kazu@cs.umass.edu>
331
332         * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using
333         the approximate quotient method.
334
335 2003-11-13  Richard Earnshaw  <rearnsha@arm.com>
336
337         * combine.c (distribute_notes): When re-distributing the notes from
338         an insn we are about to delete, ensure we can't end up with a cyclic
339         list of notes.
340
341 2003-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
342
343         PR optimization/12926
344         * expr.c (expand_assignment) [COMPONENT_REF]: Don't put
345         the UNCHANGING_RTX_P flag on memory references to read-only
346         components that are not addressable.
347
348 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
349
350         * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in
351         DenHighNonZero.
352
353 2003-11-13  Jan Hubicka  <jh@suse.cz>
354
355         PR opt/12275
356         * c-decl.c (finish_decl): Use change_decl_assembler_name.
357         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
358         * varasm.c (make_decl_rtl): Likewise.
359         * cgraph.c (change_decl_assembler_name): New function.
360         * tree.h (set_decl_assembler_name): Kill dead declaration.
361         (change_decl_assembler_name): Declare.
362
363         * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
364         * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
365
366 2003-11-12  Kazu Hirata  <kazu@cs.umass.edu>
367
368         * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore
369         an unused register.
370
371 2003-11-12  Richard Sandiford  <rsandifo@redhat.com>
372
373         PR bootstrap/12752
374         * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first.
375         (MULTILIB_OSDIRNAMES): Reorder accordingly.
376
377 2003-11-12  Janis Johnson  <janis187@us.ibm.com>
378
379         * rs6000-protos.h (rs6000_initial_elimination_offset): Add.
380         (rs6000_stack_info): Remove.  (debug_stack_info): Remove.
381         (rs6000_emit_eh_reg_restore): Add
382         * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
383         of vars_size and total_size to HOST_WIDE_INT.
384         (emit_frame_save): Change parameter size to HOST_WIDE_INT.
385         (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
386         (debug_stack_info): Make static; change output format of HOST_WIDE_INT
387         values.
388         (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md.
389         (rs6000_initial_elimination_offset): New, with code formerly in
390         INITIAL_ELIMINATION_OFFSET.
391         * rs6000.h (rs6000_stack_t): Remove.
392         (INITIAL_ELIMINATION_OFFSET): Replace code with call to function
393         rs6000_initial_elimination_offset.
394         * rs6000.md (UNSPECV_EH_RR split): Replace code with call to
395         rs6000_emit_eh_reg_restore.
396
397 2003-11-12  Mike Stump  <mrs@apple.com>
398
399         * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
400         is the argumnt we are processing so that warnings and errors
401         will have that information.
402         * c-tree.h (c_convert_parm_for_inlining): Add argnum.
403         * lang-hooks-def.h
404         (lhd_tree_inlining_convert_parm_for_inlining): Likewse.
405         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
406         * langhooks.h (convert_parm_for_inlining): Likewise.
407         * tree-inline.c (initialize_inlined_parameters): Compute and
408         pass argnum down.
409
410 2003-11-12  Alexey Starovoytov  <alexey.starovoytov@sun.com>
411             Roger Sayle  <roger@eyesopen.com>
412
413         PR optimization/12953
414         * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN
415         before switch by FUNCTION_CODE.
416
417 2003-11-12  Richard Earnshaw  <rearnsha@arm.com>
418
419         * arm.md (storehi): Avoid use of explicit subreg.
420         (storehi_bigend, storeinthi, movhi_bigend): Likewise.
421
422 2003-11-12  J"orn Rennecke <joern.rennecke@superh.com>
423
424         * config/sh/sh.md (prefetch): New pattern.
425
426 2003-11-11  Eric Christopher  <echristo@redhat.com>
427
428         * reload1.c (reload): Verify that addresses for
429         reg_equiv_* are valid for the architecture.
430
431 2003-11-11  Eric Christopher  <echristo@redhat.com>
432
433         * function.c (purge_addressof_1): Add libcall check.
434         Remove test for cached replacements on fallback case.
435         Simplify mode comparisons. Add libcall test for
436         paradoxical subregs.
437
438 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
439
440         * config/h8300/t-h8300: Fix an obsolete comment.
441
442 2003-11-11  James E Wilson  <wilson@specifixinc.com>
443
444         * expmed.c (store_bit_field, extract_bit_field): Revert last two
445         changes.
446
447 2003-11-11  Kazu Hirata  <kazu@cs.umass.edu>
448
449         * config/h8300/lib1funcs.asm: Replace DenHighZero with
450         DenHighNonZero.
451
452 2003-11-11  Jan Hubicka  <jh@suse.cz>
453
454         * cgraphunit.c (cgraph_function_possibly_inlined_p): Use
455         really_no_inline.
456
457 2003-11-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
458
459         * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
460         generating 64-bit code.
461
462 2003-11-10  David Edelsohn  <edelsohn@gnu.org>
463
464         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
465         accidental commit in previous change.
466
467 2003-11-10  Fariborz Jahanian <fjahanian@apple.com>
468
469         * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
470         * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
471         address recognition.
472         (macho_lo_sum_memory_operand): Routine to recognize macho-style
473         address recognition.
474
475 2003-11-10  Richard Henderson  <rth@redhat.com>
476
477         * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
478
479 2003-11-10  Matt Austern  <austern@apple.com>
480
481         * config/darwin-protos.h (darwin_assemble_visibility): Declare.
482         * config/darwin.c (darwin_assemble_visibility): Define.  Warn for
483         anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
484         * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
485         darwin_assemble_visibility instead of default.
486
487 2003-11-10  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
488
489         PR target/12865
490         * config/sparc/sparc.c (sparc_initialize_trampoline): Call
491         __enable_execute_stack only after writing onto the stack.
492         (sparc64_initialize_trampoline): Likewise.
493
494 2003-11-09  Roger Sayle  <roger@eyesopen.com>
495
496         * loop.c (check_dbra_loop): Try swapping the comparison operands
497         of the loop condition to identify a suitable induction variable.
498         * unroll.c (loop_iterations): Likewise.
499
500 2003-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
501
502         * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
503         sparc64 #cpu and #machine assertions.
504
505 2003-11-09  Richard Henderson  <rth@redhat.com>
506
507         * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H.
508
509 2003-11-09  Jan Hubicka  <jh@suse.cz>
510
511         * tree-optimize.c (tree_rest_of_compilation): Fix warning.
512
513         * cgraphunit.c (cgraph_expand_function): Use
514         cgraph_possibly_inlined_p.
515         * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
516
517         * opts.c (common_handle_option): Do not set max-inline-insns.
518         * params.def: Update comments.
519         (PARAM_MAX_INLINE_INSNS): Kill.
520         * invoke.texi (max-inline-insns): Kill.
521
522 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
523
524         PR c/3190
525         PR c/8714
526         * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
527         * invoke.texi: Update.
528
529 2003-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
530
531         PR optimization/12630
532         * pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
533         Handle length computation 64-bit moves.
534         (compute_clrstr_length, output_block_clear): Implement block clear.
535         (output_block_move): Handle 64-bit moves.
536         (pa_adjust_insn_length): Use compute_movstr_length and
537         compute_clrstr_length.
538         * pa.md (movstrsi): Revise operand order and comments.  Don't use
539         match_scratch.
540         (movstrsi_internal): Delete.
541         (movstrsi_prereload, movstrsi_postreload): New insns.  Define splitter
542         and peephole2 patterns to transform prereload to postreload form.
543         (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
544         clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
545         clrstrdi_postreload): New patterns for 64-bit block move, and block
546         clear.
547         * pa-protos.h (output_block_clear): New prototype.
548
549 2003-11-08  Andreas Schwab  <schwab@suse.de>
550
551         * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
552         XCOFF_DEBUGGING_INFO.
553
554 2003-11-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
555
556         * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
557
558 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
559
560         * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
561         redundant parens.
562
563         * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
564         (find_file_in_dir): Likewise.
565         (_cpp_find_file): Print message if no header file is found
566         but an invalid PCH file was.
567
568 2003-11-08  Joseph S. Myers  <jsm@polyomino.org.uk>
569
570         * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
571         expressions as lvalues.
572         (internal_build_compound_expr): Remove special handling for
573         non-pedantic case.
574         * doc/extend.texi: Document that all extended lvalues are now
575         deprecated.
576
577 2003-11-07  Geoffrey Keating  <geoffk@apple.com>
578
579         PR 11654
580         * dbxout.c (struct dbx_file): Do not save for PCH.
581         (current_file): Likewise.
582         (dbxout_init): Don't allocate struct dbx_file using GC.
583         (dbxout_start_source_file): Likewise.
584
585 2003-11-07  Falk Hueffner  <falk@debian.org>
586
587         * config/alpha/elf.h, config/alpha/unicosmk.h,
588         config/alpha/vms.h: Convert to ISO C90.
589
590 2003-11-07  Nathanael Nerode  <neroden@gcc.gnu.org>
591
592         * config/arm/pe.h: Convert to ISO C90.
593
594 2003-11-07  J"orn Rennecke <joern.rennecke@superh.com>
595
596         * sh-protos.h (sh_pch_valid_p): Declare.
597         * sh.c ("intl.h"): Include.
598         (TARGET_PCH_VALID_P): Override.
599         (sh_target_switches): New variable.
600         (target_switches): Define.
601         (sh_pch_valid_p): New function.
602
603         * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
604
605 2003-11-07  Jan Hubicka  <jh@suse.cz>
606
607         * i386.c (x86_64_sign_extended_value):  Return false from tls variables.
608         (x86_64_zero_extended_value):  likewise.
609
610 2003-11-07  Richard Sandiford  <rsandifo@redhat.com>
611
612         * config/mips/mips.md (loadgp): Take $25 as a second operand.
613         * config/mips/mips.c (mips_expand_prologue): Modify accordingly.
614
615 2003-11-06  Matt Austern <austern@apple.com>
616
617         * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
618         field instead of hanging an attribute object off the decl.
619         * tree.h (DECL_VISIBLITY): New accessor macro for
620         symbol_visibility field in struct tree_decl.
621         (enum symbol_visibility): Move definition to before tree_decl.
622         (struct tree_decl): Define new two-bit field, symbol_visibility.
623         (decl_visibility): Remove declaration.
624         * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
625         instead of decl_visibility.
626         (default_binds_local_p_1):  Use DECL_VISIBILITY instead of
627         decl_visibility.
628         (decl_visibility): Remove.
629
630 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
631
632         * config/s390/s390.c (s390_emit_epilogue): Recognize more cases
633         where register 14 will be saved.
634
635 2003-11-06  Geoffrey Keating  <geoffk@apple.com>
636
637         * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
638         (USE_ALTIVEC_FOR_ARG_P): Likewise.
639         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
640         Take a pointer as the CUM parameter.  Update callers.
641         (USE_ALTIVEC_FOR_ARG_P): Likewise.  Also correct for Darwin/AIX
642         32-bit ABIs.
643         (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P.  Correct case
644         of vector parameters as named arguments of stdarg function.
645         (function_arg): Likewise.
646
647         * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
648         -maltivec is specified, not the non-existent -faltivec.
649
650 2003-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
651
652         * config/s390/s390-protos.h (s390_function_value): Declare.
653         * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
654         (s390_return_in_memory): New function.
655         (s390_function_value): New function.
656         (s390_function_arg_float): Return false for all arguments larger
657         than 8 bytes.
658         (s390_function_arg_pass_by_reference): Likewise.  Return true for
659         all vector arguments.
660         (s390_function_arg_integer): New function.
661         (s390_function_arg_advance): Call it.  Add sanity checks.
662         (s390_function_arg): Likewise.
663         * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
664         (LIBCALL_VALUE): Likewise.
665         (RET_REG): Remove.
666         (RETURN_IN_MEMORY): Remove.
667
668 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
669
670         * config/mips/mips-protos.h (mips_initial_elimination_offset): Change
671         return type to HOST_WIDE_INT.
672         * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
673         Make initialized a bool.  Make register masks unsigned ints.
674         (compute_frame_size): Make same mask change here.  Use HOST_WIDE_INT
675         where appropriate.
676         (mips_initial_elimination_offset): Return a HOST_WIDE_INT.
677         (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
678
679 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
680
681         * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
682         negation.
683
684 2003-11-06  Richard Sandiford  <rsandifo@redhat.com>
685
686         * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
687
688 2003-11-06  Momchil Velikov  <velco@fadata.bg>
689
690         * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
691         for VR4111 too.
692
693 2003-11-06  Jan Hubicka  <jh@suse.cz>
694
695         * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
696         missing casts.
697
698 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
699
700         * genmodes.c: Change the word "bitsize" to "precision" throughout.
701         * machmode.def: Likewise.
702         * machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
703         (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT.
704         (GET_MODE_PRECISION): New macro.
705         (mode_bitsize): Renamed mode_precision.
706         * stor-layout.c (mode_for_size, smallest_mode_for_size):
707         Use GET_MODE_PRECISION; clarify comments.
708
709 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
710
711         * doc/install-old.texi: Remove old documentation of building
712         cross-compilers.
713         * doc/install.texi: Move some of it to here.
714
715 2003-11-05  Per Bothner  <pbothner@apple.com>
716
717         PR preprocessor/12891
718         * c-opts.c (finish_options):  Set include_cursor to disable premature
719         calls to push_command_line_include from cpp_scan_nooutput.
720         Fixes bug reported by DJ Delorie.
721
722 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
723
724         * config/rs6000/rs6000.c (setup_incoming_varargs): Remove
725         code supporting old-style varargs.
726
727         * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
728         an intermediate register for better optimisation.
729
730 2003-11-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
731
732         PR optimization/10080
733         * cfgloopanal.c (variable_initial_value, variable_initial_values,
734         simple_loop_exit_p): Record the fact that initial value is extended
735         from inner mode.
736         (count_strange_loop_iterations, count_loop_iterations): Handle
737         ivs that iterate in a narrower mode. Fix handling of overflows.
738         Improve handling of NE conditions.
739         (inverse, fits_in_mode_p): New static functions.
740         (simple_increment): Detect variables that iterate in a narrower mode.
741         * cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
742
743 2003-11-05  Geoffrey Keating  <geoffk@apple.com>
744
745         * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
746         error.
747
748         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
749         needs VRSAVE.
750
751 2003-11-05  Joseph S. Myers  <jsm@polyomino.org.uk>
752
753         * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
754         conditional expressions as lvalues.
755
756 2003-11-05  Kazu Hirata  <kazu@cs.umass.edu>
757
758         * tsystem.h: Add the prototype of strlen.
759         * unwind-pe.h (read_encoded_value_with_base): Add an
760         appropriate cast to handle a case where the pointer size is
761         smaller than sizeof (int).
762
763 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
764
765         * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
766         (mips_delegitimize_address): Delete.
767         (mips_gotoff_global, mips_load_got_page): Declare.
768         (mips_load_got_global, mips_rewrite_small_data): Declare.
769
770         * config/mips/mips.h (FIND_BASE_TERM): Remove definition.
771         (DANGEROUS_FOR_LA25_P): Use global_got_operand.
772         (PREDICATE_CODES): Add global_got_operand, local_got_operand and
773         small_data_pattern.  Remove CONST from const_arith_operand's entry.
774
775         * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
776         (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise.
777         (mips_constant_type): Delete.
778         (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL,
779         SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP.
780         (NUM_SYMBOL_TYPES): New macro.
781         (mips_address_type): Remove ADDRESS_INVALID.
782         (machine_function): Add has_gp_insn_p.
783         (mips_constant_info): Delete.
784         (mips_address_info): Add the address type as an extra field.  Replace
785         the c field with symbol_type.
786         (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
787         (TARGET_DELEGITIMIZE_ADDRESS): Remove definition.
788         (mips_reloc_offset_ok_p, mips_classify_constant): Delete.
789         (mips_split_const, mips_symbolic_constant_p): New functions.
790         (mips_symbolic_address_p): Take the symbol type and mode as arguments.
791         (mips_classify_address): Return true if the address is valid, storing
792         its type in INFO.  Use mips_symbolic_constant_p.  Use mips_lo_relocs[]
793         to test whether a LO_SUM address is allowed.
794         (mips_symbol_insns): Return 0 for general mips16 symbols.
795         Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
796         Handle the new SYMBOL_GOTOFF_*s.
797         (mips_address_insns): Update call to mips_classify_address.
798         (mips_const_insns): Be more fussy about HIGH constants.  Remove use
799         of mips_classify_constant.  Be more accurate about CONSTs.
800         (mips_global_pic_constant_p): Delete.
801         (const_arith_operand): Only accept CONST_INTs.
802         (call_insn_operand): Remove call to mips_classify_constant.
803         Let mips_symbolic_constant_p check for invalid offsets.
804         (move_operand): Check for general_operands first.  Only accept symbolic
805         constants if they satisfy mips_symbolic_constant_p and cannot be split.
806         (symbolic_constant): Use mips_symbolic_constant_p.
807         (global_got_operand, local_got_operand): New predicates.
808         (stack_operand): Update call to mips_classify_address.
809         (mips_legitimate_address_p): Likewise.
810         (mips_reloc, mips_lui_reloc): Delete.
811         (mips_force_temporary): Only use the given temporary if no_new_pseudos.
812         Use emit_move_insn.
813         (mips_split_symbol, mips_unspec_address): New functions.
814         (mips_unspec_offset_high): New function.
815         (mips_load_got): Replace reloc argument with a symbol_type.
816         Use mips_unspec_address to create the address and put it in a
817         LO_SUM with the base register.
818         (mips_load_got16, mips_load_got32): Delete.
819         (mips_emit_high, mips_legitimize_symbol): Delete.
820         (mips_gotoff_global): New function.
821         (mips_load_got_page, mips_load_got_global): New functions.
822         (mips_legitimize_symbol): Inline handling of LO_SUM splits.
823         (mips_legitimize_const_move): Likewise.  Remove HIGH handling.
824         Inline code to handle constants plus invalid offsets.  Use
825         mips_split_symbol to legitimize constant pool addresses.
826         (mips_delegitimize_address): Delete.
827         (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
828         a cost of 1 insn.  Give the rest a cost of CONSTANT_POOL_ADDRESS.
829         (mips_subword): Pass memrefs through mips_rewrite_small_data.
830         (mips_output_move): Remove use of mips_classify_constant.
831         (mips_expand_call): Use mips_unspec_offset_high to calculate the
832         high part of the GOT address for calls to global functions.
833         (override_options): Initialize mips_split_p[], mips_lo_relocs[]
834         and mips_hi_relocs[].
835         (print_operand): Use print_operand_reloc to handle '%h' and '%R'.
836         Remove use of mips_classify_constant.
837         (mips_reloc_string): Delete.
838         (print_operand_reloc): New function.
839         (print_operand_address): Update call to mips_classify_address.
840         (mips_rewrite_small_data_p, small_data_pattern_1): New functions.
841         (small_data_pattern): New predicate.
842         (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
843         (mips_function_has_gp_insn): New function.
844         (mips_global_pointer): Use it.
845         (mips_gp_insn): Delete.
846         (mips_expand_prologue): When compiling for n32/n64 abicalls, use a
847         single loadgp pattern to initialize $gp.  Pass it the offset of _gp
848         from the start of the current function.
849         (mips16_gp_pseudo_reg): Revert last patch.
850
851         * config/mips/mips.md (RELOC_*): Delete.
852         (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants.
853         (got): New insn attribute.
854         (type): Set to "load" if got == load.
855         (length): Set to 4 if got == load, 8 if got == xgot_high.
856         (lui[sd]i): Delete.
857         (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
858         (*got_disp[sd]i, *got_page[sd]i): Likewise.
859         (*low[sd]i): Change constraints to "d".  Add a new define_split to
860         rewrite small data constants into LO_SUMs.
861         (loadgp): New insns.
862
863 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
864
865         * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
866
867 2003-11-04  DJ Delorie  <dj@redhat.com>
868
869         * config/v850/v850.md (mulhisi3): Expand the const_int case
870         separately to avoid trying to sign extend the const.
871
872 2003-11-04  Richard Sandiford  <rsandifo@redhat.com>
873
874         * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
875         addresses to be shared.
876         (force_const_mem): Return a copy of the pool entry.
877
878 2003-11-03  Andreas Jaeger  <aj@suse.de>
879
880         * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again.
881
882 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
883
884         * Makefile.in (cpp.dvi): New target split from cpp.info.
885         (gcc.dvi):  New target split from gcc.info.
886         (gccint.dvi): New target split from gccint.info.
887         (cppinternals.dvi): New target split from cppinternals.info
888         (gccinstall.info): New specific rule.
889         (gccinstall.dvi): Likewise.
890         (dvi): Move targets to $(docobjdir).
891         ($(docobjdir)/%.dvi): New implicit rule.
892
893 2003-11-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
894
895         * doc/gty.texi (tag, desc): Say more about role of desc values in
896         selecting between tags.
897
898 2003-11-03  Alexander Kabaev  <ak03@gte.com>
899
900         * real.c (encode_ieee_single): Ensure proper promotion.
901
902 2003-11-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
903
904         * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
905         and Andrew Pinski.
906
907 2003-11-03  Syd Polk  <spolk@apple.com>
908
909         * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
910         marketing names to the list of supported processors.
911         * config/rs6000/rs6000.h: Ditto.
912         * doc/invoke.texi: Ditto.
913         * config.gcc: Ditto.
914
915 2003-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
916
917         * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
918         Merge two substitutions.
919         * fixinc/fixincl.x: Regenerate.
920         Fixes PR bootstrap/12666.
921
922 2003-11-03  Joseph S. Myers  <jsm@polyomino.org.uk>
923
924         * doc/install-old.texi: Remove VMS documentation.
925
926 2003-11-03  Jan Hubicka  <jh@suse.cz>
927
928         * i386.c (override_options):  Remove hack enabling 128bit long double
929         commited by accident.
930
931 2003-11-02  Per Bothner  <per@bothner.com>
932
933         * c-opts.c (needValue):  Do cpp_find_main_file before processing
934         any imacros flags, so pfile->main_file is set for the latter.
935
936 2003-11-03  Andreas Jaeger  <aj@suse.de>
937             Zack Weinberg  <zack@codesourcery.com>
938
939         * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings.
940         (SYSCALLS.c.X-warn): Suppress warnings.
941
942 2003-11-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
943
944         PR optimization/12845
945         * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
946
947 2003-11-02  Zack Weinberg  <zack@codesourcery.com>
948
949         * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
950         * config/i386/i386.c (print_reg): Abort on a virtual register
951         if code != -1; not if file == asm_out_file.
952         * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
953         (DEBUG_PRINT_REG): Delete, unused.
954
955 2003-11-02  Andreas Schwab  <schwab@suse.de>
956
957         * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
958         empty to avoid conflict with the definition from configure.
959
960 2003-11-02  Roger Sayle  <roger@eyesopen.com>
961
962         PR optimization/10817
963         * ifcvt.c (noce_emit_move_insn): Improve documentation comment.
964         (noce_try_move): New function to optimize an if-the-else into an
965         unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
966         (noce_process_if_block): Attempt simplification with noce_try_move.
967
968         * simplify-rtx.c (simplify_ternary_operation): Some minor fixes
969         and improvements to the optimizations of IF_THEN_ELSE expressions.
970         (simplify_subreg): Silence signed/unsigned comparison warning.
971
972 2003-11-02  Richard Sandiford  <rsandifo@redhat.com>
973
974         * Makefile.in (targhooks.o, reload.o): Update dependencies.
975         (GTFILES): Add targhooks.c.
976         (gt-targhooks.h): New rule; depend on s-gtype.
977         * target.h (direct_pool_load_p): New hook.
978         * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
979         (TARGET_INITIALIZER): Include it.
980         * targhooks.h (default_direct_pool_load_p): Declare.
981         (hook_bool_machine_mode_true): Declare.
982         * targhooks.c: Include insn-config.h, recog.h, ggc.h and
983         gt-targhooks.h.
984         (pool_symbol): New variable.
985         (default_direct_pool_load_p): New function.
986         (hook_bool_machine_mode_true): New function.
987         * reload.c: Include target.h.
988         (find_reloads): If an alternative will force a constant into memory,
989         count an extra reload if constant pool symbols are not valid
990         addresses.  If an alternative uses memory to move values between
991         registers, count the move as two reloads rather than one.
992         * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
993         * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
994
995 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
996
997         PR optimization/12799
998         * postreload.c (reload_cse_move2add): Generate the add2
999         patterns manually.
1000
1001 2003-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1002
1003         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1004         Return 0 for all complex modes whose size is lesser or equal to
1005         a word.  Add a ??? comment for the condition used with 16-byte
1006         aligned modes.
1007
1008 2003-11-01  Kelley Cook  <kcook@gcc.gnu.org>
1009
1010         * .cvsignore: Remove c-parse* and tradcif.c.
1011         * objc/.cvsignore: Delete.
1012
1013 2003-11-01  Roger Sayle  <roger@eyesopen.com>
1014
1015         * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
1016         of NULL.
1017
1018 2003-11-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1019
1020         * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
1021
1022         * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
1023
1024         * collect2.c (scan_libraries): Fix typos.
1025
1026         PR preprocessor/12847
1027         * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
1028         cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
1029         c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
1030         DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
1031         "CPP_".
1032
1033 2003-11-01  Fariborz Jahanian  <fjahanian@apple.com>
1034
1035         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
1036         no_units calculation.
1037
1038 2003-11-01  Andreas Jaeger  <aj@suse.de>
1039
1040         * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
1041         enumeration list.
1042
1043 2003-11-01  Andreas Schwab  <schwab@suse.de>
1044
1045         * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
1046         prototypes.
1047         (SBSS_SECTION_FUNCTION): Likewise.
1048
1049 2003-11-01  Andreas Jaeger  <aj@suse.de>
1050
1051         * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files.
1052
1053 2003-11-01  Andreas Tobler  <a.tobler@schweiz.ch>
1054
1055         * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
1056         prototypes.
1057
1058 2003-11-01  Andreas Jaeger  <aj@suse.de>
1059
1060         * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
1061         (uw_frame_state_for): Constify variables.
1062         (extract_cie_info): Constify first argument.
1063
1064         * unwind-dw2-fde-darwin.c: Adjust prototype of
1065         _Unwind_Find_registered_FDE for recent changes.
1066         (examine_objects): Constify return value and local variable result.
1067         (_Unwind_Find_FDE): Constify return value and local variable ret.
1068
1069 2003-10-31  Per Bothner  <pbothner@apple.com>
1070
1071         * c-opts.c (finish_options):  Change to returns boolean - false iff
1072         the call to cpp_find_main_file fails.
1073         (c_common_init):  Skip preprocess_file if finish_options failed.
1074         (c_common_parse_file):  Break if finish_options failed.
1075         Fixes PR preprocessor/12545.
1076
1077 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1078
1079         * aclocal.m4: Blacklist ultrix* for mmap file.
1080         * configure: Rebuilt.
1081
1082         * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
1083         reg_parm_stack_space.
1084         * toplev.c (default_get_pch_validity): Fix warning.
1085
1086         * vax.c: Include toplev.h.
1087         (vax_init_libfuncs): Fix typo (umod).
1088         * vax.h (ASM_COMMENT_START): Define.
1089         (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
1090
1091 2003-10-31  Roger Sayle  <roger@eyesopen.com>
1092
1093         PR middle-end/11968
1094         * expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
1095         confusing comment; distributivity isn't handled in expand_expr.
1096         * fold-const.c (extract_muldiv_1 <PLUS_EXPR>):  Allow overflow
1097         in distributivity, if wrap-around semantics are specified with
1098         -fwrapv.
1099
1100 2003-11-01  Alan Modra  <amodra@bigpond.net.au>
1101
1102         PR 12315
1103         * final.c (profile_function): Allow for NULL svrtx.
1104
1105 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1106
1107         * pa.c (pa_select_section): Use new style declaration.
1108         * som.h (readonly_data): Likewise.
1109
1110 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1111
1112         * config/rs6000/rs6000.c: Update to C90 prototypes.
1113
1114 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1115
1116         PR target/7513
1117         * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
1118         code.
1119
1120 2003-10-31  Andreas Jaeger  <aj@suse.de>,
1121             Zack Weinberg  <zack@codesourcery.com>
1122
1123
1124         * crtstuff.c (__register_frame_info, __register_frame_info_bases)
1125         (__deregister_frame_info, __deregister_frame_info_bases):
1126         Constify void * argument.
1127         * unwind-dw2-fde.h (struct fde_vector):
1128         Constify 'orig_data' and 'array' fields.
1129         (__register_frame_info, __register_frame_info_bases)
1130         (__deregister_frame_info, __deregister_frame_info_bases):
1131         Constify void * argument.
1132         (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
1133         return values, and casts of type fde *, struct dwarf_fde *,
1134         and struct dwarf_cie *.
1135         * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
1136         (__deregister_frame_info, __deregister_frame_info_bases):
1137         Constify void * argument.
1138         (get_cie_encoding, ): Constify struct dwarf_cie * argument.
1139         (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
1140         (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
1141         fde_split, SWAP, frame_downheap, frame_heapsort)
1142         (classify_object_over_fdes, add_fdes, linear_search_fdes,
1143         binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
1144         binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
1145         Constify arguments, local variables, return values, and casts
1146         of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
1147         Use const pointer types in sizeof expressions, for clarity.
1148         * unwind-dw2-fde-glibc.c
1149         (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
1150         (struct unw_eh_callback_data): Constify 'ret' field.
1151
1152 2003-10-31  Fariborz Jahanian  <fjahanian@apple.com>
1153             David Edelsohn  <edelsohn@gnu.org>
1154
1155         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
1156         (function_arg): Call it.
1157         (rs6000_function_value): Widen integral return value to mode based
1158         on TARGET_32BIT, not word_mode.
1159         * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
1160         (UNITS_PER_ARG): New.
1161         (RS6000_ARG_SIZE): Use it.
1162
1163 2003-10-31  Gerald Pfeifer  <gerald@pfeifer.com>
1164
1165         * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
1166         and gengtype-yacc.h.
1167
1168 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1169
1170         PR optimization/8896
1171         * postreload.c (reload_combine): Check that REGY doesn't die in an
1172         insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
1173
1174 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1175
1176         PR/10239
1177         * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
1178
1179 2003-10-31  Josef Zlomek  <zlomekj@suse.cz>
1180
1181         PR/11640
1182         * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
1183         immediatelly before BARRIER.
1184
1185 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
1186
1187         * Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
1188
1189 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1190
1191         PR target/11271
1192         * reload.c (find_reloads_address): Handle any register in
1193         (PLUS (PLUS (REG) (REG)) (CONST_INT).
1194
1195 2003-10-31  Richard Earnshaw  <rearnsha@arm.com>
1196
1197         * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
1198         ENABLE_GC_CHECKING not in GGC_POISON.
1199
1200 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
1201
1202         PR bootstrap/9863
1203         * configure.in: Bail out if awk is missing.
1204         * configure: Regenerate.
1205
1206         PR ada/12761
1207         * Makefile.in: Move default definitions of X_ADA_CFLAGS,
1208         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
1209
1210 2003-10-30  Richard Henderson  <rth@redhat.com>
1211
1212         * c-objc-common.c (c_tree_printer): Handle types correctly.
1213         Factor code a bit.
1214
1215 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
1216
1217         * value-prof.c, web.c: Update to C90.
1218
1219 2003-10-30  Eric Christopher  <echristo@redhat.com>
1220
1221         * function.c (purge_addressof_1): Add case for REG_RETVAL
1222         notes when modes are unequal.
1223
1224 2003-10-31  Jan Hubicka  <jh@suse.cz>
1225
1226         * i386-modes.def: Add XFmode format adjustment.
1227
1228 2003-10-30  Jan Hubicka  <jh@suse.cz>
1229
1230         * real.c (encode_ieee_extended): Back out previous patch.
1231
1232 2003-10-30  Jan Hubicka  <jh@suse.cz>
1233
1234         * real.c (encode_ieee_extended): Initialize whole array.
1235         * reg-stack.c (move_for_stack_reg0: Use always XFmode.
1236         * i386-modes.def: Change definitions of TFmode and XFmode.
1237         * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
1238         code.
1239         (construct_container): Allow constructing of TFmode integer containers.
1240         (ix86_return_in_memory):  XFmode is not returned in memory.
1241         (init_ext_80387_constants): Always use XFmode.
1242         (print_operand): Likewise.
1243         (ix86_prepare_fp_compare_regs): Likewise.
1244         (split_to_parts): Deal with TFmode.
1245         (split_long_move): Simplify.
1246         (ix86_init_mmx_sse_builtins): Add __float80, __float128.
1247         (ix86_memory_move_cost): Do not confuse TFmode.
1248         * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
1249         (IS_STACK_MODE): TFmode is not stack mode.
1250         (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
1251         (VALID_SSE_REG_MODE): Allow TFmode.
1252         (VALID_FP_MODE_P): Disallow TFmode.
1253         (VALID_INT_MODE_P): Allow TFmode in 64bit mode.
1254         * i386.md (TFmode patterns): Kill.
1255         (movtf, motf_rex64): New patterns.
1256
1257 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1258
1259         * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code.
1260
1261 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1262
1263         * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate.
1264         (mov_lwr, mov_swl, mov_swr): Likewise.
1265         (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
1266
1267 2003-10-30  Richard Sandiford  <rsandifo@redhat.com>
1268
1269         * config/mips/mips.c (mips_global_pointer): Don't try to use $25.
1270
1271 2003-10-30  Richard Henderson  <rth@redhat.com>
1272
1273         * config/mips/mips.c (mips_build_builtin_va_list): Use runtime
1274         test for irix6 rather than preprocessor test.
1275
1276 2003-10-30  Richard Henderson  <rth@redhat.com>
1277
1278         * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
1279
1280 2003-10-30  Ulrich Weigand  <uweigand@de.ibm.com>
1281
1282         * config/s390/s390.c (struct machine_function): Use save_return_addr_p
1283         as a general flag that the return address register needs to be saved,
1284         not necessarily because of __builtin_return_addr (0).
1285         (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
1286         remove special handling of zSeries machines.
1287         (s390_optimize_prolog): Remove TEMP_USED argument, treat the return
1288         register as a regular register on zSeries machines.
1289         (s390_reorg): Adjust calls to s390_split_branches and
1290         s390_optimize_prolog.
1291         (s390_frame_info): On zSeries machines, do not assume the return
1292         register is always used.  Update regs_ever_live with current data
1293         for the special registers.
1294         (s390_emit_epilogue): Use save_return_addr_p to determine whether
1295         the return register was saved.
1296         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
1297         RETURN_REGNUM fixed on zSeries machines.
1298         (REG_ALLOC_ORDER): Use RETURN_REGNUM last.
1299         * config/s390/s390.md ("*doloop_si"): Handle branch overflow
1300         via ahi-jgne pair on zSeries machines.
1301         ("*doloop_di"): Likewise.
1302         ("*doloop_di_long"): Remove.
1303
1304 2003-10-30  Richard Earnshaw  <rearnsha@arm.com>
1305
1306         * arm.c (arm_override_options): Revert change of arm_constant_limit
1307         when optimizing for size.
1308
1309 2003-10-29  Richard Henderson  <rth@redhat.com>
1310
1311         * fold-const.c (fold_single_bit_test): Convert the input to the
1312         operational intermediate type.
1313
1314 2003-10-29  Richard Henderson  <rth@redhat.com>
1315
1316         * builtins.c (std_build_builtin_va_list): New.
1317         * expr.h (std_build_builtin_va_list): Declare.
1318         * defaults.h (BUILD_VA_LIST_TYPE): New.
1319         * system.h (BUILD_VA_LIST_TYPE): Poison.
1320         * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
1321         * target.h (struct gcc_target): Add build_builtin_va_list.
1322         * tree.c (build_common_tree_nodes_2): Use it.
1323
1324         * config/alpha/alpha-protos.h, config/alpha/alpha.c,
1325         config/alpha/alpha.h, config/alpha/unicosmk.h,
1326         config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
1327         config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
1328         config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
1329         config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
1330         config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
1331         config/mips/mips.h, config/rs6000/rs6000-protos.h,
1332         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1333         config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
1334         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
1335         config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
1336         config/xtensa/xtensa.h: Rename foo_build_va_list to
1337         foo_build_builtin_va_list; make it static.  Define
1338         TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
1339         Update protos.
1340
1341         * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
1342         * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
1343
1344 2003-10-29  James E Wilson  <wilson@specifixinc.com>
1345
1346         * recog.c (asm_operand_ok): Add missing break after case 'X'.
1347         Change if statements to else if statements in default case.
1348         (extract_constrain_insn_cached): Fix misspelling of constrain_operands
1349         in comment.
1350         (constrain_operands_cached): Likewise.
1351         (constrain_operands): Change if statements to else if statements in
1352         default case.
1353         * reload.c (find_reloads): Likewise.
1354
1355 2003-10-29  Richard Henderson  <rth@redhat.com>
1356
1357         * config/m68k/m68k.c (notice_update_cc): Clear cc status for
1358         shifts and rotates.
1359
1360 2003-10-30  Alan Modra  <amodra@bigpond.net.au>
1361
1362         * config/rs6000/rs6000.md: Remove duplicate pattern.
1363
1364 2003-10-29  Hans-Peter Nilsson  <hp@axis.com>
1365
1366         * real.c (do_divide): Initialize result with a 0.
1367
1368         * configure.in <enable-checking for valgrind>: Look for
1369         <valgrind/memcheck.h> first.  AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
1370         if it exists.
1371         * configure, config.in: Regenerate.
1372         * ggc-common.c [ENABLE_VALGRIND_CHECKING &&
1373         HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>.  Use
1374         #elif for other alternatives.
1375         * ggc-page.c: Ditto.
1376         * ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
1377         include structure from ggc-common.c.
1378
1379 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1380
1381         * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
1382         (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
1383         * pa.c (pa_adjust_insn_length): Check for btable branches using
1384         attribute TYPE_BTABLE_BRANCH.
1385         (pa_reorg): Simplify.
1386         * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
1387         (ASM_OUTPUT_ADDR_VEC_ELT): As above.
1388         (ASM_OUTPUT_ADDR_DIFF_ELT): As above.
1389         * pa.md (btable_branch): New instruction type.
1390         (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
1391         btable branches.
1392         (define_delay): Add btable branches to insn types that may have an
1393         insn in the delay position.
1394         (Z2, Z3): Add btable branch to list.
1395         Simplify unamed pattern set copy pic_label_operand to register.  Add
1396         PA 2.0 variant.
1397         (short_jump): New jump for use in branch tables.
1398         (casesi, casesi0): Revise for new branch table formats.
1399         (casesi32, casesi32p, casesi64p): New casesi patterns.
1400         (indirect_jump): Move.
1401
1402 2003-10-29  David Edelsohn  <edelsohn@gnu.org>
1403
1404         * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
1405         !TARGET_POWERPC64.
1406         (UNITS_PER_GPR_WORD): Delete.
1407         (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD.
1408         (HARD_REGNO_MODE_OK): Same.
1409         (CLASS_MAX_NREGS): Same.
1410
1411 2003-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1412
1413         * pa.h (ASM_COMMENT_START): Define.
1414
1415 2003-10-29  Zack Weinberg  <zack@codesourcery.com>
1416
1417         * genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
1418         MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
1419         component, not zero.
1420
1421 2003-10-29  Andreas Schwab  <schwab@suse.de>
1422
1423         * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
1424
1425 2003-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1426
1427         * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
1428         Never return 1 for complex integral modes whose size is lesser or
1429         equal to a word.
1430         (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
1431         in the comment.
1432         (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
1433         modes.
1434         (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
1435         greater than 16 bytes by reference.
1436
1437 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1438
1439         * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
1440         not TARGET_ILP32.
1441         (ia64_initialize_trampoline): Use globalize_label target call.
1442
1443 2003-10-29  Andreas Schwab  <schwab@suse.de>
1444
1445         * doc/install.texi (Building): Add a sentence about building Ada
1446         for a canadian cross.
1447
1448 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1449
1450         * config/ia64/ia64.c (cmptf_libfunc): New static.
1451         (ia64_expand_compare): Add logic to open-code calls to
1452         _U_Qfcmp for TFmode comparisons.
1453         (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
1454         Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
1455         never be generated anymore.
1456         * config/ia64/ia64.md (cmptf): New expander.
1457
1458 2003-10-28  Zack Weinberg  <zack@codesourcery.com>
1459
1460         * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
1461         (*sqrt_approx): New instruction pattern for approximate square roots.
1462         (*setf_exp_xf): New instruction pattern for exponentiation.
1463         (*maddxf4_alts_truncsf): New instruction pattern for truncation.
1464         (sqrtsf2_internal_thr): New define_and_split implementing
1465         throughput-optimized inline calculation of SFmode square root.
1466         (sqrtdf2_internal_thr): Likewise for DFmode.
1467         (sqrtxf2_internal_thr): Likewise for XFmode.
1468         (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
1469         latency- and throughput-optimized square root algorithms.
1470         * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
1471         TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
1472         New macros.
1473         (TARGET_SWITCHES): Add -minline-sqrt-min-latency and
1474         -minline-sqrt-max-throughput.
1475         * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
1476         and -minline-sqrt-max-throughput are given, notify the user
1477         that both options cannot be used simultaneously.
1478         If -minline-sqrt-min-latency is given, notify the user that
1479         this mode is not yet implemented.
1480         (rtx_needs_barrier): Reformat initial comment to obey
1481         72-character width limit.  Support UNSPEC_SETF_EXP and
1482         UNSPEC_FR_SQRT_RECIP_APPROX.
1483
1484 2003-10-29  Alan Modra  <amodra@bigpond.net.au>
1485
1486         * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr
1487         moves.
1488
1489 2003-10-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1490
1491         PR target/11598
1492         PR libgcj/10610
1493         * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
1494
1495 2003-10-28  Richard Earnshaw  <rearnsha@arm.com>
1496
1497         * arm.c (arm_output_epilogue): When using a frame pointer, don't emit
1498         an extra stack adjustment insn if the stack pointer is already
1499         pointing at the right place.
1500         (use_return_insn): Allow a return insn to be used when we have a
1501         frame pointer if the stack pointer is in the right place.
1502         (output_return_instruction): Handle it.
1503
1504 2003-10-28  Andreas Jaeger  <aj@suse.de>
1505
1506         * ggc-zone.c (check_cookies): Add missing variable.
1507         Add void to prototypes.
1508
1509 2003-10-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1510
1511         * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
1512         * crtstuff.c (__do_global_ctors_1): Move prototype.
1513         * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
1514         appropriate.
1515         * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
1516         Mark parameter with __attribute__((unused)).
1517
1518 2003-10-27  Zack Weinberg  <zack@codesourcery.com>
1519
1520         * c-decl.c (pushdecl): Clarify comment.
1521
1522 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
1523
1524         * doc/install.texi: Update instructions for Ada cross builds
1525
1526         PR ada/5909:
1527         * doc/sourcebuild.texi: Document Ada test suite.
1528
1529 2003-10-27  Stephane Carrez  <stcarrez@nerim.fr>
1530
1531         * config/m68hc11/m68hc11.c: Convert to ISO C90.
1532         * config/m68hc11/m68hc11-protos.h: Likewise.
1533
1534 2003-10-27  Jan Hubicka  <jh@suse.cz>
1535             Eric Botcazou  <ebotcazou@libertysurf.fr>
1536
1537         * toplev.c (enum dump_file_index, dump_file): Fix ordering of
1538         webizer pass dump.
1539
1540 2003-10-27  Jakub Jelinek  <jakub@redhat.com>
1541             Jan Hubicka  <jh@suse.cz>
1542
1543         * reload1.c (struct elim_table): Change offset, initial_offset and
1544         previous_offset fields to HOST_WIDE_INT.
1545         (offsets_at): Change from int to HOST_WIDE_INT.
1546         (reload): Adjust offsets_at initialization.
1547         (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
1548         (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
1549         * config/i386/i386.c (ix86_compute_frame_layout): Change offset type
1550         to HOST_WIDE_INT.  Don't save regs using mov for huge frame sizes
1551         if TARGET_64BIT.
1552         (pro_epilogue_adjust_stack): New function.
1553         (ix86_expand_prologue, ix86_expand_epilogue): Use it.
1554         * config/i386/i386.md (pro_epilogue_adjust_stack): Remove.
1555         (pro_epilogue_adjust_stack_1): Remove * in front of name.
1556         (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
1557         (pro_epilogue_adjust_stack_rex64_2): New insn.
1558
1559         * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
1560
1561         * config/i386/i386.c (ix86_expand_call): Replace 40 with
1562         FIRST_REX_INT_REG + 3 /* R11 */.
1563
1564 2003-10-26  Richard Henderson  <rth@redhat.com>
1565
1566         * config/alpha/alpha.md (attr cannot_copy): New.
1567         (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
1568         prologue_ldgp_er_2, prologue_ldgp_1): Set it.
1569         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
1570
1571 2003-10-26  Daniel Berlin  <dberlin@dberlin.org>
1572
1573         * ggc-zone.c:  New file, zone allocating collector.
1574         * configure: Accept zone option for --with-gc
1575         * configure.in: Ditto.
1576         * ggc.h (ggc_pch_count_object): Pass bool indicating
1577         stringiness. Update all callers.
1578         (ggc_pch_alloc_object): Ditto.
1579         (ggc_pch_write_object): Ditto.
1580         (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
1581         type.
1582         (ggc_alloc_rtvec): Ditto.
1583         (ggc_alloc_tree): Use zone allocation, since some things using this macro
1584         aren't a single typecode.
1585         * ggc-none.c (ggc_alloc_typed): New function.
1586         (ggc_alloc_zone): Ditto.
1587         * ggc-page.c: Ditto on both functions.
1588
1589 2003-10-26  Gunther Nikl  <gni@gecko.de>
1590
1591         * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
1592         frame information is always valid.
1593         (m68k_output_function_prologue): Remove superfluous TARGET_68881
1594         test; fix formatting.
1595
1596 2003-10-26  Gunther Nikl  <gni@gecko.de>
1597
1598         * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
1599         reg_rev_mask computation.
1600         (m68k_output_function_prologue): Fix usage of current_frame (one typo
1601         and one missing); use reg_rev_mask not reg_mask.
1602         (m68k_output_function_epilogue): Fix usage of current_frame;
1603         use fpu_rev_mask not fpu_mask.
1604
1605 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
1606
1607         * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
1608         num_saved_regs, use current_frame.reg_no instead.
1609
1610 2003-10-26  Bernardo Innocenti  <bernie@develer.com>
1611             Paul Dale  <pauli@snapgear.com>
1612
1613         * doc/extend.texi (interrupt_handler): Add m68k to the
1614         list of processors implementing it.
1615         * doc/invoke.texi (-msep-data): Document new m68k option.
1616         (-mno-sep-data): Likewise.
1617         (-mid-shared-library): Likewise.
1618         (-mno-id-shared-library): Likewise.
1619         (-mshared-library-id): Likewise.
1620
1621 2003-10-26  Andreas Jaeger  <aj@suse.de>
1622
1623         * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
1624         comparison.
1625         (_Unwind_SetGR): Likewise.
1626
1627 2003-10-26  Ottavio Campana <ottavio@campana.vi.it>
1628
1629         PR target/12690
1630         * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
1631
1632 2003-10-26  Gunther Nikl  <gni@gecko.de>
1633
1634         * config/m68k/m68k.c (m68k_output_function_prologue): Move front
1635         comment from here to...
1636         (m68k_save_reg): ...here. Fix comment formatting.
1637         (m68k_output_function_prologue): Fix comment formatting.
1638         (m68k_output_function_epilogue): Likewise.
1639         (const_method): Likewise.
1640
1641 2003-10-26  Kazu Hirata  <kazu@cs.umass.edu>
1642
1643         * toplev.c (default_get_pch_validity): Guard the use of
1644         target_options with #ifdef TARGET_OPTIONS.
1645         (default_pch_valid_p): Likewise.
1646
1647 2003-10-26  Andreas Jaeger  <aj@suse.de>
1648             Zack Weinberg  <zack@codesourcery.com>
1649             Andreas Tobler <toa@pop.agri.ch>
1650
1651         * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
1652         (output_die): Likewise.
1653         (print_die): Likewise.
1654
1655 2003-10-26  Andreas Jaeger  <aj@suse.de>
1656
1657         * tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
1658         dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
1659         dwarf2out.c change.
1660
1661         * toplev.c (default_pch_valid_p): Fix warning.
1662
1663 2003-10-25  Roger Sayle  <roger@eyesopen.com>
1664
1665         * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
1666         RTL nodes.  If an operator's operands are unchanged, return the
1667         original argument unchanged.
1668
1669 2003-10-26  Graham Stott  <graham.stott@btinternet.com>
1670
1671         Fix bootstrap failure.
1672         * expmed.c (store_bit_field): Don't compare bitsize against
1673         modes with zero bit-size.
1674
1675         (extract_bit_field): Likewise
1676
1677 2003-10-25  Jan Hubicka  <jh@suse.cz>
1678
1679         * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
1680         (cfa_loc): Likewise.
1681         (reg_save, stack_adjust_offset, queue_reg_save): Replace long by
1682         HOST_WIDE_INT.
1683         (args_size, old_args_size): change type to HOST_WIDE_INT.
1684         (dwarf2out_def_cfa, dwarf2out_args_size,
1685         dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
1686         (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
1687         (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
1688         AT_offset): Use HOST_WIDE_INT.
1689         (based_loc_descr): offset is HOST_WIDE_INT.
1690         (add_data_member): Likewise.
1691         (add_const_value_attribute): Simplify.
1692
1693 2003-10-25  Richard Henderson  <rth@redhat.com>
1694
1695         * config/i386/i386.c (ix86_eax_live_at_start_p): New.
1696         (ix86_expand_prologue): Save and restore eax around stack probe
1697         if it's live.
1698
1699 2003-10-25  Jan Hubicka  <jh@suse.cz>
1700
1701         * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
1702
1703 2003-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1704
1705         PR target/12712
1706         * reg-stack.c (convert_regs_1): Create an arbitrary input stack
1707         if the block has no predecessors.
1708         (convert_regs_2): Document the problem with successors whose
1709         only predecessor is the block to be processed.
1710         (convert_regs): Don't create the arbitrary input stack here.
1711
1712 2003-10-24  Zack Weinberg  <zack@codesourcery.com>
1713
1714         * genmodes.c (struct mode_data): Add contained and next_cont
1715         fields.
1716         (complete_mode): Maintain linked list of modes that have a
1717         given component.
1718         (emit_mode_unit_size): Delete.
1719         (emit_mode_nunits): New.
1720         (emit_insn_modes_c): Update to match.
1721         (emit_mode_adjustments): Propagate size and alignment
1722         adjustments from component modes to their containers.
1723         * machmode.h (mode_unit_size): Delete.
1724         (mode_nunits): New.
1725         (GET_MODE_NUNITS): Just return the value in the table.
1726         (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
1727         GET_MODE_SIZE.
1728         * expmed.c (store_bit_field, extract_bit_field): Can use a
1729         plain move instruction if bitsize >= GET_MODE_BITSIZE of
1730         destination/source mode, respectively.
1731         * varasm.c (assemble_real): Write out the full size of the
1732         constant, not just its bitsize.
1733         (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
1734
1735         * config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
1736         Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
1737         alignment of XF and TF modes in compliance with ia64 ABIs.
1738         Can now hardwire the format of both modes.
1739         * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
1740         (general_tfmode_operand, destination_tfmode_operand)
1741         (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
1742         general_xfmode_operand, destination_xfmode_operand,
1743         xfreg_or_fp01_operand, spill_xfmode_operand respectively.
1744         (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
1745         and float80_type be 96 so they get XFmode.  Use !TARGET_HPUX,
1746         not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
1747         __float128.
1748         * config/ia64/ia64.h: Default TARGET_HPUX to 0.
1749         Change TFmode to XFmode wherever appropriate.  Remove all
1750         references to INTEL_EXTENDED_IEEE_FORMAT.
1751         (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
1752         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
1753         (PREDICATE_CODES): Update to match function renames.
1754         * config/ia64/ia64.md: Change TF to XF throughout; rename all
1755         patterns to match.  Remove all references to
1756         INTEL_EXTENDED_IEEE_FORMAT.  Update predicate calls to match
1757         function renames.
1758         * config/ia64/ia64-protos.c: Update all prototypes to match
1759         renamed functions.
1760         * config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
1761         Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
1762         * config/ia64/lib1funcs.asm: Add __divxf3 as new name for
1763         __divtf3; keep old name for backward compatibility.
1764         (L__compat): New section providing forwarding stubs for
1765         __fixtfti, __fixunstfti, __floattitf.
1766         * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
1767
1768 2003-10-24  Geoffrey Keating  <geoffk@apple.com>
1769
1770         PR 10757
1771         * c-pch.c: Include target.h.  Improve comments.
1772         (struct c_pch_validity): Add target_data_length.
1773         (pch_init): Add target's validity data.
1774         (c_common_valid_pch): Check target's validity data.
1775         * target-def.h (TARGET_GET_PCH_VALIDITY): New.
1776         (TARGET_PCH_VALID_P): New.
1777         (TARGET_INITIALIZER): Add new fields.
1778         * target.h: Include tm.h.
1779         (struct gcc_target): Add get_pch_validity, pch_valid_p.
1780         * toplev.h (default_get_pch_validity): New prototype.
1781         (default_pch_valid_p): New prototype.
1782         * toplev.c (default_get_pch_validity): New routine.
1783         (default_pch_valid_p): New routine.
1784         * Makefile.in (TARGET_H): Add TM_H.  Replace all users of
1785         target.h with $(TARGET_H).
1786         (c-pch.o): Add TARGET_H.
1787         * doc/tm.texi (PCH Target): New node.
1788         (TARGET_GET_PCH_VALIDITY): Document.
1789         (TARGET_PCH_VALID_P): Document.
1790
1791 2003-10-24  Kelley Cook  <kcook@gcc.gnu.org>
1792
1793         * Makefile.in: Define a vpath for %.texi.  Remove explicit $(docdir)
1794         and $(docdir)/include from any *.texi dependencies.
1795         ($(docobjdir)/%.dvi): Depend on stmp-docobjdir.
1796         ($(docobjdir)/%.1): Depend on .pod instead of .texi.
1797         ($(docobjdir)/%.7): Likewise.
1798         (%.pod): New implicit rule.
1799         (cpp.pod): New dependency only rule.
1800         (gcc.pod): New intermediate rule with dependencies and commands.
1801         (gfdl.pod): Likewise.
1802         (fsf-funding.pod): Likewise.
1803
1804 2003-10-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1805
1806         * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and
1807         related code.
1808         * fixinc/fixinc.ptx: Remove.
1809         * fixinc/fixinc.svr4: Remove.
1810
1811 2003-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
1812
1813         * config/s390/s390.c (load_multiple_operation): Allow both SImode
1814         and DImode if word_mode is DImode.
1815         (store_multiple_operation): Likewise.
1816         * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise.
1817         ("*load_multiple_di"): Allow only if word_mode == DImode.
1818         ("movqi"): Use LLGC whenever TARGET_ZARCH.
1819         ("fix_truncdfsi2"): Fix incorrect temporary size.
1820         ("fix_truncsfsi2"): Likewise.
1821         ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint
1822         string for function return value operand.
1823         ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise.
1824
1825 2003-10-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1826
1827         * c-parse.in (array_declarator): Use expr_no_commas.
1828         Fixes PR c/11943.
1829
1830 2003-10-24  Richard Sandiford  <rsandifo@redhat.com>
1831
1832         * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and
1833         associated includes in #ifndef inhibit_libc.
1834
1835 2003-10-24  Roger Sayle  <roger@eyesopen.com>
1836
1837         * doc/libgcc.texi: Document some more of the libgcc API.
1838
1839 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
1840
1841         * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for
1842         comparing a constant with small negative numbers and add costing
1843         for constants in conjunction with AND.
1844         (note_invalid_constants): Tidy previous change.
1845         (thumb_cmp_operand): Tidy.
1846         (thumb_cmpneg_operand): New function.
1847         * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing
1848         for size.
1849         (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define.
1850         (PREDICATE_CODES): Add thumb_cmpneg_operand.
1851         * arm.md (cbranchsi4): Convert to define_expand.  Handle comparison
1852         with a negative constant.
1853         (cbranchsi4_insn): Matcher for cbranchsi4.
1854         (cbranchsi4_scratch): Similar, but a scratch is available for
1855         handling negative constants.
1856         (movsi_cbranchsi4): New pattern.
1857         (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch
1858         and use the TST instruction.
1859         (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1)
1860         (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing
1861         cannot see high regs or memory alternatives.
1862         (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns.
1863
1864 2003-10-24  Richard Earnshaw  <rearnsha@arm.com>
1865
1866         * arm.c (note_invalid_constants): Try to extract the constant
1867         pool value using avoid_constant_pool_reference; only use
1868         get_pool_constant if that returns the original reference.
1869
1870 2003-10-24  Jan Hubicka  <jh@suse.cz>
1871
1872         PR c++/12624
1873         * varasm.c (notice_global_symbol): Disqualify global registers.
1874
1875 2003-10-23  Roger Sayle  <roger@eyesopen.com>
1876
1877         PR middle-end/11414
1878         * loop.c (load_mems): Use redirect_jump to forward jumps from
1879         the original loop end label to the new "loop sink" block's label.
1880
1881 2003-10-23  Roger Sayle  <roger@eyesopen.com>
1882
1883         PR middle-end/12705
1884         * optabs.c (expand_binop): When expanding complex operations
1885         inline, always calculate result into a new temporary register.
1886         Minor code clean-ups.
1887
1888 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1889
1890         * objc/lang-specs.h: Handle -print-objc-runtime-info.
1891         * doc/invoke.texi (Objective-C Dialect Options): Document it.
1892
1893 2003-10-24  Danny Smith  <dannysmith@users.sourceforge.net>
1894
1895         * config/i386/cygwin.asm. Add copyright notice. Add comment
1896         on why this code is needed.
1897
1898 2003-10-23  Kazu Hirata  <kazu@cs.umass.edu>
1899
1900         * config/h8300/clzhi2.c: Fix warnings.
1901         * config/h8300/ctzhi2.c: Likewise.
1902         * config/h8300/fixunssfsi.c: Likewise.
1903         * config/h8300/parityhi2.c: Likewise.
1904         * config/h8300/popcounthi2.c: Likewise.
1905
1906 2003-10-23  James E Wilson  <wilson@specifixinc.com>
1907
1908         * gcc.c (option_map): Delete --target and --use-version.
1909
1910 2003-10-23  Fariborz Jahanian  <fjahanian@apple.com>
1911             David Edelsohn  <edelsohn@gnu.org>
1912
1913         * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not
1914         TARGET_POWREPC64.
1915         (UNITS_PER_GPR_WORD): Define.
1916         (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD.
1917         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
1918         (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD.
1919         (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD.
1920         * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for
1921         DFmode and DImode in 32-bit ABI / 64-bit computation mode.
1922         (rs6000_emit_prologue): Select reg_mode and reg_size using
1923         TARGET_32BIT, not TARGET_POWERPC64.
1924         (rs6000_function_value): Generate PARALLEL for DImode in 32-bit
1925         ABI / 64-bit computation mode
1926
1927 2003-10-22  Andrew Haley  <aph@redhat.com>
1928
1929         * toplev.c (output_file_directive): Allow for null input_name.
1930
1931 2003-10-22  Waldek Hebisch <hebisch@math.uni.wroc.pl>
1932
1933         * config/i386/i386.c (classify_argument): Handle SET_TYPE.
1934
1935 2003-10-22  Chris Demetriou  <cgd@broadcom.com>
1936
1937         * configure.in: In --enable-generated-files-in-srcdir option
1938         handling, fix default case handling.
1939         * configure: Regenerate.
1940
1941 2003-10-22  Phil Edwards  <phil@codesourcery.com>
1942
1943         * config.gcc:  Update *-*-vxworks* generic hook and comments.
1944         (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks,
1945         mips-wrs-windiss, sh-wrs-vxworks):  New stanzas.
1946         * genmultilib:  Allow the MULTILIB_OSDIRNAMES to be mapped directly.
1947         * config/svr4.h (SWITCH_TAKES_ARG):  Undefine it before redefining it.
1948         * config/windiss.h:  New file.
1949         * config/arm/t-vxworks:  New file.
1950         * config/arm/vxworks.h:  New file.
1951         * config/i386/t-vxworks:  New file.
1952         * config/i386/vxworks.h:  New file.
1953         * config/mips/t-vxworks:  New file.
1954         * config/mips/vxworks.h:  New file.
1955         * config/mips/windiss.h:  New file.
1956         * config/sh/t-vxworks:  New file.
1957         * config/sh/vxworks.h:  New file.
1958
1959 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1960
1961         * config/h8300/h8300.c (h8300_output_function_epilogue): Remove.
1962         (h8300_saveall_function_p): New.
1963         (h8300_insert_attributes): Insert the saveall attribute if
1964         #pragma saveall is specified.
1965         (h8300_attribute_table): Add saveall.
1966         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
1967         * doc/extend.texi: Mention the saveall attribute.
1968
1969 2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1970
1971         * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
1972         deprecation of casts as lvalues.
1973         * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
1974         * fixinc/fixincl.x: Regenerate.
1975         * fixinc/tests/base/obstack.h: New test.
1976
1977 2003-10-22  Andreas Schwab  <schwab@suse.de>
1978
1979         PR target/12676
1980         * config/m68k/m68k.c (output_addsi3): Fix range check to work on
1981         LP64 platforms.
1982
1983 2003-10-22  Jan Hubicka  <jh@suse.cz>
1984
1985         * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check
1986         presence of DW_AT_inline.
1987         (gen_subprogram_die): Likewise; do not abort instead of emitting
1988         DW_AT_not_inline.
1989
1990 2003-10-22  Jan Hubicka  <jh@suse.cz>
1991
1992         * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when
1993         global info is not ready.
1994
1995 2003-10-22  Kazu Hirata  <kazu@cs.umass.edu>
1996
1997         * doc/extend.texi: Mention H8S wherever H8/300H is mentioned.
1998
1999 2003-10-22  Ulrich Weigand  <uweigand@de.ibm.com>
2000
2001         * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ...
2002         ("*movstr_short"): ... into this insn pattern.
2003         ("movstr_short"): New expander.
2004         ("*movstr_long_64"): Rename from "movstr_long_64", simplify.
2005         ("*movstr_long_31"): Rename from "movstr_long_31", simplify.
2006         ("movstr_long"): New expander.
2007         ("clrstr_short_64", "clrstr_short_31"): Merge ...
2008         ("*clrstr_short"): ... into this insn pattern.
2009         ("clrstr_short"): New expander.
2010         ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify.
2011         ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify.
2012         ("clrstr_long"): New expander.
2013         ("cmpmem_short_64", "cmpmem_short_31"): Merge ...
2014         ("*cmpmem_short"): ... into this insn pattern.
2015         ("cmpmem_short"): New expander.
2016         ("*cmpmem_long_64"): Rename from "cmpmem_long_64".
2017         ("*cmpmem_long_31"): Rename from "cmpmem_long_31".
2018         ("cmpmem_long"): New expander.
2019         * config/s390/s390.c (s390_expand_movstr): Use new expanders.
2020         (s390_expand_clrstr): Likewise.
2021         (s390_expand_cmpmem): Likewise.
2022
2023 2003-10-22  Mark Mitchell  <mark@codesourcery.com>
2024
2025         * c-pch.c (struct c_pch_validity): Add pch_init field.
2026         (pch_init): Set it.
2027         (c_common_valid_pch): Check it.
2028
2029 2003-10-22  David Taylor <dtaylor@emc.com>
2030
2031         PR debug/12500
2032         * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
2033
2034 2003-10-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2035
2036         * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call
2037         alpha_return_in_memory if no VALTYPE specified.
2038
2039 2003-10-22  Jan Hubicka  <jh@suse.cz>
2040
2041         PR debug/12389
2042         * Makefile.in (dwarf2out.o): Depend on cgraph.h.
2043         * cgraph.c (cgraph_function_possibly_inlined_p): New function.
2044         * cgraph.h (cgraph_function_possibly_inlined_p): Declare.
2045         (cgraph_global_info): Add flag inlined
2046         * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
2047         cgraph_function_possibly_inded_p
2048         * cgraphunit.c (mark_inline): Set inlined flag.
2049         * toplev.c (rest_of_decl_compilation): Call outlining_inline_function
2050         only for possibly inlined functions.
2051         * c-decl.c (duplicate_decls): Never output abstract DIE representing old
2052         body of function.
2053
2054 2003-10-22  Andrew Haley  <aph@redhat.com>
2055
2056         * varasm.c (output_constructor): Make constructor annotation
2057         conditional on ASM_COMMENT_START.
2058
2059 2003-10-21  Jason Merrill  <jason@redhat.com>
2060
2061         * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type.
2062         (get_narrower): Likewise.
2063
2064         * stor-layout.c (layout_decl): Do packed field alignment for
2065         bit-fields, too.
2066
2067 2003-10-21  Eric Christopher  <echristo@redhat.com>
2068
2069         * expr.c (convert_move): Use FLOAT_EXTEND for extensions.
2070
2071 2003-10-21  Geoffrey Keating  <geoffk@apple.com>
2072
2073         * c-pch.c: Add comments in various places.
2074         (struct c_pch_validity): Add the lengths of various strings.
2075         (host_machine): New static.
2076         (target_machine): New static.
2077         (get_ident): Bump version number.
2078         (pch_init): Write out version, host, target validity data.
2079         (c_common_valid_pch): Check version, host, target.
2080         * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and
2081         TARGET_MACHINE.
2082
2083 2003-10-21  Jason Merrill  <jason@redhat.com>
2084
2085         * tree.h (IS_EXPR_CODE_CLASS): Use strchr.
2086         (EXPR_P): New macro.
2087
2088 2003-10-21  Zack Weinberg  <zack@codesourcery.com>
2089
2090         * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
2091         * config/ia64/ia64.c (ia64_expand_fetch_and_op,
2092         ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
2093         DImode.   Use convert_move to load ar.ccv.
2094         (ia64_expand_compare_and_swap): Likewise.
2095         If expand_expr doesn't put 'old' and 'new' in the proper
2096         modes, run them through convert_to_mode.
2097
2098 2003-10-21  Eric Christopher  <echristo@redhat.com>
2099
2100         * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL
2101         for too large bitfields.
2102
2103 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2104
2105         * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO.
2106
2107 2003-10-21  Andrew Haley  <aph@redhat.com>
2108
2109         * varasm.c (output_constructor): Annotate constructor.
2110
2111 2003-10-21  Mark Mitchell  <mark@codesourcery.com>
2112
2113         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod
2114         on existence of destination file.
2115
2116 2003-10-21  Jan Hubicka  <jh@suse.cz>
2117
2118         * haifa-sched.c (choose_ready): Initialize index.
2119
2120 2003-10-21  Jason Merrill  <jason@redhat.com>
2121
2122         * tree.c (build1): Fix off-by-one error.
2123
2124 2003-10-21  Robert Millan  <robertmh@gnu.org>
2125
2126         * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions.
2127         * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions.
2128         * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file.
2129         * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu.
2130
2131 2003-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2132
2133         * web.c: Fix various comments.
2134
2135 2003-10-20  Nicolas Pitre <nico@cam.org>
2136
2137         * config/arm/arm.c (arm_override_options): Set arm_constant_limit
2138         to 2 instead of 1 when optimize_size is true.  Gather code based on
2139         optimize_size together.  Add comment about XScale load latency.
2140
2141 2003-10-21  Gunther Nikl  <gni@gecko.de>
2142
2143         * config/m68k/m68k.c (m68k_output_function_prologue): Remove
2144         obsolete comments.
2145
2146 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2147
2148         * Makefile.in: Get parsedir and docobjdir from configure.
2149         * configure.in: Recogonize --enable-generated-files-in-srcdir.
2150         Pass along parsedir and docobjdir.
2151         * configure: Regenerate.
2152         * doc/install.texi: Document --enable-generated-files-in-srcdir.
2153
2154 2003-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2155
2156         * Makefile.in: Define $(docdir) before the Make-lang.in fragments are
2157         included.
2158
2159 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2160
2161         * c-common.c (expand_tree_builtin): Ensure creal and cimag
2162         functions do not return lvalues.
2163
2164 2003-10-20  Jason Merrill  <jason@redhat.com>
2165
2166         PR c/12553
2167         * tree.c (build1) <ADDR_EXPR>: Set TREE_SIDE_EFFECTS
2168         appropriately.
2169
2170         PR c/11446
2171         * stor-layout.c (layout_decl): Fix alignment handling.
2172
2173 2003-10-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2174
2175         * doc/extend.texi: Deprecate casts as lvalues.
2176
2177 2003-10-20  Jan Hubicka  <jh@suse.cz>
2178
2179         * toplev.c (rest_of_compilation): Fix webizer pass ordering.
2180
2181         * cgraphunit.c (decide_is_function_needed):  Fix test dealing
2182         with functions implicitly made inline.
2183
2184         * cgraphunit.c (cgraph_decide_inlining_incrementally):  New function.
2185         (cgraph_finalize_function): Use it.
2186         (cgraph_mark_inline): Allow incrmental decisions
2187         * invoke.texi (max-inline-slope, min-inline-insns): Kill.
2188         * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill.
2189         * tree-inline.c (limits_allow_inlining): Kill.
2190         (expand_call_inline): Always use unit-at-a-time path.
2191
2192 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2193
2194         * fixinc/inclhack.def (hpux11_snprintf): New edit.
2195         * fixinc/fixincl.x: Regenerate.
2196         * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
2197
2198 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
2199
2200         * Makefile.in (install-info): Simplify.
2201         ($(DESTDIR)$(infodir)/%.info): New rule.
2202         * configure.in (target_list): Remove install-info.
2203         * doc/.cvsignore (gcc.info*): Remove.
2204         (gccint.info*): Likewise.
2205         (gccinstall.info*): Likewise.
2206         (cpp.info*): Likewise.
2207         (cppinternals.info*): Likewise.
2208         (*.info*): Add it.
2209         * doc/sourcebuild.texi: Update description of install-info.
2210         * objc/Make-lang.in (objc.install-info): Remove.
2211
2212 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2213
2214         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32.
2215         Use it in _MIPS_SIM definition.
2216         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise.
2217
2218 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2219
2220         * config/i386/i386.c (print_reg): Abort if REGNO (x) is a
2221         virtual register, but only if file == asm_out_file.
2222         * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "",
2223         for ARG_POINTER_REGNUM.
2224
2225 2003-10-20  Zack Weinberg  <zack@codesourcery.com>
2226
2227         * c-common.c (registered_builtin_types): New static.
2228         (c_common_type_for_mode): Consult registered_builtin_types.
2229         (c_register_builtin_type): Add type to registered_builtin_types.
2230         * optabs.c (init_floating_libfuncs): Initialize libfuncs for
2231         all MODE_FLOAT modes, not just the ones corresponding to
2232         float_type_node, double_type_node, and long_double_type_node.
2233
2234 2003-10-20  Richard Henderson  <rth@redhat.com>
2235
2236         * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand.
2237         * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes.
2238
2239 2003-10-20  Dorit Naishlos  <dorit@il.ibm.com>
2240
2241         * config/rs6000/rs6000.h: (rs6000_sched_insert_nops):
2242         support new flag -minsert-sched-nops.
2243         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define.
2244         * config/rs6000/rs6000.c: (rs6000_sched_insert_nops):
2245         support new flag -minsert-sched-nops.
2246         (is_cracked_insn, is_microcoded_insn): New functions.
2247         (rs6000_sched_finish): New function.
2248         (rs6000_issue_rate): Return 5 for power4.
2249         (get_next_active_insn, insn_terminates_group_p): New
2250         functions.
2251         (is_costly_group, force_new_group): New functions.
2252         (redefine_groups, pad_groups): New functions.
2253         (rs6000_variable_issue): Use new functions.
2254         * doc/invoke.texi (-minsert-sched-nops): Document new
2255         option.
2256
2257 2003-10-20  David S. Miller  <davem@redhat.com>
2258
2259         * config/sparc/sparc.md (type attribute): Add new insn types
2260         fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS.
2261         (patterns emitting VIS insns): Use them.
2262         * config/sparc/ultra1_2.md: Add VIS scheduling rules.
2263         * config/sparc/ultra3.md: Likewise.
2264
2265 2003-10-20  Falk Hueffner  <falk@debian.org>
2266
2267         PR target/12654
2268         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
2269         comparison against constant by adjusting the argument except for
2270         EQ and NE.
2271
2272 2003-10-19  Mark Mitchell  <mark@codesourcery.com>
2273
2274         * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js,
2275         arm1136jfs, and armv6j.
2276         * config/arm/arm.c (FL_ARCH6J): New macro.
2277         (FL_VFPV2): Likewise.
2278         (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js,
2279         and arm1136jfs.
2280         (all_architectures): Add entry for armv6j.
2281         (arm_override_options): Add entries for arm926ejs, arm1026ejs,
2282         arm1136js, and arm1136jfs.
2283         * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro.
2284         (TARGET_CPU_arm1026ej_s): Likewise.
2285         (TARGET_CPU_arm1136j_s): Likewise.
2286         (TARGET_CPU_arm1136jf_s): Likewise.
2287         * doc/invoke.texi: Document new ARM cores and architecture
2288         variants.
2289
2290 2003-10-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2291
2292         * Makefile.in (toplev.o): Add value-prof.h dependency.
2293         (value-prof.o): Add REGS_H dependency.
2294         * common.opt (fprofile-values, fvpt): New.
2295         * flags.h (flag_value_profile_transformations): Declare.
2296         * opts.c (common_handle_option): Handle -fprofile_values and
2297         -fvpt.
2298         * profile.c (branch_prob): Don't remove death notes here.
2299         * timevar.def (TV_VPT): New.
2300         * value-prof.c: Include regs.h.
2301         (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
2302         gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
2303         mod_subtract_transform, value_profile_transformations): New.
2304         (insn_values_to_profile): Call insn_divmod_values_to_profile.
2305         (find_values_to_profile): Add dumps.
2306         * value-prof.h (value_profile_transformations): Declare.
2307         * toplev.c: Include value-prof.h.
2308         (rest_of_handle_value_profile_transformations): New.
2309         (enum dump_file_index): Add DFI_vpt.
2310         (dump_file): Add vpt dump.
2311         (flag_value_profile_transformations): New.
2312         (lang_independent_options): Add flag_profile_values and
2313         flag_value_profile_transformations.
2314         (rest_of_compilation): Call
2315         rest_of_handle_value_profile_transformations.
2316         (process_options): Let -fvpt imply -fprofile-values.
2317         * doc/invoke.texi (-fvpt): Document.
2318
2319 2003-10-19  Jan Hubicka  <jh@suse.cz>
2320
2321         * i386.c (print_reg): Do not abort on certain registers.
2322
2323         PR optimization/12612
2324         * reg-stack.c (subst_stack_regs_pat):  Use st(1) for clobbers.
2325         * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use
2326         match_scratch; avoid bogus paralles.
2327
2328         PR target/12674
2329         * i386.c (ix86_function_regparm): Disable implicit register passing
2330         conventions when profiling.
2331
2332 2003-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
2333             Richard Henderson  <rth@redhat.com>
2334
2335         PR optimization/8178
2336         * config/i386/i386.md (*movsi_zero): Delete.
2337         (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
2338
2339 2003-10-19  Richard Henderson  <rth@redhat.com>
2340
2341         * config/alpha/alpha.c (fix_operator): New.
2342         (divmod_operator): Tidy.
2343         (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX.
2344         * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
2345         (PREDICATE_CODES): Update.
2346         * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator.
2347         (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise.
2348         (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise.
2349         (fix_truncsfdi_ieee): Likewise.
2350         (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand.
2351         (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New.
2352         * config/alpha/alpha-protos.h: Update.
2353
2354 2003-10-19  Richard Sandiford  <rsandifo@redhat.com>
2355
2356         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify.
2357         * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode.
2358         * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept
2359         constant operands.
2360
2361 2003-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2362
2363         * doc/extend.texi: Fix typos.
2364         * doc/invoke.texi: Likewise.
2365
2366 2003-10-18  Nicolas Pitre <nico@cam.org>
2367
2368         * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for
2369         XScale optimizations not arm_arch_xscale.
2370         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise.
2371
2372 2003-10-18  Ulrich Weigand  <uweigand@de.ibm.com>
2373
2374         * config/s390/s390-protos.h (shift_count_operand): Add prototype.
2375         * config/s390/s390.c (shift_count_operand): New function.
2376         (s390_extra_constraint): Use it to implement 'Y' constraint.
2377         (print_shift_count_operand): New function.
2378         (print_operand): Use it to implement '%Y'.
2379         * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint.
2380         (PREDICATE_CODES): Add shift_count_operand.
2381         * config/s390/s390.md ("rotldi3"): Merge alternatives,
2382         using "shift_count_operand" predicate and "Y" constraint,
2383         and "%Y" to output the combined shift count.
2384         ("rotlsi3"): Likewise.
2385         ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise.
2386         ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31",
2387         "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise.
2388         ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise.
2389         ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise.
2390         ("lshrsi3"): Likewise.
2391
2392 2003-10-18  Gunther Nikl  <gni@gecko.de>
2393
2394         * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing
2395         argument to asm_fprintf statement.
2396
2397 2003-10-18  Fariborz Jahanian  <fjahanian@apple.com>
2398
2399         * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT.
2400         (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of
2401         a "long long" argument.
2402
2403 2003-10-18  Alexandre Oliva  <aoliva@redhat.com>
2404
2405         * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns
2406         as well.
2407
2408 2003-10-18  Richard Sandiford  <rsandifo@redhat.com>
2409
2410         * rtl.h (rtl_size): Declare.
2411         (rtunion): Remove rtwint.
2412         (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT.
2413         (RTX_HDR_SIZE, RTX_SIZE): New macros.
2414         (RTL_CHECK1): Adjust for new rtx_def layout.
2415         (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise.
2416         (XWINT, XCWINT): Likewise.  Access the rtx structure directly.
2417         (X0WINT): Remove.
2418         (X0ANY): New macro.
2419         * rtl.def: Adjust comments for new rtx_def layout.
2420         * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the
2421         number of slots.
2422         * rtl.c (rtx_size): New array.
2423         (rtx_alloc): Adjust call to ggc_alloc_rtx.  Use RTX_HDR_SIZE.
2424         (copy_rtx): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2425         (shallow_copy_rtx): Adjust call to ggc_alloc_rtx.  Use RTX_SIZE.
2426         * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields.
2427         * emit-rtl.c (copy_most_rtx): Likewise.
2428         (copy_rtx_if_shared): Use RTX_SIZE.
2429         (copy_insn_1): Use RTX_HDR_SIZE.  Adjust for new rtx_def layout.
2430         * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call.  Use RTX_HDR_SIZE.
2431         * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE.
2432         (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than
2433         an array.  Adjust output for new rtx_def layout.
2434         * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE.
2435         * reload1.c (eliminate_regs): Use RTX_SIZE.
2436         * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout.
2437         * gdbinit.in (pi): Likewise.
2438
2439 2003-10-18  Jan Hubicka  <jh@suse.cz>
2440
2441         * integrate.c (copy_decl_for_inlining): Revert previous patch.
2442
2443 2003-10-18  Jan Hubicka  <jh@suse.cz>
2444
2445         * integrate.c (copy_decl_for_inlining): Fix copying of copies.
2446
2447 2003-10-18  Roger Sayle  <roger@eyesopen.com>
2448
2449         * libgcc.texi: Group multi-word types, such as "long double" and
2450         "unsigned int", using braces in @deftypefn and @deftypefnx nodes.
2451         Document __unord?f2 as returning a non-zero value, not just one.
2452
2453 2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>
2454
2455         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define.
2456         ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too.
2457
2458 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2459
2460         * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of
2461         match_operand.
2462
2463 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2464
2465         * config/sparc/sparc.c (function_arg_record_value_1): New fourth
2466         parameter packed_p.  Search for a DECL_PACKED field only if
2467         packed_p is false.  Pass packed_p recursively.
2468         (function_arg_record_value_2): Likewise.
2469         (function_arg_record_value): Update calls to
2470         function_arg_record_value_1 and function_arg_record_value_2.
2471
2472 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2473
2474         * cse.c (cse_insn) [src_folded]: Check that the tentative replacement
2475         was successfully forced to memory before using the result.
2476
2477 2003-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2478
2479         PR optimization/8178
2480         * config/i386/i386.md (*movsi_zero): New insn to set
2481         a register to zero on TARGET_USE_MOV0 targets.
2482
2483 2003-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2484
2485         * Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
2486         (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS.
2487
2488 2003-10-17  David Edelsohn  <edelsohn@gnu.org>
2489
2490         * doc/invoke.texi (gcse-las): Fix typo.
2491
2492 2003-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2493
2494         * doc/install.texi: Remove first part of the sentence for
2495         zsh not working.  Change gcc to GCC.
2496
2497         PR bootstrap/12546
2498         * doc/install.texi: Document that zsh does not work when
2499         configuring gcc.
2500
2501 2003-10-17  Nathanael Nerode  <neroden@gcc.gnu.org>
2502
2503         * config/ptx4.h: Switch to DWARF 2; update comments.
2504
2505 2003-10-17  Segher Boessenkool  <boessen@de.ibm.com>
2506             Hartmut Penner  <hpenner@de.ibm.com>
2507
2508         PR 10404, partial 11591, partial 11601
2509         * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt",
2510         "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr",
2511         "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl",
2512         "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx",
2513         "altivec_stvehx", "altivec_stvewx"): Use a memory_operand.
2514         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function.
2515         (altivec_expand_stv_builtin): Adjust for the memory_operand.
2516         (altivec_expand_builtin): Call altivec_expand_lv_builtin.
2517         (altivec_init_builtins): Use `long int' for memory offsets.
2518
2519 2003-10-17  Jan Hubicka  <jh@suse.cz>
2520
2521         * opts.c  (common_handle_option): Handle OPT_fweb
2522         * invoke.texi (-fweb): Add missing parts of documentation.
2523
2524 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2525
2526         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef
2527         before redefinition.
2528
2529 2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>
2530
2531         * common.opt: Add description of the new -fgcse-las flag.
2532         * flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
2533         * gcse.c (hash_scan_set): Handle the case of store expression and
2534         insert the memory expression to the hash table, this way we make it
2535         possible to discover redundant loads after stores and remove them.
2536         (pre_insert_copy_insn): moved the call to update_ld_motion_stores,
2537         to pre_insert_copies, it is not the correct place to call it after
2538         adding stores to be in the available expression hash table.
2539         (pre_insert_copies): Added the call to update_ld_motion_stores when
2540         one or more copies were inserted.
2541         * opts.c (common_handle_option): Handle the -fgcse-las flag.
2542         * toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
2543
2544         * doc/invoke.tex: Document new -fgcse-las flag.
2545
2546 2003-10-18  Alan Modra  <amodra@bigpond.net.au>
2547
2548         * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code
2549         for posterity, then remove it.
2550
2551 2003-10-17  Richard Earnshaw <rearnsha@arm.com>
2552             Nathan Sidwell  <nathan@codesourcery.com>
2553
2554         * config/arm/arm.c (use_return_insn): Not a single instruction, if
2555         there's a frame pointer.
2556         (arm_output_epilogue): Protect stack pointer from being corrupted
2557         on interrupt.
2558
2559 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2560
2561         * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
2562
2563 2003-10-17  Ulrich Weigand  <uweigand@de.ibm.com>
2564
2565         * combine.c (simplify_set): Do not clear out undobuf.other_insn
2566         already set elsewhere.
2567
2568 2003-10-17  Kelley Cook  <kcook@gcc.gnu.org>
2569
2570         * config/i386/i386.c (ix86_expand_prologue):  Use
2571         gen_allocate_stack_worker.
2572
2573 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2574
2575         * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2
2576         without gas.
2577         (mips-sgi-irix6*): Likewise.
2578
2579         * config/mips/iris6gas.h: New file.
2580         * gcc/config.gcc (mips-sgi-irix6*): Use it.
2581
2582         * config/mips/mips.h (TARGET_IRIX): Provide default.
2583         (TARGET_IRIX5): Likewise.
2584         (TARGET_SGI_O32_AS): Likewise.
2585         * config/mips/iris5.h (TARGET_IRIX): Redefine as 1.
2586         (TARGET_IRIX5): Likewise.
2587         * config/mips/iris6.h (TARGET_IRIX6): Remove.
2588         (TARGET_IRIX5): Redefine as 0.
2589
2590         * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32
2591         linker workaround with TARGET_IRIX and mips_abi instead of
2592         ASM_OUTPUT_UNDEF_FUNCTION.
2593         (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition,
2594         testing TARGET_IRIX and mips_abi explicitly.
2595         * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove.
2596         * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef.
2597
2598         * config/mips/mips.c (irix_output_external_libcall): Renamed from
2599         mips_output_external_libcall.
2600         Use new TARGET_IRIX in guard.
2601         * config/mips/mips-protos.h (irix_output_external_libcall): Match
2602         this.
2603         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise.
2604
2605         * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment.
2606         Define as 0.
2607
2608         * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define
2609         depending on mips_abi.
2610         * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1.
2611         * config/mips/mips.c (mips_output_function_prologue): Test
2612         FUNCTION_NAME_ALREADY_DECLARED at runtime.
2613         (mips_output_function_epilogue): Likewise.
2614         (build_mips16_function_stub): Likewise.
2615         (build_mips16_call_stub): Likewise.
2616         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide
2617         default.
2618
2619         * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native
2620         IRIX 6 O32 assembler.
2621         (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI.
2622         (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define
2623         _MIPS_SIM for O32 ABI.
2624         (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler.
2625         (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version.
2626         (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition.
2627         Integrate O32 version.
2628         (SUBTARGET_ASM_SPEC): Handle -mabi=32.
2629         (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with
2630         O32 ABI.
2631         (BSS_SECTION_ASM_OP_32): Define.
2632         (BSS_SECTION_ASM_OP_64): Likewise.
2633         (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs
2634         using them.
2635         (TARGET_ASM_NAMED_SECTION): Reflect renaming.
2636         Move up to allow override for O32 ABI without GNU as.
2637         (EH_FRAME_SECTION_NAME): Define explicitly.
2638         (MUST_USE_SJLJ_EXCEPTIONS): Define.
2639         [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP,
2640         DTORS_SECTION_ASM_OP): Dummy definitions.
2641         (TARGET_ASM_NAMED_SECTION): Undef statically.
2642         (EH_FRAME_SECTION_NAME): Likewise.
2643         (ASM_OUTPUT_FILENAME): Integrate mips.h version.
2644         (LINK_SPEC): Only use default options -call_shared -no_unresolved
2645         without -r.
2646         Don't pass -init, -fini with -mabi=32.
2647         (COLLECT_PARSE_FLAG): Define.
2648
2649         * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to
2650         TARGET_IRIX.
2651         Renamed to use irix_ prefix.
2652         (iris6_asm_named_section): Likewise.
2653         (iris_section_align_entry_eq): Likewise.
2654         (iris_section_align_entry_hash): Likewise.
2655         (iris6_file_start): Likewise.
2656         (iris6_section_align_1): Likewise.
2657         (iris6_file_end): Likewise.
2658         (iris6_section_type_flags): Likewise.
2659         (iris_section_align_htab): Likewise.
2660         (iris_orig_asm_out_file): Likewise.
2661         [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename.
2662         (TARGET_ASM_FILE_END): Likewise.
2663         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2664
2665         * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6]
2666         (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in
2667         override_options instead.
2668         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
2669         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
2670         * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore
2671         flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32
2672         assemblers.
2673         Likewise for constructor/destructor handling.
2674         (override_options): Handle IRIX O32 assembler quirks.
2675         [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and
2676         without gas.
2677         (mips_file_start): Use new TARGET_IRIX.
2678         (mips_declare_object_name): No special processing for IRIX O32
2679         assembler.
2680         (mips_finish_declare_object): Likewise.
2681         (irix_asm_output_align): Renamed from iris6_asm_output_align.
2682         Don't record alignment for O32 ABI.
2683         (irix_file_start): Renamed from iris6_file_start.
2684         Return early for O32 ABI.
2685         (irix_file_end): Renamed from iris6_file_end.
2686         Don't emit .section directives for O32 ABI.
2687         * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming.
2688         * config/mips/mips-protos.h (irix_asm_output_align): Likewise.
2689
2690         * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32.
2691         (MULTILIB_OSDIRNAMES): Likewise.
2692
2693 2003-10-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2694
2695         * collect2.c (COLLECT_PARSE_FLAG): Provide default.
2696         (main): Use it.
2697         * doc/tm.texi (COLLECT_PARSE_FLAG): Document it.
2698
2699 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
2700
2701         * arm-modes.def (CC_Nmode): New condition code mode.
2702         * arm.c (thumb_condition_code): Delete.
2703         (arm_select_cc_mode): Handle single-bit test for Thumb.
2704         (arm_print_operand, cases 'd' and 'D'): Don't special case the
2705         condition code logic for Thumb.
2706         (get_arm_condition_code): Handle CC_Nmode.
2707         (thumb_cbrch_target_operand): New function.
2708         * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
2709         * arm-protos.h (thumb_cbrch_target_operand): Add prototype.
2710         * arm.md: Add Thumb split patterns for zero_extract and
2711         sign_extract.
2712         (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
2713         (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
2714         (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
2715         (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
2716         (cbranchne_decr1): Re-work to use CC_Nmode.
2717
2718         * arm.c (thumb_expand_epilogue): Add clobbers of registers restored
2719         by the return instruction.  Add a use of the link register if it
2720         wasn't stored.
2721
2722 2003-10-17  Richard Earnshaw  <rearnsha@arm.com>
2723
2724         * flow.c (init_propagate_block_info): Don't abort if a conditional
2725         jump is not a comparison of a register.  Instead, just don't record
2726         conditional life information.
2727
2728 2003-10-16  Jan Hubicka  <jh@suse.cz>
2729
2730         PR optimization/12630
2731         * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers
2732         for operands 7 and 8.
2733
2734 2003-10-16  Kelley Cook  <kcook@gcc.gnu.org>
2735
2736         * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.
2737
2738 2003-10-16  Danny Smith  <dannysmith@users.sourceforge.net>
2739
2740         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2741
2742         * config/i386/winnt.c (gen_stdcall_suffix): Make static
2743         (gen_fastcall_suffix): Likewise.
2744         (i386_pe_dllexport_p): Likewise.
2745         (i386_pe_dllimport_p): Likewise.
2746         (i386_pe_mark_dllexport): Likewise.
2747         (i386_pe_mark_dllimport): Likewise.
2748         (i386_pe_asm_named_section): Fix formatting.
2749
2750 2003-10-16  Zack Weinberg  <zack@codesourcery.com>
2751
2752         * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list.
2753         * system.h: Declare snprintf if necessary.
2754         * configure, config.in: Regenerate.
2755
2756 2003-10-15  David Edelsohn  <edelsohn@gnu.org>
2757
2758         * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector
2759         arguments if TARGET_ALTIVEC_ABI.
2760
2761 2003-10-15  Roger Sayle  <roger@eyesopen.com>
2762
2763         * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy,
2764         fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy,
2765         fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
2766         New functions.
2767         (expand_builtin_memcpy): Use integer_zerop instead of testing
2768         host_integerp and tree_low_cst directly.  Move misapplied hunk
2769         for optimization wher SRC and DEST point to the same location.
2770         (expand_builtin_mempcpy): From here.
2771         (expand_builtin_memmove): Use integer_zerop instead of testing
2772         host_integerp and tree_low_cst_directly.
2773         (expand_builtin_memset): Likewise.
2774         (expand_builtin_memcmp): Likewise (and for integer_onep).
2775         (expand_builtin_strncmp): Likewise.
2776         (fold_builtin): Call the appropriate fold_builtin_foo functions
2777         to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp,
2778         strcmp and strncmp.
2779
2780 2003-10-15  Geoffrey Keating  <geoffk@apple.com>
2781
2782         * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete
2783         prototype.  Clean up some whitespace.
2784         * config/darwin.c: Use gen_rtx_FOO (...) rather than
2785         gen_rtx (FOO, ...).
2786         (machopic_non_lazy_ptr_name): Make static.
2787         (name_needs_quotes): Allow '.' and '$' unquoted.
2788         (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic
2789         case.
2790
2791 2003-10-15  Gábor Lóki  <alga@rgai.hu>
2792
2793         * fold-const.c (tree_swap_operands_p): Disable some features
2794         when optimizing for size.
2795
2796 2003-10-15  David Daney  <ddaney@avtrex.com>
2797
2798         * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New
2799         * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind
2800         from leaf functions.
2801         (DWARF_FRAME_RETURN_COLUMN): Ditto.
2802         (SIGNAL_UNWIND_RETURN_COLUMN): New, used
2803         by MD_FALLBACK_FRAME_STATE_FOR.
2804         * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target.
2805
2806 2003-10-15  Zack Weinberg  <zack@codesourcery.com>
2807
2808         * genmodes.c: Include hashtab.h.
2809         (modes_by_name, hash_mode, eq_mode, struct mode_adjust)
2810         (adj_bytesize, adj_alignment, adj_format, new_adjust)
2811         (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT)
2812         (print_maybe_const_decl, emit_mode_adjustments): New.
2813         (known_modes): Rename to modes.
2814         (find_mode): Kill class argument; look up in hash table.
2815         (new_mode): Insert into hash table also.
2816         (new_adjust): New.
2817         (reset_float_format, make_partial_integer_mode)
2818         (make_vector_mode): Tweak error reporting.
2819         (reset_float_format): Correct type of fourth argument.
2820         (emit_insn_modes_h): Add #defines to help make mode_size,
2821         mode_base_align, and real_format_for_mode conditionally const.
2822         (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl.
2823         (emit_real_format_for_mode): Likewise, but temporarily disabled.
2824         (emit_insn_modes_c): Call emit_mode_adjustments.
2825         (main): Initialize modes_by_name.
2826         * Makefile.in: Update dependencies.
2827         * machmode.def: Document EXPR arguments and new ADJUST_* statements.
2828         * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in
2829         declarations of mode_size and mode_base_align.  Declare
2830         init_adjust_machine_modes.
2831         * toplev.c (backend_init): Call init_adjust_machine_modes.
2832
2833 2003-10-15  Olivier Hainque  <hainque@act-europe.fr>
2834
2835         * genmodes.c (calc_wider_mode): Allocate enough room for all the
2836         entries we'll possibly assign in the sort buffer.
2837
2838 2003-10-15  Ulrich Weigand  <uweigand@de.ibm.com>
2839
2840         * config.gcc (s390x-ibm-tpf*): New target.
2841         * doc/install.texi: Document it.
2842         * config/s390/t-tpf: New file.
2843         * config/s390/tpf.h: New file.
2844
2845 2003-10-15  Hans-Peter Nilsson  <hp@axis.com>
2846
2847         PR target/12598
2848         * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
2849         (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
2850         Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
2851         ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
2852         (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
2853         (define_split "*mov_sidesi_mem"+28, +29, +30): Use
2854         replace_equiv_address, not gen_rtx_MEM.
2855         * config/cris/cris.c (cris_mem_op): New match_operator function.
2856         (cris_notice_update_cc): Use replace_equiv_address, not
2857         gen_rtx_MEM.
2858         * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
2859
2860 2003-10-15  Bernardo Innocenti <bernie@develer.com>
2861
2862         * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA,
2863         MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move
2864         definitions after the other flags.
2865
2866 2003-10-14  Ziemowit Laski  <zlaski@apple.com>
2867
2868         * c-parse.in (methoddef, methodproto): Call objc_add_method()
2869         instead of add_method().
2870         * objc/objc-act.c (objc_check_decl): Do not check for
2871         constant_string_type.
2872         (add_method): Rename to objc_add_method().
2873         (really_start_method): Call objc_add_method() instead of
2874         add_method().
2875         * objc/objc-act.h (add_method): Rename to objc_add_method().
2876
2877 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
2878
2879         * config/s390/s390-protos.h (s390_alc_comparison): Add prototype.
2880         (s390_slb_comparison): Likewise.
2881         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2882         New functions.
2883         * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison
2884         and s390_slb_comparison.
2885         * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on
2886         zSeries machines.
2887         ("*adddi3_31z", "*subdi3_31z"): New insns.
2888         ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb",
2889         "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"):
2890         New insns.
2891
2892 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2893
2894         * configure.in: Clean up some feedback echoes.
2895         * configure: Regenerate.
2896
2897         * aclocal.m4: Properly quote names of macros being defined.
2898
2899         * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver.
2900
2901 2003-10-14  Steve Ellcey  <sje@cup.hp.com>
2902
2903         * config/ia64/ia64.c (ia64_expand_call): Force function address
2904         to DImode.
2905         * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
2906
2907 2003-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
2908
2909         * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm",
2910         "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC.
2911         ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3",
2912         "*divsf3_ibm"): Likewise.
2913
2914 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2915
2916         * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of
2917         target_alias with target_noncanonical.
2918
2919 2003-10-14  Geoffrey Keating  <geoffk@apple.com>
2920
2921         * expr.c (block_move_libcall_safe_for_call_parm): Clean up,
2922         and add case for machines where outgoing register parameters
2923         get stack space.
2924
2925         * config/darwin.c (machopic_indirect_data_reference): Use a scratch
2926         register when generating indirect address.
2927
2928 2003-10-14  Richard Earnshaw  <rearnsha@arm.com>
2929
2930         * arm.c (arm_addimm_operand): MODE arguemnt is unused.
2931         * arm.md (cbranchne_decr1): Fix bootstrap warning.
2932
2933 2003-10-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2934
2935         * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
2936         * fixinc/fixincl.x: Regenerate.
2937         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
2938         testcase.
2939         Fixes PR bootstrap/9330.
2940
2941 2003-10-13  Eric Christopher  <echristo@redhat.com>
2942
2943         * config/frv/frv.c (frv_adjust_field_align): Redo check for
2944         too wide bitfields.
2945         (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST.
2946         * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call.
2947         (SBSS_SECTION_ASM_OP): Remove.
2948         (EXTRA_SECTIONS): Remove in_sbss.
2949         (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION.
2950         (SBSS_SECTION_FUNCTION, sbss_section): Remove.
2951         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to
2952         named_section.
2953
2954 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
2955
2956         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
2957         uses of ${target_alias} for directory names (and other places which
2958         won't like the empty string) with ${target_noncanonical}.  Introduce
2959         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
2960         available.
2961         * configure: Regenerate.
2962
2963 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
2964
2965         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
2966         * config/arm/arm.md: For splits which rely on conditional moves,
2967         remove ! TARGET_IWMMXT condition.
2968
2969 2003-10-13  David S. Miller  <davem@redhat.com>
2970
2971         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
2972         (find_cond_trap): Always increment if we emit a conditional
2973         trap insn.
2974
2975 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
2976
2977         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
2978         with min-insn-modes.o.
2979         (STAGESTUFF): Add min-insn-modes.c.
2980         (genobjs): Add genmodes.o.
2981         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
2982         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
2983         (min-insn-modes.c, min-insn-modes.o): New rules.
2984         (s-modes): Also generate min-insn-modes.c.
2985         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
2986         * genmodes.c (struct mode_data): Add format field.
2987         (blank_mode, validate_mode, complete_mode): Update to match.
2988         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
2989         (_SCALAR_MODE): Kill.
2990         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
2991         (emit_insn_modes_c_header): Adjust.
2992         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
2993         (emit_min_insn_modes_c): New functions.
2994         (emit_insn_modes_c): Call emit_real_format_for_mode.
2995         (main): Add -m option to generate min-insn-modes.c.
2996         * machmode.h: Update documentation.  Add format argument to
2997         all uses of FLOAT_MODE.
2998         * real.c: Don't define real_format_for_mode here.
2999
3000         * dwarfout.c: Move default definition of PRINT_REG...
3001         * defaults.h: ...here.
3002         * print-rtl.c: Include tm_p.h.
3003         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
3004         Kill.
3005         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
3006         this entire block with #ifndef GENERATOR_FILE.
3007         * regclass.c: Unconditionally define reg_names.
3008         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
3009         Don't define DEBUG_REGISTER_NAMES.
3010         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
3011         redefinition of REGISTER_NAMES.
3012         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
3013
3014         * combine.c: Change all preprocessor conditionals on
3015         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
3016         for clarity.
3017         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
3018         * configure.in: Don't define EXTRA_CC_MODES.
3019         * configure, config.in: Regenerate.
3020         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
3021
3022         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
3023         May assume that GET_MODE_CLASS is accurate for extra CC modes
3024         at all times.
3025
3026         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
3027         number of arguments to aggregate_value_p.
3028
3029         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
3030         * machmode.def: Explain ARCH-modes.def.  Document
3031         RESET_FLOAT_FORMAT.  Improve commentary on various mode
3032         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
3033         XF, or TF modes here.  Remove backward-compatibility
3034         definition of CC.
3035
3036         * config/alpha/alpha-modes.def: New file; define TF mode.
3037         * config/arc/arm-modes.def: Define XF mode.
3038         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
3039         float format for SF and DF modes.
3040         * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
3041         * config/i386/i386-modes.def: Define XF and TF modes.
3042         * config/i960/i960-modes.def: Define TF mode.
3043         * config/ia64/ia64-modes.def: Define TF and OI modes.
3044         * config/m68k/m68k-modes.def: New file; define XF mode.
3045         * config/mips/mips-modes.def: New file; define TF mode, reset
3046         formats for SF and DF modes.
3047         * config/pa/pa-modes.def: Define TF mode.
3048         * config/rs6000/rs6000.c: Define TF and PSI modes.
3049         * config/s390/s390-modes.def: Define OI mode.
3050         * config/sh/sh-modes.def: New file; define PSI mode.
3051         * config/sparc/sparc-modes.def: Define TF mode.
3052         * config/vax/vax-modes.def: New file; reset formats for SF and
3053         DF modes.
3054
3055         * config/c4x/c4x.c (c4x_override_options): No need to mess
3056         with real_format_for_mode or set REAL_MODE_FORMATs.
3057         (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
3058         variable.
3059         * config/i386/i386.c (override_options): No need to set
3060         REAL_MODE_FORMATs here.
3061         * config/i960/i960.c (i960_initialize): Likewise.
3062         * config/m68k/m68k.c (m68k_override_options): Likewise.
3063         * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
3064         for TFmode only if not the default.
3065         * config/mips/mips.c (override_options): Likewise.
3066         * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
3067         DFmode only if not the default.
3068
3069         * config/i370/i370.h (RET_REG): Don't consider TFmode.
3070         * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
3071         * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
3072         of modes that don't appear anywhere in the machine description.
3073
3074         * config/arc/arc-modes.def, config/arm/arm-modes.def
3075         * config/c4x/c4x-modes.def, config/frv/frv-modes.def
3076         * config/i386/i386-modes.def, config/i960/i960-modes.def
3077         * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
3078         * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
3079         * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
3080         * config/sparc/sparc-modes.def: Convert to new style for
3081         declaring extra CC modes.
3082
3083 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
3084
3085         * cpplex.c (_cpp_clean_line): In the common case of a line
3086         with no trigraphs and no \-newline, avoid writing to memory.
3087         (_cpp_skip_block_comment): Use a local 'cur' pointer instead
3088         of the buffer member.  Make c an uchar to avoid unnecessary
3089         sign extensions.
3090
3091 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
3092
3093         * configure.in: Remove unnecessary test.
3094         * configure: Regenerate.
3095
3096         * configure.in: Fix grammatical error.  Move UWIN host error to...
3097         * config.host: Here.
3098         * configure: Regenerate.
3099
3100 2003-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3101
3102         * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
3103         "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
3104         of flag_unsafe_math_optimizations.
3105         * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
3106         "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
3107         fused-madd and no-fused-madd.
3108         * doc/invoke.texi: Documented the new options fused-madd and
3109         no-fused-madd for S/390.
3110
3111 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
3112
3113         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
3114         MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
3115         assign DEFAULT_ABI.
3116         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
3117         * config/rs6000/rs6000.c: Formatting.
3118         (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
3119         when rs6000_alignment_string given.
3120
3121 2003-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3122
3123         PR target/12538
3124         * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
3125         (sparc_flat_must_save_register_p): New function to decide whether
3126         a register must be saved/restored in the function prologue/epilogue.
3127         (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
3128
3129 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
3130
3131         * config/avr/avr.c, config/avr/avr-protos.h: Convert to
3132         ISO C90 function declarations and definitions.
3133         * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
3134
3135 2003-10-12  Nathanael Nerode  <neroden@gcc.gnu.org>
3136
3137         * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
3138         config files which do the same thing.
3139         * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
3140         config/freebsd6.h: Remove now unnecessary files.
3141
3142 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
3143
3144         * c-common.c (c_common_truthvalue_conversion): Warn if the
3145         address of a non-weak function is used as a truth value.
3146
3147 2003-10-12  Kazu Hirata  <kazu@cs.umass.edu>
3148
3149         * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
3150         a literal.
3151         * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
3152         instead of a literal.
3153
3154 2003-10-12  Hans-Peter Nilsson  <hp@bitrange.com>
3155
3156         * doc/extend.texi (Function Attributes): Mention the exceptional
3157         path for noreturn-marked functions.
3158
3159 2003-10-12  Jan Hubicka  <jh@suse.cz>
3160
3161         * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
3162         warning.
3163
3164 2003-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
3165
3166         * config/i386/i386.c (x86_this_parameter): Fix typo.
3167
3168 2003-10-11  Jan Hubicka  <jh@suse.cz>
3169
3170         * Makefile.in (web.o): New.
3171         * web.c: New file.
3172         * rtl.h (web_main): Declare.
3173         * timervar.def (TV_WEB): New.
3174         * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
3175         (rest_of_hanle_web): New.
3176         (flag_web): New static variable.
3177         (lang_independent_options): Add "web".
3178         (rest_of_compilation): Call rest_of_handle_web.
3179         * invoke.texi (-fweb): Document.
3180         * common.opt (fweb): New.
3181         * flags.h (flag_web): New.
3182         * opts.c (decode_options): Set flag_web at -O3.
3183
3184         * passes.texi (web construction):  Document.
3185         * invoke.texi (-O3): Document that -fweb is enabled.
3186
3187         * regrename.c (regrename_optimize): Deal better with situation when
3188         replacement failed.
3189
3190         * sched-ebb.c: Include params.h and profile.h
3191         (schedule_ebbs):  Use tracer parameters to discover superblocks
3192         * Makefile.in (sched-ebb.o):  Add dependencies.
3193
3194 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3195
3196         * fold-const.c (negate_mathfn_p): New function to determine whether
3197         a built-in mathematical function is sign preserving, f(-x) == -f(x).
3198         Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
3199         (tree_swap_operands_p): Change API to take an additional argument
3200         indicating that the swapped operands evaluate in reverse order.
3201         Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
3202         operand side-effects or we don't care about flag_evaluation_order.
3203         (reorder_operands_p): New function to check whether its safe to
3204         evaluate the given operands in reverse order.
3205         (negate_expr_p):  We can always negate integer constants unless
3206         we honor -ftrapv and the signed type would overflow.  Only allow
3207         -(A-B) into B-A if reorder_operands_p says that its OK.  Allow
3208         negation of COMPLEX_CST if both real and imaginary parts can be
3209         negated.  Allow negation through floating point extensions and
3210         sign-preserving built-in functions.
3211         (negate_expr):  Move the code to negate integers from "fold" to
3212         here.  Always negate integer constants unless we honor -ftrapv
3213         and the signed type would overflow.  Always negate real constants
3214         unless we honor -ftrapping-math.  Only convert -(A-B) into B-A
3215         if allowed by reorder_operands_p.  Add support for COMPLEX_CST.
3216         Optimize negation through floating point extensions and
3217         sign-preserving built-in functions (as defined by negate_mathfn_p).
3218         (fold): Adjust calls to tree_swap_operands_p.
3219         (fold <NEGATE_EXPR>): Move the remaining negation optimizations
3220         to negate_expr_p/negate_expr.
3221         (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
3222         allowed to convert (-A) - B into (-B) - A.
3223
3224 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3225
3226         * builtins.c (expand_builtin_strcmp): Defend against the possibility
3227         that gen_cmpstrsi may fail: Stabilize the argument list against
3228         re-evaluation and expand the library call directly using this saved
3229         argument list if a cmpstrsi sequence can't be generated.
3230         (expand_builtin_strncmp): Likewise.
3231
3232         * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
3233
3234 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3235
3236         PR optimization/12260
3237         * simplify-rtx.c (simplify_unary_operation): Simplify all unary
3238         operations through CONST nodes.  Optimize (neg (plus X C)) as
3239         (minus -C X) for constant values C.
3240         (simplify_binary_operation): Optimize (minus (neg X) C) as
3241         (minus -C X) for constant values C.
3242         (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
3243         instead create (minus -C X).
3244
3245 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3246
3247         * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
3248         safe_from_p for us, once it chooses an evaluation order.
3249         (expand_expr <MULT_EXPR>): Likewise.
3250         (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise.  If expand_operands
3251         places the second operand in "target", swap the operands.
3252         (do_store_flag): Let expand_operands call safe_from_p for us.
3253
3254 2003-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3255
3256         PR optimization/12544
3257         * function.c (put_var_into_stack): Don't generate ADDRESSOFs
3258         for DECL_NONLOCAL decls.
3259
3260 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3261
3262         * expr.c: Follow spelling conventions.
3263         * final.c: Likewise.
3264         * optabs.c: Likewise.
3265         * sched-deps.c: Likewise.
3266         * sdbout.c: Likewise.
3267
3268 Sat Oct 11 12:24:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
3269
3270         * varasm.c (notice_global_symbol):  Fix handling of variables; avoid
3271         re-computing of variable.
3272
3273 2003-10-11  Richard Henderson  <rth@redhat.com>
3274
3275         * config/alpha/alpha.c (alpha_return_in_memory): Rename from
3276         return_in_memory, make static, change signature to match target hook.
3277         (alpha_setup_incoming_varargs): Make static, change signature to
3278         match target hook, add code for vms and unicos.
3279         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3280         TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
3281         TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
3282         TARGET_STRICT_ARGUMENT_NAMING,
3283         TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
3284         * config/alpha/alpha-protos.h: Update.
3285         * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
3286         PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
3287         SETUP_INCOMING_VARARGS): Remove.
3288         * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
3289         * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
3290
3291 2003-10-11  Ian Lance Taylor  <ian@wasabisystems.com>
3292
3293         * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
3294
3295 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3296
3297         * config/m68k/lb1sf68.asm: Follow spelling conventions.
3298         * config/m68k/m68k.c: Likewise.
3299         * config/m68k/m68k.h: Likewise.
3300         * config/m68k/m68k.md: Likewise.
3301
3302 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3303
3304         * builtins.c (expand_builtin_memcpy): Optimize case when the two
3305         pointer arguments are the equal, non-volatile and side-effect free.
3306         (expand_builtin_mempcpy): Likewise.
3307         (expand_builtin_memmove): Likewise.
3308         (expand_builtin_strcpy): Likewise.
3309         (expand_builtin_memcmp): Likewise.
3310         (expand_builtin_strcmp): Likewise.
3311         (expand_builtin_strncmp): Likewise.
3312
3313 2003-10-11  Roger Sayle  <roger@eyesopen.com>
3314
3315         * combine.c (apply_distributive_law): Enable "distributive" floating
3316         point optimizations with -funsafe-math-optimizations.
3317
3318 2003-10-11  Andrew Pinski <pinskia@physics.uc.edu>
3319
3320         * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
3321
3322 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3323
3324         * config/m68k/m68k-protos.h: Remove the prototype for
3325         finalize_pic.
3326
3327 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
3328
3329         * config/m68k/m68k.c: Fix comment typos.
3330
3331 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
3332
3333         * config/m68k/m68k-protos.h (use_return_insn): Change return type from
3334         int to bool.
3335         * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
3336         (current_frame): New global var.
3337         (m68k_compute_frame_layout): Cache computations in current_frame.
3338         (m68k_initial_elimination_offset): Use values from current_frame
3339         instead of recomputing them.
3340         (use_return_insn): Likewise.
3341         (m68k_output_function_prologue): Likewise.
3342         (m68k_output_function_epilogue): Likewise.
3343         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
3344         inside the block for __pic__.
3345
3346 2003-10-11  Peter Barada <peter@baradas.org>
3347             Bernardo Innocenti  <bernie@develer.com>
3348
3349         * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
3350         (m68k_save_reg): Add boolean parameter `interrupt_handler'.
3351         (m68k_interrupt_function_p): New function.
3352         (m68k_handle_fndecl_attribute): Ditto.
3353         (m68k_compute_frame_layout): Ditto.
3354         (m68k_attribute_table): Define back-end specific attributes.
3355         (m68k_output_function_epilogue): Emit RTE instruction for interrupt
3356         functions.
3357
3358 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
3359
3360         * config/m68k/t-uclinux: New target Makefile fragment.
3361         * config/m68k/uclinux.h: New target macro file.
3362         * config.gcc (m68k-*-uclinux): New target definition.
3363
3364 2003-10-10  Roger Sayle  <roger@eyesopen.com>
3365
3366         * builtins.c (builtin_mathfn_code): Generalize to check whether
3367         the call is to any built-in function by comparing the call's
3368         argument list against the builtin decl's function type.
3369
3370 2003-10-10  Roger Sayle  <roger@eyesopen.com>
3371
3372         * cse.c (constant_pool_entries_regcost): New global variable to
3373         hold the register cost component of constant_pool_entries_cost.
3374         (fold_rtx): Calculate constant_pool_entries_regcost at the same
3375         time as constant_pool_entries_cost.
3376         (cse_insn): Set both src_folded_cost and src_folded_regcost from
3377         constant_pool_entries_cost and constant_pool_entries_regcost.
3378         (cse_main): Initialize constant_pool_entries_regcost to zero.
3379
3380         * optabs.c (expand_unop): Attach a REG_EQUAL note describing
3381         the semantics of the sequence of bit operations used to negate
3382         a floating-point value.
3383         (expand_abs_nojump): Likewise attach a REG_EQUAL note describing
3384         the semantics of the bit operations used to abs a floating point
3385         value.
3386
3387 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
3388             Paul Dale  <pauli@snapgear.com>
3389
3390         * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
3391         support.
3392         * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on
3393         -fpic, -fPIC, -msep-data and -mid-shared-library.
3394         * config/m68k/m68k.c (m68k_library_id_string): New global variable.
3395         (override_options): Add -msep-data and -mshared-library-id support.
3396         (m68k_output_function_prologue): Generate code to load A5 for
3397         TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA.
3398         (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY.
3399         (m68k_output_pic_call): New function.
3400         * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag.
3401         (TARGET_ID_SHARED_LIBRARY): Ditto.
3402         (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data.
3403         * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call().
3404         (call_value): Likewise.
3405
3406 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
3407
3408         * gengenrtl.c (find_formats, genheader): Make i an unsigned
3409         int, remove cast of NUM_RTX_CODE.
3410         * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the
3411         entire file.  Remove the #ifs on GET_MODE_MASK etc and
3412         GET_MODE_WIDER_MODE etc.
3413
3414 2003-10-10  Eric Christopher  <echristo@redhat.com>
3415
3416         * lcm.c (optimize_mode_switching): Change NORMAL_MODE
3417         to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
3418         that set mode.
3419         * config/sh/sh.h (MODE_ENTRY): New macro.
3420         (MODE_EXIT): Ditto.
3421         (MODE_AFTER): Ditto.
3422         * config/sh/sh.md: Change for MODE_AFTER. Add
3423         fp_set attribute.
3424         * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
3425
3426 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
3427
3428         * genmodes.c, mode-classes.def: New files.
3429         * machmode.def: Rewritten to genmodes.c interface.
3430         * Makefile.in (extra_modes_file): New substitution variable.
3431         (MACHMODE_H): No longer includes machmode.def or
3432         @extra_modes_file@; instead, mode-classes.def and insn-modes.h.
3433         (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o.
3434         (OBJS-common): Add insn-modes.o.
3435         (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and
3436         genmodes$(build_exeext).
3437         (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o,
3438         genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets.
3439         (s-genrtl): Don't depend on $(RTL_BASE_H).
3440         (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h,
3441         or $(RTL_BASE_H); just rtl.def.
3442         * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or
3443         real.h.  Give fake definition of CONST_DOUBLE_FORMAT and
3444         substitute definition of NUM_RTX_CODE.  Add casts to avoid
3445         warnings.
3446         * machmode.h: Include insn-modes.h, not machmode.def.  Include
3447         mode-classes.def to define enum mode_class.  Tweak definitions
3448         of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK,
3449         GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE.
3450         (inner_mode_array): Renamed mode_inner.
3451         (mode_base_align): New.
3452         * rtl.c (mode_name, mode_class, mode_bitsize, mode_size,
3453         mode_unit_size, mode_wider_mode, mode_mask_array,
3454         inner_mode_array, class_narrowest_mode): Delete definitions.
3455         * stor-layout.c (get_mode_alignment): Use mode_base_align.
3456         * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode
3457         and TFmode, in real_format_for_mode and REAL_MODE_FORMAT.
3458
3459         * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
3460         No need to define BITS_PER_UNIT.
3461
3462 2003-10-10  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3463
3464         * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
3465         (ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
3466         (ia64_initialize_trampoline): If not using GAS, declare trampoline
3467         as global.
3468         * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
3469         (ASM_OUTPUT_DEBUG_LABEL): Likewise.
3470
3471         * stor-layout.c (compute_record_mode): Don't force BLKmode if
3472         field is zero-length BLKmode.
3473         * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode
3474         zero-size references.
3475
3476         * combine.c (distribute_links): Properly test for REG being set.
3477
3478         * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
3479         gen_lowpart and company except for REG.
3480
3481 2003-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3482
3483         * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
3484
3485 2003-10-10  Nathanael Nerode  <neroden@gcc.gnu.org>
3486
3487         * config.gcc (mips*-*-netbsd*): Remove content-free line.
3488
3489 2003-10-10  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
3490
3491         * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
3492         gcov_position_t and gcov_type.
3493
3494 2003-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
3495
3496         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
3497         * configure: Regenerate.
3498
3499 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
3500
3501         * config/h8300/h8300.md (define_asm_attributes): Specify
3502         the length of an asm insn more precisely.
3503
3504 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3505
3506         * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
3507
3508 2003-10-09  Bob Wilson  <bob.wilson@acm.org>
3509
3510         * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
3511         FP register number to 48 and MAC16 accumulator to 0x210.
3512
3513 2003-10-09  Nathanael Nerode  <neroden@gcc.gnu.org>
3514
3515         * config.gcc: Remove redundant thread_file setting clauses for
3516         various *-*-linux* targets.
3517
3518 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
3519
3520         * config/h8300/h8300.md (define_asm_attributes): New.
3521
3522 2003-10-09  Roger Sayle  <roger@eyesopen.com>
3523
3524         * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note
3525         to the comparison, as emit_libcall_block calls copy_rtx on equiv.
3526
3527 2003-10-09  Dorit Naishlos  <dorit@il.ibm.com>
3528
3529         * haifa-sched.c (ok_for_early_schedule): New function.
3530         (early_queue_to_ready): New function.
3531         (schedule_block): Allow early removal of insns from Q.
3532         (schedule_insn): Update INSN_TICK in case of premature
3533         issue.
3534         * common.opt (sched_stalled_insns): New flag.
3535         (sched_stalled_insns_dep): New flag.
3536         * flags.h: Same above flags.
3537         * opts.c: Same as above.
3538         * toplev.c: Same as above.
3539         * target.h (targetm.sched.is_costly_dependence): New
3540         hook.
3541         * target-def.h: Same as above.
3542         * config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
3543         Support new flag -msched-costly-dep.
3544         (DEFAULT_SCHED_COSTLY_DEP): Define.
3545         * config/rs6000/rs6000.c:
3546         (rs6000_is_costly_dependence): New function.
3547         (is_load_insn, is_store_insn): New functions.
3548         (is_load_insn1, is_store_insn1, is_mem_ref): New
3549         functions.
3550         * doc/invoke.texi (-fsched-stalled-insns-dep)
3551         (-fsched-stalled-insns, -msched-costly-dep): Document
3552         options.
3553         * doc/tm.texi (is_costly_dependence): Define new
3554         scheduler target hook.
3555
3556 2003-10-09  Jason Merrill  <jason@redhat.com>
3557
3558         PR c++/6392
3559         * c-common.c (c_build_qualified_type): Look through arrays first.
3560         (c_apply_type_quals_to_decl): Look through arrays.
3561
3562         * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for
3563         types with constructors.
3564
3565         * coverage.c (build_ctr_info_value): Use build_decl to make a
3566         VAR_DECL.
3567         (create_coverage): Likewise.
3568
3569         * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
3570         here.
3571         (expand_asm_operands): Not here.
3572         (parse_input_constraint): No longer static.
3573         * tree.h: Declare it.
3574
3575 2003-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3576
3577         * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
3578         libgcc_s.so.
3579         (SHLIB_INSTALL): Likewise.
3580
3581 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
3582
3583         * doc/install.texi: Remove reference to removed 'pthreads' thread
3584         option.
3585
3586 2003-10-08  Aldy Hernandez  <aldyh@redhat.com>
3587
3588         * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to
3589         operand 2.
3590
3591 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
3592
3593         * config.gcc: Don't accept --enable-threads=pthreads.  Clean
3594         up related case statements.
3595         * configure.in: Don't accept --enable-threads=pthreads,
3596         decosf1, mach, or os2 (none of which work anyway).  Alphabetize
3597         supported thread files in case clause.
3598         * configure: Regenerate.
3599
3600 2003-10-08  Geoffrey Keating  <geoffk@apple.com>
3601
3602         * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
3603         definition to above SPARC_STACK_BOUNDARY_HACK.
3604
3605 2003-10-08  Jason Merrill  <jason@redhat.com>
3606
3607         * c-pretty-print.c (pp_c_postfix_expression)
3608         <COMPOUND_LITERAL_EXPR>: Fix thinko.
3609
3610 2003-10-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3611
3612         * mklibgcc.in: Don't hide undefined or typeless symbols.
3613
3614 2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3615
3616         PR optimization/12142
3617         * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
3618         uses of the register in the SET_SRC.  Remove unnecessary argument.
3619         * pa.c (legitimize_pic_address): Before reload, use a scratch register
3620         for the intermediate result in loading the address of a SYMBOL_REF.
3621         Set the MEM_NOTRAP_P flag for the MEM.  Add a REG_EQUAL to the insn
3622         which loads the SYMBOL_REF address.
3623
3624 2003-10-08  Timo Kokkonen  <tjko@iki.fi>
3625             Eric Botcazou  <ebotcazou@libertysurf.fr>
3626
3627         PR bootstrap/12490
3628         * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
3629         to define the size of the extern_C_braces array.  Set it to 200.
3630         (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
3631
3632 2003-10-08  Carlo Wood  <carlo@alinoe.com>
3633
3634         * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
3635         a space after the -o option.  flex 2.5.31 understands both, with
3636         and without the space. Removed that space.
3637
3638 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
3639
3640         * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
3641         (compute_frame_size): Initialize it.  Remove the .cprestore slot
3642         from args_size.
3643         (mips_output_function_prologue): Simplify accordingly.
3644         (mips_debugger_offset): Change the mips16 frame pointer offset from
3645         current_function_outgoing_args to cfun->machine->frame.args_size.
3646         (mips_initial_elimination_offset): Likewise.
3647         (mips_expand_prologue): Likewise.
3648         (mips_expand_epilogue): Likewise.
3649
3650 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
3651
3652         * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint.
3653         (EXTRA_MEMORY_CONSTRAINT): Define.
3654         (CAN_ELIMINATE): Remove lwu workaround.
3655         * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too.
3656         Use a 'W' constraint for the source operand.
3657
3658 2003-10-08  Kazu Hirata  <kazu@cs.umass.edu>
3659
3660         * genopinit.c (main): Output code to declare undefined
3661         variables.
3662
3663 2003-10-07  Kelley Cook  <kcook@gcc.gnu.org>
3664
3665         * gengtype-lex.l: Remove -Wtraditional cruft.
3666         * Makefile.in (gengtype-lex.c): Likewise.
3667
3668 2003-10-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3669
3670         * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
3671
3672 2003-10-07  Jason Merrill  <jason@redhat.com>
3673
3674         PR c++/12519
3675         * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
3676         it isn't a decl.
3677
3678 2003-10-07  Alexandre Oliva  <aoliva@redhat.com>
3679
3680         * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
3681         not overridden.
3682         Fixes PR bootstrap/12173.
3683
3684 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
3685
3686         * errors.c: Don't include coretypes.h or tm.h.
3687         (trim_filename): Use IS_DIR_SEPARATOR.
3688         * Makefile.in: Update dependencies of errors.o and
3689         $(BUILD_PREFIX_1)errors.o.
3690
3691 2003-10-07  Geoffrey Keating  <geoffk@apple.com>
3692
3693         * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
3694         account when aligning arguments.
3695         * calls.c (STACK_POINTER_OFFSET): Move default from here ...
3696         * defaults.h (STACK_POINTER_OFFSET): ... to here.
3697         * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
3698         it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
3699         (SPARC_STACK_BOUNDARY_HACK): Define.
3700         * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
3701         arrange for vector parameters to varargs functions to be passed
3702         in both memory and GPRs when appropriate.
3703         (rs6000_va_arg): Vector arguments passed in memory are 16-byte
3704         aligned.
3705
3706         * hooks.c (hook_bool_tree_true): New.
3707         (hook_rtx_tree_int_null): New.
3708         (hook_rtx_rtx_null): Use NULL, not 0.
3709         * hooks.h: Add 'extern' to everything.
3710         (hook_bool_tree_true): New.
3711         (hook_rtx_tree_int_null): New.
3712         * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New.
3713         * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New.
3714         * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove
3715         prototype.
3716         * config/rs6000/rs6000.c (rs6000_return_in_memory): New.
3717         (setup_incoming_varargs): Prototype.
3718         (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3719         (TARGET_PROMOTE_FUNCTION_RETURN): Define.
3720         (TARGET_STRUCT_VALUE_RTX): Define.
3721         (TARGET_RETURN_IN_MEMORY): Define.
3722         (TARGET_SETUP_INCOMING_VARARGS): Define.
3723         (TARGET_STRICT_ARGUMENT_NAMING): Define.
3724         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define.
3725         (init_cumulative_args): Use rs6000_return_in_memory.
3726         (setup_incoming_varargs): Make 'static'.
3727         * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete.
3728         (PROMOTE_FUNCTION_RETURN): Delete.
3729         (STRUCT_VALUE): Delete.
3730         (RETURN_IN_MEMORY): Delete.
3731         (SETUP_INCOMING_VARARGS): Delete.
3732
3733 2003-10-07  Gerald Pfeifer  <gerald@pfeifer.com>
3734
3735         * doc/invoke.texi (Warning Options): Simplify and clarify the
3736         descriptions of -Wnonnull and -Winit-self.
3737
3738 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
3739
3740         * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
3741         indicees for floating-point conversersion libcalls.
3742
3743 2003-10-07  Nathanael Nerode  <neroden@gcc.gnu.org>
3744
3745         * Makefile.in: Add more comments separating large conceptually
3746         separate sections.
3747
3748         * configure.in: Clean up thread file logic.
3749         * configure: Regenerate.
3750
3751 2003-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
3752
3753         * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define.
3754         (switch_to_section): Handle in_readonly_data.
3755         * config/i386/winnt.c (i386_pe_asm_named_section): Handle
3756         readonly data.
3757
3758 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
3759
3760         * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
3761         it.
3762         (cbranchne_decr1): New Thumb pattern.
3763         * arm.c (arm_addimm_operand): New insn predicate.
3764         * arm-protos.h: Add a prototype for it.
3765         * arm.h (PREDICATE_CODES): Add it.
3766
3767 2003-10-07  Dorit Naishlos <dorit@il.ibm.com>
3768
3769         * sched-int.h (sched_info): New field
3770         sched_max_insns_priority.
3771         * sched-rgn.c (init_ready_list): Add invocations to
3772         targetm.sched.adjust_priority.
3773         (sched_max_insns_priority): Init new field.
3774         * sched-ebb.c (sched_max_insns_priority): Init new field.
3775         * haifa-sched.c (set_priorities): Set
3776         sched_info->sched_max_insns_priority.
3777         * config/rs6000/rs6000.h:
3778         (rs6000_sched_restricted_insns_priority_str): Support new
3779         flag -mprioritize-restricted-insns.
3780         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
3781         * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
3782         function.
3783         (rs6000_adjust_priority): Change priority of restricted
3784         insns, using above new function and new flag.
3785         * doc/invoke.texi (-mprioritize-restricted-insns): Document
3786         new option.
3787
3788 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
3789
3790         * expr.c (cmpstr_optab, cmpmem_optab): New.
3791         * genopinit.c: Initialize them.
3792         * optabs.h: Declare them.
3793         * optabs.c (init_optabs): Clear them.
3794         (prepare_cmp_insn):  Use cmpstr_optab and cmpmem_optab to find
3795         block memory compare insns, not conditional chains.  Restructure
3796         the fallback generation of a call to memcmp/bcmp for better
3797         readability.
3798
3799 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3800
3801         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro.
3802         (mips_save_restore_fn): New typedef.
3803         (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove.
3804         (mips_set_frame_expr, mips_frame_set): Move above prologue code.
3805         (save_restore_insns): Remove, replacing with...
3806         (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns.
3807         (mips_save_reg, mips_restore_reg): New function.
3808         (mips_expand_prologue, mips_expand_epilogue): Rework.
3809         * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove.
3810         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros.
3811         (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros.
3812
3813 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3814
3815         * config/mips/mips.c (mips_expand_prologue): Remove unused
3816         traversal of function arguments.
3817
3818 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
3819
3820         * doc/invoke.texi: Remove documentation of -mentry.
3821         * config/mips/mips.c (mips_entry_string, mips_entry): Remove.
3822         (override_options, mips_save_reg_p): Remove handling.
3823         (compute_frame_size, mips_output_function_prologue): Likewise.
3824         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3825         * config/mips/mips.h (mips_entry_string): Remove declaration.
3826         (TARGET_OPTIONS): Remove -mentry.
3827         * config/mips/mips16.S: Remove mention of -mentry.
3828
3829 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
3830
3831         * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
3832         (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
3833         (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
3834         (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
3835         (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
3836         (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
3837         (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
3838         (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
3839         (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
3840         (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
3841         (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
3842         (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
3843         (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
3844         (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
3845         (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
3846         (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
3847         (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
3848         (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
3849         (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
3850         (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
3851         (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
3852         (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
3853         (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
3854         (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
3855         (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
3856         (fixunstfti_libfunc): Delete.
3857         * optabs.h (struct optab_handlers): Break out of struct optab.
3858         (struct convert_optab, convert_optab, enum convert_optab_index,
3859         convert_optab_table, sext_optab, zext_optab, trunc_optab,
3860         sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
3861         sfloat_optab, ufloat_optab): New.
3862         (set_conv_libfunc): Prototype.
3863         (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
3864         (trunc_optab): Renamed btrunc_optab.
3865         * builtins.c (expand_builtin_mathfn): Update to match.
3866         * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
3867         (convert_optab_table, new_convert_optab, init_convert_optab)
3868         (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
3869         (set_conv_libfunc): New.
3870         (can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
3871         (expand_float, expand_fix): Use new conversion optabs,
3872         not old insn code tables or long chains of ifs.
3873         (init_optabs): No need to clear old insn code tables.
3874         Initialize the new optabs, not the old libfunc array entries.
3875         Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
3876         * genopinit.c: Initialize conversion optabs, not the
3877         former insn code tables.  Remove unnecessary casts.
3878         Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
3879         * expr.c (convert_move): Remove redundant check that
3880         to_real==from_real.  Use the conversion optabs instead
3881         of long chains of tests of modes.  Move partial-integer-mode
3882         interconversion above all integer conversion.  Do not recurse
3883         on a value forced into a register in the original mode.
3884
3885         * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
3886         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
3887         * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
3888         in new conversion optabs; do not reference the old libfunc
3889         array entries.  No need to include libfuncs.h.
3890
3891 2003-10-06  Roger Sayle  <roger@eyesopen.com>
3892
3893         * config/i386/i386.c (ix86_expand_setcc): Annotate the floating
3894         point comparison sequence with a REG_EQUAL note that describes
3895         the comparison's semantics.
3896
3897 2003-10-06  Roger Sayle  <roger@eyesopen.com>
3898
3899         * expr.c (expand_expr <COND_EXPR>): Handle the void type semantics
3900         of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations.
3901
3902 2003-10-06  Roger Sayle  <roger@eyesopen.com>
3903             Zack Weinberg  <zack@codesourcery.com>
3904
3905         * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
3906         instruction by using LCT_CONST and then calling emit_libcall_block
3907         ourselves.
3908
3909 2003-10-06  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
3910
3911         PR optimization/11974
3912         * optabs.c (expand_unop): Promote libcall outmode according to
3913         hard_libcall_value.
3914
3915 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
3916
3917         * real.h (REAL_MODE_FORMAT): New macro.
3918         * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c
3919         * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h
3920         * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c
3921         * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c
3922         * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring
3923         directly to real_format_for_mode array, wherever possible.
3924
3925 2003-10-06  Devang Patel  <dpatel@apple.com>
3926
3927         * dwarf2out.c (is_main_source): Remove variable.
3928         (dwarf2out_start_source_file): Do not check is_main_source.
3929         Do not reset is_main_source.
3930         (dwarf2out_init): Do not initialize is_main_source.
3931
3932 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3933
3934         * fixinc/inclhack.def (stdio_va_list): Removed _ap fix.
3935         (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21
3936         introduced some multi-line prototypes.
3937         * fixinc/fixincl.x: Regenerate.
3938
3939 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
3940
3941         * config/mips/mips.h (PREDICATE_CODES): Add stack_operand.
3942         * config/mips/mips.c (stack_operand): New predicate.
3943         * config/mips/mips.md: Use it for the destination of mips16 insns
3944         that store $31.
3945
3946 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
3947
3948         * config/mips/mips.md (*lowsi): Renamed from lowsi.
3949         (*lowdi): Likewise lowdi.
3950         (*lowsi_mips16, *lowdi_mips16): New patterns.
3951         * config/mips/mips.c (mips_const_insns, mips_output_move): Remove
3952         mips16 CONSTANT_RELOC handling.
3953         (mips_delegitimize_address): Adjust for new sdata representation.
3954
3955 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
3956
3957         * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
3958         skip any remaining register arguments.
3959
3960 2003-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
3961
3962         * reload.c (find_reloads_subreg_address): Use correct offset for
3963         paradoxical MEM subregs on big-endian targets.
3964
3965 2003-10-06  Andrew Haley  <aph@redhat.com>
3966
3967         * tree.c (get_callee_fndecl): Call
3968         lang_hooks.lang_get_callee_fndecl.
3969         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
3970         (lhd_get_callee_fndecl): New.
3971
3972 2003-10-06  Andrew Pinski  <apinski@apple.com>
3973
3974         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
3975         error in calculating the length of the string.
3976         (machopic_stub_name): Likewise.
3977
3978 2003-10-06  Roger Sayle  <roger@eyesopen.com>
3979
3980         * optabs.c (prepare_float_lib_cmp):  Attach a REG_EQUAL note
3981         describing the return value of the comparison libcall to the
3982         REG_RETVAL instruction of the emitted sequence.
3983
3984 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3985
3986         PR optimization/12215
3987         * cse.c (cse_set_around_loop): Emit the move at the beginning
3988         of the next basic block for trapping sets.
3989
3990 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3991
3992         PR optimization/11637
3993         * combine.c (adjust_for_new_dest): New function to adjust the
3994         notes and LOG_LINKS when the dest of an insn has changed.
3995         (try_combine): Use it when deleting the first insn of a two-insn
3996         parallel or splitting a two-load parallel.
3997
3998 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
3999
4000         * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs
4001         if TARGET_EXPLICIT_RELOCS.
4002
4003 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
4004
4005         PR bootstrap/12512
4006         * Makefile.in (info): Use double-colon rules.
4007         (dvi): Likewise.
4008         (generated-manpages): Likewise.
4009         * configure.in: Do not create lang.info, lang.dvi, or
4010         lang.generated-manpages hooks.
4011         * configure: Regenerated.
4012         * objc/Make-lang.in (objc.info): Remove.
4013         (objc.dvi): Remove.
4014         (objc.generated-manpages): Remove.
4015         * doc/sourcebuild.texi: Update description of info, dvi, and
4016         generated-manpages hooks.
4017
4018 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
4019
4020         * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter.
4021
4022 2003-10-05  Andrew Pinski  <apinski@apple.com>
4023
4024         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
4025         errors in memcpy destinations.
4026         (machopic_stub_name): Likewise.
4027
4028 2003-10-05  Andrew Pinski <apinski@apple.com>
4029
4030         * config/darwin.c (machopic_non_lazy_ptr_name):
4031         Change strcat to memcpy and add length together.
4032         (machopic_stub_name): Likewise.
4033
4034 2003-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4035
4036         * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
4037         signal trampoline codes.
4038
4039 2003-10-05  Chris Demetriou  <cgd@broadcom.com>
4040
4041         * config/mips/mips.md (*divsf3): Move description of
4042         SB-1 F2 erratum from here to...
4043         (divsf3): Here.  Disable if TARGET_FIX_SB1 is set and
4044         flag_unsafe_math_optimizations is not.
4045
4046 2003-10-05  Aldy Hernandez  <aldyh@redhat.com>
4047
4048         * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE,
4049         TARGET_E500, TARGET_ISEL, and TARGET_FPRS.
4050
4051 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4052
4053         * c-pretty-print.c: Fix comment typos.
4054         * c-pretty-print.h: Likewise.
4055         * calls.c: Likewise.
4056         * cfgloopmanip.c: Likewise.
4057         * cgraphunit.c: Likewise.
4058         * cppfiles.c: Likewise.
4059         * final.c: Likewise.
4060         * function.c: Likewise.
4061         * gcov-io.h: Likewise.
4062         * gcse.c: Likewise.
4063         * genoutput.c: Likewise.
4064         * loop.c: Likewise.
4065         * postreload.c: Likewise.
4066         * reg-stack.c: Likewise.
4067         * regmove.c: Likewise.
4068         * sched-int.h: Likewise.
4069         * sched-rgn.c: Likewise.
4070         * simplify-rtx.c: Likewise.
4071         * tree-inline.c: Likewise.
4072         * config/m68hc11/m68hc11.h: Likewise.
4073         * config/mmix/mmix.c: Likewise.
4074         * config/mn10300/mn10300.md: Likewise.
4075         * config/sh/sh.h: Likewise.
4076
4077 2003-10-05  Richard Henderson  <rth@redhat.com>
4078
4079         * tree-inline.c (remap_type): New.
4080         (remap_decl): Use it.  Remap DECL_SIZE*.
4081         (copy_body_r): Use it.
4082         (walk_tree): Walk TREE_TYPE too.
4083         (copy_tree_r): Don't walk subtrees of types.
4084         * tree.c (variably_modified_type_p): Restructure.  Consider integer
4085         types with non-const bounds variably modified.
4086
4087 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4088
4089         * doc/invoke.texi: Fix typos.
4090
4091 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4092
4093         * fold-const.c: Follow spelling conventions.
4094         * function.c: Likewise.
4095         * config/c4x/c4x.h: Likewise.
4096         * config/c4x/c4x.md: Likewise.
4097         * config/frv/frv.md: Likewise.
4098         * config/rs6000/aix.h: Likewise.
4099         * config/rs6000/linux64.h: Likewise.
4100         * config/xtensa/xtensa.c: Likewise.
4101
4102 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4103
4104         * c-pretty-print.c: Fix comment formatting.
4105         * cfglayout.c: Likewise.
4106         * cfgloopanal.c: Likewise.
4107         * cppcharset.c: Likewise.
4108         * dbxout.c: Likewise.
4109         * ggc-page.c: Likewise.
4110         * ggc.h: Likewise.
4111         * target.h: Likewise.
4112
4113 2003-10-04  Kelley Cook  <kelleycook@wideopenwest.com>
4114
4115         * gengtype-lex.l: Recognize typedef of functions without PARAMS macro.
4116
4117 2003-10-04  Nathanael Nerode  <neroden@gcc.gnu.org>
4118
4119         * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c:
4120         Convert to ISO C90 function declarations and definitions.
4121
4122 2003-10-04  Zack Weinberg  <zack@codesourcery.com>
4123
4124         * libfuncs.h
4125         (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
4126         (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
4127         (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
4128         (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
4129         (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
4130         (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
4131         (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
4132         (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
4133         (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
4134         (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
4135         (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
4136         (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
4137         (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
4138         (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
4139         (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
4140         (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
4141         Delete.
4142         * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
4143         (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
4144         (le_optab, unord_optab): New.
4145
4146         * optabs.c (prepare_float_lib_cmp): Rewrite.  Get the libfuncs
4147         from the code_to_optab table, not a giant switch; use
4148         swap_condition; do widening only if a comparison function that
4149         we can call exists in a wider mode, not if a cmp_optab insn or
4150         libfunc exists in a wider mode; call protect_from_queue
4151         exactly once on each operand.
4152         (init_optabs): Initialize the new optabs, not the deleted libfuncs.
4153
4154         * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
4155         * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
4156         Set floating point comparison libfuncs using set_optab_libfunc
4157         on the appropriate optab.
4158
4159         * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
4160         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
4161         selector conditionals.
4162
4163 2003-10-04  Stephane Carrez  <stcarrez@nerim.fr>
4164
4165         * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
4166         identical to m68hc12 as far as libraries are concerned.
4167
4168 2003-10-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4169
4170         PR c/12446
4171         * c-typeck.c (convert_for_assignment): Issue an error for
4172         array to pointer assignment after default conversion.
4173         (digest_init): Likewise.
4174
4175 2003-10-04  Fariborz Jahanian  <fjahanian@apple.com>
4176
4177         * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration
4178
4179 2003-10-03  Gerald Pfeifer  <gerald@pfeifer.com>
4180
4181         * doc/extend.texi (Function Attributes): Fix title of GNU C
4182         Preprocessor manual.
4183         (C++ Extensions): Fix reference to "Predefined Macros" in the
4184         GNU C Preprocessor manual.
4185
4186 2003-10-04  Richard Earnshaw  <reanrsha@arm.com>
4187
4188         * doc/extend.texi: Document how GCC estimates and relies on the size
4189         of an asm.
4190
4191 2003-10-04  Richard Sandiford  <rsandifo@redhat.com>
4192
4193         * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
4194         arguments downward for big-endian o64.
4195
4196 2003-10-03  Robert Bowdidge <bowdidge@apple.com>
4197
4198         * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
4199         PCH generation, avoiding too-frequent flushes when writing to NFS
4200         file system.
4201
4202 2003-10-03  Ziemowit Laski  <zlaski@apple.com>
4203
4204         * objc/objc-act.c (lookup_category): Mark as 'inline'.
4205
4206 2003-10-03  Alexander Malmberg  <alexander@malmberg.org>
4207             Ziemowit Laski  <zlaski@apple.com>
4208
4209         * objc/objc-act.c (add_method_to_hash_list, lookup_category):
4210         New functions.
4211         (lookup_method_in_hash_lists): New parameter indicating whether
4212         we are messaging 'Class' or 'id'.
4213         (check_duplicates): Likewise; do not assume all methods will
4214         be either class or instance methods.
4215         (generate_category, finish_class): Use lookup_category().
4216         (add_method): Use add_method_to_hash_list(); insert instance
4217         methods of root classes into the global class method hash table.
4218         (add_category): Use lookup_category(); avoid constructing
4219         duplicate categories.
4220         (really_start_method): Add method to corresponding @interface,
4221         if not already there (and if the @interface exists).
4222         (finish_message_expr, finish_objc): Adjust calls to
4223         check_duplicates().
4224
4225 2003-10-03  Roger Sayle  <roger@eyesopen.com>
4226
4227         PR optimization/9325, PR java/6391
4228         * fold-const.c (fold_convert): For floating point to integer
4229         conversions, return the maximum/minimum representable integer
4230         value if the real constant overflows the destination type.
4231         * tree.c (real_value_from_int_cst): Allow the type to be NULL,
4232         meaning don't truncate the result to a floating point mode.
4233         Simplify the logic by calling real_from_integer directly.
4234         * simplify-rtx.c (simplify_unary_operation):  Implement the
4235         same semantics for folding floating point to integer conversions
4236         in RTL.
4237
4238 2003-10-03  Chris Demetriou  <cgd@broadcom.com>
4239
4240         * config/mips/mips.c (mips_emit_prefetch): Restructure
4241         to avoid use of arrays, handle indexed prefetch.
4242         * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments.
4243         (ISA_HAS_PREFETCHX): New deffine.
4244         * config/mips/mips.md ("type" attr): Add new "prefetchx" value,
4245         update comments.
4246         (prefetch_indexed_di, prefetch_indexed_si): New insns.
4247
4248 2003-10-03  Jeff Sturm  <jsturm@one-point.com>
4249             Roger Sayle  <roger@eyesopen.com>
4250
4251         PR optimization/12289
4252         * calls.c (emit_call_1): Pretend to have popped the arguments
4253         to noreturn and longjmp functions instead of ignoring them.
4254         (expand_call): Don't adjust stack_pointer_dela while
4255         inhibit_defer_pop is set.
4256
4257 2003-10-03  Andreas Schwab  <schwab@suse.de>
4258
4259         PR bootstrap/12276
4260         * configure.in: Check for libunwind on the host only if building
4261         a native compiler.
4262         * configure: Regenerated.
4263
4264 2003-10-03  Paolo Carlini  <pcarlini@unitus.it>
4265
4266         * unwind-pe.h (read_encoded_value_with_base): Constify u and
4267         its inizialization cast.
4268
4269 2003-10-03  Richard Sandiford  <rsandifo@redhat.com>
4270
4271         PR target/12485
4272         * config/mips/mips.c (mips_load_got): GOT accesses can't trap.
4273
4274 2003-10-02  Mark Mitchell  <mark@codesourcery.com>
4275
4276         PR optimization/12180
4277         * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of
4278         functions containing calls to __builtin_next_arg.
4279
4280 2003-10-02  Chris Demetriou  <cgd@broadcom.com>
4281
4282         * config/mips/mips.c (mips_emit_prefetch): Use operand 3
4283         in instructions being output.
4284         * config/mips/mips.md (prefetch_si_address): Change third
4285         operand's constraint letter to 'I'.
4286         (prefetch_di_address): Likewise.
4287         (prefetch_si, prefetch_di): Set third operand to const0_rtx.
4288
4289 2003-10-02  Zack Weinberg  <zack@codesourcery.com>
4290
4291         * system.h: Poison macros obsoleted by earlier patch.
4292         * config/cris/cris.c: C90-ify a function definition.
4293
4294 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
4295
4296         PR/12292
4297         * combine.c (make_field_assignment): Check whether rtx's code
4298         is CONST_INT before using INTVAL.
4299
4300 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
4301
4302         * cgraph.c (cgraph_node): Use INSERT instead of 1 in
4303         htab_find_slot_with_hash.
4304         (cgraph_node_for_identifier): Use NO_INSERT.
4305         (cgraph_remove_node): Use NO_INSERT.
4306         (cgraph_varpool_node): Use INSERT.
4307         (cgraph_varpool_node_for_identifier): Use NO_INSERT.
4308
4309 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
4310
4311         Waldek Hebisch <hebisch@math.uni.wroc.pl>
4312         PR/12072
4313         * varasm.c (compare_constant): Fix thinko.
4314
4315 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
4316
4317         * config/frv/frv.c (frv_issue_rate): New function.
4318         (frv_pack_insns): Use it.
4319         (TARGET_SCHED_ISSUE_RATE): Define.
4320
4321 2003-10-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
4322
4323         * config/mcore/mcore.c: Convert to ISO C90 function declarations
4324         and definitions.
4325         * config/mcore/mcore.h: Likewise.
4326         * config/mcore/mcore-protos.h: Likewise.
4327
4328 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
4329
4330         * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function.
4331         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
4332
4333 2003-10-01  Per Bothner  <pbothner@apple.com>
4334
4335         * c-lex.c (src_line):   Remove unneeded static variable.
4336         (cb_line_change):  Set input_line directly, instead of src_line.
4337         (get_non_padding_token):  We no longer need to compensate for the
4338         "horrible things" the C++ front-end does with the current line number,
4339
4340         * cpplib.c (_cpp_pop_buffer):  Do generate a _cpp_do_file_change
4341         callback even when popping the main file.
4342         * c-lex.c (fe_file_change):  Handle a NULL new_map.
4343         * fix-header.c (cb_file_change):  Likewise.
4344         * c-ppoutput.c (pp_file_change):  Likewise.
4345
4346         * cppinit.c (cpp_read_main_file):  Split into two functions:
4347         Distribute _cpp_stack_file call over the two functions.
4348         (cpp_find_main_file):  New function.
4349         Don't call _cpp_do_file_change even if working_directory flag set.
4350         (cpp_push_main_file):  New function.
4351         * cppfiles.c (_cpp_find_failed):  New helper function.
4352         (find_file):  Made non-static and renamed to _cpp_find_file.
4353         (_cpp_stack_file):  No longer needed.  But note the following.
4354         (stack_file):  Made non-static and renamed to _cpp_stack_file.
4355         * fix-header.c (cpp_read_main_file):  Replace cpp_read_main_file
4356         call with calls to cpp_find_main_file and cpp_push_main_file.
4357         (search_path_head):  If there is no current buffer, use main_file.
4358         * cpphash.h:  Update function declarations.
4359         * cpplib.h:  Update function declarations.
4360
4361         * c-opts.c (c_common_post_options):  Don't call cpp_find_main_file yet.
4362         (c_common_parse_file):  No longer need to call cpp_read_main_file
4363         when file_index > 0 (as in multi-file or server compiation).
4364         (finish_options):  Change to <built-in> is an LC_ENTER, not LC_RENAME
4365         as this now happens before cpp_push_main_file.
4366         (push_command_line_include):  When done with options, pass LC_LEAVE
4367         instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file.
4368         (fe_file_change):  Handle NULL new_map, and simplify.
4369         * cpplex.c (_cpp_get_fresh_line):  Revert my no-longer-needed
4370         08-28 change, since we're never called with a NULL buffer.
4371         (_cpp_lex_direct):  Likewise.
4372         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
4373         Return false if buffer is NULL at end.
4374
4375         * cpplex.c (_cpp_get_fresh_line):  Return value now just depends on
4376         whether pfile->buffer is NULL after pop, ignoring return_at_eof.
4377         * cpphash.h (struct cpp_buffer):  Remove unused return_at_eof field.
4378         * cpplib.c (cpp_push_buffer):  Since we no longer set return_at_eof,
4379         remove the unused return_at_eof parameter.
4380         * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
4381         Update callers of cpp_push_buffer.
4382
4383 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
4384
4385         * target.h (init_libfuncs): New hook.
4386         * target-def.h: Default TARGET_INIT_BUILTINS and
4387         TARGET_INIT_LIBFUNCS to hook_void_void.  Add
4388         TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
4389         * builtins.c (default_init_builtins): Delete.
4390         * expr.h (default_init_builtins): Delete prototype.
4391         * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
4392         Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
4393         Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
4394         DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
4395         MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
4396         and UMODDI3_LIBCALL,
4397
4398         * Makefile.in (optabs.o): Depends on target.h.
4399         * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
4400         * optabs.c: Include target.h.
4401         (prepare_float_lib_cmp): No need for #ifdef around use of
4402         FLOAT_LIB_COMPARE_RETURNS_BOOL.
4403         (set_optab_libfunc): New function.
4404         (init_optabs): Delete use of all *_LIBCALL defines.
4405         Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
4406         * optabs.h: Prototype set_optab_libfunc.
4407
4408         * config.gcc: Remove all references to pa/long_double.h,
4409         ia64/hpux_longdouble.h, and gofast.h.
4410         (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
4411         to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
4412
4413         * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
4414         * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
4415         * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
4416         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
4417         * config/sparc/sparc.c, config/vax/vax.c:
4418         Provide a definition for TARGET_INIT_LIBFUNCS.  Where
4419         necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
4420
4421         * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
4422         * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
4423         * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
4424         * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
4425         * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
4426         * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
4427         * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
4428         * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
4429         INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
4430
4431         * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
4432         Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
4433         * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
4434         HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
4435         * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
4436
4437         * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
4438         * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
4439         SUN_INTEGER_MULTIPLY_64 to 0.
4440         * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
4441         SUN_INTEGER_MULTIPLY_64 to 1.
4442         * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
4443         SUN_INTEGER_MULTIPLY_64 to 0.
4444         * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
4445         Define US_SOFTWARE_GOFAST.
4446         * config/vax/vax.h: Default TARGET_ELF to 0.
4447         * config/vax/elf.h: Redefine TARGET_ELF to 1.
4448
4449         * config/gofast.h: Don't define any macros here.  Provide one
4450         static function, gofast_maybe_init_libfuncs, which does what
4451         INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
4452         is already defined.  Do not clear negation libfuncs.  Do
4453         not mess with HFmode, XFmode, or TFmode libfuncs.
4454
4455         * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
4456
4457 2003-10-01  Kelley Cook  <kelleycook@wideopenwest.com>
4458
4459         PR C/12466
4460         * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C.
4461
4462 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4463
4464         * config/mips/xm-iris5.h: Remove, unnecessary.
4465         * config.build (mips-sgi-irix5*): Remove.
4466         (mips-sgi-irix6*o32): Likewise.
4467         * config.gcc (mips-sgi-irix6*o32): Remove xm_file.
4468         (mips-sgi-irix5cross64): Likewise.
4469         (mips-sgi-irix5*): Likewise.
4470         * config.host (mips-sgi-irix5*): Remove.
4471         (mips-sgi-irix6*o32): Likewise.
4472
4473 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
4474
4475         * dbxout.c (dbxout_fptype_value): Delete.
4476         (dbxout_type): Emit R3 for all COMPLEX_TYPEs.
4477
4478 2003-10-01  Alexandre Oliva  <aoliva@redhat.com>
4479
4480         * output.h (compute_reloc_for_constant): Declare.
4481         * varasm.c (compute_reloc_for_constant): Extract from...
4482         (output_addressed_constants): ... here.  Adjust all callers.
4483
4484 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4485
4486         * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist.
4487         * configure: Rebuilt.
4488
4489 2003-10-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4490
4491         * fold-const.c (make_range): When handling unsigned, don't reverse
4492         range if high bound is zero.
4493
4494 2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
4495
4496         * config/frv/frv.h (PREDICATE_CODES): Added
4497         condexec_si_media_operator, condexec_sf_add_operator and
4498         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
4499         and condexec_sf_unary_operator.
4500
4501 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4502
4503         * aclocal.m4: Add ultrix* to /dev/zero blacklist.
4504         * configure: Rebuilt.
4505
4506 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4507
4508         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
4509         Allow override.
4510         * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
4511
4512 2003-09-23  David S. Miller  <davem@redhat.com>
4513
4514         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
4515         before redefining.
4516         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4517
4518 2003-10-01  Steven Bosscher  <steven@gcc.gnu.org>
4519
4520         * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO
4521         C90 function declarations and definitions.
4522
4523 2003-10-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4524
4525         * config.gcc (cris-*-linux*): Revert mistaken commit.
4526
4527 2003-10-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4528
4529         PR optimization/11753
4530         * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to
4531         the length in the non-V9 case.
4532
4533 2003-09-30  Richard Henderson  <rth@redhat.com>
4534
4535         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor
4536         DWARF_ALT_FRAME_RETURN_COLUMN.
4537         * unwind-dw2.c (dwarf_reg_size_table): Expand by one.
4538         (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column.
4539         (uw_frame_state_for): Return end-of-stack for null return address.
4540         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add.
4541
4542         * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return.
4543         (alpha_expand_prologue): Store a zero for it.
4544         (alpha_expand_epilogue): Don't reload it.
4545         * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New.
4546         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64
4547         for the sigframe return address.
4548
4549 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
4550
4551         * sdbout.c: Convert to ISO C90 prototypes.
4552         * objc/objc-act.c: Likewise.
4553
4554 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
4555
4556         * config/i386/cygwin1.c: Convert to ISO C90 prototypes.
4557         * config/i386/winnt.c: Likewise.
4558         * config/i386/cygming.h: Likewise.
4559
4560 2003-09-30  Kazu Hirata  <kazu@cs.umass.edu>
4561
4562         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
4563         (A ^ B) - B for any B.
4564
4565 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
4566
4567         * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
4568         powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto.
4569
4570 2003-09-30  Richard Earnshaw  <rearnsha@arm.com>
4571
4572         * arm/ieee754-sf.S: Tidy formatting.
4573
4574 2003-09-30  Nicolas Pitre  <nico@cam.org>
4575
4576         * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY
4577         and ARM_MOD_BODY.
4578         (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5.
4579         (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5,
4580         added better divisor alignment in the other case.
4581         (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor.
4582         (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the
4583         macros above, add fast exits for divisor >= dividend, etc.
4584
4585 2003-09-30  Nicolas Pitre  <nico@cam.org>
4586
4587         * arm/ieee754-df.S: Split compilation of fixunsdfsi from
4588         L_fixdfsi target.
4589         * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi.
4590
4591 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
4592
4593         * config.gcc: Default use_fixproto to 'no'.
4594
4595 2003-09-30  Richard Sandiford  <rsandifo@redhat.com>
4596
4597         PR optimization/12345
4598         * config/mips/mips-protos.h (mips_restore_gp): Remove.
4599         (mips_gp_save_slot): Declare.
4600         * config/mips/mips.c (mips_restore_gp): Remove in favor of...
4601         (mips_gp_save_slot): ...this new function.
4602         * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot
4603         and mips_output_move to generate the output template.
4604         (call_internal): Force splitting if TARGET_SPLIT_CALLS.  Don't emit
4605         a gp load after a noreturn call.  Load the gp using a move rather
4606         than an exception_receiver pattern.
4607         (call_value_internal, call_value_multiple_internal): Likewise.
4608         (call_split, call_value_split, call_value_multiple_split): Clobber $28.
4609
4610 2003-09-30  Carlo Wood  <carlo@alinoe.com>
4611
4612         PR debug/12319
4613         * cfglayout.c (insn_scope):  Use prologue_locator and
4614         epilogue_locator; return the outer function scope for
4615         pro- and epilogue insns.
4616
4617 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
4618
4619         * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and
4620         REAL_TYPEs based on the bitsize of the type's mode, not the
4621         mode directly.
4622
4623 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4624
4625         * dwarf2out.c (default_eh_frame_section): Split into ...
4626         (named_section_eh_frame_section, collect2_eh_frame_section): ... new
4627         functions.
4628         * output.h (named_section_eh_frame_section): Declare.
4629         (collect2_eh_frame_section): Likewise.
4630
4631 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
4632
4633         * real.c (real_sqrt): Use get_canonical_qnan directly.
4634
4635         * dwarf2out.c (add_const_value_attribute): Use real_to_target.
4636
4637         * varasm.c (assemble_real): Use real_to_target directly,
4638         calculate the number of significant elements of the result
4639         array and write them out in a loop, instead of using a giant
4640         switch statement to pick the correct REAL_VALUE_TO_TARGET_*
4641         macro.
4642
4643 2003-09-29  Jan Hubicka  <jh@suse.cz>
4644
4645         PR c++/12175
4646         * varasm.c (notice_global_symbol): Discard external symbols.
4647
4648         PR optimization/12286
4649         * gcov-io.c (gcov_read_words): Fix memmove call.
4650         * profile.c (compute_branch_probabilities): Add extra sanity checks.
4651
4652 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4653
4654         * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
4655         Solaris 7-9.
4656
4657         * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
4658         wildcards which explicitly match micro versions.
4659         * fixinc/fixincl.x: Regenerate.
4660
4661 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
4662
4663         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
4664         (A ^ B) - B, where B is any power of 2 minus 1.
4665
4666 2003-09-29  Jan Hubicka  <jh@suse.cz>
4667
4668         * libgcov.c (gcov_exit): Fix two pastos.
4669
4670 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
4671
4672         * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the
4673         define_split immediately below to form define_insn_and_split.
4674
4675 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
4676
4677         * config/h8300/h8300.md (*tstsi_variable_bit): New.
4678         (*tstsi_variable_bit_qi): Likewise.
4679
4680 2003-09-28  Phil Edwards  <phil@codesourcery.com>
4681
4682         * doc/cppopts.texi:  Use 'dashMP' instead of '-MP' as a cross-
4683         reference name.
4684
4685 2003-09-28  Richard Henderson  <rth@redhat.com>
4686
4687         * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
4688         file and line separately.
4689
4690 2003-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
4691
4692         * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly",
4693         "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc",
4694         "*subdi3_borrow_cconly"): New insns.
4695         ("*addsi3_sub", "*subsi3_sub"): Remove.
4696         ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT.
4697         ("*subsi3_cc"): Fix op_type attribute.
4698
4699 2003-09-28  Richard Henderson  <rth@redhat.com>
4700
4701         * stmt.c (expand_asm_operands): Take a location_t, instead of
4702         individual file and line.
4703         * c-typeck.c (c_expand_asm_operands): Likewise.
4704         * tree.h (expand_asm_operands): Update decl.
4705         * c-common.h (c_expand_asm_operands): Likewise.
4706         * c-semantics (genrtl_asm_stmt): Update call.
4707
4708 2003-09-28  Philip Blundell  <philb@gnu.org>
4709
4710         * config/arm/arm.c (legitimize_pic_address): Check
4711         SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P.
4712         (arm_assemble_integer): Likewise.
4713
4714 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
4715
4716         * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
4717         config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c,
4718         config/c4x/c4x.h:
4719         Convert to ISO C90 function declarations and definitions.
4720
4721 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
4722
4723         *  config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h:
4724         Convert to ISO C90 function declarations and definitions.
4725
4726 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
4727
4728         * config/mips/mips.c (mips_constant_info): Add reloc field.
4729         (mips_classify_constant): Initialize it.  Always set SYMBOL to the
4730         underlying symbol, not to an unspec.
4731         (mips_delegitimize_address, print_operand): Clean up accordingly.
4732
4733 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
4734
4735         * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove.
4736         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment.
4737         * config/mips/mips.c (mips_reloc_offset_ok_p): New function.
4738         (mips_classify_constant): Use it.
4739         (mips_splittable_symbol_p): Add an offset argument.
4740         (mips_classify_address): Adjust call accordingly.
4741         (mips_legitimize_symbol): Handle sdata references with LO_SUM rather
4742         than a relocation unspec.  Update call to mips_splittable_symbol_p.
4743         Generalize the code that copes with symbols + invalid offsets.
4744         (print_operand): Allow '%R' to be applied to small data addresses.
4745         (mips_reloc_string): Remove RELOC_GPREL16.
4746         (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg.  Return $gp
4747         for TARGET_EXPLICIT_RELOCS.  Return null if we can't use gp-relative
4748         relocation operators.
4749         * config/mips/mips.md (RELOC_GPREL16): Remove.  Shuffle other reloc
4750         constants accordingly.
4751
4752 2003-09-27  Roger Sayle  <roger@eyesopen.com>
4753
4754         * toplev.c (flag_evaluation_order): New global variable.
4755         * flags.h (flag_evaluation_order): Prototype here.
4756         * expr.c (expand_operands): If we need to preserve observable
4757         evaluation order, protect exp1 from clobbering exp0's result.
4758
4759 2003-09-28  Andreas Jaeger  <aj@suse.de>
4760
4761         * c-decl.c (finish_function): Convert definition to ISO C90.
4762         * ifcvt.c (mark_loop_exit_edges): Likewise.
4763         * ra-rewrite.c (emit_colors): Likewise.
4764
4765 2003-09-27  Nathanael Nerode  <neroden@gcc.gnu.org>
4766
4767         * config.gcc (alpha*-dec-osf[45]*): Disable fixproto.
4768         * config.gcc (arm*-*-uclinux*): Disable fixproto.
4769         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
4770         powerpc-*-eabialtivec*): Disable fixproto.
4771
4772 2003-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4773
4774         PR optimization/12340
4775         * loop.h (struct induction): Document the new semantics
4776         of the 'same' field for bivs.
4777         * unroll.c (biv_total_increment): Don't count the same
4778         biv increment several times.
4779         (loop_iterations) [GENERAL_INDUCT]: Likewise.
4780
4781 2003-09-27  Graham Stott  <graham.stott@btinternet.com>
4782
4783         * unroll.c (loop_interations)[GT]: Add missing break.
4784
4785 2003-09-27  Kelley Cook  <kcook@gcc.gnu.org>
4786
4787         * config/chorus.h, config/darwin-c.c, config/darwin-protos.h,
4788         config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h,
4789         config/dbxelf.h, config/elfos.h, config/fp-bit.h,
4790         config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h,
4791         config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
4792         config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h,
4793         config/netbsd.h, config/netware.h, config/openbsd-oldgas.h,
4794         config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h,
4795         config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md,
4796         config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md,
4797         config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h,
4798         config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h,
4799         config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h,
4800         config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c,
4801         config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm,
4802         config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c,
4803         config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c,
4804         config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm,
4805         config/alpha/xm-vms.h, config/arc/arc-modes.def,
4806         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
4807         config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm,
4808         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
4809         config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h,
4810         config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c,
4811         config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm,
4812         config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
4813         config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def,
4814         config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
4815         config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c,
4816         config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
4817         config/h8300/parityhi2.c, config/h8300/popcounthi2.c,
4818         config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c,
4819         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
4820         config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h,
4821         config/i960/i960-c.c, config/i960/i960-coff.h,
4822         config/i960/i960-modes.def, config/i960/i960-protos.h,
4823         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
4824         config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h,
4825         config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c,
4826         config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm,
4827         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
4828         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
4829         config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s,
4830         config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h,
4831         config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h,
4832         config/m68k/m68k-aout.h, config/m68k/m68k-none.h,
4833         config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h,
4834         config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h,
4835         config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
4836         config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm,
4837         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h,
4838         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4839         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
4840         config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h,
4841         config/mips/iris6gld.h, config/mips/irix6-libc-compat.c,
4842         config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c,
4843         config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h,
4844         config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h,
4845         config/mips/vr.h, config/mn10300/linux.h,
4846         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
4847         config/mn10300/mn10300.h, config/mn10300/mn10300.md,
4848         config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c,
4849         config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h,
4850         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md,
4851         config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def,
4852         config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
4853         config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h,
4854         config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm,
4855         config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h,
4856         config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h,
4857         config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h,
4858         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
4859         config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h,
4860         config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h,
4861         config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx,
4862         fixinc/fixinc.svr4: GNU CC -> GCC.
4863
4864 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
4865
4866         * objc/objc-act.c (tm_p.h): Tweak order.
4867         * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H).
4868
4869 2003-09-26  Nathanael Nerode  <neroden@gcc.gnu.org>
4870
4871         * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*):
4872         Include t-slibgcc-elf-ver and t-linux in tmake_file.
4873         * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*):
4874         Disable fixproto.
4875         * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*):
4876         Disable fixproto.
4877         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*,
4878         sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto.
4879
4880         * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT.
4881
4882 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
4883
4884         * config/i386/i386.h (ix86_return_in_memory): Revert my last patch.
4885         * objc/objc-act.c (tm_p.h): Include.
4886
4887 2003-09-26  Per Bothner  <pbothner@apple.com>
4888
4889         * dbxout.c (dbxout_typedefs):  Output typedefs in forward order.
4890         No longer any need to reverse by recursion.
4891
4892 2003-09-26  Roger Sayle  <roger@eyesopen.com>
4893             Richard Henderson  <rth@redhat.com>
4894
4895         PR optimization/11741
4896         * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
4897         appropriate set to match that in hash_scan_insn.  Fall back to
4898         the original copy method, if we can't validate changing insn.
4899         (pre_delete): Only delete instructions that have a single_set,
4900         instead of aborting when we encounter an PARALLEL insn with more
4901         then one SET.
4902
4903 2003-09-26  Andreas Krebbel  <krebbel1@de.ibm.com>
4904
4905         * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted.
4906         ("builtin_longjmp"): Insn deleted.
4907         ("save_stack_nonlocal"): Save literal pool base pointer behind
4908         backchain and stack pointer.
4909         ("restore_stack_nonlocal"): Restore literal pool base pointer.
4910         * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of
4911         the stack save area for the nonlocal goto case.
4912
4913 2003-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4914
4915         PR bootstrap/12358
4916         * pa.c (output_bvb): Fix typo.
4917
4918 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
4919
4920         * expmed.c (store_bit_field): Don't search for an integer mode
4921         unless we need the result.
4922
4923 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
4924
4925         * expr.c (emit_move_insn_1): If there is no move pattern for the
4926         original mode, try using a pattern for the corresponding integer mode.
4927
4928 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
4929
4930         PR middle-end/9200
4931         * combine.c (if_then_else_cond): Tighten mode check.
4932
4933 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
4934
4935         * cppcharset.c, cpphash.h: Rename 'struct strbuf' to
4936         'struct _cpp_strbuf'.
4937
4938         * config/i386/netbsd-elf.h, config/i386/netbsd64.h,
4939         config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h,
4940         config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md,
4941         config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h,
4942         config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h,
4943         config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h,
4944         config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h,
4945         config/i386/xm-cygwin.h, config/i386/xm-djgpp.h,
4946         config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace
4947         "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC".
4948         * config/i386/i386-aout.h, config/i386/i386-coff.h,
4949         config/i386/i386-interix.h, config/i386/i386-interix3.h,
4950         config/i386/i386-modes.def, config/i386/i386-protos.h,
4951         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
4952         config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h,
4953         config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h,
4954         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
4955         config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC.
4956         "GNU compiler" -> GCC.
4957         * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h,
4958         config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h,
4959         config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c,
4960         config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h,
4961         config/i386/freebsd-aout.h, config/i386/freebsd.h,
4962         config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC.
4963
4964 2003-09-25  Kelley Cook  <kelleycook@wideopenwest.com>
4965
4966         * cgraph.c (dump_cgraph):  Don't output newline before dump.  Add in
4967         "local" to the callgraph dump.  Output "after inlining" earlier.
4968         * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the
4969         callgraph dumps.  Correct misspellings.
4970         (cgraph_decide_inlining):  Output number of insns before inlining.
4971         Output the calling function into which a function is inlined.
4972         (cgraph_decide_small_functions): Format dump file like always_inline.
4973
4974 2003-09-25  Loren James Rittle  <ljrittle@acm.org>
4975
4976         * config/i386/i386.h (ix86_return_in_memory): Add prototype.
4977
4978 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
4979
4980         * config/s390/s390.c (s390_emit_prologue): Simplify accesses to
4981         FPR slots in the save area.
4982         (s390_emit_epilogue): Likewise.
4983
4984 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
4985
4986         * cgraph.h (cgraph_remove_edge): Declare.
4987         * cgraph.c (cgraph_remove_edge): Make extern.
4988         * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge
4989         instead of cgraph_remove_call.
4990
4991 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
4992
4993         * objc/objc-act.c (gen_declaration_1): Fix printf format.
4994
4995 2003-09-25  Richard Earnshaw  <rearnsha@arm.com>
4996
4997         * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the
4998         arm7tdmi core.
4999
5000 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
5001
5002         * config/darwin-protos.h (objc_image_info_section):
5003         New prototype.
5004
5005 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
5006
5007         * Makefile.in (stub-objc.o): Depend on $(GGC_H).
5008
5009 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
5010
5011         * config.gcc: Get rid of more gratuitious 'x'es.  Actually allow
5012         tsc701 as a --with-cpu, --with-tune setting for sparc.
5013
5014 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
5015
5016         * c-parse.in (objc_try_stmt): Do not specify a %type.
5017
5018 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
5019
5020         * config.gcc: New 'widely ported system' clause for rtems.
5021         Set thread file there, not in individual clauses.
5022
5023 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
5024
5025         PR target/6222
5026         * config/mips/mips.c (mips_va_arg): Handle arguments that must be
5027         passed on the stack.
5028
5029 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
5030
5031         * config.gcc (widely ported systems section): Mostly alphabetize
5032         by system.  Comment the case where we can't.
5033         * config.gcc (widely ported systems section): Reindent and clean up.
5034
5035         * config.gcc: Remove some unnecessary uses of 'x' in case statements.
5036         Actually allow ep9312 as an arm --with-arch setting.
5037
5038         * config.gcc (*-hpux11): Disable fixproto.
5039
5040 2003-09-24  Phil Edwards  <phil@codesourcery.com>
5041
5042         PR pch/12112
5043         * gcc/cppfiles.c (pch_open_file): Return based on combined
5044         result of all files.
5045         (validate_pch): Return validate flag for current file.
5046
5047 2003-09-24  Roger Sayle  <roger@eyesopen.com>
5048
5049         PR bootstrap/12358
5050         * fold-const.c (tree_swap_operands_p): Only reorder operands when
5051         one of the operands is constant.
5052
5053 2003-09-24  Ziemowit Laski  <zlaski@apple.com>
5054
5055         MERGE OF objc-improvements-branch into MAINLINE:
5056         * Makefile.in (C_OBJS): Add in stub-objc.o.
5057         (c-parse.y): Change sed demarcations to begin with '@@'.
5058         (stub-objc.o): New rule.
5059         * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
5060         flag_replace_objc_classes): New flags.
5061         * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY,
5062         RID_AT_SYNCHRONIZED): New keywords.
5063         (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
5064         flag_replace_objc_classes): New flags.
5065         (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl,
5066         objc_comptypes, objc_message_selector, lookup_objc_ivar,
5067         get_current_scope, objc_mark_locals_volatile): New prototypes,
5068         some moved from c-tree.h.
5069         * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions.
5070         (finish_decl): Adjust where objc_check_decl() gets called.
5071         * c-lang.c (lookup_interface, is_class_name, objc_is_id,  objc_check_decl,
5072         objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs.
5073         * c-opts.c (c_common_handle_option): Add handling for  flag_nil_receivers,
5074         flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link.
5075         * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and
5076         '@@end_ifc', respectively.
5077         (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens.
5078         (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt,
5079         objc_finally_block): New rules.
5080         (component_decl_list2): Clean up semantic action for @defs construct.
5081         (component_decl, c99_block_start): Remove call to add_objc_decls().
5082         (poplevel): Add call to objc_clear_super_receiver().
5083         (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized
5084         constructs.
5085         (classdef, methodprotolist): Clean up/simplify.
5086         (methodprotolist2): Eliminate.
5087         (methodproto): Call add_method() instead of add_class_method() and
5088         add_instance_method().
5089         (receiver): Add TYPENAME production.
5090         (reswords): Add "throw", "try", "catch", "finally" and "synchronized".
5091         (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and
5092         AT_SYNCHRONIZED.
5093         * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl,
5094         objc_comptypes, objc_message_selector)
5095         * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for
5096         struct and pointer types.
5097         (build_c_cast): Do not discard ObjC protocol qualifiers.
5098         (convert_for_assignment): Cache result of comp_target_types() instead
5099         of calling it more than once.
5100         * c.opt (fnext-runtime): Update description string.
5101         (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link):
5102         New ObjC/ObjC++-specific flags.
5103         * function.h (GCC_FUNCTION_H): Header guard.
5104         * gengtype-lex.l: Teach lexer about new @@... sed demarcations.
5105         * stub-objc.c: New file, to be used to satisfy references to ObjC
5106         functions by the C and C++ front-ends.
5107         * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata.
5108         * config/darwin.h (FUNCTION): Add in_objc_image_info.
5109         (SECTION_FUNCTION): Add objc_image_info_section.
5110         * doc/invoke.texi: Link to GCC web site for Objective-C information.
5111         (-fconstant-string-class): Update documentation.
5112         (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes,
5113         -fzero-link): New documentation.
5114         * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin
5115         with '@@'.
5116         * objc/lang-specs.h (@objective-c-header): Fix -E spec.
5117         * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME
5118         throughout; provide casts for return values from memory allocation
5119         functions (xmalloc, alloca, ggc_alloc, etc.).
5120         (OBJC_VOID_AT_END): New macro.
5121         (rtl.h): Do not #include any more.
5122         (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT.
5123         (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL,
5124         TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER,
5125         TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW,
5126         TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points.
5127         (struct val_stack, catch_count_stack, exc_binding_stack,  val_stack_push,
5128         val_stack_pop): New.
5129         (objc_check_decl): Fix precondition for error message, along with
5130         the message itself.
5131         (lookup_and_install_protocols): Remove nonexistent protocols from
5132         protocol list instead of returning error_mark_node.
5133         (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs.
5134         (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT.
5135         (synth_module_prologue): General clean-up; construct NeXT-specific
5136         runtime API prototypes if needed.
5137         (build_string_class_template): Remove.
5138         (check_string_class_template, string_layout_checked): New.
5139         (build_objc_string_object): Generalize to work with
5140         -fconstant-string-class.
5141         (build_objc_symtab_template): Fix layout for the NeXT runtime.
5142         (build_metadata_decl): New.
5143         (forward_declare_categories): Call build_metadata_decl() instead of
5144         create_builtin_decl() et al.
5145         (build_module_descriptor): Use OBJC_VOID_AT_END instead of
5146         void_list_node_1.
5147         (build_selector_reference_decl, build_class_reference_decl,
5148         build_objc_string_decl): Do not set TREE_READONLY.
5149         (get_proto_encoding): Do not call hack_method_prototype().
5150         (get_class_reference): Add failure mode for invalid class names;
5151         support -fzero-link; defer if in an ObjC++ template declaration.
5152         (objc_declare_alias, objc_declare_class): Fix up duplicate name
5153         lookup; check for global scope if in ObjC++.
5154         (is_class_name): Generalize to work with various tree nodes (TYPE_DECL,
5155         RECORD_TYPE, IDENTIFIER_NODE, etc.)
5156         (objc_is_id): Removed.
5157         (objc_is_object_ptr): New function.
5158         (get_class_ivars_from_name): New function, used for @defs construct.
5159         (get_class_ivars): Add option to return raw ivars; create a
5160         ClASS_OWN_IVARS list for each class as needed.
5161         (objc_enter_block, objc_exit_block, objc_declare_variable,
5162         objc_build_throw_stmt, val_stack_push, val_stack_pop,
5163         objc_build_try_enter_fragment, objc_build_extract_expr,
5164         objc_build_try_exit_fragment, objc_build_extract_fragment,
5165         objc_build_try_prologue, objc_build_try_epilogue,
5166         objc_build_catch_stmt, objc_build_catch_epilogue,
5167         objc_build_finally_prologue, objc_build_finally_epilogue,
5168         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
5169         objc_build_synchronized_epilogue, build_objc_exception_stuff):
5170         New functions.
5171         (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in
5172         the future).
5173         (build_private_template): Fix up calls to get_class_ivars().
5174         (offset_is_register, forwarding_offset): Remove.
5175         (objc_method_parm_type, objc_encoded_type_size): New functions.
5176         (encode_method_prototype): Simplify to no longer depend on
5177         back-end information.
5178         (build_tmp_function_decl_xxx, build_tmp_function_decl,
5179         hack_method_prototype): Removed.
5180         (generate_protocol_references): Remove calls to
5181         build_tmp_function_decl().
5182         (generate_protocols): Adjust calls to encode_method_prototype().
5183         (build_class_template): Generate sel_id' and 'gc_object_type' fields
5184         for the NeXT runtime.
5185         (synth_forward_declarations): Call build_metadata_decl().
5186         (check_ivars): Check that the number of ivars matches also.
5187         (build_super_template): Modify super_type directly; disable debugging
5188         output while generating decl.
5189         (build_ivar_list_initializer): Skip list elements that are not
5190         FIELD_DECLs.
5191         (ivar_list_length): New function.
5192         (generate_ivar_lists): Call ivar_list_length() instead of list_length()
5193         and encode_method_prototype() instead of encode_method_def().
5194         (build_shared_structure_initializer): Generate 'sel_id' field for
5195         the NeXT runtime.
5196         (generate_category): Do not set TREE_USED.
5197         (build_keyword_selector): Ditto; transform into a function argument
5198         chain.
5199         (get_arg_type_list): If there are no user-specified arguments, use
5200         '...'; use OBJC_VOID_AT_END.
5201         (check_duplicates): Add a parameter indicating whether methods or
5202         selectors are being checked.
5203         (receiver_is_class_object): Add parameters indicating whether
5204         receiver is 'self' or 'super'; robustify.
5205         (build_message_expr): Defer call to finish_message_expr() if
5206         inside an ObjC++ template.
5207         (lookup_method_in_hash_lists): New function.
5208         (finish_message_expr): Complete rewrite/fix.
5209         (build_objc_method_call): Ditto; factor out commonalities between
5210         the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil
5211         messenger variants on the NeXT.
5212         (lookup_instance_method_static, lookup_class_method_static):
5213         Fold into a single lookup_method_static() function with an
5214         additional parameter.
5215         (add_class_method, add_instance_method): Fold into a single
5216         add_method() function with an additional parameter.
5217         (add_category): Make duplicate categories a hard error in ObjC++.
5218         (add_instance_variable): Properly handle unnamed ivars, arrays of
5219         zero or no size and bitfields.  In ObjC++, check for nontrivial
5220         C++ class instances.
5221         (is_public): Allow C functions to access non-@public ivars, with
5222         a warning.
5223         (start_class): Move common initializations to
5224         synth_module_prologue(); check for global scope if in ObjC++.
5225         (continue_class): Fix calls to finish_struct().
5226         (objc_declare_protocols, start_protocol): Check for global scope
5227         if in ObjC++.
5228         (encode_pointer): Encode 'BOOL *' specially on the NeXT.
5229         (encode_aggregate_within): Rewrite to properly distinguish
5230         struct tags from typedefs in both ObjC and ObjC++.
5231         (encode_bitfield, encode_complete_bitfield): Remove.
5232         (encode_next_bitfield, encode_gnu_bitfield): New functions.
5233         (encode_field_decl): Call encode_next_bitfield() or
5234         encode_gnu_bitfield() as needed.
5235         (synth_self_and_ucmd_args): New function.
5236         (start_method_def): Use it.
5237         (objc_types_are_equivalent): New function.
5238         (comp_proto_with_proto): Use it instead of comptypes(), since
5239         we need symmetry.
5240         (really_start_method): Use lookup_method_static() instead of
5241         lookup_class_method_static() and lookup_instance_method_static();
5242         Emit 'extern "C"' if in ObjC++ mode.
5243         (add_objc_decls): Removed.
5244         (UOBJC_SUPER_scope): New variable.
5245         (get_super_receiver): Move construction of 'super' from
5246         add_objc_decls(); remove dependency on struct objc_class.
5247         (encode_method_def): Removed; encode_method_prototype() is
5248         used instead.
5249         (objc_clear_super_receiver): New function.
5250         (objc_expand_function_end): Do not do anything for ordinary
5251         C functions.
5252         (finish_method_def): Mark ObjC methods as un-inlinable.
5253         (gen_declaration_1): Emit widths of bitfields.
5254         (finish_objc): Call generate_objc_image_info() if needed;
5255         use check_duplicates() when checking for selector duplicates.
5256         (generate_objc_image_info): New function.
5257         * objc/objc-act.h (add_instance_method, add_class_method,
5258         get_class_ivars): Remove prototypes.
5259         (objc_build_throw_stmt, objc_build_try_catch_finally_stmt,
5260         objc_build_synchronized_prologue, objc_build_synchronized_epilogue,
5261         objc_build_catch_stmt, objc_build_catch_epilogue,
5262         objc_build_finally_prologue, objc_build_finally_epilogue,
5263         add_method, get_class_ivars_from_name): New prototypes.
5264         (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New.
5265         (TYPE_PROTOCOL_LIST): Robustify to distinguish from
5266         TRANSLATION_UNIT_DECLs.
5267         (OBJC_TYPE_NAME): New.
5268         (objc_tree_code): Ensure that either <c-tree.h> or <cp/cp-tree.h>
5269         got included.
5270         (IS_SUPER): Robustify.
5271         (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl,
5272         umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl,
5273         objc_exception_try_enter_decl, objc_exception_try_exit_decl,
5274         objc_exception_match_decl, objc_exception_throw_decl,
5275         objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template,
5276         objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception,
5277         objc_rethrow_exception, objc_eval_once, objc_exception_block_stack,
5278         objc_catch_type): New ObjC/ObjC++ roots.
5279         * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New
5280         ObjC/ObjC++ tree node codes.
5281
5282 2003-09-24  Alexandre Oliva  <aoliva@redhat.com>
5283
5284         * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
5285         code path that calls a handler.
5286
5287 2003-09-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5288
5289         * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware):
5290         Disable fixproto.
5291
5292         * config.gcc: Clean up and reindent $with_cpu=yes|no clause and
5293         the section giving $with_cpu defaults by target.
5294
5295         * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf,
5296         arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*,
5297         rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*,
5298         rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*,
5299         rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*,
5300         i[34567]86-pc-msdosdjgpp*): Disable fixproto.
5301
5302 2003-09-24  David Edelsohn  <edelsohn@gnu.org>
5303
5304         * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2
5305         together.  Protect load string instruction with TARGET_STRING.
5306         (movti_string): Collapse case 1 and 2 together.
5307
5308 2003-09-24  Nathan Sidwell  <nathan@codesourcery.com>
5309
5310         * c-common.c (c_common_type_for_mode): Check for VOIDmode.
5311
5312 2003-09-24  Richard Earnshaw  <rearnsha@arm.com>
5313
5314         * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in
5315         do...while(0)
5316
5317 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5318
5319         * config.gcc: Move use_fixproto=no from generic vxworks clause to
5320         specific one.
5321
5322         * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto
5323         (accidentally missed in last pass).
5324
5325 2003-09-23  Andrew Pinski  <apinski@apple.com>
5326
5327         PR bootstrap/12383
5328         * configure: Regenerate.
5329
5330 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5331
5332         * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally
5333         missed in last pass).
5334
5335 2003-09-23  Alexandre Oliva  <aoliva@redhat.com>
5336
5337         * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe
5338         constant.
5339
5340 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5341
5342         * config.gcc: Move vax-*-vms* unsupported notice up with the rest.
5343
5344         * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*,
5345         powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*,
5346         powerpcle-*-eabi*): Disable fixproto.
5347
5348         * config.gcc: Move use_fixproto=no from generic FreeBSD clause to
5349         specific FreeBSD clauses.
5350         * config.gcc: Move use_fixproto=no from generic NetBSD clause to
5351         specific NetBSD clauses.
5352         * config.gcc: Move use_fixproto=no from generic OpenBSD clause
5353         to specific OpenBSD clauses.
5354
5355 2003-09-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5356
5357         * pa.c (hppa_expand_prologue): Do pic register save in frame marker
5358         without adding a frame note.
5359         * pa.md (allocate_stack): Save pic register in new frame marker when
5360         generating pic code.
5361
5362 2003-09-23  Kelley Cook  <kelleycook@wideopenwest.com>
5363
5364         * cgraphunit.c (cgraph_expand_all_functions): Renamed from
5365         cgraph_expand_functions.
5366
5367 2003-09-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5368
5369         * Makefile.in (gnucompare*): Merge into ...
5370         (slowcompare*): ... here.
5371         (fastcompare*): New targets.
5372         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for
5373         other "fast" cmp programs.
5374         * configure: Regenerate.
5375
5376 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5377
5378         * targhooks.c: Include output.h.
5379         * Makefile.in (targhooks.o): Add output.h to dependency list.
5380
5381 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5382
5383         * config.host: Removed superfluous newline.
5384
5385 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5386
5387         * config.gcc: Use ${target}, not $machine.
5388         * configure.in: Don't set $machine.
5389         * configure: Regenerate.
5390
5391 2003-09-23  Geoffrey Keating  <geoffk@apple.com>
5392
5393         * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
5394
5395         * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
5396         pass zero-size arrays by reference.
5397         (rs6000_va_arg): Likewise.
5398
5399 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5400
5401         * config.gcc: Set use_fixproto=no in each specific *-gnu*
5402         configuration, rather than the generic one.
5403
5404 2003-09-23  Richard Henderson  <rth@redhat.com>
5405
5406         * tree-inline.c (remap_save_expr): Map new save_expr to identity
5407         rather than to error_mark_node.
5408
5409 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5410
5411         * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result.
5412         Update description.
5413         * configure: Regenerate.
5414         * config.in: Likewise.
5415         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for
5416         HAVE_GAS_SHF_MERGE value.
5417         * varasm.c (mergeable_string_section): Likewise.
5418         (mergeable_constant_section): Likewise.
5419
5420 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5421
5422         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO
5423         value.
5424
5425 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5426
5427         * target.h (struct gcc_target): New member external_libcall.
5428         * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default.
5429         (TARGET_ASM_OUT): Use it.
5430         * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document.
5431         * targhooks.c: Convert to ISO C 90.
5432         (default_external_libcall): New function.
5433         * targhooks.h (default_external_libcall): Declare.
5434         * varasm.c (assemble_external_libcall): Use
5435         targetm.asm_out.external_libcall instead of
5436         ASM_OUTPUT_EXTERNAL_LIBCALL.
5437         * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6]
5438         (mips_output_external_libcall): Declare.
5439         * config/mips/mips.c (mips_output_external_libcall): Change
5440         definition guard.
5441         Change to match TARGET_ASM_EXTERNAL_LIBCALL.
5442         Only operate for O32 ABI.
5443         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define
5444         instead of ASM_OUTPUT_EXTERNAL_LIBCALL.
5445         * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef,
5446         superceded by TARGET_ASM_EXTERNAL_LIBCALL.
5447
5448 2003-09-22  Nathnael Nerode  <neroden@gcc.gnu.org>
5449
5450         * config.gcc: Do per-target disabling of fixproto here in clauses,
5451         not in t- fragments.
5452         * configure.in: Adjust to set STMP_FIXPROTO correctly.
5453         * configure: Regenerate.
5454         * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos,
5455         config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux,
5456         t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks,
5457         xtensa/t-xtensa: Remove setting of STMP_FIXPROTO.
5458         * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd,
5459         t-interix, t-linux-aout:  Delete files consisting only of
5460         setting of STMP_FIXPROTO.
5461
5462         * config.host: Allow unknown hosts (not targets).  Allow
5463         ns32k-*-netbsdelf* as a host (not a target).  Remove redundant
5464         empty clauses.  Remove useless obsolete-configuration clause.
5465         Prune unsupported configuration list.  Collapse identical
5466         clauses for closely related systems.  Rewrite comment for
5467         unsupported hosts list.  Reorganize a little.
5468
5469 2003-09-22  Richard Henderson  <rth@redhat.com>
5470
5471         * c-common.c (c_common_signed_or_unsigned_type): Examine mode,
5472         not precision.
5473
5474 2003-09-22  David Edelsohn  <edelsohn@gnu.org>
5475             Hartmut Penner  <hpenner@de.ibm.com>
5476             Segher Boessenkool  <boessen@de.ibm.com>
5477
5478         * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ...
5479         (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean.
5480         (rs6000_split_altivec_in_gprs): Rename to ...
5481         (rs6000_split_multireg_move): Add support for update addressing.
5482         * config/rs6000/rs6000-protos.h: Same.
5483         * config/rs6000/altivec.md: Same.
5484         * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for
5485         multiple GPRs.
5486         (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition.
5487         (movti_power): Use new splitter for multiple GPRs.
5488         (movti_string): Same.
5489         (movti_ppc64): Same.
5490
5491 2003-09-22  Bob Wilson  <bob.wilson@acm.org>
5492
5493         * config/xtensa/xtensa-protos.h: Convert to ISO C90.
5494         * config/xtensa/xtensa.c: Convert to ISO C90.  Minor formatting fixes.
5495
5496 2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5497
5498         * config/mn10300/mn10300.md: Revert 2003-09-17's patch.
5499         (andsi3): Set attr cc to set_zn when using shifts or adds.
5500
5501 2003-09-22  Bernardo Innocenti <bernie@develer.com>
5502
5503         * doc/contrib.texi: Add Peter Barada, Paul Dale and myself.
5504
5505 2003-09-22  Bernardo Innocenti  <bernie@develer.com>
5506
5507         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS):
5508         Resurrect -mrtd option.
5509
5510 2003-09-21  Andrew Pinski  <pinskia@physics.uc.edu>
5511
5512         PR target/12281
5513         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
5514         mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
5515
5516 2003-09-22  Olivier Hainque  <hainque@act-europe.fr>
5517
5518         PR target/9786
5519         * reg-stack.c (convert_regs_1): Purge possible dead eh edges
5520         after potential deletion of trapping insn. Avoids later ICE
5521         from call to fixup_abnormal_edges.
5522         (convert_regs_2): Stack the current block successors before
5523         processing this block, that is, before the potential deletion of
5524         dead edges by convert_regs_1, because these edges have been used
5525         to initialize the predecessors count.
5526
5527 2003-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
5528
5529         * real.c: Fix several nits in the head comment.
5530
5531 2003-09-21  Richard Henderson  <rth@redhat.com>
5532
5533         * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
5534         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
5535         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
5536         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
5537         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert.
5538
5539 2003-09-21  Richard Henderson  <rth@redhat.com>
5540
5541         * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
5542         (TREE_FILENAME, TREE_LINENO): Likewise.
5543         (set_tree_locus, copy_tree_locus, set_tree_file_line): New.
5544         (TREE_LOCUS_SET_P): New.
5545         * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
5546         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
5547         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
5548         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
5549         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.
5550
5551 2003-09-21  Nathanael Nerode  <neroden@gcc.gnu.org>
5552
5553         * config/vax/vax-protos.h: Convert to ISO C90.
5554         * config/vax/vax.c: Convert to ISO C90.
5555
5556 2003-09-21  Graham Stott  <grahams@btinternet.com>
5557
5558        PR target/12353
5559        * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint.
5560
5561 2003-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5562
5563         PR target/12301
5564         * reorg.c (stop_search_p): Return 1 for insns that can
5565         throw internally.
5566
5567 2003-09-20  Richard Henderson  <rth@redhat.com>
5568
5569         * c-format.c (gcc_diag_char_table): Add %J.
5570         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
5571         (check_format_types): Fix wanted_type name lookup.
5572         (init_dynamic_diag_info): Setup %J.
5573         * diagnostic.c (text_specifies_location): Implement %J.
5574         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
5575         dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
5576         tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
5577         config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
5578         config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.
5579
5580         * tree-inline.c: Include intl.h
5581         (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
5582         * Makefile.in (tree-inline.o): Update.
5583
5584 2003-09-20  Roger Sayle  <roger@eyesopen.com>
5585
5586         * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix
5587         transformation of a>=0 into (unsigned)a<0x80000000.
5588
5589 2003-09-20  Andrew Pinski <apinski@apple.com>
5590
5591         * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code.
5592
5593 2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
5594
5595         * Makefile.in: Don't set (unused) DLLTOOL.
5596
5597         * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi:
5598         Remove obsolete references to ENQUIRE.
5599
5600 2003-09-19  Nathanael Nerode  <neroden@gcc.gnu.org>
5601
5602         * configure.in: Remove --with-elf, which doesn't work.
5603         * configure: Regenerate.
5604         * config.gcc: Remove references to $elf, which does nothing.
5605
5606         * config/i386/xm-vsta.h: Remove xm-file believed useless.
5607         * config.build (i386-vsta): Remove reference to it.
5608         * config.host (i386-vsta): Remove reference to it.
5609
5610 2003-09-19  Phil Edwards  <phil@codesourcery.com>
5611
5612         * doc/install.texi:  Document the multiple testsuite options.
5613
5614 2003-09-19  Gerald Pfeifer  <gerald@pfeifer.com>
5615
5616         * doc/install.texi (Specific): Add the specific versions of GCC
5617         where support for FreeBSD 1, HP-UX version 9 and older, and AIX
5618         version 3 and older was discontinued.
5619
5620 2003-09-19      Joel Sherrill <joel@oarcorp.com>
5621
5622         * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to
5623         68881.
5624
5625 2003-09-19  Bernardo Innocenti  <bernie@develer.com>
5626
5627         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines
5628         for -m68030, -m68020-60 and -m68020-40.
5629         * config/m68k/m68k.h (TARGET_68030): New target flag.
5630         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM,
5631         TARGET_REGPARM): Remove.
5632         * config/m68k/m68k.h: Regroup and renumber target flags.
5633         * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations.
5634         * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0.
5635         * config/m68k/m68k.h (FUNCTION_ARG): Likewise.
5636         * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
5637         * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros.
5638
5639 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5640
5641         * config/m68k/t-rtems (m68k-*-rtems*): New.
5642         * config.gcc: Use config/m68k/t-rtems.
5643
5644 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5645
5646         * config/mips/t-rtems: New.
5647         * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems.
5648
5649 2003-09-19  Kelley Cook  <kelleycook@wideopenwest.com>
5650
5651         * cgraph.c: Fix typo in debugging output.
5652
5653 2003-09-19  T. Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
5654             Eric Botcazou <ebotcazou@libertysurf.fr>
5655
5656         PR target/12166
5657         * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1.
5658
5659 2003-09-18  Mike Stump  <mrs@apple.com>
5660
5661         * c-ppoutput.c (print):  Use fileline typedef for field 'line'.
5662         (print_line, maybe_print_line, cb_define, cb_undef, cb_include,
5663         cb_ident, cb_def_pragma):  Use fileline typedef.
5664         * cpphash.h (struct cpp_reader):  Likewise for field out.first_line.
5665
5666 2003-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
5667
5668         * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of
5669         total parm size if a parm has incomplete type.
5670         (gen_fastcall_suffix): Likewise.
5671
5672 2003-09-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5673
5674         * except.c (output_function_exception_table): Adjust last change
5675         to handle TYPE of INTEGER_CST.
5676
5677 2003-09-18  Mark Mitchell  <mark@codesourcery.com>
5678
5679         PR target/11184
5680         * builtins.c (expand_builtin_apply): Use convert_memory_address
5681         before returning the value.
5682
5683         * alias.c (find_base_value): Simplify use of
5684         convert_memory_address.
5685         (find_base_term): Likewise.
5686         * builtins.c (expand_builtin_stejmp_setup): Likewise.
5687         (expand_builtin_longjmp): Likewise.
5688         (expand_builtin_prefetch): Likewise.
5689         (get_memory_rtx): Likewise.
5690         (expand_builtin_return): Likewise.
5691         (expand_builtin_memcpy): Likewise.
5692         (expand_builtin_strncpy): Likewise.
5693         (expand_builtin_memset): Likewise.
5694         (expand_builtin_va_arg): Likewise.
5695         (expand_builtin_va_copy): Likewise.
5696         (expand_builtin_alloca): Likewise.
5697         * calls.c (expand_call): Likewise.
5698         * except.c (expand_builtin_extract_return_addr): Likewise.
5699         (expand_builtin_eh_return): Likewise.
5700         * explow.c (convert_memory_address): Define even when
5701         POINTER_EXTEND_UNSIGNED is not defined.  Do nothing if the address
5702         is already in the right mode.
5703         * explow.c (memory_address): Simplify use of convert_memory_address.
5704         (probe_stack_range): Likewise.
5705         * expmed.c (make_tree): Likewise.
5706         * expr.c (emit_block_move_in_libcall): Likewise.
5707         (expand_assignment): Likewise.
5708         (expand_expr): Likewise.
5709         * function.c (assign_parms): Likewise.
5710         (expand_function_end): Likewise.
5711         * integrate.c (copy_rtx_and_substitute): Likewise.
5712         * stmt.c (expand_computed_goto): Likewise.
5713
5714 2003-09-18  Roger Sayle  <roger@eyesopen.com>
5715
5716         * simplify-rtx.c (simplify_unary_operation): Only transform
5717         (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE
5718         is -1.  RTL "not" is a bit-wise not, "~", not a logical not "!".
5719
5720 2003-09-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5721
5722         PR target/11674
5723         * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand.
5724
5725 2003-09-18  Roger Sayle  <roger@eyesopen.com>
5726
5727         * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR,
5728         PARITY_EXPR): Delete unused tree codes.
5729         * c-common.c (c_common_truthvalue_conversion): Delete references
5730         to FFS_EXPR and POPCOUNT_EXPR.
5731         * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR.
5732         (pp_c_expression): Likewise.
5733         * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR,
5734         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.
5735         * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR,
5736         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.  Add support for calls to
5737         BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long
5738         and long long variants.
5739
5740 2003-09-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5741
5742         * c-pretty-print.h (pp_type_specifier_seq): Fix thinko.
5743         * c-pretty-print.c: Fix formatting.
5744         (pp_c_integer_constant): Append type annotation to literals.  Tidy.
5745         (pp_c_type_specifier): Tidy.
5746         (pp_c_compound_literal): New function.
5747         (pp_c_initializer): Simplify..
5748         (pp_c_initializer_list): Likewise.
5749         (pp_c_brace_enclosed_initializer_list): New function.
5750         (pp_c_postfix_expression): Simplify.
5751
5752 2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
5753
5754         * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3,
5755         one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn.
5756
5757 2003-09-17  Richard Henderson  <rth@redhat.com>
5758
5759         * tree-optimize.c (tree_rest_of_compilation): Save and restore
5760         input_location.
5761
5762 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
5763
5764         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc.
5765
5766 2003-09-17  Richard Henderson  <rth@redhat.com>
5767
5768         * cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
5769
5770 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5771
5772         * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag.
5773         * configure: Regenerate.
5774
5775 2003-09-17  Mark Mitchell  <mark@codesourcery.com>
5776
5777         PR debug/12066
5778         * dbxout.c (dbxout_init): Use a langhook to find builtin types.
5779         * langhooks-def.h (lhd_return_null_tree_v): New function.
5780         (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro.
5781         (LANG_HOOKS_DECLS): Add it to the intializer.
5782         * langhooks.c (lhd_return_null_tree_v): New function.
5783         * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls.
5784
5785 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
5786
5787         * configure.in: Quote gcc_config_arguments for configargs.h.
5788         * configure: Regenerated.
5789         * gccbug.in: Don't shell-expand gcc_config_arguments.
5790
5791 2003-09-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5792
5793         PR c++/11357
5794         * c-pretty-print.c (pp_c_floating_constant): Append
5795         type-annotation to floating constants.
5796
5797 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5798
5799         * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG.
5800         Define _ABIO32.
5801         Use it for _MIPS_SIM.
5802         * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed.
5803
5804         * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC):
5805         Moved ...
5806         * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here,
5807         updating comment.
5808         Fixes PR target/10190.
5809
5810 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
5811
5812         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply
5813         to shared libraries.
5814
5815 2003-09-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
5816
5817         PR optimization/11646
5818         * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
5819         EDGE_ABNORMAL flag for EH edges.
5820         * toplev.c (rest_of_handle_cse): Delete unreachable blocks
5821         if dead edges were purged.
5822
5823 2003-09-16  Bernardo Innocenti  <bernie@develer.com>
5824
5825         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines.
5826         * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions.
5827         * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove.
5828         * config/m68k/m68k-none.h (CPP_SPEC): Likewise.
5829
5830 2003-09-16  Ian Lance Taylor  <ian@wasabisystems.com>
5831
5832         * cfgcleanup.c (label_is_jump_target_p): Correct use of table
5833         returned by tablejump_p.
5834
5835 2003-09-16  Joel Brobecker  <brobecker@gnat.com>
5836
5837         * dwarf2asm.c (dw2_asm_output_nstring): Add comment.
5838
5839 2003-09-16  Roger Sayle  <roger@eyesopen.com>
5840
5841         PR bootstrap/12269
5842         * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
5843         argument to be VOIDmode, taking the mode of the comparison from
5844         the operands.  Only call simplify_relational_operation if we
5845         know the mode of the comparison.  Honor FLOAT_STORE_FLAG_VALUE
5846         if comparison has a floating point result.  Ensure that the
5847         result is always of the specified mode.
5848         (simplify_replace_rtx): Simplify call to simplify_gen_relational.
5849         (simplify_unary_operation): Ensure the correct mode and cmp_mode
5850         are always passed to simplify_gen_relational.  Simplify NOT of
5851         comparison operator in any mode, not just BImode.
5852         (simplify_ternary_operation): Correct tests on the return value
5853         of simplify_relational_operation to use const_true_rtx, not
5854         const1_rtx.  Abort if it ever returns a non-constant result.
5855
5856         * cfgloopanal.c (count_strange_loop_iterations): Use the function
5857         simplify_relational_operation, not simplify_gen_relational, if
5858         we're only interested in constant comparisons and will ignore
5859         non-constant results.
5860
5861 2003-09-16  Roger Sayle  <roger@eyesopen.com>
5862
5863         * fold-const.c (tree_swap_operands_p): New function to determine
5864         the prefered ordering of operands.
5865         (fold): Numerous clean-ups.  Use tree_swap_operands_p when swapping
5866         operands to commutative, comparison or ternary operators.  Replace
5867         uses of TREE_SET_CODE with recursive call to fold.  Remove duplicate
5868         transformation of A ? B : C into !A ? C : B.
5869
5870 2003-09-16  Jakub Jelinek  <jakub@redhat.com>
5871
5872         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5873         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5874         * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5875         * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5876         * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5877         * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5878         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5879         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5880
5881 2003-09-16  Jason Merrill  <jason@redhat.com>
5882             Jakub Jelinek  <jakub@redhat.com>
5883
5884         * c-common.c (handle_warn_unused_result_attribute): New function.
5885         (c_common_attribute_table): Add warn_unused_result.
5886         (c_expand_expr): Issue warning when result of inlined function
5887         with warn_unused_result attribute is ignored.
5888         * calls.c (expand_call): Issue warning when result of function
5889         with warn_unused_result attribute is ignored.
5890         * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
5891         * expr.c (expr_wfl_stack): Define.
5892         (expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
5893         pass const0_rtx as target.  Chain locations into expr_wfl_stack.
5894         * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
5895         bit if inlined function has warn_unused_result attribute.
5896         * input.h (expr_wfl_stack): Declare.
5897         * doc/extend.texi: Document warn_unused_result attribute.
5898
5899 2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
5900
5901         * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
5902
5903 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
5904
5905         * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
5906         ATTRIBUTE_UNUSED.
5907         (call_insn_operand): For PIC, don't allow a direct call to a
5908         function in a different section than the current one.
5909
5910 2003-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5911
5912         * doc/invoke.texi (Warning Options): Add missing hyphen before
5913         "Wimport".  Change "-Wno-endif-labels" to "-Wendif-labels".
5914         Move "-Wold-style-definition" to the C-only section.
5915         Fix the ordering of the warning options.
5916
5917 2003-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5918             Jeff Law  <law@redhat.com>
5919
5920         * gcse.c (remove_reachable_equiv_notes): New.
5921         replace_store_insn): Call it.  Update antic list.
5922         (store_killed_in_insn): Take REG_EQUAL notes into account.
5923         (build_store_vectors, delete_store): Add parameter to
5924         replace_store_insn call.
5925
5926 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
5927
5928         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use
5929         SYMBOL_REF_LOCAL_P.
5930
5931 2003-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5932
5933         * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
5934         (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
5935         * config/ia64/ia64.c (ia64_hpux_function_arg_padding):
5936         Likewise.
5937         * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
5938         Likewise.
5939         * config/rs6000/rs6000.c (function_arg_padding): Likewise.
5940         * config/sparc/sparc.c (function_arg_padding): Likewise.
5941
5942 2003-09-15  Vladimir Makarov  <vmakarov@redhat.com>
5943
5944         * haifa-sched.c (schedule_block): Use ready_remove_first instead
5945         of choose_ready for non-dfa insn scheduling.
5946
5947 2003-09-15  Andreas Jaeger  <aj@suse.de>
5948             Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5949
5950         * doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
5951         * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
5952         * c-parse.in: Warn about old-style parameter definition.
5953         * c-common.c: Define warn_old_style_defintion.
5954         * c-common.h: Declare it.
5955         * c.opt: Add Wold-style-defintion.
5956
5957 2003-09-15  Andreas Jaeger  <aj@suse.de>
5958
5959         * config/rs6000/altivec.h: Convert () prototypes to ISO C90.
5960         * config/rs6000/rs6000.c: Likewise.
5961
5962 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5963
5964         PR optimization/10914
5965         * expr.h (get_condition, canonicalize_condition): Declaration changed.
5966         * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
5967         and canonicalize_condition calls.
5968         * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
5969         delete_null_pointer_checks): Ditto.
5970         * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
5971         * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
5972         * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
5973         (canonicalize_condition, get_condition): Allow to return comparisons
5974         of cc mode registers.
5975         * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
5976         cc mode registers comparison in condition.
5977
5978 2003-09-12  Mark Mitchell  <mark@codesourcery.com>
5979
5980         * coverage.c (create_coverage): Do not call pushlevel/poplevel.
5981         * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
5982         function.
5983         * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.
5984
5985 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5986
5987         * combine.c (simplify_comparison): Convert
5988         (ne (and (lshiftrt (xor X CST) Y) 1) 0) into
5989         (eq (and (lshiftrt X Y) 1) 0).
5990
5991 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5992
5993         * alias.c: Follow spelling conventions.
5994         * cpphash.h: Likewise.
5995         * fold-const.c: Likewise.
5996
5997 2003-09-14  Alexandre Oliva  <aoliva@redhat.com>
5998
5999         * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
6000         * c-lex.c (cb_line_change): Skip line changing whenever
6001         c-ppoutput.c would.
6002
6003 2003-09-14  Steven Bosscher  <steven@gcc.gnu.org>
6004
6005         * ra.c: Convert to ISO C90 prototypes.
6006         * ra-build.c: Likewise.
6007         * ra-colorize.c: Likewise.
6008         * ra-debug.c: Likewise.
6009         * ra-rewrite.c: Likewise.
6010
6011 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
6012
6013         * Makefile.in (%.dvi): Remove excess $(docdir).
6014
6015 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
6016
6017         * function.c (STACK_BYTES): Move definition to head of file.
6018         (assign_parms): Don't pass current_function_pretend_args_size
6019         directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
6020         round current_function_pretend_args_size up to STACK_BYTES.  Skip any
6021         excess before laying out the argument.
6022
6023 2003-09-14  Andreas Jaeger  <aj@suse.de>
6024
6025         * objc/objc-act.c: Convert to ISO C90 prototypes.
6026         * objc/objc-act.h: Likewise.
6027
6028 2003-09-14  Olaf Hering  <olh@suse.de>
6029
6030         * config/rs6000/rs6000.c: Fix typo: Remove extra ')'.
6031
6032 2003-09-13  Andrew Pinski <pinskia@physics.uc.edu>
6033
6034         PR target/12021
6035         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
6036         as they already are done in config/m68k/m68k.h.
6037         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise
6038
6039         * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
6040         (machopic_output_stub): Only generate pic base symbols when using pic
6041         and generate them in the form L00000000$spb.
6042
6043 2003-09-13  Richard Henderson  <rth@redhat.com>
6044
6045         * cgraphunit.c (cgraph_assemble_pending_functions): Export.
6046         (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check.
6047         * cgraph.h: Update.
6048
6049 2003-09-12  Dale Johannesen  <dalej@apple.com>
6050
6051         * config/rs6000/rs6000.c: Fix typos in previous.
6052
6053 2003-09-12  Ziemowit Laski  <zlaski@apple.com>
6054
6055         * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc
6056         when allocating pp->buffer.
6057
6058 2003-09-12  Geoffrey Keating  <geoffk@apple.com>
6059
6060         * config/darwin.c (machopic_select_rtx_section): Use
6061         const_data_section for things that might require relocation.
6062
6063 2003-09-12  H.J. Lu  <hongjiu.lu@intel.com>
6064
6065         PR bootstrap/12264
6066         * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree.
6067
6068 2003-09-12  Bob Wilson  <bob.wilson@acm.org>
6069
6070         * config/xtensa/elf.h (ASM_SPEC): Remove no-density option.  Reformat.
6071         * config/xtensa/linux.h (ASM_SPEC): Likewise.
6072         * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian,
6073         -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16,
6074         -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext,
6075         -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div,
6076         -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and
6077         -m[no-]hard-float-rsqrt options.  Delete corresponding MASK_* macros
6078         and redefine corresponding TARGET_* macros with constants from the
6079         xtensa-config.h header.
6080         * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention
6081         for the options listed above.
6082
6083 2003-09-12  Dale Johannesen  <dalej@apple.com>
6084
6085         * config/rs6000/rs6000-protos.h:  Use C90 prototypes.
6086         * config/rs6000/rs6000-c.c:  Ditto.
6087         * config/rs6000/rs6000.c:  Ditto.
6088         * config/rs6000/ sysv4.h:  Ditto.
6089
6090 2003-09-12  Chris Lattner <sabre@nondot.org>
6091
6092         * loop.c: Move comments describing BIV's and GIV's to top of file
6093
6094 2003-09-12  Roger Sayle  <roger@eyesopen.com>
6095
6096         PR optimization/8967
6097         * alias.c (write_dependence_p): Modify to take an additional constp
6098         argument that controls whether the UNCHANGING_RTX_P flags are used.
6099         (anti_dependence, output_dependence): Adjust write_dependence_p
6100         callers to pass this additional argument, to return the same result.
6101         (unchanging_anti_dependence): New variant of anti_dependence that
6102         ignores the UNCHANGING_RTX_P property on memory references.
6103         * rtl.h (unchaning_anti_dependence): Prototype here.
6104         * flow.c (init_propagate_block): Place fake constant mem writes on
6105         the mem_set_list so that dead writes to const variables are deleted.
6106         (insn_dead_p): Change anti_dependence to unchanging_anti_dependence.
6107         (mark_used_regs): Likewise.
6108
6109 2003-09-12  Richard Sandiford  <rsandifo@redhat.com>
6110
6111         * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
6112         (mcore_secondary_reload_class): Declare.
6113         (mcore_output_inline_const_forced): Remove.
6114         * config/mcore/mcore.md (movsi): Remove the code that forced
6115         non-inlineable constants into a register if the target was r15
6116         or the stack pointer.  Remove constant restrictions from the main
6117         define_insn.  Remove r <- I, r <- M and r <- N alternatives in favor
6118         of an r <- P alternative.  Remove fallback define_insn for reload.
6119         (movhi, movqi): Use gen_lowpart rather than gen_SUBREG.  Remove reload
6120         define_insn.  Use mcore_output_move in the remaining define_insn.
6121         Adjust condition and constraints in the way as for movsi.
6122         (movdi): Always split unacceptable constants into two.  Use
6123         simplify_gen_subreg instead of operand_subword{,_force}.
6124         * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
6125         (mcore_output_move): Support HImode and QImode moves as well.
6126         (mcore_m15_operand_p): New function.
6127         (mcore_reload_class): Use it to detect cases where LRW_REGS are better.
6128         (mcore_secondary_reload_class): New function.
6129         * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
6130         terms of mcore_secondary_reload_class.
6131
6132 2003-09-11  Mike Stump  <mrs@apple.com>
6133
6134         * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE.
6135
6136 2003-09-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6137
6138         * builtins.c (fold_builtin_logarithm): if N can't be truncated to
6139         MODE exactly, then only convert logN(N) -> 1.0 if
6140         flag_unsafe_math_optimizations is set.
6141
6142         * builtins.c (builtin_dconsts_init, dconstpi, dconste,
6143         init_builtin_dconsts): Delete.
6144         * emit-rtl.c (dconstpi, dconste): Define.
6145         (init_emit_once): Initialize dconstpi & dconste.
6146         * real.h (dconstpi, dconste): Declare.
6147
6148 2003-09-11  Alexandre Oliva  <aoliva@redhat.com>
6149
6150         PR fortran/11522
6151         * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
6152         for ultimate origin even if block is abstract.
6153
6154 2003-09-11  Roger Sayle  <roger@eyesopen.com>
6155
6156         * combine.c (combine_simplify_rtx): Move several NOT and NEG
6157         optimizations from here...
6158         * simplify-rtx.c (simplify_unary_operation): to here.  Recursively
6159         simplify expressions using simplify_gen_*ary instead of gen_rtx_*.
6160
6161 2003-09-11  Richard Henderson  <rth@redhat.com>
6162
6163         * cgraphunit.c (cgraph_finalize_function): Add nested arg.
6164         Tweek tests for function already generated.
6165         (cgraph_expand_function): Don't double announce in !unit-at-a-time.
6166         * cgraph.h (cgraph_finalize_function): Update for extra arg.
6167         * c-decl.c (finish_function): Likewise.
6168
6169 2003-09-10  Joe Buck  <jbuck@welsh-buck.org>
6170
6171         * c-decl.c (poplevel): Eliminate use of |= in function_body assignment.
6172
6173 2003-09-10  Jerry Quinn  <jlquinn@optonline.net>
6174
6175         * real.c: Update URL to VAX floating point docs.
6176         (decode_vax_d): Extract 8 exponent bits instead of 7.
6177
6178 2003-09-10  Ian Lance Taylor  <ian@wasabisystems.com>
6179
6180         * combine.c (force_to_mode): Set fuller_mask based only on mask,
6181         not op_mode.
6182
6183 2003-09-11  Jan Hubicka  <jh@suse.cz>
6184
6185         * c-objc-common.c (c_cannot_inline_tree_fn): Warn
6186         on why function is not inlinable; do not check
6187         the body.
6188         (inline_forbidden_p): Move to...
6189         * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
6190         deal with alloca, longjmp.
6191         (inline_forbidden_p): New static function.
6192         (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
6193         find_builtin_longjmp_call): Kill.
6194
6195 2003-09-10  Richard Henderson  <rth@redhat.com>
6196
6197         * cgraph.h (struct cgraph_node): Rename lowered to analyzed.
6198         * cgraphunit.c: Update to match.
6199         (record_call_1): Rearrange.  Call lang hook for language nodes.
6200         (cgraph_analyze_function): Don't call lower_function.
6201         * langhooks.h (struct lang_hooks_for_callgraph): Replace
6202         lower_function with analyze_expr.
6203         * langhooks-def.h: Update to match.
6204         * langhooks.c (lhd_callgraph_analyze_expr): New.
6205
6206 2003-09-10  Martin Husemann  <martin@duskware.de>
6207
6208         PR target/11965
6209         * config/sparc/sparc.c (sparc_v8plus_shift): Protect against
6210         constants greater than 63.
6211         * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect
6212         against constants greater than 31.
6213         (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against
6214         constants greater than 63.
6215
6216 2003-09-09  Richard Henderson  <rth@redhat.com>
6217
6218         * cgraphunit.c (cgraph_finalize_function): Remove unused argument.
6219         * cgraph.h (cgraph_finalize_function): Update.
6220         * c-decl.c (finish_function): Update.
6221
6222 2003-09-09  Devang Patel  <dpatel@apple.com>
6223
6224         * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker.
6225         * doc/invoke.texi: Document new Darwin linker option -nofixprebinding.
6226
6227 2003-09-09  Eric Christopher  <echristo@redhat.com>
6228
6229         * configure.in: Change usage of 'head' to 'sed 1q'.
6230         * configure: Regenerate.
6231
6232 2003-09-09  Richard Henderson  <rth@redhat.com>
6233
6234         * except.c: Include cgraph.h.
6235         (output_function_exception_table): Invoke
6236         cgraph_varpool_mark_needed_node.
6237         * Makefile.in (except.o): Update.
6238
6239 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
6240
6241         * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS
6242         and use it throughout.
6243
6244 2003-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6245
6246         * builtins.c (real_dconstp, fold_builtin_logarithm,
6247         fold_builtin_exponent): New, split out from fold_builtin.  Also
6248         generalize to add log2, log10, exp2 and exp10/pow10 equivalents.
6249         * emit-rtl.c (dconst3, dconst10, dconstthird): New.
6250         (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu
6251         of hardcoded array size.
6252         * fold-const.c (fold): Add cases for exp2, exp10 and pow10.
6253         (tree_expr_nonnegative_p): Likewise.
6254         * real.h (dconst3, dconst10, dconstthird): New.
6255
6256 2003-09-09  Jan Hubicka  <jh@suse.cz>
6257
6258         * cgraphunit.c (cgraph_finalize_function): Fix handling of extern
6259         inline functions.
6260         (cgraph_finalize_compilation_unit): Fix crash when dealing with lost
6261         DECL_SAVED_TREE.
6262
6263 2003-09-09  Roger Sayle  <roger@eyesopen.com>
6264
6265         * builtins.c (fold_builtin_cabs): Protect the complex argument
6266         against multiple evaluation when optimizing cabs* into sqrt*.
6267
6268 2003-09-09  Jan Hubicka  <jh@suse.cz>
6269
6270         * varasm.c (notice_global_symbol):  Properly deal with weak symbols.
6271
6272 2003-09-08  Kelley Cook <kelleycook@wideopenwest.com>
6273
6274         * Makefile.in: Revert yesterday's change.
6275
6276 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
6277             Peter Barada <peter@baradas.org>
6278
6279         * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
6280         * config/m68k/hp320.h (REGISTER_NAMES): Likewise.
6281         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
6282         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
6283         * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
6284         * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
6285         * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
6286         (m68k_compute_frame_layout): New function.
6287         (m68k_initial_elimination_offset): New function.
6288         (m68k_output_function_prologue): ColdFire-specific movem handling.
6289         (m68k_output_function_epilogue): Likewise.
6290         * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
6291         (ARG_POINTER_REGNUM): Add new definition.
6292         (INITIAL_FRAME_POINTER_OFFSET): Remove macro.
6293         (ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
6294         (CAN_ELIMINATE): Likewise.
6295         (INITIAL_ELIMINATION_OFFSET): Likewise.
6296
6297 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
6298
6299         * config/m68k/m68k.c (m68k_output_function_prologue): Simplify
6300         by removing redundant variable cfa_store_offset.
6301
6302 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
6303
6304         * langhooks-def.h (lhd_register_builtin_type): New function.
6305         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
6306         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
6307         * langhooks.h (lang_hooks_for_types): Add register_builtin_type.
6308         * langhooks.c (lhd_register_builtin_type): New function.
6309         * c-common.h (c_register_builtin_type): Declare.
6310         * c-common.c (c_register_builtin_type): New function.
6311         * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
6312         c_register_builtin_type.
6313         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
6314         __float80, and __float128 macros.
6315         * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
6316         __float80, and __float128 types.
6317
6318 2003-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6319
6320         * builtin-types.def
6321         (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
6322         BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
6323         BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
6324         * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
6325         BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
6326         BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
6327         BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
6328         BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
6329         BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
6330         BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
6331         BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
6332         BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
6333         BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
6334         BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
6335         BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
6336         BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
6337         BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
6338         New.
6339         * doc/extend.texi: Document new builtins.
6340
6341 2003-09-09  Jan Hubicka  <jh@suse.cz>
6342
6343         * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
6344         finalization.
6345         * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
6346         functions, check for COMDAT.
6347         (cgraph_assemble_pending_functions): Break out from...
6348         (cgraph_finalize_function): ... here; allow redefinig of extern inline
6349         functions.
6350         (record_call_1): Record function references only in non-unit-at-a-time
6351         mode.
6352         (cgraph_analyze_function): Reset current_function_decl.
6353         (cgraph_finalize_compilation_unit):  Assemble pending functions.
6354
6355 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
6356
6357         * mklibgcc.in (libcc.a): Depend on stmp-dirs.
6358         (libgov.a): Likewise.
6359         (libgcc_eh.a): Likewise.
6360
6361 2003-09-08  Roger Sayle  <roger@eyesopen.com>
6362
6363         * fold-const.c (operand_equal_p): Clarify documentation.
6364
6365 2003-09-08  Richard Henderson  <rth@redhat.com>
6366
6367         * c-decl.c (c_expand_body_1): Push and pop function context here.
6368         * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
6369         nested argument instead of computing nesting ourselves.
6370
6371 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
6372
6373         * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before
6374         regstack if optimizing but not scheduling after reload.
6375
6376 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
6377
6378         * config/sparc/sparc.c (struct machine_function): New type.
6379         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
6380         (sparc_override_options): Initialize init_machine_status.
6381         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
6382         tie_symbolic_operand, tle_symbolic_operand): New functions.
6383         (symbolic_operand): Disallow tls_symbolic_operand.
6384         (symbolic_memory_operand): Likewise.
6385         (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
6386         constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
6387         New functions.
6388         (sparc_tls_symbol): New variable.
6389         (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
6390         legitimize_address): New functions.
6391         (print_operand): Handle %&.
6392         (sparc_init_machine_status, get_some_local_dynamic_name,
6393         get_some_local_dynamic_name_1): New functions.
6394         (sparc_output_dwarf_dtprel): New function.
6395         * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
6396         constant_address_p.
6397         (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
6398         (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
6399         (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
6400         (LEGITIMIZE_ADDRESS): Moved into legitimize_address.
6401         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
6402         (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
6403         (ASM_OUTPUT_DWARF_DTPREL): Define.
6404         (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
6405         tie_symbolic_operand, tle_symbolic_operand.
6406         * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
6407         UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
6408         (tls_call_delay): New attribute.
6409         (in_call_delay): Use it.
6410         (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
6411         (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
6412         tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
6413         tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
6414         tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
6415         tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
6416         (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
6417         tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
6418         tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
6419         tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
6420         tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
6421         tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
6422         tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
6423         tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
6424         insns.
6425         * config/sparc/sparc-protos.h (legitimate_constant_p,
6426         constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
6427         legitimize_tls_address, legitimize_address, tls_symbolic_operand,
6428         tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
6429         * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
6430         * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
6431         * configure.in (sparc*-*-*): Add TLS check.
6432         * configure: Rebuilt.
6433
6434 2003-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6435
6436         PR target/11689
6437         * config/i386/i386.c (memory_address_length): Fix computation when
6438         the base is esp or ebp.
6439
6440 2003-09-07  Mark Mitchell  <mark@codesourcery.com>
6441
6442         PR c++/11852
6443         * varasm.c (initializer_constant_valid_p): Correct logic for
6444         CONSTRUCTORs.
6445
6446 2003-09-07  Roger Sayle  <roger@eyesopen.com>
6447
6448         * expr.c (expand_operands): New function to expand an operand pair.
6449         (expand_expr): Call expand_operands whenever we need to expand both
6450         operands of a binary operator.
6451         (do_store_flag): Likewise for operands of comparison operations.
6452
6453 2003-09-07  Roger Sayle  <roger@eyesopen.com>
6454
6455         * combine.c (combine_simplify_rtx): Don't convert -(A*B) into
6456         (-A)*B if we care about sign-dependent rounding.
6457
6458 2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>
6459
6460         * c-pretty-print.h (pp_c_left_brace): Declare.
6461         (pp_c_right_brace): Likewise.
6462         * c-pretty-print.c (pp_c_left_brace): Now a function
6463         (pp_c_right_brace): Likewise.
6464
6465 2003-09-07  Jan Hubicka  <jh@suse.cz>
6466
6467         * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
6468
6469 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6470
6471         * diagnostic.c (warn_deprecated_use): Move to toplev.c
6472
6473 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6474
6475         * langhooks.c (lhd_print_error_function): Move from diagnostic.c.
6476         * Makefile.in (langhooks.o): Depend on diagnostic.h
6477
6478 2003-09-06  James E Wilson  <wilson@tuliptree.org>
6479
6480         * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and
6481         simplify.
6482
6483 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
6484
6485         * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS
6486         and use it throughout.
6487
6488 2003-09-07  Jan Hubicka  <jh@suse.cz>
6489
6490         * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
6491
6492         * toplev.c  (rest_of_decl_compilation):  Do not finalize external
6493         virables.
6494
6495         * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized
6496         functions.
6497         (cgraph_varpool_finalize_decl): Notice global symbol when needed.
6498
6499 2003-09-06  Jan Hubicka  <jh@suse.cz>
6500
6501         PR target/12070
6502         * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
6503
6504         PR opt/12082
6505         * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
6506
6507 2003-09-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6508
6509         * diagnostic.c (announce_function): Move to toplev.c.
6510
6511 2003-09-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6512
6513         * gcse.c (expr_equiv_p): Don't consider anything to be equal to
6514         volatile mem.
6515
6516 2003-09-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6517
6518         * ggc-common.c (init_ggc_heuristics): Don't use the heuristics
6519         when gc checking is enabled.
6520
6521 2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>
6522
6523         PR c/9862
6524         * c-decl.c (c_expand_body_1): Move return warning from here...
6525         (finish_function): ...to here.
6526
6527 2003-09-05  Geoffrey Keating  <geoffk@apple.com>
6528
6529         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return
6530         a subset of the input class.
6531
6532 2003-09-05  Kazu Hirata  <kazu@cs.umass.edu>
6533
6534         * config/i860/i860.c: Follow spelling conventions.
6535         * config/i860/i860.h: Likewise.
6536         * config/sh/sh.h: Likewise.
6537
6538 2003-09-05  Nitin Yewale  <NitinY@KPITCummins.com>
6539
6540         * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok
6541         * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New.
6542         * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New.
6543
6544 2003-09-05  Roger Sayle  <roger@eyesopen.com>
6545             Richard Henderson  <rth@redhat.com>
6546
6547         PR optimization/1823
6548         * expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
6549         multiplication to implement division by constant integer.
6550
6551 2003-09-05  Jan Hubicka  <jh@suse.cz>
6552
6553         * opts.c (decode_options): Enable unit-at-a-time at -O2.
6554         * params.def (max-inline-insns-single): Set to 500
6555         (max-inline-insns-auto): Set to 150
6556         * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.
6557
6558 2003-09-04  Richard Henderson  <rth@redhat.com>
6559
6560         * cgraph.c (cgraph_mark_reachable_node): Split out from ...
6561         (cgraph_mark_needed_node): Remove needed argument.
6562         * cgraph.h: Update to match.
6563         * cgraphunit.c (decide_is_function_needed): Split out from ...
6564         (cgraph_finalize_function): Reorg.  Avoid deferred_inline_function
6565         if we generated the function.
6566         (record_call_1): Update for cgraph_mark_reachable_node.
6567         * varasm.c (mark_referenced): Likewise.
6568         * objc/objc-act.c (mark_referenced_methods): Likewise.
6569
6570 2003-09-04  DJ Delorie  <dj@redhat.com>
6571
6572         * targhooks.c: Add comment explaining the migration process.
6573
6574 2003-09-04  Eric Christopher  <echristo@redhat.com>
6575
6576         * config/frv/t-frv: Fix path for frv-abi.h.
6577         * config/frv/frv-asm.h: Fix string concatenation.
6578
6579 2003-09-04  DJ Delorie  <dj@redhat.com>
6580
6581         * builtins.c (apply_args_size): Guard against a NULL cfun.
6582         (expand_builtin_apply_args_1): Likewise.
6583         (expand_builtin_apply): Likewise.
6584         Fixes PR bootstrap/12172.
6585
6586 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6587
6588         * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
6589         assembler supports Sun syntax for cmov.
6590         * configure: Regenerate.
6591         * config.in: Likewise.
6592         * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
6593         HAVE_AS_IX86_CMOV_SUN_SYNTAX.
6594         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
6595         Fixes PR target/12101.
6596
6597 2003-09-04  Matt Austern  <austern@apple.com>
6598
6599         * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name
6600         with verbosity 0, instead of DECL_NAME, for human-readable string.
6601
6602 2003-09-04  Eric Christopher  <echristo@redhat.com>
6603
6604         * targhooks.c (default_return_in_memory): Allow
6605         unconverted ports.
6606
6607 2003-09-04  Eric Christopher  <echristo@redhat.com>
6608
6609         * targhooks.c (default_return_in_memory): Fix typo
6610         in last checkin.
6611
6612 2003-09-04  Eric Christopher  <echristo@redhat.com>
6613
6614         * targhooks.c (default_return_in_memory): Fix default
6615         definition.
6616
6617 2003-09-04  Bernardo Innocenti  <bernie@develer.com>
6618
6619         * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore
6620         deleted function.
6621         * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to
6622         enable coff-only code in m68k.c.
6623
6624 2003-09-04  Nick Clifton  <nickc@redhat.com>
6625
6626         * config.gcc: Add v850e1 target.  Allow --with-cpu to accept
6627         v850e1.
6628         * config/v850/v850.h: Accept v850e1 as a default CPU.
6629         Accept -mv850e1 as a command line option.
6630         * doc/invoke.texi: Document new -mv850e1 command line switch.
6631         * config/v850/t-v850: Treat -mv850e1 as a multilib alias for
6632         -mv850e.
6633
6634 2003-09-04  Nick Clifton  <nickc@redhat.com>
6635
6636         * config.gcc (v850e-*-*): Use t-v850e makefile fragment.
6637         * config/v850/t-v850: Only produce one extra multilib - for
6638         the v850e.
6639         * config/v850/t-v850e: New file: Only produce one extra
6640         multilib - for the v850.
6641
6642 2003-09-04  Jakub Jelinek  <jakub@redhat.com>
6643
6644         * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
6645         * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
6646         * unwind.h (_Unwind_GetBSP): New prototype.
6647         * libgcc-std.ver: Add empty GCC_3.3.2 version.
6648         * mkmap-symver.awk: For symbol versions with no exported symbols,
6649         don't put anything into version script, just change all symbol
6650         versions which inherit from it to inherit from its ancestor.
6651
6652 2003-09-04  Eric Christopher  <echristo@redhat.com>
6653
6654         * config/mips/mips.c (mips_expand_prologue): Convert to
6655         calls.struct_value_rtx hook.
6656         (reg_or_const_float_1_operand): New.
6657         * config/mips/mips.h: Update Comments.
6658         (mips_arg): Add reg_or_const_float_1_operand.
6659         * config/mips/mips.md (divdf3); Convert to expander.
6660         (divsf3): Ditto.
6661         (*divdf3): New pattern.
6662         (*divsf3): Ditto.
6663
6664 2003-09-04  Jan Hubicka  <jh@suse.cz>
6665
6666         * toplev.c (wrapup_global_declarations): Fix final pass in
6667         unit-at-atime mode.
6668
6669 2003-09-04  Mark Mitchell  <mark@codesourcery.com>
6670
6671         * doc/extend.texi: Document removal of cast-as-lvalue extension in
6672         C++.
6673
6674 2003-09-04  Nicolas Roche  <roche@act-europe.fr>
6675
6676         * gcc.c (process_command): Fix typo.
6677
6678 2003-09-03  David O'Brien  <obrien@FreeBSD.org>
6679
6680         optimization/11980
6681         * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
6682         (PTRDIFF_TYPE): Likewise.
6683         (WCHAR_TYPE_SIZE): Likewise.
6684
6685 2003-09-03  DJ Delorie  <dj@redhat.com>
6686
6687         * targhooks.c: New file.
6688         * targhooks.h: New file.
6689         * Makefile.in: Add targhooks.o support.
6690         (function.o): Depend on$(TARGET_H).
6691         (stmt.o): Likewise.
6692         (combine.o): Depend on $(TREE_H) and $(TARGET_H).
6693         * builtins.c (apply_args_size, expand_builtin_apply_args_1,
6694         expand_builtin_apply): Convert to calls.struct_value_rtx hook.
6695         (expand_builtin_saveregs): Convert to
6696         calls.expand_builtin_saveregs hook.
6697         * c-decl.c (start_decl): Handle new calls.promote_prototypes hook
6698         here, instead of ...
6699         (get_parm_info) ... here.
6700         (store_parm_decls_oldstyle): Convert to calls.promote_prototypes
6701         hook.
6702         (finish_function): Handle calls.promote_prototypes hook here too.
6703         * c-typeck.c (convert_arguments): Convert to
6704         calls.promote_prototypes hook.
6705         (c_convert_parm_for_inlining): Likewise.
6706         * calls.c (initialize_argument_information): Convert to
6707         calls.promote_function_args hook.
6708         (expand_call): Convert to calls.struct_value_rtx,
6709         calls.strict_argument_naming,
6710         calls.pretend_outgoing_varargs_named, and
6711         calls.promote_function_return hooks.  Pass fndecl to
6712         aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
6713         hooks, so they can use that.
6714         (emit_library_call_value_1): Likewise.
6715         * combine.c (setup_incoming_promotions): Convert to
6716         calls.promote_function_args hook.
6717         * emit-rtl.c: Convert to calls.struct_value_rtx hook.
6718         * expr.c (expand_assignment): Pass call to aggregate_value_p.
6719         (expand_expr): Likewise.
6720         * expr.h: Remove support for SETUP_INCOMING_VARARGS,
6721         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
6722         RETURN_IN_MEMORY macro defaults.
6723         * final.c (profile_function): Convert to calls.struct_value_rtx
6724         hook.
6725         * function.c (aggregate_value_p): Accept function type tree as
6726         second parameter; try to deduce fntype from it.  Convert to
6727         calls.return_in_memory hook.
6728         (assign_parms): Convert to calls.setup_incoming_varargs,
6729         calls.strict_argument_naming, calls.promote_function_args,
6730         calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
6731         aggregate_value_p.
6732         (expand_function_start): Likewise.  Convert to
6733         calls.struct_value_rtx hook.
6734         (expand_function_end): Convert to calls.promote_function_return hook.
6735         (allocate_struct_function): Pass fndecl to aggregate_value_p.
6736         * hard-reg-set.h: Update comments to new hook names.
6737         * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
6738         * reg-stack.c (stack_result): Likewise.
6739         * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
6740         * stmt.c (expand_value_return): Convert to
6741         calls.promote_function_return hook.
6742         * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
6743         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
6744         TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
6745         TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
6746         TARGET_STRICT_ARGUMENT_NAMING,
6747         TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
6748         * target.h: Likewise.
6749         * tree.h (aggregate_value_p): Also takes a tree to deduce function
6750         attributes from (for target hooks).
6751         * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
6752         PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
6753         STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
6754         EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
6755         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
6756         to hooks.
6757
6758         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
6759         to aggregate_value_p.
6760         * config/arm/arm.c (arm_init_cumulative_args,
6761         arm_output_mi_thunk): Likewise.
6762         * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
6763         Likewise.
6764         * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
6765         mips_can_use_return_insn): Likewise.
6766         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
6767         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
6768         * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
6769         aggregate_value_p.
6770         * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
6771         function to aggregate_value_p.
6772         * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
6773         aggregate_value_p.
6774
6775         * config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
6776         (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
6777         sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
6778         (sh_handle_renesas_attribute, sh_promote_prototypes,
6779         sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
6780         sh_setup_incoming_varargs, sh_strict_argument_naming,
6781         sh_pretend_outgoing_varargs_named): New decls.
6782         (targetm): Add new hooks.
6783         (calc_live_regs): Save MACL and MACH if the function has the
6784         renesas attribute.
6785         (sh_expand_prologue): Support renesas attribute.
6786         (sh_builtin_saveregs): Make static.
6787         (sh_build_va_list): Support renesas attribute.
6788         (sh_va_start): Likewise.
6789         (sh_va_arg): Likewise.
6790         (sh_promote_prototypes): New.
6791         (sh_function_arg): New, moved from sh.h.  Support renesas
6792         attribute.
6793         (sh_function_arg_advance): Likewise.
6794         (sh_return_in_memory): Likewise.
6795         (sh_strict_argument_naming): Likewise.
6796         (sh_pretend_outgoing_varargs_named): Likewise.
6797         (sh_struct_value_rtx): New.
6798         (sh_attribute): Add renesas attribute.
6799         (sh_handle_renesas_attribute): New.
6800         (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
6801         (sh_ms_bitfield_layout_p): Support renesas attribute also.
6802         (sh_output_mi_thunk): Pass function to aggregate_value_p.  *
6803         config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
6804         -mhitachi.
6805         (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
6806         target hooks.
6807         (sh_args): Add renesas_abi flag.
6808         (INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
6809         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
6810         (PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
6811         stack for the renesas abi.
6812         (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
6813         SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
6814         PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
6815         call cookie to indicate renesas calls.
6816
6817 2003-09-03  Mostafa Hagog  <mustafa@il.ibm.com>
6818
6819         * gcse.c (replace_one_set): New function.
6820         (pre_insert_copy_insn): Change the order of copying
6821         to make copy propagation discover additional PRE opportunities.
6822
6823 2003-09-03  Roger Sayle  <roger@eyesopen.com>
6824
6825         PR optimization/11700.
6826         * simplify-rtx.c (simplify_subreg): Check that the subreg offset
6827         of a hard register is representable before trying to simplify it
6828         using subreg_hard_regno.
6829
6830 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6831
6832         * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld.
6833         * configure: Regenerate.
6834
6835 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6836
6837         * intl.h (N_): Remove parentheses.
6838
6839 2003-09-03  Bernardo Innocenti  <bernie@develer.com>
6840
6841         * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF.
6842         * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional
6843         definition and code blocks compiled when not defined.
6844         * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise.
6845         * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise.
6846         * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise.
6847         * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise.
6848
6849 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
6850
6851         * cgraphunit.c (visited_nodes): New static variable.
6852         (record_call_1): Use walk_tree with visited_nodes.
6853         (cgraph_create_edges): Use walk_tree with visited_nodes.
6854         Setup/teardown visited_nodes hashtable.
6855
6856 2003-09-03  Roger Sayle  <roger@eyesopen.com>
6857
6858         * toplev.c (flag_rounding_math): New global variable.
6859         (f_options): Add to the list of language independent options.
6860         * flags.h (flag_rounding_math): Prototype here.
6861         (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
6862         * common.opt (frounding-math): New common command line option.
6863         * opts.c (common_handle_option): Handle OPT_frounding_math.
6864         (set_fast_math_flags): -ffast-math clears flag_rounding_math.
6865
6866         * doc/invoke.texi: Document this new command line option.
6867
6868 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6869
6870         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment.
6871
6872 2003-09-03  Jan Hubicka  <jh@suse.cz>
6873
6874         * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
6875         * c-decl.c (finish_function):  Kill arguments, always use cgraph path.
6876         * c-objc-common.c: Kill include of gt-c-objc-common.h
6877         (expand_deferred_fns, deffer_fn): Kill function.
6878         (deferred_fns): Kill variable.
6879         (finish_cdtor): Update finish_function call.
6880         (c_objc_common_finish_file): Always call cgraph code.
6881         * c-parse.c: Regenerate.
6882         * c-parse.y: Regenerate.
6883         * c-tree.h (finish_function): Update prototype.
6884         * objc-acct.c (build_module_descriptor, finish_method_def):
6885         Update call of finish_function.
6886         * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add
6887         forward prototype.
6888         (cgraph_finalize_function): In non-unit-at-a-time mode analyze the
6889         function and assemble it if needed.
6890         (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time
6891         mode.
6892         (cgraph_optimize): Likewise.
6893         (cgraph_expand_function): In non-unit-at-a-time mode keep function body
6894         even when it has no inline callees.
6895         * c-parse.in: Update calls to finish_function.
6896
6897 2003-09-03  Nick Clifton  <nickc@redhat.com>
6898
6899         * config/arm/arm.h: Handle TARGET_CPU_iwmmxt.
6900         Use #error to generate the message if TARGET_DEFAULT is not
6901         recognised.
6902
6903 2003-09-03  Richard Sandiford  <rsandifo@redhat.com>
6904
6905         * config/mips/mips.h (MASK_UNUSED1): Remove.
6906         (MASK_XGOT, TARGET_XGOT): Define.
6907         (TARGET_SWITCHES): Add an entry for -mxgot.
6908         (ASM_SPEC): Map -mxgot to -xgot.
6909         * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide
6910         whether we're using a big-GOT sequences.
6911         (mips_legitimize_const_move, mips_expand_call): Likewise.
6912         (override_options): Revert 2003-01-09 change.
6913         * doc/invoke.texi: Document -mxgot.
6914
6915 2003-09-02  Jason Merrill  <jason@redhat.com>
6916
6917         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here.
6918         * config/sparc/sol2.h: Not here.
6919
6920 2003-09-02  Roger Sayle  <roger@eyesopen.com>
6921
6922         * expr.c (expand_expr): The code following both_summands performs
6923         the same task as simplify_gen_binary.  Replace all gotos to
6924         both_summands with a call to simplify_gen_binary and delete the
6925         now unused label.
6926
6927 2003-09-02  Jason Merrill  <jason@redhat.com>
6928
6929         PR c++/7327
6930         * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define.
6931
6932 2003-09-02  Jeff Sturm  <jsturm@one-point.com>
6933
6934         * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates.
6935         (cgraph_optimize_function): Set current_function_decl to the
6936         fndecl we're integrating from.
6937
6938 2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6939
6940         * builtins.def: Break out _Complex math functions into their
6941         own category.
6942
6943 2003-09-02  Andreas Jaeger  <aj@suse.de>
6944
6945         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly.
6946
6947 2003-09-02  Josef Zlomek  <zlomekj@suse.cz>
6948
6949         * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of
6950         finding the note again.
6951
6952 2003-09-02  Nathanael Nerode  <neroden@gcc.gnu.org>
6953
6954         * config.gcc: Remove host-specific rewrites of target_alias.
6955
6956 2003-09-01  Mark Mitchell  <mark@codesourcery.com>
6957
6958         * Makefile.in (genprogs): Fix typo.
6959
6960         * Makefile.in (gencheck.o): Remove build commands.
6961         (dummy-conditions.o): Likewise.
6962         (read-rtl.o): Likewise.
6963         (gensupport.o): Likewise.
6964         (genconfig$(build_exeext)): Remove rule.
6965         (genconfig.o): Remove build commands.
6966         (genflags$(build_exeext)): Remove rule.
6967         (genflags.o): Remove build commands.
6968         (gencodes$(build_exeext)): Remove rule.
6969         (gencodes.o): Remove build commands.
6970         (genconstants.o): Remove build commands.
6971         (genemit$(build_exeext)): Remove rule.
6972         (genemit.o): Remove build commands.
6973         (genrecog$(build_exeext)): Remove rule.
6974         (genrecog.o): Remove build commands.
6975         (genextract$(build_exeext)): Remove rule.
6976         (genextract.o): Remove build commands.
6977         (genpeep$(build_exeext)): Remove rule.
6978         (genpeep.o): Remove build commands.
6979         (genattr$(build_exeext)): Remove rule.
6980         (genattr.o): Remove build commands.
6981         (genprognames): New variable.
6982         (genprogs): Likewise.
6983         (genobjs): Likewise.
6984         (genprogs): New rule.
6985         (genobjs): Likewise.
6986         (genattrtab.o): Remove build commands.
6987         (genautomata.o): Likewise.
6988         (genoutput$(build_exeext)): Remove rule.
6989         (genoutput.o): Remove build commands.
6990         (gengenrtl.o): Likewise.
6991         (genpreds.o): Likewise.
6992         (gengtype.o): Likewise.
6993         (genconditions.o): Likewise.
6994         (gen-protos.o): Likewise.
6995         (scan.o): Likewise.
6996         (fix-header.o): Likewise.
6997         (scan-decls.o): Likewise.
6998         (check-g++): Combine with other check targets.
6999         (check-gcc): Likewise.
7000         (check-g77): Likewise.
7001         (check-objc): Likewise.
7002
7003 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7004
7005         * config.gcc: Remove host-specific stuff which is unused here
7006         since the introduction of config.host.
7007
7008         * doc/fragments.texi: Mention config.host.
7009         * doc/sourcebuild.texi: Mention config.host.  Give brief descriptions
7010         of config.build, config.host, and config.gcc.
7011
7012 2003-09-01  Zack Weinberg  <zack@codesourcery.com>
7013
7014         * c-decl.c (pushdecl): Don't put variables on
7015         C_TYPE_INCOMPLETE_VARS of a type unless that type is itself
7016         incomplete.
7017
7018 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7019
7020         * config.host: New file.
7021         * config.gcc: Remove some host-specific stuff and some
7022         logic needed only for repeated invocation.
7023         * configure.in: Use config.host.
7024         * configure: Regenerate.
7025
7026 2003-09-01  Josef Zlomek  <zlomekj@suse.cz>
7027
7028         * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
7029         * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR.
7030         * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR.
7031         (fold): Kill BIT_ANDTC_EXPR and label bit_and.
7032         * tree.def (BIT_ANDTC_EXPR): Kill.
7033
7034 2003-08-31  Nathanael Nerode  <neroden@gcc.gnu.org>
7035
7036         * configure.in: Remove uses of "for x in .. ${foo}" idiom.
7037         * configure: Regenerate.
7038
7039         * config.gcc:  Remove references to install_headers_dir, now unused
7040         since introduction of config.build.
7041         * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines.
7042
7043         * doc/fragments.texi, doc/sourcebuild.texi: Mention new file
7044         config.build.
7045
7046         * config.build: New file.
7047         * config.gcc: Remove some build-specific stuff.
7048         * configure.in: Use config.build.
7049         * configure: Regnerate.
7050
7051 2003-08-31  Steven Bosscher  <steven@gcc.gnu.org>
7052             Roger Sayle  <roger@eyesopen.com>
7053
7054         PR middle-end/11823
7055         * stmt.c (expand_end_case_type): Only use jump tables for dense
7056         switch statements when optimizing for size.
7057
7058 2003-08-31  Olivier Hainque  <hainque@act-europe.fr>
7059
7060         * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
7061         the != 0 case, which ensures pending stack adjustments are flushed.
7062
7063 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
7064
7065         * configure.frag: Delete file.
7066         * configure.in: Rename the substitution variables
7067         dep_host_xmake_file and dep_tmake_file to xmake_file and
7068         tmake_file respectively.  Do not expand $srcdir in the
7069         value of these; leave that for Make.  Introduce a new
7070         substitution varaible, all_lang_makefrags, which lists
7071         subdirectory Make-lang.in files; exclude these from
7072         all_lang_makefiles, which is now only for subdirectory
7073         outputs.  Do not invoke configure.frag.  Do not set nor
7074         AC_SUBST_FILE target_overrides, host_overrides, or
7075         language_fragments. Create build subdirectories in
7076         config.status extra commands.
7077         * configure: Regenerate.
7078         * Makefile.in: Update substitutions to match changes to
7079         configure.  Use include directives instead of @-insertions
7080         to read in host, target, and language fragments.
7081         (Makefile rule): Do not invoke configure.frag.  Do not copy
7082         config.status to config.run before executing it.  Set
7083         CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets
7084         regenerated.
7085         (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS.
7086
7087 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
7088
7089         * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
7090         * c-typeck.c (same_translation_unit_p): New function.
7091         (comptypes): Use it instead of flags parameter to identify
7092         structure types from different translation units.
7093         * c-decl.c (duplicate_decls): Always call comptypes with
7094         COMPTYPE_STRICT flags argument.
7095         (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
7096         to file_scope_decl.
7097
7098 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
7099
7100         * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
7101         * c-decl.c (struct c_scope): Remove "incomplete" field.
7102         (pushdecl): Attach variables with incomplete types to
7103         the TYPE_MAIN_VARIANT of the incomplete type in question.
7104         (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
7105         to complete, not at current_scope->incomplete.  All such
7106         variables do need completion.
7107
7108 2003-08-30  Richard Earnshaw  <rearnsha@arm.com>
7109         Nicolas Pitre <nico@cam.org>
7110
7111         * arm/lib1funcs.asm (RETCOND): Delete.
7112         (RETLDM): New assembler macro.  Use it for returning with ldm/ldr.
7113         (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions.
7114         (__ARM_ARCH__): Move here from ieee754-?f.S.
7115         (RET, RETc): Clean up definitions.
7116         (DIV_FUNC_END): Renamed from FUNC_END.  All uses changed.
7117         (FUNC_END): New macro that marks the end of any function.
7118         (ARM_FUNC_START): New macro that allows an assembler routine to be
7119         implemented in ARM code even if a Thumb-only build.
7120         Unconditionally include ieee754-?f.S.
7121         * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm.
7122         Mark ends of functions.
7123         Split into separate conditionally-compiled units.
7124         Use RETLDM to return from routines.
7125         * arm/ieee754-sf.S: Similarly.
7126         * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp.
7127         Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi
7128         _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2
7129         _fixsfsi and _fixunssfsi.
7130
7131         * arm/ieee754-df.S (__muldf3): Fix bug when result of a
7132         multiplication underflows to zero.
7133         (__adddf3): Fix bug when using VFP ordering on little-endian
7134         processors.
7135         (__fixdfsi): Use rrx to extract the carry into a register instead of
7136         MRS instruction.  Optimize later use of result.
7137         * arm/ieee754-sf.S (__fixsfsi): Likewise.
7138         (__fixunssfsi): Use a better sequence for handling negative-or-zero.
7139
7140 2003-08-29  Richard Henderson  <rth@redhat.com>
7141
7142         * tree-optimize.c: New file.
7143         * Makefile.in (OBJS-archive): Add tree-optimize.o.
7144         (tree-optimize.o): New.
7145         * c-decl.c (store_parm_decls): Use allocate_struct_function.
7146         (finish_function): Don't free_after_parsing or free_after_compilation.
7147         (set_save_expr_context): Move to tree-optimize.c.
7148         (c_expand_body_1): Use tree_rest_of_compilation.
7149         * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
7150         * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
7151         * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
7152         iterate until closure.
7153         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
7154         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
7155         (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
7156         * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
7157         * toplev.h (tree_rest_of_compilation): Declare it.
7158
7159 2003-08-29  Richard Henderson  <rth@redhat.com>
7160
7161         * function.h (struct function): Add rtl_inline_init, saved_for_inline.
7162         * integrate.c (save_for_inline): Set saved_for_inline.
7163         * c-semantics.c (genrtl_scope_stmt): Check it.
7164         * toplev.c (wrapup_global_declarations): Check it.
7165         (rest_of_handle_inlining): Set and check rtl_inline_init.
7166         (rest_of_compilation): Remove out of date comment.
7167
7168 2003-08-29  Richard Henderson  <rth@redhat.com>
7169
7170         * function.c (allocate_struct_function): New, split out of ...
7171         (prepare_function_start, init_function_start): ... here.
7172         * expr.c (init_expr): Use ggc_alloc_cleared.
7173         * stmt.c (init_stmt_for_function): Likewise.
7174         * tree.h (allocate_struct_function): Declare.
7175
7176 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7177
7178         * config.gcc: Don't use negated character class in shell case
7179         clause.
7180
7181 2003-08-29  Richard Henderson  <rth@redhat.com>
7182
7183         * function.h (struct function): Move function_frequency and
7184         max_jumptable_ents before start of bit field members.
7185
7186 2003-08-29  Richard Henderson  <rth@redhat.com>
7187
7188         * builtins.c (expand_builtin_constant_p): Check cse_not_expected here,
7189         (fold_builtin_constant_p) ... not here.
7190
7191 2003-08-29  Richard Henderson  <rth@redhat.com>
7192
7193         * c-tree.h (C_DECL_FILE_SCOPE): Move ...
7194         * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
7195         * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.
7196
7197 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7198
7199         * builtins.def: Fix typos.
7200         (ATTR_MATHFN_FPROUNDING_STORE): New macro.
7201         (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF,
7202         BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF,
7203         BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF,
7204         BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE.
7205
7206         * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL):
7207         Use ATTR_MATHFN_FPROUNDING_ERRNO.
7208
7209 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7210
7211         * config.gcc (i386-*-vsta): Fix obvious bogosity.
7212
7213         * fixinc/inclhack.def:  Remove special cases for unsupported
7214         PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3).
7215         * fixinc/fixincl.x: Regenerate.
7216
7217 2003-08-29  Mark Mitchell  <mark@codesourcery.com>
7218
7219         * Makefile.in (cpp.info): Just state dependencies.
7220         (gcc.info): Likewise.
7221         (gccint.info): Likewise.
7222         (gccinstall.info): Likewise.
7223         (cppinternals.info): Likewise.
7224         (cpp.dvi): Likewise.
7225         (gcc.dvi): Likewise.
7226         (gccint.dvi): Likewise.
7227         (gccinstall.dvi): Likewise.
7228         (cppinternals.dvi): Likewise.
7229         (gcov.1): Likewise.
7230         (cpp.1): Likewise.
7231         (gcc.1): Likewise.
7232         (gfdl.7): Likewise.
7233         (gpl.7): Likewise.
7234         (fsf-funding.7): Likewise.
7235         ($(objdir)/%.info): New pattern rule.
7236         (%.dvi): Likewise.
7237
7238 2003-08-29  Kelley Cook  <kelleycook@wideopenwest.com>
7239
7240         * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make.
7241         (restage2): Likewise.
7242         (restage3): Likewise.
7243         (restage4): Likewise.
7244         (restageprofile): Likewise.
7245         (restagefeedback): Likewise.
7246         (bubblestrap): Likewise.
7247
7248 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7249
7250         * config.gcc: Narrow unsupported target match to avoid clobbering
7251         i?86-sequent-sysv4*.
7252
7253 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7254
7255         * builtins.c (mathfn_built_in): Handle new math builtins.
7256
7257 2003-08-28  Per Bothner  <per@bothner.com>
7258
7259         Fix (hopefully temporary) for breakage caused by my 08-21 patch.
7260         * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
7261         (_cpp_lex_buffer):  Likewise.
7262         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
7263
7264 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
7265
7266         * config/s390/s390.md ("*mulsi3_sign"): New insn.
7267         ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ...
7268         ("mulsidi3"): ... this new insn.
7269         ("umulsidi3"): New insn.
7270         ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using
7271         mixed-mode matching constraints.
7272         ("udivmodsi4", "udivmoddisi3"): New insns.
7273         ("udivsi3", "umodsi3"): Use only in ESA/390 mode.
7274
7275 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7276
7277         * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR,
7278         BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR,
7279         BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
7280         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
7281         BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR,
7282         BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
7283         BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
7284         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
7285         BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
7286         BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
7287         BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New.
7288         * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL,
7289         BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO,
7290         BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS,
7291         BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New.
7292         * tree.c: Assign new type_nodes.
7293         * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE,
7294         TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE.
7295         (float_ptr_type_node, double_ptr_type_node,
7296         long_double_ptr_type_node, integer_ptr_type_node): New type_nodes.
7297
7298         * doc/extend.texi: Document new builtins.
7299
7300 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7301
7302         * builtin-types.def (BT_FN_FLOAT_INT_FLOAT,
7303         BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New.
7304
7305         * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF,
7306         BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA,
7307         BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F,
7308         BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L,
7309         BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA,
7310         BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND,
7311         BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA,
7312         BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F,
7313         BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L,
7314         BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New.
7315
7316         * doc/extend.texi: Document new builtins.
7317
7318 2003-08-28  Nathanael Nerode  <neroden@gcc.gnu.org>
7319
7320         * fixinc/mkfixinc.sh: Remove special case code for unsupported
7321         variants of i?86, powerpcle, and thumb.
7322         * fixinc/mkfixinc.sh: Remove special case code for unsupported
7323         arm and hppa variants.
7324
7325 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7326
7327         * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE,
7328         BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE,
7329         BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT,
7330         BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE,
7331         BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
7332         BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT,
7333         BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG,
7334         BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
7335         BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
7336         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New.
7337
7338         * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH,
7339         BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN,
7340         BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL,
7341         BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL,
7342         BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN,
7343         BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH,
7344         BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF,
7345         BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L,
7346         BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1,
7347         BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF,
7348         BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL,
7349         BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN,
7350         BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF,
7351         BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL,
7352         BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT,
7353         BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND,
7354         BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10,
7355         BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF,
7356         BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L,
7357         BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT,
7358         BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND,
7359         BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER,
7360         BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD,
7361         BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10,
7362         BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER,
7363         BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT,
7364         BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF,
7365         BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF,
7366         BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF,
7367         BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL,
7368         BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New.
7369
7370         * doc/extend.texi: Document new builtins.
7371
7372 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
7373
7374         * config/s390/s390.c (legitmate_constant_p): Use LARL on
7375         zSeries machines even in 31-bit addressing mode.
7376         (legitimate_reload_constant_p): Likewise.
7377         (legitimize_pic_address): Likewise.
7378         (legitimize_tls_address): Likewise.
7379         (s390_split_branches): Likewise.
7380         (s390_dump_pool): Likewise.
7381         (s390_mainpool_finish): Likewise.
7382         (s390_chunkify_start): Likewise.
7383         (s390_select_rtx_section): Likewise.
7384         * config/s390/s390.md ("doloop_si"): Likewise.
7385         ("pool_start_31", "pool_end_31"): Likewise.
7386         ("pool_start_64", "pool_end_64"): Likewise.
7387         ("main_base_31_small", "main_base_31_large"): Likewise.
7388         ("main_base_64"): Likewise.
7389         ("reload_base_31", "reload_base_64"): Likewise.
7390         ("*movsi_larl"): New insn.
7391         ("cjump", "icjump"): Use long branches on zSeries machines.
7392         ("jump"): Likewise.
7393         ("call"): Use BRASL on zSeries machines.
7394         ("call_value", "call_value_tls"): Likewise.
7395         ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove
7396         and replace by ...
7397         ("*bras", "*brasl", "*basr") ... these new insns.
7398         ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r",
7399         "bas_31_r"): Remove and replace by ...
7400         ("*bras_r", "*brasl_r", "*basr_r") ... these new insns.
7401         ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls",
7402         "bas_64_tls", "bas_31_tls"): Remove and replace by ...
7403         ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns.
7404         ("*return_si", "*return_di"): Remove and replace by ...
7405         ("*return"): ... this new insn.
7406         ("rotlsi3"): Allow on zSeries machines.
7407
7408         * config/s390/s390.c (legitimize_reload_constant_p): Use
7409         LL/LH type instructions in z/Architecture mode.
7410         * config/s390/s390.md ("*movsi_lli"): Likewise.
7411         ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise.
7412         ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise.
7413         ("*extendqisi2"): Use LB in z/Architecture mode.
7414         ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in
7415         z/Architecture mode.
7416         ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"):
7417         Likewise.
7418
7419         * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit
7420         and 31-bit mode.
7421         ("ptr_extend"): Allow only in 64-bit mode.
7422
7423 2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
7424
7425         * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX)
7426         (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary
7427         definitions.
7428         (main): Only use standard_startfile_prefix if native.
7429         * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update.
7430
7431 2003-08-27  Per Bothner  <pbothner@apple.com>
7432
7433         * cpperror.c (print_location):  Don't check for !pfile->buffer.  That
7434         test fails following my 08-21 change, and it seems unnecessary anyway.
7435         (cpp_error):  Likewise.
7436
7437 2003-08-27  Jason Merrill  <jason@redhat.com>
7438
7439         * real.c (do_multiply): Initialize with memset.
7440
7441 2003-08-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7442
7443         * gcov.c (typedef struct arc_info): New field cs_count.
7444         (accumulate_line_counts): Find cycles correctly.
7445
7446 2003-08-27  Ulrich Weigand  <uweigand@de.ibm.com>
7447
7448         * config/s390/s390.c (struct machine_function): Remove member
7449         literal_pool_label.
7450         (s390_optimize_prolog): Replace TEMP_REG argument with
7451         TEMP_USED and BASE_USED.  Do not check get_pool_size ().
7452         (general_s_operand): Accept all immediates before reload if
7453         ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
7454         references.
7455         (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
7456         (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
7457         (s390_alloc_pool): New function.
7458         (s390_new_pool): Call it.
7459         (s390_dump_pool): Add REMOTE_LABEL argument.
7460         (s390_chunkify_start): Add BASE_REG argument.  Do not check
7461         get_pool_size ().
7462         (s390_chunkify_finish): Add BASE_REG argument.  Adapt
7463         s390_dump_pool call.
7464         (s390_pool_count, s390_nr_constants): Remove.
7465         (s390_output_constant_pool): Remove.
7466         (s390_mainpool_start): New function.
7467         (s390_mainpool_finish): New function.
7468         (s390_mainpool_cancel): New function.
7469         (s390_reorg): Implement main literal pool handling.
7470         (s390_emit_prologue): Emit main_pool placeholder instead of
7471         literal_pool_31 / literal_pool_64 insns.
7472         * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
7473         (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
7474         * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant.
7475         ("main_base_31_small", "main_base_31_large"): New insns.
7476         ("main_base_64",  "main_pool"): New insns.
7477         ("literal_pool_31", "literal_pool_64"): Remove.
7478
7479 2003-08-27  Nathanael Nerode  <neroden@gcc.gnu.org>
7480
7481         * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from
7482         fixinc.ptx.
7483         * fixinc/inclhack.def (undefine_null):  Don't generate \r characters.
7484         Prettify a little.
7485         * fixinc/fixincl.x: Regenerate.
7486
7487 2003-08-27  Richard Earnshaw  <rearnsha@arm.com>
7488
7489         * lib1funcs.asm (L_ieee754_sp): New.  Include ieee754-sf.S.
7490         (L_ieee754_dp): New.  Include ieee754-df.S.
7491         * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb,
7492         and compilation in apcs-26 mode.
7493         * arm/ieee754-df.S: Likewise.
7494         * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules
7495         (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets.
7496
7497 2003-08-27  Nicolas Pitre  <nico@cam.org>
7498
7499         * arm/ieee754-sf.S: New.
7500         * arm/ieee754-df.S: New.
7501
7502 2003-08-27  Jakub Jelinek  <jakub@redhat.com>
7503
7504         * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust
7505         and restore it if returning NULL.
7506
7507 2003-08-27  Richard Sandiford  <rsandifo@redhat.com>
7508
7509         * calls.c (initialize_argument_information): If an argument has no
7510         stack space associated with it, and BLOCK_REG_PADDING is defined,
7511         use it to decide at which end the argument should be padded.
7512         * function.c (assign_parms): Allocate BLKmode stack slots.
7513         * config/mips/mips-protos.h (mips_pad_arg_upward): Declare.
7514         (mips_pad_reg_upward): Declare.
7515         * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING.
7516         (CUMULATIVE_ARGS): Remove num_adjusts and adjusts.
7517         (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward.
7518         (BLOCK_REG_PADDING): Use mips_pad_reg_upward.
7519         * config/mips/mips.c (struct mips_arg_info): Remove struct_p.
7520         (mips_expand_call): Remove code for generating structure shifts.
7521         (mips_arg_info): Don't set struct_p.  Don't set fpr_p for non-float
7522         types unless using the EABI.
7523         (function_arg_advance): Don't generate shift instructions.
7524         (function_arg): Don't return them.  Don't short-circuit the
7525         check for double structure chunks for DFmode arguments.
7526         (mips_pad_arg_upward, mips_pad_reg_upward): New functions.
7527         (mips_expand_prologue): Remove code to emit structure shifts.
7528         * config/mips/irix6-libc-compat.c: Remove workarounds for buggy
7529         structure passing (inet_ntoa, inet_lnaof, inet_netof).  Update
7530         comments to say that only structure returns are a problem.
7531
7532 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
7533
7534         * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h:
7535         Fix to match produced versions.
7536         * fixinc/inclhack.def (longlong_t): New disabled test, ported
7537         from fixinc.svr4.
7538         * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported
7539         from fixinc.ptx.
7540         * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
7541         ported from fixinc.ptx.
7542
7543 2003-08-26  Per Bothner  <pbothner@apple.com>
7544
7545         * cpplib.h (struct cpp_token):  Change type of field line to fileline.
7546         (cpp_error_with_line):  Use fileline for appropriate parameter.
7547         * cpphash.h (struct cpp_macro):  Change type of field line to fileline.
7548         (struct cpp_reader):  Likewise for fields line and directive_line.
7549         (_cpp_begin_message):  Use fileline for appropriate parameter.
7550         * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line,
7551         cpp_error):  Use fileline for appropriate parameters and variables.
7552         (print_location):  New local lin, since it is not a fileline.
7553
7554 2003-08-26  Roger Sayle  <roger@eyesopen.com>
7555
7556         PR middle-end/12002
7557         * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros.
7558         (FLOAT_TYPE_P): Define in terms of these two new macros.
7559         * fold-const.c (fold <PLUS_EXPR>): Don't convert x+x into x*2.0
7560         for complex floating point types.
7561
7562 2003-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
7563
7564         * config/s390/s390.c (emit_prologue): Don't check literal pool size.
7565         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call
7566         s390_output_pool_entry.
7567
7568 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
7569
7570         * fixinc/inclhack.def (svr4_preproc_lint_on,
7571         svr4_preproc_lint_off, svr4_preproc_machine): New disabled
7572         fixes, ported from fixinc.svr4.
7573
7574 2003-08-26  Mark Mitchell  <mark@codesourcery.com>
7575
7576         * doc/install.texi (Prerequisites): Mention GNU make requirement.
7577
7578         * Makefile.in (AR_FOR_TARGET): Export it.
7579         (AR_CREATE_FOR_TARGET): Likewise.
7580         (AR_FLAGS_FOR_TARGET): Likewise.
7581         (AR_EXTRACT_FOR_TARGET): Likewise.
7582         (AWK): Likewise.
7583         (BUILD_PREFIX): Likewise.
7584         (BUILD_PREFIX_1): Likewise.
7585         (DESTDIR): Likewise.
7586         (GCC_FOR_TARGET): Likewise.
7587         (INCLUDES): Likewise.
7588         (INSTALL_DATA): Likewise.
7589         (LIB1ASMSRC): Likewise.
7590         (LIBGCC2_CFLAGS): Likewise.
7591         (MACHMODE_H): Likewise.
7592         (NM_FOR_TARGET): Likewise.
7593         (RANLIB_FOR_TARGET): Likewise.
7594         (libsubdir): Likewise.
7595         (slibdir): Likewise.
7596         (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're
7597         exporting.
7598         (libgcc.a): Don't pass them here.
7599         (stmp-multilib): Or here.
7600         (install-libgcc): Or here.
7601         (install-multilib): Or here.
7602         (POSTSTAGE1_FLAGS_TO_PASS): Or here.
7603         (stage1_build): Or here.
7604
7605 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
7606
7607         * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi",
7608         "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns.
7609
7610 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
7611
7612         * config/s390/s390.md ("*fmadddf", "*fmsubdf",
7613         "*fmaddsf", "*fmsubsf"): New insns.
7614
7615 2003-08-26  Roger Sayle  <roger@eyesopen.com>
7616
7617         * fold-const.c (fold <MULT_EXPR>): Optimize (C1/X)*C2 into
7618         (C1*C2)/X when unsafe math optimizations are allowed.
7619         (fold <RDIV_EXPR>): Optimize C1/(X*C2) into (C1/C2)/X with unsafe
7620         math optimizations.  Minor code clean-ups.  Recursively call
7621         fold when constructing sub-expressions.
7622
7623 2003-08-26  Roger Sayle  <roger@eyesopen.com>
7624
7625         * builtins.c (fold_builtin_bitop): New function to perform constant
7626         folding of ffs, clz, ctz, popcount and parity builtin functions
7627         and their long and long long variants (such as ffsl and ffsll).
7628         (fold_builtin): fold_builtin_bitop when appropriate.
7629         * simplify-rtx.c (simplify_unary_operation): Honor both
7630         CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when
7631         evaluating clz and ctz at compile-time, for operands wider
7632         than HOST_WIDE_INT.
7633
7634 2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>
7635
7636         * builtins.c (build_function_call_expr): Don't set
7637         TREE_SIDE_EFFECTS here.
7638         * expr.c (emit_block_move_via_libcall): Likewise.
7639         (clear_storage_via_libcall): Likewise.
7640         * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure
7641         CALL_EXPRs.
7642
7643         * gcse.c (is_too_expensive): New function.
7644         (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it.
7645
7646 2003-08-25  Zack Weinberg  <zack@codesourcery.com>
7647
7648         * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove
7649         commented-out logic to use DCE threads (if present), add
7650         support for POSIX threads.
7651         * config/ia64/hpux.h: Define CPP_SPEC to set appropriate
7652         #defines for -pthread.  Add -lpthread to LIB_SPEC when
7653         -pthread.  In both cases take -mt as a synonym for -pthread
7654         for acc compatibility.
7655         Define GTHREAD_USE_WEAK to 0.
7656         * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC.
7657         Remove old logic for DCE threads from LIB_SPEC.
7658         * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0.
7659
7660 2003-08-25  Roger Sayle  <roger@eyesopen.com>
7661
7662         * builtins.c (expand_builtin_mathfn):  Rearrange so that we only
7663         return 0 for invalid argument types.  Instead drop through to a
7664         call of expand_call at the bottom of function.  If op is SQRT,
7665         try attaching a SQRT rtx as the REQ_EQUAL note of the libcall.
7666
7667 2003-08-25  Richard Henderson  <rth@redhat.com>
7668
7669         * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate
7670         result when op0 is SImode.
7671
7672 2003-08-25  Nathanael Nerode  <neroden@twcny.rr.com>
7673
7674         * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported
7675         from fixinc.svr4.
7676         * fixinc/fixincl.x: Regenerate.
7677         * fixinc/tests/base/sys/signal.h: Regenerate.
7678
7679 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
7680
7681         * combine.c (simplify_comparison): Re-enable widening of comparisons
7682         with non-paradoxical subregs of non-REG expressions.
7683
7684 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
7685
7686         * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
7687
7688 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
7689
7690         * combine.c (combine_simplify_rtx): Fix RTL sharing bug.
7691
7692 2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7693
7694         * pretty-print.h (pp_maybe_newline_and_indent): New macro.
7695         * c-pretty-print.h (c_pretty_printer): Now typedef to the
7696         structure.  Be consistent with pretty-print.h abd cxx-pretty-print.h
7697         (struct c_pretty_print_info): Document.  Add new fields.
7698         (pp_type_specifier_seq): Rename from pp_c_type_specifier.
7699         (pp_direct_abstract_declarator): New macro.
7700         (pp_ptr_operator): Likewise.
7701         (pp_simple_type_specifier): Likewise.
7702         (pp_expression): Likewise.
7703         (pp_parameter_list): Rename from pp_parameter_declaration.
7704         * c-pretty-print.c (pp_c_whitespace): Now a function.
7705         (pp_c_left_paren): Likewise.
7706         (pp_c_right_paren): Likewise.
7707         (pp_c_dot): Likewise.
7708         (pp_c_ampersand): Likewise.
7709         (pp_c_arrow): Likewise.
7710         (pp_c_semicolon): Likewise.
7711         (pp_c_type_cast): New function.
7712         (pp_c_space_for_pointer_operator): Likewise.
7713         (pp_c_call_argument_list): Likewise.
7714         (pp_c_cv_qualifier): Adjust prototype.
7715         (pp_c_type_qualifier_list): Likewise.
7716         (pp_c_pointer): Likewise.  Handle REFERENCE_TYPE here.
7717         (pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
7718         Adjust to follow standard grammar.
7719         (pp_c_specifier_qualifier_list): Adjusr prototype.  Handle
7720         REFERENCE_TYPE.  Tidy.
7721         (pp_c_parameter_type_list): Adjust prototype.  Tidy.
7722         (pp_c_parameter_declaration): Remove.
7723         (pp_c_abstract_declarator): Adjust prototype.
7724         (pp_c_direct_abstract_declarator): Likewise.
7725         (pp_c_type_id): Likewise.
7726         (pp_c_storage_class_specifier): Likewise.
7727         (pp_c_function_specifier): Likewise.
7728         (pp_c_declaration_specifiers): Likewise.
7729         (pp_c_direct_declarator): Likewise.
7730         (pp_c_declarator): Likewise.
7731         (pp_c_declarator): Likewise.
7732         (pp_c_declaration): Likewise.
7733         (pp_c_attributes): Likewise.  Tidy.
7734         (pp_c_function_definition): Adjust prototype.
7735         (pp_c_char): Likewise.
7736         (pp_c_string_literal): Likewise.
7737         (pp_c_integer_constant): Likewise.
7738         (pp_c_character_constant): Likewise.
7739         (pp_c_bool_constant): Likewise.
7740         (pp_c_enumeration_constant): Likewise.
7741         (pp_c_floating_constant): Likewise.
7742         (pp_c_constant): Likewise.
7743         (pp_c_identifier): Likewise.
7744         (pp_c_primary_expression): Likewise.  Remove TARGET_EXPR case.  Tidy.
7745         (pp_c_initializer): Adjust prototype.
7746         (pp_c_init_declarator): Likewise.
7747         (pp_c_initializer_list): Likewise.
7748         (pp_c_id_expression): Likewise.
7749         (pp_c_postfix_expression): Likewise.
7750         (pp_c_expression_list): Likewise.
7751         (pp_c_unary_expression): Likewise.
7752         (pp_c_cast_expression): Likewise.
7753         (pp_c_multiplicative_expression): Likewise.
7754         (pp_c_additive_expression): Likewise.
7755         (pp_c_shift_expression): Likewise.
7756         (pp_c_relational_expression): Likewise.
7757         (pp_c_equality_expression): Likewise.
7758         (pp_c_and_expression): Likewise.
7759         (pp_c_exclusive_or_expression): Likewise.
7760         (pp_c_inclusive_or_expression): Likewise.
7761         (pp_c_logical_and_expression): Likewise.
7762         (pp_c_logical_or_expression): Likewise.
7763         (pp_c_conditional_expression): Likewise.
7764         (pp_c_assignment_expression): Likewise.
7765         (pp_c_expression): Likewise.  Tidy.
7766         (pp_c_statement): Likewise.  Document.
7767         (pp_c_pretty_printer_init): Adjust prototype. Tidy.
7768
7769         * c-lang.c (c_initialize_diagnostics): Update.
7770         * c-common.h (strip_pointer_operator): Declare.
7771         * c-common.c (strip_pointer_operator): Define.
7772
7773 2003-08-25  Mark Mitchell  <mark@codesourcery.com>
7774
7775         PR c++/8795
7776         * tree.h (build_method_type_directly): Declare.
7777         * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
7778         (vector_size_helper): Likewise.
7779         * tree.c (build_method_type_directly): New function.
7780         (build_method_type): Use it.
7781
7782 2003-08-24  Richard Henderson  <rth@redhat.com>
7783
7784         * config/i386.i386.c (ix86_return_in_memory): Reformat.  Return true
7785         for 16-byte vector modes if sse not enabled; warn for abi change.
7786         (ix86_value_regno): Only return xmm0 for 16-byte vector types.
7787
7788 2003-08-24  Kazu Hirata  <kazu@cs.umass.edu>
7789
7790         * rtlanal.c (may_trap_p): Simplify an integer comparison.
7791
7792 2003-08-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7793
7794         * fixinc/inclhack.def (AAB_svr4_replace_byteorder):  Enhance
7795         comment.  Enable for DYNIX/ptx systems (when they switch to
7796         regular fixincludes).
7797         * fixinc/fixincl.x: Regenerate.
7798
7799 2003-08-23  Jason Eckhardt  <jle@rice.edu>
7800
7801         * config/i860/t-i860: New.
7802         * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file.
7803
7804 2003-08-23  Jakub Jelinek  <jakub@redhat.com>
7805
7806         * c-decl.c (pushdecl): Only put decls which finish_struct will do
7807         something about onto incomplete chain.
7808         (finish_struct): If not removing type from incomplete
7809         list, update prev.
7810
7811 2003-08-20  Jan Hubicka  <jh@suse.cz>
7812
7813         PR target/11369
7814         * i386.c (ix86_expand_carry_flag_compare): Validate operand.
7815
7816         PR target/11031
7817         * i386.c (const_0_to_3_operand, const_0_to_7_operand,
7818         const_0_to_15_operand, const_0_to_255_operand): New predicates.
7819         * i386.h (PREDICATE_CODES): Add these.
7820         * i386.c (pinsrw and pextrw patterns): Use them.
7821
7822         PR target/10984
7823         * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes.
7824
7825         PR target/8869
7826         * expr.c (convert_modes): Deal properly with integer to vector
7827         constant conversion.
7828
7829         PR target/8871
7830         * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives.
7831
7832 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
7833
7834         * config/s390/s390.h (LOAD_EXTEND_OP): Remove.
7835         * config/s390/s390.md ("movhi"): New expander; old insn renamed to ...
7836         ("*movhi"): ... this.
7837         ("movqi", "*movqi"): Likewise.
7838         ("movqi_64"): Remove.
7839         ("*zero_extendhisi2_31"): Change predicate to s_operand.
7840
7841 2003-08-23  Dale Johannesen  <dalej@apple.com>
7842         * calls.c (emit_library_call_value_1): Fix obvious errors in
7843         arguments to emit_group_store.
7844
7845 2003-08-23  Jason Eckhardt  <jle@rice.edu>
7846
7847         * calls.c (emit_library_call_value_1): Remove code related
7848         to LIBGCC_NEEDS_DOUBLE.
7849         * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE.
7850         * doc/tm.texi: Likewise.
7851         * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro.
7852
7853 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
7854
7855         * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
7856
7857 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
7858
7859         * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64
7860         as well.  Put memory references in the varargs alias set.
7861         (mips_expand_prologue): Remove varargs handling from here.
7862
7863 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
7864
7865         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
7866         s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list,
7867         s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax
7868         for function pointer calls.
7869         * config/s390/s390.md ("*negdi2_31"): Likewise.
7870
7871 2003-08-23  Roger Sayle  <roger@eyesopen.com>
7872
7873         * combine.c (apply_distributive_law): Correct comment.
7874
7875 2003-08-23  Jason Eckhardt  <jle@rice.edu>
7876
7877         * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE.
7878
7879 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7880
7881         * config/i860/i860.c (i860_build_va_list): Create the va_decl
7882         declaration.  Document the va_list structure.
7883         (i860_va_start): Initialize the va_list structure.
7884         (i860_va_arg): Rewrite completely.
7885         * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define.
7886         * config/i860/varargs.asm: Do not allocate or initialize
7887         a va_list.  Return the address of the register save area.
7888
7889 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
7890
7891         * config/iq2000/iq2000.c: Fix comment typos.
7892         * config/iq2000/iq2000.md: Likewise.
7893
7894 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
7895
7896         * config/iq2000/iq2000.c: Follow spelling conventions.
7897         * config/iq2000/iq2000.h: Likewise.
7898         * config/mn10300/mn10300.c: Likewise.
7899
7900 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7901
7902         * config/i860/i860.c (output_move_double): Don't set latehalf
7903         to zero for CONST_INT (since it could be, e.g., -1).
7904
7905         * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro...
7906         (MODSI3_LIBCALL): ...with this one.
7907         (UREMSI3_LIBCALL): Replace this macro...
7908         (UMODSI3_LIBCALL): ...with this one.
7909
7910 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7911
7912         * config/i860/i860-protos.h (output_delay_insn): Remove prototype.
7913         (output_delayed_branch): Remove prototype.
7914         (single_insn_src_p): Remove prototype.
7915         * config/i860/i860.c (single_insn_src_p): Remove function.
7916         (output_delayed_branch): Remove function.
7917         (output_delay_insn): Remove function.
7918         (va_start): Remove unconditional test and dead code, re-format.
7919         Fix coding style and spelling problems in various comments.
7920         * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant...
7921         (blockage pattern): ...and use it here.
7922         (all define_peephole patterns related to delayed branches): Remove.
7923         Fix coding style and spelling problems in various comments.
7924
7925 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7926
7927         * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'.
7928         Remove all uses of the PARAMS macro.  Remove superflous prototypes.
7929         Convert all function definitions from traditional to ISO C90 syntax.
7930         * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC'
7931         with 'GCC'.  Remove all uses of the PARAMS macro.
7932         * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'.
7933         * config/i860/i860.md: Likewise.
7934         * config/i860/sysv4.h: Likewise.
7935         * config/i860/varargs.asm: Likewise.
7936
7937 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7938
7939         * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p'
7940         argument.
7941         (tdesc_section): Add prototype.
7942         Update copyright dates.
7943         * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h.
7944         (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file.
7945         (TARGET_ASM_FUNCTION_EPILOGUE): Likewise.
7946         (targetm): Likewise.
7947         (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC
7948         for '%d' where necessary.
7949         (i860_va_start): Remove 'stdarg_p' argument.  Make conditional checks
7950         on 'stdarg_p' unconditional.  Divide current_function_args_info.ints
7951         by UNITS_PER_WORD when referencing (likewise for .floats).
7952         (I860_SVR4_VARARGS): Rename...
7953         (I860_SVR4_VA_LIST): ...to this.
7954         Call build() with 't' rather than 'field'.
7955         (i860_rtx_costs): New function.
7956         (TARGET_RTX_COSTS): Define.
7957         (i860_internal_label): New function.
7958         (TARGET_ASM_INTERNAL_LABEL): Define.
7959         (i860_file_start): New function.
7960         Update copyright dates.
7961         * config/i860/i860.h (CPP_PREDEFINES): Remove.
7962         (TARGET_CPU_CPP_BUILTINS): Define.
7963         (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument.
7964         (CONST_COSTS): Remove (and move code to i860_rtx_costs).
7965         (ASM_FILE_START): Remove.
7966         (ASM_FILE_START_1): Remove.
7967         (ASM_GLOBALIZE_LABEL): Remove.
7968         (ASM_OUTPUT_INTERNAL_LABEL): Remove.
7969         (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL
7970         with targetm.asm_out.internal_label.
7971         Update copyright dates.
7972         * config/i860/sysv4.h (USER_LABEL_PREFIX): Define.
7973         (CPP_PREDEFINES): Remove.
7974         (TARGET_OS_CPP_BUILTINS): Define.
7975         (GLOBAL_ASM_OP): Define.
7976         (ASM_FILE_START): Remove.
7977         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
7978         (TARGET_ASM_FILE_START): Define.
7979         Update copyright dates.
7980
7981 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7982
7983         * gcc/config.gcc (i860-*-sysv4*): Add target.
7984         * config/i860/i860-protos.h: New.
7985         * config/i860/i860.c: New.
7986         * config/i860/i860.h: New.
7987         * config/i860/i860.md: New.
7988         * config/i860/sysv4.h: New.
7989         * config/i860/varargs.asm: New.
7990         * config/i860/x-sysv4: New.
7991
7992 2003-08-22  Jason Eckhardt  <jle@rice.edu>
7993
7994         * config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
7995         Remove all uses of PARAMS macro.
7996         Convert all function definitions to ISO C90 syntax.
7997         * config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
7998         * config/pa/fptr.c: Likewise.
7999         * config/pa/lib2funcs.asm: Likewise.
8000         * config/pa/long_double.h: Likewise.
8001         * config/pa/milli64.S: Likewise.
8002         * config/pa/pa-64.h: Likewise.
8003         * config/pa/pa-hpux.h: Likewise.
8004         * config/pa/pa-hpux10.h: Likewise.
8005         * config/pa/pa-hpux11.h: Likewise.
8006         * config/pa/pa-linux.h: Likewise.
8007         * config/pa/pa-modes.def: Likewise.
8008         * config/pa/pa-osf.h: Likewise.
8009         * config/pa/pa-pro-end.h: Likewise.
8010         * config/pa/pa.md: Likewise.
8011         * config/pa/pa32-linux.h: Likewise.
8012         * config/pa/pa64-linux.h: Likewise.
8013         * config/pa/pa64-hpux.h: Likewise.
8014         * config/pa/pa64-regs.h: Likewise.
8015         * config/pa/quadlib.c: Likewise.
8016         * config/pa/rtems.h: Likewise.
8017         * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
8018         all uses of the PARAMS macro.
8019         * config/pa/pa.h: Likewise.
8020         * config/pa/som.h: Likewise.
8021
8022         * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
8023         Remove all uses of PARAMS macro.
8024         Convert all function definitions to ISO C90 syntax.
8025         * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
8026         Remove all uses of PARAMS macro.
8027         * config/iq2000.h: Remove all uses of PARAMS macro.
8028         * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
8029
8030 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
8031
8032         * config/s390/s390-protos.h (s390_output_pool_entry): Declare.
8033         * config/s390/s390.c (gen_consttable): Remove.
8034         (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns.
8035         (s390_output_pool_entry): New function.
8036         * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI,
8037         UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI,
8038         UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ...
8039         (UNSPECV_POOL_ENTRY): ... this new constant.
8040         ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
8041         "consttable_ti", "consttable_sf", "consttable_df"): Remove ...
8042         ("*pool_entry"): ... and replace by this new insn.
8043         ("literal_pool_31"): Do not emit anchor label if pool empty.
8044
8045         * config/s390/s390.c (struct machine_function): Add save_return_addr_p.
8046         (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p.
8047         (s390_fixup_clobbered_return_reg): Remove.
8048         (s390_reorg): Don't call s390_fixup_clobbered_return_reg.
8049         (s390_return_addr_rtx): Always retrieve return address from save area
8050         slot.  Use save_return_addr_p to force slot to be filled.
8051         (s390_emit_prologue): Remove has_hard_reg_initial_val test.
8052
8053 2003-08-22  Chris Demetriou  <cgd@broadcom.com>
8054
8055         * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines.
8056         (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1.
8057         * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work
8058         around SB-1 errata if TARGET_FIX_SB1 is set.
8059         (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise.
8060         * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1.
8061
8062 2003-08-22  Roger Sayle  <roger@eyesopen.com>
8063
8064         * hashtable.c (ht_expand): Avoid calculating rehash for the common
8065         case that the first probe hits an empty hash table slot.
8066
8067 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
8068
8069         * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
8070
8071 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
8072
8073         * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
8074         (ptr_extend_plus_imm): ... this.
8075         * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
8076         optimization in C++.
8077         (ia64_output_mi_thunk): Support ILP32 mode.
8078
8079 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
8080
8081         * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused
8082         function.
8083         * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise.
8084
8085 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
8086
8087         * config/i386/i386.c (const_int_1_operand): Simplify an
8088         integer comparison.
8089
8090 2003-08-22  Alan Modra  <amodra@bigpond.net.au>
8091
8092         * config/fp-bit.c: Specify config/ dir for include of fp-bit.h.
8093         * config/rs6000/ppc64-fp.c: Likewise.
8094
8095 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
8096
8097         * cfgcleanup.c: Fix comment typos.
8098         * emit-rtl.c: Likewise.
8099         * optabs.c: Likewise.
8100         * ra-build.c: Likewise.
8101         * rtlanal.c: Likewise.
8102         * tree.h: Likewise.
8103
8104 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
8105
8106         * c-decl.c: Fix comment formatting.
8107         * cfgrtl.c: Likewise.
8108         * combine.c: Likewise.
8109         * convert.c: Likewise.
8110         * dominance.c: Likewise.
8111         * dwarf2out.c: Likewise.
8112         * dwarfout.c: Likewise.
8113         * expmed.c: Likewise.
8114         * fold-const.c: Likewise.
8115         * gcov.c: Likewise.
8116         * genattrtab.c: Likewise.
8117         * ggc-common.c: Likewise.
8118         * mips-tfile.c: Likewise.
8119         * regmove.c: Likewise.
8120
8121 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
8122
8123         * builtin-attrs.def: Fix comment formatting.
8124         * c-pretty-print.c: Likewise.
8125         * diagnostic.h: Likewise.
8126         * langhooks.h: Likewise.
8127         * recog.c: Likewise.
8128         * simplify-rtx.c: Likewise.
8129         * tree.def: Likewise.
8130
8131 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
8132
8133         * config/m68k/m68k-protos.h: Convert to ISO C90.
8134         * config/m68k/m68k.c: Likewise.
8135
8136 2003-08-21  Bernardo Innocenti  <bernie@develer.com>
8137             Paul Dale  <pauli@snapgear.com>
8138             Peter Barada <peter@baradas.org>
8139
8140         * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for
8141         ColdFire cores.
8142
8143 2003-08-21  Zack Weinberg  <zack@codesourcery.com>
8144
8145         * Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
8146         * config.gcc (*-*-openbsd): Don't set tm_file.
8147         (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*,
8148         arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*,
8149         h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*,
8150         i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*,
8151         i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*,
8152         m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*,
8153         m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*,
8154         m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*,
8155         mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka,
8156         sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*,
8157         xscale-*-coff): Use explicit and complete lists of target headers
8158         to include.  Move definitions to tm_defines where appropriate.
8159         (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for
8160         not-yet-contributed configuration.
8161
8162         * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h
8163         * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h
8164         * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h
8165         * config/i386/nto.h, config/iq2000/iq2000.h,
8166         * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h
8167         * config/m68k/linux.h, config/m68k/m68k-aout.h
8168         * config/m68k/m68k-none.h, config/m68k/m68kv4.h
8169         * config/m68k/netbsd.h, config/m68k/openbsd.h
8170         * config/m68k/sgs.h, config/mcore/mcore-pe.h,
8171         * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h,
8172         * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h:
8173         Remove includes of other target config headers, and
8174         definitions of macros moved to tm_defines lists.  Add #undefs
8175         where now necessary to prevent redefinition warnings.
8176
8177         * config/h8300/coff.h: New file split out of...
8178         * config/h8300/elf.h: ...here.
8179         * config/m68k/hp320base.h: New file split out of...
8180         * config/m68k/hp320.h: ...here.
8181         * config/rs6000/lynxbase.h: New file split out of...
8182         * config/rs6000/lynx.h: ...here.
8183
8184         * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h
8185         * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file.
8186
8187         * config/sol2.h: Remove #if 0-ed #include of sys/mman.h.
8188         * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h.
8189         * config/mcore/mcore.h: Don't include hwint.h nor machmode.h.
8190         Remove unnecessary #ifndef.
8191         * config/s390/s390.h: Prefix #include of s390/fixdfdi.h
8192         [under IN_LIBGCC2] with config/.
8193
8194 2003-08-21  Per Bothner  <pbothner@apple.com>
8195
8196         * cppfiles.c (stack_file):  Correctly pass return_at_eof parameter
8197         to cpp_push_buffer.
8198         * cpplex.c (_cpp_get_fresh_line):  Don't buffer->prev - handled
8199         by return_at_eof check.  Always call _cpp_pop_buffer at end.
8200
8201 2003-08-21  Kazu Hirata  <kazu@cs.umass.edu>
8202
8203         PR target/11805
8204         * config/h8300/h8300.md (two anonymous patterns): Remove.
8205
8206 2003-08-21  Richard Sandiford  <rsandifo@redhat.com>
8207
8208         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause.
8209         * config/mips/mips.c (function_arg_pass_by_reference): Never return
8210         true for n32 & n64.
8211
8212 2003-08-21  Josef Zlomek  <zlomekj@suse.cz>
8213
8214         * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0
8215         and similarly in (A | C) == D where C & ~D != 0.
8216
8217 2003-08-20  Geoffrey Keating  <geoffk@apple.com>
8218
8219         PR 8180
8220         * configure.in: When testing with_libs and with_headers, treat
8221         'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
8222         * configure: Regenerate.
8223
8224 2003-08-20  Peter Barada <peter@baradas.org>
8225
8226         * longlong.h (umul_ppmm): Add ColdFire support.
8227
8228 2003-08-20  Peter Barada <peter@baradas.org>
8229             Bernardo Innocenti  <bernie@develer.com>
8230
8231         * config/m68k/m68k-none.h: Introduce new ColdFire archs.
8232         * config/m68k/m68k.h: Likewise.
8233         * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__.
8234         * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE.
8235         * config/m68k/linux.h: Likewise.
8236         * config/m68k/m68k.c: Likewise.
8237         * config/m68k/m68k.md: Likewise.
8238         * config/m68k/m68kelf.h: Likewise.
8239         * config/m68k/netbsd-elf.h: Likewise.
8240         * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs.
8241
8242 2003-08-20  Bernardo Innocenti  <bernie@develer.com>
8243
8244         * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition.
8245         * config/m68k/m68k.md: Likewise.
8246
8247 2003-08-20  Mark Mitchell  <mark@codesourcery.com>
8248
8249         PR java/11996
8250         Revert this change:
8251         2003-08-19  Mark Mitchell  <mark@codesourcery.com>
8252         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
8253         types with precisions other than those given by native machine
8254         modes.
8255
8256 2003-08-20  Gunther Nikl  <gni@gecko.de>
8257
8258         * config/m68k/m68k.md (anonymous define_insn): remove obsolete code
8259         selected by FSGLMUL_USE_S and FSGLDIV_USE_S
8260         * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check
8261         * config/m68k/m68k.md (anonymous define_insn): Likewise
8262         * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check
8263         * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete
8264         code selected by NO_ASM_FMOVECR
8265
8266 2003-08-20  Gunther Nikl  <gni@gecko.de>
8267
8268         * config/m68k/m68k.c (output_move_const_into_data_reg,
8269         output_move_himode): unify MOTOROLA/MIT handling of moveq
8270         * config/m68k/m68k.md (movsi_const0, anonymous define_insn):
8271         Likewise
8272
8273 2003-08-20  Gunther Nikl  <gni@gecko.de>
8274
8275         * config/m68k/m68k.c (m68k_output_function_prologue): use %U in
8276         label name
8277         * config/m68k/m68k.c (m68k_output_function_epilogue): replace
8278         HOST_WIDE_INT_PRINT_DEC with %wd
8279
8280 2003-08-20  Loren James Rittle  <ljrittle@acm.org>
8281
8282         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle
8283         redefine warning.
8284
8285 2003-08-20  Roger Sayle  <roger@eyesopen.com>
8286
8287         PR middle-end/11984
8288         * fold-const.c (fold <PLUS_EXPR>): Check for integer constant
8289         operands before calling tree_int_cst_lt when performing associative
8290         transformations.
8291
8292 2003-08-20  Jason Merrill  <jason@redhat.com>
8293
8294         * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'.
8295         (EXPR_CHECK): Don't check for 'r' or 's' if we're
8296         checking IS_EXPR_CODE_CLASS.
8297         * calls.c (calls_function_1): Likewise.
8298         * fold-const.c (fold): Likewise.
8299         * tree.c (iterative_hash_expr): Likewise.
8300         * tree-inline.c (walk_tree, copy_tree_r): Likewise.
8301
8302 2003-08-20  Gunther Nikl  <gni@gecko.de>
8303
8304         * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code
8305         depending on MOTOROLA_BSR
8306         * config/m68k/m68k.md (anonymous define_insn): Likewise
8307
8308 2003-08-20  Jason Merrill  <jason@redhat.com>
8309
8310         * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl.
8311         (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code,
8312         fold_trunc_transparent_mathfn, fold_builtin): Likewise.
8313         * dojump.c (do_jump): Likewise.
8314         * fold-const.c (operand_equal_p, fold): Likewise.
8315         (tree_expr_nonnegative_p): Likewise.
8316
8317         * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from
8318         TYPE_USER_ALIGN for FIELD_DECLs.
8319
8320         * attribs.c (decl_attributes): Rebuild the function pointer type after
8321         changing the target type.
8322         * tree.c (get_qualified_type): Also check that the attributes match.
8323
8324 2003-08-19  Matt Kraai  <kraai@alumni.cmu.edu>
8325
8326         * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ...
8327         * objc/config-lang.in (stagestuff): ... to here.
8328
8329 2003-08-19  Mark Mitchell  <mark@codesourcery.com>
8330
8331         PR c++/11946
8332         * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
8333         NOP_EXPR) when necessary.
8334         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
8335         types with precisions other than those given by native machine
8336         modes.
8337
8338 2003-08-19  Geoffrey Keating  <geoffk@apple.com>
8339
8340         * cpppch.c (cpp_valid_state): Re-add warning about PCH not used
8341         because some macro is defined.
8342
8343         * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only
8344         options.
8345         * config/i386/darwin.h (ASM_SPEC): New.
8346         (SUBTARGET_EXTRA_SPECS): New.
8347         * config/rs6000/darwin.h (ASM_SPEC): New.
8348         (SUBTARGET_EXTRA_SPECS): New.
8349         * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building
8350         a cross-compiler between two different processors on Darwin.
8351         * configure: Regenerate.
8352
8353 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
8354
8355         * builtins.c: Fix comment typos.
8356         * c-common.c: Likewise.
8357         * c-decl.c: Likewise.
8358         * c-pretty-print.c: Likewise.
8359         * cfgbuild.c: Likewise.
8360         * cfglayout.c: Likewise.
8361         * cfgloopanal.c: Likewise.
8362         * cgraphunit.c: Likewise.
8363         * cppfiles.c: Likewise.
8364         * dwarfout.c: Likewise.
8365         * expr.c: Likewise.
8366         * fold-const.c: Likewise.
8367         * gcse.c: Likewise.
8368         * ggc-page.c: Likewise.
8369         * haifa-sched.c: Likewise.
8370         * pretty-print.c: Likewise.
8371         * tree.c: Likewise.
8372         * tree.h: Likewise.
8373         * value-prof.c: Likewise.
8374
8375 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
8376
8377         * c-decl.c: Follow spelling conventions.
8378         * cppfiles.c: Likewise.
8379
8380 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
8381
8382         * c-common.c: Fix comment formatting.
8383         * c-common.h: Likewise.
8384         * c-decl.c: Likewise.
8385         * cppinit.c: Likewise.
8386         * cpplib.h: Likewise.
8387         * emit-rtl.c: Likewise.
8388         * input.h: Likewise.
8389         * line-map.h: Likewise.
8390         * opts.c: Likewise.
8391         * opts.h: Likewise.
8392         * simplify-rtx.c: Likewise.
8393
8394 2003-08-19  Daniel Jacobowitz  <drow@mvista.com>
8395
8396         * unwind-c.c: Add libgcc-style exception.
8397         * unwind-dw2.c: Likewise.
8398         * unwind-pe.h: Likewise.
8399         * unwind-sjlj.c: Likewise.
8400         * unwind.inc: Likewise.
8401
8402 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8403
8404         PR c/5582 PR c++/10538
8405         * langhooks-def.h (lhd_decl_uninit): Declare.
8406         (LANG_HOOKS_DECL_UNINIT): New macro.
8407         (LANG_HOOKS_INITIALIZER): Adjust.
8408         * langhooks.h (struct lang_hooks): Add new field
8409         decl_uninit.
8410         * langhooks.c (lhd_decl_uninit): Define.
8411         * c-common.c (c_decl_uninit_1): New function.
8412         (c_decl_uninit): New function.
8413         (warn_init_self): Define.
8414         * c-common.h (c_decl_uninit): Declare.
8415         (warn_init_self): Declare.
8416         * c.opt: Introduce -Winit-self.
8417         * c-opts.c (c_common_handle_options): Set warn_init_self.
8418         * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
8419         * objc/objc-lang.c  (LANG_HOOKS_DECL_UNINIT): Define.
8420         * function.c (uninitialized_vars_warning): Call the language hook.
8421         * doc/invoke.texi: Document -Winit-self.
8422
8423 2003-08-19  Chris Demetriou  <cgd@broadcom.com>
8424
8425         * config/mips/mips.md: Adjust SI-mode "trap_if" instruction
8426         to use better predicates and constraints.  Define new
8427         instruction to handle "trap_if" with DI-mode arguments.
8428         (conditional_trap): FAIL if trap code is not 0.
8429
8430 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
8431
8432         * config/i386/i386.c (legitimate_pic_address_disp_p): Change the
8433         strstr with $pb to a strcompare with "<pic base>"
8434         (ix86_output_addr_diff_elt): Output the real pic base.
8435
8436 2003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8437
8438         * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.
8439         (LANG_HOOKS_INITIALIZER): Correct.
8440         * c-lang.c: Likewise.
8441
8442 2003-08-19  Jan Hubicka  <jh@suse.cz>
8443
8444         * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol.
8445         (cgraph_varpool_mark_needed_node): Likewise.
8446         * cgraph.h (notice_global_symbol): Declare
8447         * varasm.c (notice_global_symbol): Break out from ...
8448         (assemble_start_function): ... here; update for variables.
8449         (assemble_variable): Use notice_global_symbol.
8450
8451 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
8452
8453         * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P,
8454         expect SFmode and DFmode arguments to be passed in FPRs,
8455         regardless of the underlying type.
8456
8457 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
8458
8459         PR target/11924
8460         * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro.
8461         (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it.
8462
8463 2003-08-18  Matt Kraai  <kraai@alumni.cmu.edu>
8464
8465         PR c/11207
8466         * c-typeck.c (set_init_index): Check for negative index.
8467
8468 2003-08-18  Bob Wilson  <bob.wilson@acm.org>
8469
8470         * config/xtensa/crti.asm (_init, _fini): Add alternate code for new
8471         call0 ABI.
8472         * config/xtensa/crtn.asm (_init, _fini): Likewise.
8473         * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3,
8474         __umodsi3, __modsi3): Likewise.
8475         * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and
8476         $(INCLUDES).
8477
8478 2003-08-18  Aldy Hernandez  <aldyh@redhat.com>
8479
8480         * config/rs6000/spe.md ("*nabssf2_gpr"): New.
8481
8482 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
8483
8484         * config/mips/mips.md: Quote C code in braces.  Remove use of
8485         fake const0_rtx operands.  Remove double backslashes.  Use \;.
8486         Remove workarounds for bogus warnings.
8487
8488 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
8489
8490         * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function.
8491         (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX
8492         rather than TARGET_MIPS4300.
8493         (mulsf3_internal, mulsf3_r4300): Likewise.
8494
8495 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
8496
8497         * config/mips/mips.md: Renumber unspecs.  Clean up comments.
8498
8499 2003-08-17  Roger Sayle  <roger@eyesopen.com>
8500
8501         * simplify-rtx.c (associative_constant_p): New function to test
8502         whether an RTX expression is an immediate constant.
8503         (simplify_associative_operation): New function to perform some
8504         reassociation optimizations of associative binary expressions.
8505         (simplify_binary_operation): Use simplify_associative_operation
8506         to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX.
8507         Floating point expressions are only reassociated when unsafe
8508         math optimizations are permitted.
8509
8510 2003-08-17  Andreas Jaeger  <aj@suse.de>
8511
8512         * config/alpha/alpha.md: Remove usage of PARAMS.
8513
8514         * config/i386/cygwin.h: Convert K&R prototypes to ISO C90.
8515         * config/i386/i386-interix.h: Likewise.
8516         * config/i386/winnt.c: Likewise.
8517         * config/i386/cygming.h: Likewise.
8518         * config/i386/cygwin2.c: Likewise.
8519         * config/darwin.c: Likewise.
8520         * config/darwin-c.c: Likewise.
8521         * config/darwin-protos.h: Likewise.
8522         * config/darwin.h: Likewise.
8523         * config/s390/s390-protos.h: Likewise.
8524         * config/s390/s390.c: Likewise.
8525         * config/ia64/ia64.c: Likewse
8526         * config/ia64/ia64-protos.h: Likewise.
8527         * config/ia64/ia64-c.c: Likewise.
8528
8529 2003-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8530
8531         * config/sparc/sparc.c: Convert to ISO C.
8532
8533         * config/sparc/sparc-protos.h: Don't use the PARAMS macro.
8534         * config/sparc/sparc.c: Likewise.
8535
8536 2003-08-16  Nathan Sidwell  <nathan@codesourcery.com>
8537
8538         PR c++/11512
8539         * stmt.c (expand_expr_stmt_value): Don't warn about any void
8540         typed expression.
8541
8542 2003-08-16  Jan Hubicka  <jh@suse.cz>
8543
8544         * i386.c (ix86_fntype_regparm): Rename from ...
8545         (ix86_function_regparm): ... this one; add fastcall and local
8546         functions.
8547         (ix86_function_ok_for_sibcall): Update.
8548         (ix86_return_pops_args): Likewise.
8549         (init_cumulative_args): Likewise.
8550         (x86_can_output_mi_thunk): Likewise.
8551         (function_arg): Fix formating.
8552         (x86_this_parameter): Fix fastcall.
8553         (x86_output_mi_thunk): Likewise.
8554
8555         * cgraph.c (cgraph_mark_needed_node): Do not mark functions without
8556         body as reachable; mark nested functions as needed too.
8557         (dump_cgraph): Do not output global.calls.
8558         * cgraph.h (cgraph_global_info): Kill.
8559         * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions.
8560         (record_call_1): Speedup.
8561         (cgraph_analyze_function): Break out from ...; compute inlining
8562         parameters.
8563         (cgraph_finalize_compilation_unit): ... here.
8564         (cgraph_mark_inline): Kill computation of calls.
8565         (cgraph_decide_inlining): Do not compute most of initial values.
8566
8567 2003-08-14  Roger Sayle  <roger@eyesopen.com>
8568
8569         * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy
8570         to negate if either operand is easy to negate, if we don't care
8571         about sign-dependent rounding.
8572         (negate_expr): Make the logic to negate a REAL_CST explicit.
8573         Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand
8574         that's easy to negate, if we don't honor sign-dependent rounding.
8575         (fold <MULT_EXPR>): Optimize -A * B as A * -B if B is easy to
8576         negate, and the symmetric A * -B as -A * B if A is easy to negate.
8577         (fold <RDIV_EXPR>): Likewise, optimize -A/B and C/-D as A/-B and
8578         -C/D if B and C are cheap to negate.  Add an explicit rule to
8579         optimize X/-1.0 as -X when we don't care about signaling NaNs.
8580
8581 2003-08-14  Zack Weinberg  <zack@codesourcery.com>
8582
8583         * Makefile.in (tm_file): Rename tm_include_list.
8584         (tm_p_file): Rename tm_p_include_list.
8585         (build_xm_file): Rename build_xm_include_list.
8586         (host_xm_file): Rename host_xm_include_list.
8587         (xm_file): Rename xm_include_list.
8588         (xm_file_list): Add to be substituted.
8589         (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
8590         Update to match.
8591         (bt-load.o): Add missing dependency on $(TM_H).
8592         * configure.in: Prefix value of EXTRA_MODES_FILE with config/.
8593         For each of tm_file, tm_p_file, xm_file, host_xm_file, and
8594         build_xm_file, generate both *_file_list and *_include_list
8595         values from it.  (xm_file_list was formerly not being generated.)
8596         In *_include_list, prefix the names of all headers found in
8597         $(srcdir)/config with config/.  In each loop, consider only
8598         the special case files that can actually appear in that list.
8599         AC_SUBST all *_file_list and all *_include_list variables; do
8600         not AC_SUBST the plain *_file variables.
8601         * configure: Regenerate.
8602
8603 2003-08-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8604
8605         * cfg.c (dump_edge_info): Add name of loop_exit edge flag.
8606
8607 2003-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8608
8609         * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in
8610         direct calls.
8611         (attr_length_call): Include it here.  Improve length estimate for
8612         local calls.
8613         (output_call): Use targetm.binds_local_p.
8614
8615 2003-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8616
8617         * builtins.c (CASE_MATHFN): New helper macro.
8618         (mathfn_built_in): Simplify and sort.
8619
8620         * protoize.c (substr): Delete, callers changed to `strstr'.
8621
8622 2003-08-13  Zack Weinberg  <zack@codesourcery.com>
8623
8624         * config.gcc (iq2000*-*-elf*): Don't set xm_file.
8625         * config/iq2000/xm-iq2000.h: Delete file.
8626
8627 2003-08-13  Geoffrey Keating  <geoffk@apple.com>
8628
8629         * gengtype.c (walk_type): Process a subobject before processing
8630         the pointer that points to the subobject.
8631
8632 2003-08-13  Per Bothner  <pbothner@apple.com>
8633
8634         * regclass.c (init_reg_modes):  Make non-static.
8635         Rename to init_reg_modes_once per new naming convention.
8636         (init_regs):  Don't call init_reg_modes here.
8637         * emit-rtl.c (init_emit_once):  Call init_reg_modes_once here instead.
8638         * rtl.h (init_reg_modes_once):  New declaration.
8639         * toplev.c (backend_init):  Call init_regs after init_emit_once.
8640
8641 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
8642
8643         * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
8644         special index for MD_FALLBACK_FRAME_STATE_FOR to itself.
8645
8646 2003-08-13  J"orn Rennecke <joern.rennecke@superh.com>
8647
8648         * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
8649         * sh.md (load_ra): Change insn predicate to TARGET_SH1.
8650
8651 2003-08-13  Dale Johannesen  <dalej@apple.com>
8652
8653         * config/rs6000/rs6000.md (ctrsi, ctrdi):  Reenable
8654         handling of decrement-and-branch farther than 32 bits.
8655
8656 2003-08-12  Kelley Cook  <kelleycook@wideopenwest.com>
8657
8658         * configure.in (make_compare_target): Move test to ...
8659         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here.
8660         * configure: Regenerate.
8661
8662 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
8663
8664         * config/mips/iris6.h: Convert to C90 prototypes.
8665         * config/mips/irix6-libc-compat.c: Likewise.
8666         * config/mips/mips-protos.h: Likewise.
8667         * config/mips/mips.c: Likewise.
8668
8669 2003-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>
8670
8671         fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel.  Enable
8672         for selected machines.  Comment heavily.
8673         fixinc/fixincl.x: Rebuild.
8674         fixinc/tests/base/fs/rfs/rf_cache.h: New file.
8675
8676 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
8677
8678         * config/mips/mips.h: Tweak various comments.
8679         * config/mips/mips.c: Likewise.
8680
8681 2003-08-11  James E Wilson  <wilson@tuliptree.org>
8682
8683         PR optimization/11319
8684         PR target/10021
8685         * alias.c (find_base_value, case REG): Return 0 not src if no base
8686         found.
8687
8688 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8689
8690         * gcse.c (gmalloc): Fix last change.
8691
8692 2003-08-11  Roger Sayle  <roger@eyesopen.com>
8693
8694         * simplify-rtx.c (simplify_binary_operation): Replace calls to
8695         gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary,
8696         and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT,
8697         gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary.
8698
8699 2003-08-11  Roger Sayle  <roger@eyesopen.com>
8700
8701         * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort.
8702         * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid
8703         typecode for an ABS_EXPR.
8704
8705         * doc/c-tree.texi: Document ABS_EXPR.
8706
8707 2003-08-11  Roger Sayle  <roger@eyesopen.com>
8708
8709         * fold-const.c (fold): Optimize any associative floating point
8710         operator with -funsafe-math-optimizations, not just MULT_EXPR.
8711
8712 2003-08-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8713
8714         * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size
8715         information in SHmedia case too.
8716         (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate):
8717         Likewise.
8718         (__set_fpscr): Use an access via GOT for PIC case.
8719
8720 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
8721
8722         * configure.in (intermodule): Make switch test more portable.
8723         * configure: Regenerate.
8724
8725 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
8726
8727         * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap.
8728         (restrap): Likewise.
8729
8730 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8731
8732         * gcse.c (gmalloc): Argument is a size_t.  Add ATTRIBUTE_MALLOC.
8733         (grealloc): Size argument is a size_t.
8734         (gcalloc): New function.  Use throughout in lieu of
8735         gmalloc/memset.
8736
8737         * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of
8738         xmalloc/memset.
8739         * config/ia64/ia64.c (ia64_reorg): Likewise.
8740         * conflict.c (conflict_graph_new): Likewise.
8741         * fixinc/fixincl.c (run_compiles): Likewise.
8742         * genattrtab.c (optimize_attrs): Likewise.
8743         * genrecog.c (new_decision): Likewise.
8744         * haifa-sched.c (schedule_block): Likewise.
8745         * hashtable.c (ht_create): Likewise.
8746
8747 2003-08-11  Bob Wilson  <bob.wilson@acm.org>
8748
8749         * config/xtensa/lib2funcs.S: Fix whitespace.
8750         * config/xtensa/xtensa.md (all insns and expanders): Use brace block
8751         syntax where appropriate.  Remove unnecessary backslash escapes.
8752         Reformat comments and fix some code formatting.
8753         (extendqisi2): Rearrange conditional.
8754         (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue,
8755         *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead
8756         of fatal_insn.
8757
8758 2003-08-11  Richard Sandiford  <rsandifo@redhat.com>
8759
8760         * config/mips/mips.c: Various formatting fixes.
8761         (override_options): Resync -mtune handling with gas.
8762         (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface.
8763         * config/mips/mips.h: More formatting fixes.
8764         (mips_abi): Move declaration.
8765         * config/mips/mips.md (exception_receiver): Add mode to
8766         unspec_volatile.
8767
8768 2003-08-11  Aldy Hernandez  <aldyh@redhat.com>
8769
8770         * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and
8771         evsplatfi here.
8772         (bdesc_1arg): Remove evsplati and evsplatfi.
8773
8774 2003-08-11  J"orn Rennecke <joern.rennecke@superh.com>
8775
8776         * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix
8777         into account.
8778
8779 2003-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8780
8781         * builtins.c (expand_builtin_strcat): Optimize constant strings.
8782
8783 2003-08-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8784
8785         * pretty-print.c (pp_base_indent): Rename from pp_indent.
8786         * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype.
8787         (struct c_pretty_print_info): Add more fields.
8788         (pp_c_left_paren): Move to c-pretty-print.c.
8789         (pp_c_right_paren): Likewise.
8790         (pp_c_left_brace): Likewise.
8791         (pp_c_right_brace): Likewise.
8792         (pp_c_left_bracket): Likewise.
8793         (pp_c_right_bracket): Likewise.
8794         (pp_c_declarator): Declare.
8795         (pp_c_direct_declarator): Likewise.
8796         (pp_c_specifier_qualifier_list): Likewise.
8797         (pp_c_type_id): Likewise.
8798         * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework..
8799         (pp_c_type_qualifier_list): New.
8800         (pp_c_pointer): Likewise.
8801         (pp_c_parameter_type_list): Likewise.
8802         (pp_c_function_definition): Likewise.
8803         (pp_c_id_expression): Likewise.
8804         (pp_c_simple_type_specifier): Tidy.
8805         (pp_c_unary_expression): Likewise.
8806         (pp_c_expression): Likewise.
8807         (pp_c_pretty_printer_init): Likewise.
8808         (pp_c_specifier_qualifier_list): Rework..
8809         (pp_c_abstract_declarator): Likewise.
8810         (pp_c_postfix_expression): Likewise.
8811         (pp_c_primary_expression): Likewise.
8812         (pp_c_cast_expression): Likewise.
8813         (pp_c_direct_abstract_declarator): Likewise.
8814         (pp_c_storage_class_specifier): Likewise.
8815         (pp_c_function_specifier): Likewise.
8816         (pp_c_declaration_specifiers): Likewise.
8817         (pp_c_direct_declarator): Likewise.
8818         (pp_c_declarator): Likewise.
8819         (pp_c_declaration): Likewise.
8820         (pp_c_statement): Likewise.
8821         (pp_c_integer_constant): Rename from pp_c_integer_literal.
8822         (pp_c_character_constant): Rename from pp_c_character_literal.
8823         (pp_c_bool_constant): Rename from pp_c_bool_literal.
8824         (pp_c_enumeration_constant): Rename from pp_c_enumerator.
8825         (pp_c_floating_constant): Rename from pp_c_real_literal.
8826         (pp_c_constant): Rename from pp_c_literal.
8827         * c-lang.c: Include diagnostic.h and c-pretty-print.h
8828         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
8829         (c_initialize_diagnostics): New.
8830         * Makefile.in (c-lang.o): Update dependency.
8831
8832 2003-08-10  Nathan Sidwell  <nathan@codesourcery.com>
8833
8834         * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs.
8835
8836 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
8837
8838         * config/mips/mips.c (mips_no_mips16_string): Remove.
8839         (override_options): Don't handle -mips16 as part of -mipsN.
8840         * config/mips/mips.h (mips_no_mips16_string): Remove declaration.
8841         (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries.
8842         (TARGET_OPTIONS): Remove -mno-mips16.
8843
8844 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
8845
8846         * config/mips/mips-protos.h (coprocessor_operand): Remove declaration.
8847         (coprocessor2_operand): Likewise.
8848         * config/mips/mips.c (STAB_CODE_TYPE): Remove.
8849         (lookup_name): Remove declaration.
8850         (abort_with_insn): Remove.  Replace all uses with fatal_insn.
8851         (mips16, mips_abicalls): Remove.
8852         (mips_char_to_class): Remove initialiser: all entries are NO_REGS.
8853         (arith32_operand, large_int, true_reg_or_0_operand): Remove.
8854         (coprocessor_operand, coprocessor2_operand): Remove.
8855         (override_options): Don't set mips16 or mips_abicalls.
8856         (print_operand): Don't expect SIGN_EXTEND operands.
8857         (mips_secondary_reload_class): Likewise.
8858         (mips_output_conditional_branch): Remove disabled long-branch code.
8859         * config/mips/mips.h (call_used_regs): Remove declaration.
8860         (may_call_alloca): Likewise.
8861         (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove.
8862         (mips_abicalls, mips16): Remove declarations.
8863         (ASM_FINAL_SPEC, LIB_SPEC): Remove.
8864         (CC1_SPEC): Remove outdated comment.
8865         (MIPS_VERSION, MACHINE_TYPE): Remove.
8866         (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8867         (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions.
8868         (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise.
8869         (PUSH_ROUNDING): Likewise.
8870         (ASSEMBLER_SCRATCH_REGNUM): Remove.
8871         * config/mips/mips.md: Replace mips_cpu_attr with mips_tune
8872         and mips16 with TARGET_MIPS16.
8873
8874 2003-08-09  Per Bothner  <pbothner@apple.com>
8875
8876         * cppinit.c (cpp_read_main_file):  Split out source-independent
8877         initialization to separate function ...
8878         (cpp_post_options):  New function.
8879         * cppfiles.c (cpp_stack_file):  Rename public name to ...
8880         (_cpp_stack_file):  New internal function name.
8881         * cpplib.h:  Update accordingly.
8882         * cppinit.c:  (cpp_create_reader):  Initialize cpp_readers line here.
8883         (cpp_read_main_file):  Don't initialize line here.
8884         * c-opts.c (c_common_post_options):  Call cpp_post_options.
8885         (c_common_parse_file):  Call cpp_read_main_file, not cpp_stack_file.
8886         * fix-header.c (read_scan_file):  Call cpp_post_options.
8887
8888 2003-08-09  Per Bothner  <per@bothner.com>
8889
8890         * c-decl.c (SCOPE_LIST_APPEND):  Remove bogus line continuation.
8891
8892 2003-08-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8893
8894         * pa.c (pa_asm_output_mi_thunk): Fix typo.
8895
8896 2003-08-09  Neil Booth  <neil@daikokuya.co.uk>
8897
8898         PR preprocessor/11839
8899         * cppfiles.c (open_file): Handle ENOTDIR.
8900
8901 2003-08-09  Richard Sandiford  <rsandifo@redhat.com>
8902
8903         PR target/11699
8904         * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls.
8905
8906 2003-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8907
8908         * pa.md (extzv, extv, insv): Fix operand limit checks.  Fail if
8909         source/destination is not a register operand.
8910
8911 2003-08-08  Richard Henderson  <rth@redhat.com>
8912
8913         PR target/11535
8914         * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove
8915         RETURN_ADDRESS_POINTER_REGNUM.
8916         (ia64_expand_prologue): Don't frob it.
8917         (ia64_output_function_epilogue): Likewise.
8918         (ia64_return_addr_rtx): New.
8919         (ia64_split_return_addr_rtx): New.
8920         * config/ia64/ia64-protos.h: Update.
8921         * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement.
8922         (RETURN_ADDRESS_POINTER_REGNUM): Remove.
8923         (GENERAL_REGNO_P): Don't check it.
8924         (AR_*_REGNUM): Renumber.
8925         (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM.
8926         (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise.
8927         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise.
8928         (ELIMINABLE_REGS, REGISTER_NAMES): Likewise.
8929         (RETURN_ADDR_RTX): Use ia64_return_addr_rtx.
8930         * config/ia64/ia64.md (UNSPEC_RET_ADDR): New.
8931         (movdi_ret_addr): New.
8932
8933 2003-08-08  Geoffrey Keating  <geoffk@apple.com>
8934
8935         * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib.
8936
8937 2003-08-08  Roger Sayle  <roger@eyesopen.com>
8938
8939         * tree.h (get_identifier) Define a macro form of get_identifier
8940         that calls get_identifier_with_length when the string is constant.
8941         (get_identifier_with_length): Change type of second argument to
8942         size_t in prototype.
8943         * stringpool.c (get_identifier): Undefine the macro before giving
8944         the function definition.
8945         (get_identifier_with_length): Change  type of second argument to
8946         size_t in function definition.
8947         * hashtable.c (calc_hash): Change type of second argument to size_t.
8948         (ht_lookup): Change type of third argument to size_t.  Reorganize
8949         to speed-up the cases where the hash table slot is empty, or the
8950         first probe matches (i.e. there isn't a collision).
8951         * hashtable.h (ht_lookup): Adjust function prototype.
8952
8953 2003-08-08  Bernardo Innocenti  <bernie@develer.com>
8954
8955         PR target/9697
8956         PR target/11777
8957         * longlong.h (count_leading_zeros): Exclude on __mcpu32__.
8958
8959 2003-08-08  Neil Booth  <neil@daikokuya.co.uk>
8960
8961         * common.opt: Add debug switches.
8962         * flags.h (use_gnu_debug_info_extensions): Boolify.
8963         * opts.c (write_symbols, debug_info_level,
8964         use_gnu_debug_info_extensions): Move from toplev.c.
8965         (set_debug_level): New.
8966         (common_handle_options): Handle debug switches.
8967         (print_help): Display target options directly.
8968         * toplev.c (debug_hooks): Don't initialize.
8969         (write_symbols, debug_info_level,
8970         use_gnu_debug_info_extensions): Move to opts.c.
8971         (debug_args, display_help, decode_g_option): Remove.
8972         (process_options): Set no debug if level zero here,
8973         and no-debug-hooks.  Error here if impossible debug format selected.
8974         * toplev.h (display_help, decode_g_option): Remove.
8975
8976 2003-08-08  Richard Sandiford  <rsandifo@redhat.com>
8977
8978         * tree.c (get_file_function_name_long): Fix size of alloca() area.
8979
8980 2003-08-08  Kelley Cook  <kelleycook@wideopenwest.com>
8981
8982         * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target
8983         and gcc_cv_prog_cmp_skip.
8984         * configure: Regenerate.
8985
8986 2003-08-08  Stan Cox  <scox@redhat.com>
8987
8988         * config/iq2000: New port.
8989         * config.gcc (iq2000-*-elf): Added.
8990         * doc/install.texi (Specific):  Add iq2000 description.
8991
8992 2003-08-08  Andreas Schwab  <schwab@suse.de>
8993
8994         * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting
8995         and insert missing empty argument.
8996         * configure: Regenerate.
8997
8998 2003-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8999
9000         * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
9001         (attr_length_millicode_call): Likewise.
9002         (attr_length_call): Likewise.  Revise some maximum insn lengths.
9003         (attr_length_indirect_call): Likewise.
9004         (output_call): Fix thinko that added extra nop.
9005         * pa.h (IN_NAMED_SECTION_P): Define.
9006
9007         PR c++/11712
9008         * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define
9009         __STDC_EXT__ when using C++ dialect.
9010
9011 2003-08-07  J"orn Rennecke <joern.rennecke@superh.com>
9012
9013         * sh.c (calc_live_regs): If the return address pointer is live,
9014         force pr live.
9015         (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register
9016         for saves / restores.
9017         (sh_expand_epilogue): If sh_media_register_for_return returns a
9018         register number, flag the instructions that restores PR_MEDIA_REG
9019         as possibly dead.
9020         Remove dead update of offset.
9021         (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if
9022         we can use the result of get_hard_reg_initial_val.
9023         * sh.md (UNSPEC_RA): New constant.
9024         (movsi_i_lowpart+1): Changed into a define_insn_and_split, named:
9025         (load_ra).  Handle UNSPEC_RA.
9026         (sibcall_media): Use PR_MEDIA_REG.
9027
9028         * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
9029         * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr
9030         needs saving on SHmedia.
9031
9032 2003-08-07  Ulrich Weigand  <uweigand@de.ibm.com>
9033
9034         * config/s390/s390.md: Replace all occurrences of \\t with \t.
9035
9036 2003-08-07  Richard Sandiford  <rsandifo@redhat.com>
9037
9038         * local-alloc.c (combine_regs): Fix comment typo.
9039
9040 2003-08-06  Zack Weinberg  <zack@codesourcery.com>
9041
9042         * c-decl.c (builtin_decls): Replace with first_builtin_decl
9043         and last_builtin_decl.
9044         (c_init_decl_processing): Initialize both.
9045         (c_reset_state): Iterate from first_builtin_decl to
9046         last_builtin_decl inclusive to reintroduce builtins.
9047
9048 2003-08-06  David Mosberger  <davidm@hpl.hp.com>
9049
9050         * doc/extend.texi (Function Attributes): Document the IA-64 version
9051         of the "model" attribute.
9052
9053         * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro.
9054         (SYMBOL_REF_SMALL_ADDR_P): Ditto.
9055         (PREDICATE_CODES): Mention "small_addr_symbolic_operand".
9056
9057         * config/ia64/ia64.c (ia64_handle_model_attribute): New function.
9058         (ia64_encode_section_info): Likewise.
9059         (ia64_attribute_table): Add "model" attribute.
9060         (TARGET_ENCODE_SECTION_INFO): Define.
9061         (small_addr_symbolic_operand): New function.
9062         (got_symbolic_operand): Return 0 for a symbolref to an object
9063         in the small address area.
9064         (enum ia64_addr_area): New type.
9065         (small_ident1): New variable.
9066         (small_ident2): Likewise.
9067         (init_idents): New function.
9068         (ia64_get_addr_area): Likewise.
9069         (ia64_encode_addr_area): Likewise.
9070         (ia64_encode_section_info): Likewise.
9071         (ia64_expand_load_address): For symbolic references to objects in
9072         the small-address-area, load the address via gen_rtx_SET() (which,
9073         eventually, will expand into "addl").
9074
9075 2003-08-06  Per Bothner  <pbothner@apple.com>
9076
9077         * line-map.h (fileline):  New typedef.
9078         (struct line_map, linemap_add, linemap_lookup):  Use it.
9079         * input.h (struct location_s):  Comment notes that long-term we want
9080         to replace it by fileline.
9081
9082 2003-08-06  J"orn Rennecke <joern.rennecke@superh.com>
9083
9084         Fix SHcompact exception handling:
9085         * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered
9086         by the prologue, return a MEM with return_address_pointer_rtx
9087         as address.
9088         * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode.
9089         (RETURN_ADDR_OFFSET): Don't define.
9090         (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia
9091         registers that are visible in compact mode.  Show that SHmedia
9092         registers still exist in compact mode, even if there are not
9093         readily accessible.
9094         (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect
9095         if GLOBAL.  Use DW_EH_PE_textrel (nominally) for CODE,
9096         and DW_EH_PE_pcrel for pic data.
9097         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel,
9098         set SYMBOL_FLAG_FUNCTION in symbol, and actually use
9099         DW_EH_PE_pcrel / DW_EH_PE_absptr encoding.
9100         (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it.
9101         * sh.md (movsi_media-1): New splitter.
9102
9103 2003-08-06  Graeme Peterson <gp@qnx.com>
9104
9105         * config/i386/nto.h: New.
9106         * config/i386/t-nto: New.
9107         * config.gcc (i[34567]86-*-nto-qnx*): New.
9108
9109 2003-08-06  Phil Edwards  <pme@gcc.gnu.org>
9110
9111         * doc/install.texi (*-*-solaris2*):  Refine configure instructions.
9112
9113 2003-08-06  Alan Modra  <amodra@bigpond.net.au>
9114
9115         * calls.c (load_register_parameters): Arrange for call_fusage to
9116         report the whole register as used when shifting to the msb.
9117
9118 2003-08-05  Roger Sayle  <roger@eyesopen.com>
9119
9120         * builtins.c (expand_builtin): When not optimizing, call the library
9121         function for all builtins that have library functions (except alloca).
9122
9123 2003-08-05  Alexandre Oliva  <aoliva@redhat.com>
9124
9125         * c.opt: Introduce -fworking-directory.
9126         * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
9127         * c-common.h (flag_working_directory): Declare.
9128         * c-common.c (flag_working_directory): Define.
9129         * c-opts.c (c_common_handle_options): Set it.
9130         (sanitize_cpp_opts): Set...
9131         * cpplib.h (struct cpp_options): ... working_directory option.
9132         (struct cpp_callbacks): Add dir_change.
9133         * cppinit.c (read_original_filename): Call...
9134         (read_original_directory): New.  Look for # 1 "directory//"
9135         and process it.
9136         (cpp_read_main_file): Call dir_change callback if working_directory
9137         option is set.
9138         * gcc.c (cpp_unique_options): Pass -g*.
9139         * c-lex.c (cb_dir_change): New.
9140         (init_c_lex): Set dir_change callback.
9141         * toplev.c (src_pwd): New static variable.
9142         (set_src_pwd, get_src_pwd): New functions.
9143         * toplev.h (get_src_pwd, set_src_pwd): Declare.
9144         * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
9145         * dwarf2out.c (gen_compile_unit_die): Likewise.
9146         * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.
9147
9148 2003-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9149
9150         * pretty-print.h (pp_set_line_maximum_length): Make macro.
9151         (pp_set_prefix): Likewise.
9152         (pp_destroy_prefix): Likewise.
9153         (pp_remaining_character_count_for_line): Likewise.
9154         (pp_clear_output_area): Likewise.
9155         (pp_formatted_text): Likewise.
9156         (pp_last_position_in_text): Likewise.
9157         (pp_emit_prefix): Likewise.
9158         (pp_append_text): Likewise.
9159         (pp_flush): Likewise.
9160         (pp_format_text): Likewise.
9161         (pp_format_verbatim): Likewise.
9162         (pp_tree_identifier): Tidy.
9163         * pretty-print.c (pp_base_format_text): Rename from pp_format_text.
9164         (pp_base_format_verbatim): Rename from pp_format_verbatim.
9165         (pp_base_flush): Rename from pp_flush.
9166         (pp_base_set_line_maximum_length): Rename from
9167         pp_set_line_maximum_length.
9168         (pp_base_clear_output_area): Rename from pp_clear_output_area.
9169         (pp_base_set_prefix): Rename from pp_set_prefix.
9170         (pp_base_destroy_prefix): Rename from pp_destroy_prefix.
9171         (pp_base_emit_prefix): Rename from pp_emit_prefix.
9172         (pp_base_append_text): Rename from pp_append_text.
9173         (pp_base_formatted_text): Rename from pp_formatted_text.
9174         (pp_base_last_position_in_text): Rename from pp_last_position_in_text.
9175         (pp_base_remaining_character_count_for_line): Rename from
9176         pp_remaining_character_count_for_line.
9177         * diagnostic.h (diagnostic_format_decoder): Tidy.
9178         (diagnostic_flush_buffer): Likewise.
9179         * c-pretty-print.h: (pp_c_string_literal): Declare.
9180         (pp_c_real_literal): Likewise.
9181         (pp_c_integer_literal): Likewise.
9182         * c-pretty-print.c (pp_c_char): Use pp_string in lieu of
9183         pp_identifier.
9184         (pp_c_character_literal): Tidy.
9185         (pp_c_string_literal): Make public.
9186         (pp_c_bool_literal): Likewise.
9187         (pp_c_integer_literal): Likewise.
9188         (pp_c_real_literal): Likewise.
9189
9190         * Makefile.in (C_PRETTY_PRINT_H): New variable.
9191         (c-pretty-print.o): Update dependence.
9192
9193 2003-08-05  Chris Demetriou  <cgd@broadcom.com>
9194
9195         * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore
9196         ".set nomacro" state.
9197         (fix_truncsfsi2_macro): Likewise.
9198
9199 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
9200
9201         * tree.h (DID_INLINE_FUNC): Remove macro.
9202         (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h,
9203         add tree check for FUNCTION_DECL.
9204         (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h.
9205         (struct tree_decl): Rename inlined_function_flag to
9206         declared_inline_flag.
9207         * c-common.h (c_lang_decl): Remove.
9208         (DECL_ESTIMATED_INSNS): Remove.
9209         * c-tree.h (struct lang_decl): Don't include c_lang_decl.
9210         (DECL_DECLARED_INLINE_P): Remove.
9211         * c-decl.c (grokdeclarator): Update comment.  With -finline-functions,
9212         do not reset DECL_DECLARED_INLINE_P.  Don't use DID_INLINE_FUNC.
9213         (finish_function): Make uninlinable a bool.  Fixup call to
9214         tree_inlinable_function_p() and fix some code style issues.
9215         * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'.
9216         * cgraph.c (dump_cgraph): Likewise.
9217         * cgraphunit.c (cgraph_decide_inlining): Likewise
9218         (cgraph_finalize_compilation_unit): Likewise.
9219         Also update call to tree_inlinable_function_p().
9220         (cgraph_default_inline_p): Don't use DID_INLINE_FUNC.  Instead
9221         look at DECL_DECLARED_INLINE and reverse logic.
9222         * print-tree.c (print_node): Likewise.
9223         * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC.
9224         * tree-inline.h (tree_inlinable_function_p): Make a bool.  Update
9225         prototype.
9226         * tree-inline.c (inlinable_function_p): Split up in this function to
9227         check for basic inlining inhibiting conditions, and new
9228         limits_allow_inlining() function.  Warn if inlining is impossible
9229         because the inline candidate calls alloca or uses sjlj exceptions.
9230         (limits_allow_inlining): this new function to check if the inlining
9231         limits are satisfied.  Throttle from currfn_max_inline_insns, not from
9232         MAX_INLINE_INSNS_SINGLE.  The latter only makes sense if
9233         MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal.
9234         Update prototypes.
9235         (tree_inlinable_function_p): Make a bool.  Update call to
9236         inlinable_function_p
9237         (expand_call_inline): Use limits_allow_inlining() when not in
9238         unit-at-a-time mode to decide on inlining.  Don't use DID_INLINE_FUNC,
9239         instead see if the function was declared `inline'.
9240
9241 2003-08-05  Josef Zlomek  <zlomekj@suse.cz>
9242
9243         * gcse.c (try_replace_reg): Fix updating of note.
9244
9245 2003-08-04  Roger Sayle  <roger@eyesopen.com>
9246
9247         PR middle-end/11771
9248         * fold-const.c (negate_expr_p <MINUS_EXPR>): Change to match the
9249         logic in negate_expr, i.e. we don't invert (A-B) for floating
9250         point types unless flag_unsafe_math_optimizations.
9251
9252 2003-08-04  Roger Sayle  <roger@eyesopen.com>
9253
9254         * fold-const.c (fold <PLUS_EXPR>): Transform x+x into x*2.0.
9255         Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2)
9256         for floating point expressions with -ffast-math.
9257         (fold <MULT_EXPR>): Don't transform x*2.0 into x+x.
9258         * expmed.c (expand_mult): Wrap long line.  Expand x*2.0 as x+x.
9259
9260 2003-08-04  Roger Sayle  <roger@eyesopen.com>
9261
9262         * c-common.c (flag_noniso_default_format_attributes): Delete.
9263         (built_in_attribute): Don't define/undefine DEF_FN_ATTR.
9264         (c_attrs_initialized): Delete.
9265         (c_common_nodes_and_builtins): Don't test c_attrs_initialized,
9266         always call c_init_attributes.
9267         (c_init_attributes): Don't define/undefine DEF_FN_ATTR.  Don't
9268         set c_attrs_initialized when done.
9269         (c_common_insert_default_attributes): Delete.
9270         * c-common.h (flag_noniso_default_format_attributes): Delete.
9271         (c_coomon_insert_default_attributes): Delete prototype.
9272         * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set
9273         flag_noniso_default_format_attributes.
9274
9275         * c-decl.c (c_insert_default_attributes): Delete.
9276         * c-tree.h (c_insert_default_attributes): Delete prototype.
9277
9278         * attribs.c (decl_attributes): Don't call insert_default_attributes
9279         langhook.  Update function description comment.
9280         * langhooks.h (lang_hooks): Remove insert_default_attributes field.
9281         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete.
9282         * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
9283         * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro.
9284
9285         * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't
9286         define.
9287
9288 2003-08-04  Richard Sandiford  <rsandif@redhat.com>
9289
9290         * config/mips/mips.c (override_options): Disable -G on targets that
9291         have no .section support.
9292         (mips_select_section): Use default_select_section for such targets.
9293
9294 2003-08-04  Nathanael Nerode  <neroden@gcc.gnu.org>
9295
9296         * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable.
9297         * fixinc/inclhack.def (static_getrnge): Remove disabled hack.
9298         * fixinc/fixincl.x: Rebuild.
9299         * fixinc/tests/base/regexp.h: New test.
9300
9301 2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
9302
9303         * c-ppoutput.c (cb_line_change): Don't skip line changing while
9304         parsing macro arguments in the top-level context.
9305
9306 2003-08-04  Neil Booth  <neil@daikokuya.co.uk>
9307
9308         * config.in: Remove HAVE_LSTAT.
9309         * configure, configure.in: Don't test for lstat.
9310
9311 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9312
9313         * opts.c (decode_options): Do language-specific initialization for
9314         the global diagnostic context.
9315         * langhooks-def.h (lhd_initialize_diagnostics): Declare.
9316         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro.
9317         (LANG_HOOKS_INITIALIZER): Adjust.
9318         * langhooks.h (struct lang_hooks): Add new field
9319         initialize_diagnostics.
9320         * langhooks.c (lhd_initialize_diagnostics): Define.
9321
9322 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9323
9324         * pretty-print.h:   Adjust macro definitions.
9325         * pretty-print.c (pp_newline): Rename to pp_base_newline.
9326         (pp_character): Rename to pp_base_character.
9327         (pp_string): Rename to pp_base_string.
9328         * c-pretty-print.c (pp_buffer): Move to pretty-print.h
9329         (pp_newline):  Likewise.  Adjust.
9330         (pp_c_char): Adjust.
9331
9332 2003-08-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9333
9334         * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS,
9335         BUILT_IN_LLABS): Move to miscellaneous section.
9336
9337 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
9338
9339         PR preprocessor/11534
9340         * cppexp.c (parse_defined): Warn only if -pedantic.
9341
9342 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
9343
9344         * cppfiles.c (stack_file): Use file path.
9345
9346 2003-08-02  Roger Sayle  <roger@eyesopen.com>
9347
9348         * builtin-types.def (BT_SSIZE): New primitive type.
9349         (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
9350         BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
9351         BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
9352         BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types.
9353         * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT,
9354         BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON,
9355         BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins.
9356         * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last
9357         few functions that define default attributes using it.
9358         * c-common.c (c_common_insert_default_attributes): Do nothing.
9359
9360         * doc/extend.texi: Document these "new" builtins.
9361
9362 2003-08-02  Kaz Kojima  <kkojima@gcc.gnu.org>
9363
9364         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
9365         (LIB_SPEC): Set -lpthread always when -pthread set.  Set -lieee
9366         when -mieee-fp set and -shared not set.
9367         (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5.
9368
9369 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
9370
9371         * cppfiles.c (struct _cpp_file): Rename once_only_next to
9372         next_file.  Remove import and pragma_once, add once_only.
9373         (find_file): Add new file structures to the all_files list.
9374         (should_stack_file): Mark #import-ed files once-only, and
9375         don't stack them if the file has already been stacked.
9376         (_cp_mark_file_once_only): Simplify.
9377         * cpphash.h (struct cpp_reader): Rename once_only_files
9378         to all_files.  Rename saw_pragma_once to seen_once_only.
9379         (_cpp_mark_file_once_only): Update prototype.
9380         * cpplib.c (do_pragma_once): Update.
9381
9382 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
9383
9384         * cppfiles.c (ENOTDIR): Remove.
9385         (open_file_in_dir): Rename find_file_in_dir.  Handle errors
9386         other than ENOENT here.
9387         (once_only_file_p): Rename should_stack_file.
9388         (find_file, open_file_failed, read_file_guts): Report errors
9389         with full path name.
9390         (read_file): Move pch handling to should_stack_file.
9391         (should_stack_file): Handle PCH and once-only issues, and
9392         reading the file.
9393         (stack_file): Don't do file reads.
9394
9395 2003-08-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9396
9397         * libgcov.c (gcov_exit): Cleanup and fix.
9398         * profile.c (compute_value_histograms): Don't try to read profiles
9399         that are not present.
9400
9401 2003-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9402
9403         * builtins.def: Categorize.
9404
9405         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
9406         Mind fp rounding.
9407         (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN.
9408
9409 2003-08-02  Andreas Tobler  <a.tobler@schweiz.ch>
9410
9411         * config.gcc: Enable posix threads by default on darwin.
9412
9413 2003-08-01  Jakub Jelinek  <jakub@redhat.com>
9414
9415         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes
9416         even if nehedges1 is 0.
9417
9418 2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9419
9420         * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h,
9421         fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c,
9422         fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes
9423         and defintions.
9424
9425         * fixinc/inclhack.def (broken_cabs): Make matching more generous.
9426         * fixinc/fixincl.x: Regenerate.
9427         * fixinc/tests/base/math.h: Regenerate to match test_text change.
9428
9429 2003-08-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9430
9431         * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *.
9432
9433 2003-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9434
9435         * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode,
9436         for accesses to exc_ptr.
9437
9438 2003-08-01  Geoffrey Keating  <geoffk@apple.com>
9439
9440         * doc/sourcebuild.texi (Front End Directory): Don't make references
9441         to libsubdir, it's not part of the interface to frontends.
9442         * doc/install.texi (Configuration): Help users read faster by saying
9443         that GCC's configure options are the standard autoconf ones.
9444         Mention --libdir.  Update the default rules for finding the
9445         assembler.  Don't use libsubdir since we haven't said what it means.
9446         (Specific): In the Solaris 7 notes, update the place to put the
9447         assembler.
9448         * doc/invoke.texi: Update lib/gcc-lib to lib/gcc.
9449         * doc/cpp.texi (Search Path): Actually, the search path
9450         depends on libdir, which can relocate with cpp.
9451         * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's
9452         now a private interface between the Makefile and the driver.
9453
9454 2003-08-01  Richard Henderson  <rth@redhat.com>
9455
9456         * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR.
9457
9458         * varasm.c (lookup_constant_def): New function.
9459         * rtl.h (lookup_constant_def): Declare it.
9460         * dwarf2out.c (loc_descriptor_from_tree): Use it.
9461         Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR.
9462
9463 2003-08-01  Zack Weinberg  <zack@codesourcery.com>
9464
9465         * c-decl.c (gettags, pushdecl_function_level): Delete.
9466         (last_function_parm_vars): Rename last_function_parm_others.
9467         (current_function_parm_vars): Rename current_function_parm_others.
9468         (struct c_scope): Rewrite comment explaining this data structure.
9469         Add names_last, blocks_last, parms_last fields.  Rename
9470         incomplete_list to incomplete.
9471         (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros.
9472         (poplevel): Ignore second argument.  No need to nreverse
9473         anything.  Restructure such that each list is processed
9474         exactly once.  Use 'const location_t *locus' syntactic sugar
9475         variable where useful.  Issue unused variable warnings
9476         ourselves, do not rely on function.c.
9477         (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND.
9478         (pushdecl_top_level): Likewise.  Don't call duplicate_decls.
9479         (implicitly_declare): decl cannot be error_mark_node.
9480         (undeclared_variable): Manipulate scope structure directly.
9481         (c_make_fname_decl): Likewise.
9482         (getdecls, c_init_decl_processing): Fix comment.
9483         (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT.  No need
9484         for 'last' variable.
9485         (grokparms): No need to nreverse parms list.
9486         (store_parm_decls_newstyle): Set up the parms_last and
9487         names_last fields of the new scope too.
9488         (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set
9489         on parms to begin with; check this under ENABLE_CHECKING.  Set
9490         up parms_last.
9491         (check_for_loop_decls): Refer directly to current_scope->tags.
9492         Use consistent quote style in diagnostics.
9493         (c_write_global_declarations): The names list is not backward.
9494
9495         * c-common.h: Don't prototype gettags.
9496         * c-parse.in: Call poplevel with second argument 0 always.
9497
9498 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9499
9500         * builtins.def: Resort builtins.
9501
9502 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9503
9504         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN,
9505         DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN):
9506         Prepend "__builtin_" onto NAME with string concatenation.  Remove
9507         explicit "__builtin_" from each macro call.
9508
9509         Reformat entire file.
9510
9511 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9512
9513         * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9514         ATTR_MATHFN_FPROUNDING_ERRNO): New macros.  Use throughout.
9515
9516 2003-08-01  Andreas Krebbel  <krebbel1@de.ibm.com>
9517
9518         * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL,
9519         CCL1, or CCL2 modes with floating point operations.
9520
9521         * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc",
9522         "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc",
9523         "*subdf3_cconly"): New insns.
9524         ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise.
9525
9526 2003-08-01  Neil Booth  <neil@daikokuya.co.uk>
9527
9528         * Makefile.in: Refine dependencies.
9529         * c-opts.c (c_common_handle_option): Do nothing for -Wimport.
9530         * c.opt: Update help for -Wimport.
9531         * cppfiles.c: Include hashtab.h.  Update comments.
9532         (stack_file): Read the file before updating dependencies.
9533         (once_only_file_p): Be smarter about marking once-only files.
9534         (_cpp_mark_file_once_only): Correct the check for existence on
9535         the list.
9536         (open_file_failed): Use name not path, which is NULL.
9537         * cpphash.h: Don't include hashtab.h.
9538         (struct _cpp_file): Remove.
9539         (struct cpp_reader): Update.
9540         * cppinit.c (cpp_create_reader): Don't initialize warn_import.
9541         * cpplib.h (struct cpp_options): Remove warn_import.
9542         (cpp_simplify_path): Remove.
9543
9544 2003-08-01  Nathan Sidwell  <nathan@codesourcery.com>
9545
9546         PR c++/11295
9547         * doc/extend.texi (Statement Expressions): Document C++ semantics.
9548
9549 2003-07-31  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
9550
9551         * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le.
9552
9553 2003-07-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9554
9555         * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE'
9556         throughout.
9557         * builtins.def: Likewise.
9558
9559 2003-07-31  Jason Merrill  <jason@redhat.com>
9560
9561         * Makefile.in (bubblestrap): Don't require a previous full
9562         bootstrap.
9563
9564         * expr.c (mostly_zeros_p): No longer static.
9565         * tree.h: Declare it.
9566         * stmt.c (resolve_asm_operand_names): Don't copy the pattern
9567         unless we need to do substitutions.
9568
9569 2003-07-31  Roger Sayle  <roger@eyesopen.com>
9570
9571         * fold-const.c (fold <MULT_EXPR>): Optimize both x*pow(x,c) and
9572         pow(x,c)*x as pow(x,c+1) for constant values c.  Optimize x*x
9573         as pow(x,2.0) when the latter will be expanded back into x*x.
9574         (fold <RDIV_EXPR>): Optimize pow(x,c)/x as pow(x,c-1).
9575         * builtins.c (expand_builtin_pow): Ignore flag_errno_math as
9576         pow can never set errno when used with an integer exponent.
9577         Always use expand_powi when exponent is -1, 0, 1 or 2.
9578         (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0)
9579         as 1.0/(x*x).  This avoids unbounded recursion as we now prefer
9580         the pow forms of these expressions.
9581
9582 2003-07-31  Geoffrey Keating  <geoffk@apple.com>
9583
9584         * Makefile.in (libexecdir): New.
9585         (libsubdir): Use gcc instead of gcc-lib.
9586         (libexecsubdir): New.
9587         (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir.
9588         (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of
9589         gcc-lib.
9590         (installdirs): Make libexecsubdir.
9591         (install-common): Put executables in libexecsubdir.
9592         (itoolsdir): Use libexecsubdir.
9593         (itoolsdatadir): New.
9594         (install-mkheaders): Separate data files and executables.
9595         (install-collect2): Put executables in libexecsubdir.
9596         (uninstall): Remove libexecsubdir.
9597         * mkheaders.in: Update for new arrangement of files.
9598         (libexecdir): New.
9599         (libexecsubdir): New.
9600         (itoolsdir): Use libexecsubdir.
9601         (itoolsdatadir): New.
9602         * gcc.c (gcc_libexec_prefix): New.
9603         (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib.
9604         (standard_exec_prefix_1): Use libexec.
9605         (standard_exec_prefix_2): New.
9606         (standard_libexec_prefix): New.
9607         (process_command): Update for new arrangement of files.  Compute
9608         gcc_libexec_prefix.  Update for change from gcc-lib to gcc.
9609
9610 2003-07-31  Nathanael Nerode  <neroden@gcc.gnu.org>
9611
9612         * inclhack.def (stdio_va_list): Avoid bogus replacement which
9613         triggers on Interix.
9614         * fixincl.x: Regenerate.
9615
9616 2003-07-31  Jakub Jelinek  <jakub@redhat.com>
9617
9618         * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS
9619         SYMBOL_REFs not inside UNSPEC even in PLUS rtx.
9620
9621 2003-07-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9622
9623         * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
9624
9625 2003-07-31  Per Bothner  <pbothner@apple.com>
9626
9627         * opts.c (in_fnames, num_in_fnames):  Moved here from c-opts.
9628         (add_input_filename):  New function.
9629         (handle_options):  Call add_input_filename directly instead of
9630         with a lang hook.
9631         * opts.h (in_fnames, num_in_fnames):  Moved here.
9632         (add_input_filename):  Declare.
9633         * c-decl.c:  Need to #include opts.h.
9634         * Makefile.in (c-decl.o):  Also depends on opts.h.
9635         * c-opts.c (in_fnames, num_in_fnames):  Moved to opts.c.
9636         (c_common_handle_filename):  Replaced by add_input_filename.
9637         * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename):
9638         Remove.
9639         * langhooks.h (struct lang_hooks):  Remove handle_filename hook.
9640         * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
9641         (LANG_HOOKS_INITIALIZER):  Remove use of LANG_HOOKS_HANDLE_FILENAME.
9642         * c-lang.c (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
9643
9644 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9645
9646         * combine.c (try_combine): Set JUMP_LABEL for newly created
9647         unconditional jump.
9648
9649 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9650
9651         * fold-const.c (fold): Fold some comparisons of bit operations.
9652
9653 2003-07-31  Jan Hubicka  <jh@suse.cz>
9654
9655         * cgraph.c (create_edge): Fix typo.
9656         * i386.c (pic_symbolic_operand): Reorder tests.
9657
9658 2003-07-31  Nathan Sidwell  <nathan@codesourcery.com>
9659
9660         * doc/gcov.texi (Invoking Gcov): Describe output name mangling
9661         more fully.
9662         (Gcov Data Files): Update.
9663
9664 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9665
9666         * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by
9667         default.
9668
9669         * gthr-posix.c: New file.
9670         * gthr-posix.h: Define _REENTRANT if missing.
9671         Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK.
9672
9673         * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided
9674         by gthr-posix.o.
9675         * config/alpha/t-osf-pthread: New file.
9676
9677         * fixinc/inclhack.def (alpha_pthread): New fix.
9678         * fixinc/fixincl.x: Regenerate.
9679         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase.
9680
9681         * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads
9682         warning.
9683         Fixes PR bootstrap/9330.
9684
9685 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9686
9687         * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5*
9688         without GNU ld.
9689         Update comment.
9690         * configure: Regenerate.
9691
9692 2003-07-31  Vladimir Makarov  <vmakarov@redhat.com>
9693
9694         * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0
9695         setter.
9696
9697 2003-07-30  Roger Sayle  <roger@eyesopen.com>
9698
9699         * builtins.def: Alphabetize.
9700
9701 2003-07-30  Matt Kraai  <kraai@alumni.cmu.edu>
9702
9703         * doc/c-tree.texi: Normalize spellings of "lowercase" and
9704         "uppercase".
9705         * doc/cpp.texi: Likewise.
9706         * doc/md.texi: Likewise.
9707         * doc/rtl.texi: Likewise.
9708         * doc/tm.texi: Likewise.
9709
9710 2003-07-30  Matt Kraai  <kraai@alumni.cmu.edu>
9711
9712         * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3)
9713         (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves
9714         of cc1obj.
9715
9716 2003-07-30  Chris Demetriou  <cgd@broadcom.com>
9717
9718         * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these
9719         macros before defining them.
9720
9721 2003-07-31  Ulrich Weigand  <uweigand@de.ibm.com>
9722
9723         * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH,
9724         UNSPECV_BLOCKAGE): New constants.
9725         ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31",
9726         "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2"
9727         splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee",
9728         "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them.
9729
9730         (all insns and expanders): Write output control string as brace block
9731         where appropriate.  Remove \-escapes for doublequote characters.
9732
9733 2003-07-31  Jan Hubicka  <jh@suse.cz>
9734
9735         * gcse.c (insert_store): Fix typo in previous patch.
9736
9737 2003-07-30  Neil Booth  <neil@daikokuya.co.uk>
9738
9739         * cppfiles.c (stack_file, open_file_failed): Use path for deps.
9740
9741 2003-07-30  Andi Kleen  <ak@muc.de>
9742
9743         * loop.c (check_dbra_loop): Allow LTU in the loop condition.
9744
9745 2003-07-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9746
9747         * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes.
9748         * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER,
9749         GCOV_N_VALUE_COUNTERS): New.
9750         * profile.c (compute_value_histograms): New static function.
9751         (branch_prob): Read back the value histograms.
9752         * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note.
9753         * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note.
9754         * value-prof.c: Add comment on reading the profile.
9755         * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New.
9756         * doc/invoke.texi (-fprofile-values): Document behavior with
9757         -fbranch-probabilities.
9758
9759 2003-07-30  David Edelsohn  <edelsohn@gnu.org>
9760
9761         * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__.
9762
9763 2003-07-30  Ulrich Weigand  <uweigand@de.ibm.com>
9764
9765         * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset
9766         symbolically.
9767
9768 2003-07-30  Jan Hubicka  <jh@suse.cz>
9769
9770         * gcse.c (insert_store): Ignore fake edges.
9771
9772         * c-common.c (flag_vtable_gc): Kill.
9773         * c-common.g (flag_vtable_gc): Kill.
9774         * c-opts (c_common_handle_option): Kill.
9775         * c.opt (fvtable-gc): Kill.
9776         * final.c (final_scan_insn): Do not call assemble_vtable_entry.
9777         * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill.
9778         * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill.
9779
9780         * invoke.texi (-ftable-gc): Kill documentation.
9781
9782         * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE
9783         just because function body is missing.
9784
9785         * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs.
9786
9787 2003-07-30  Ranjit Mathew  <rmathew@hotmail.com>
9788
9789         * unwind-sjlj.c: Fix typo in file description.
9790
9791 2003-07-30  Alan Modra  <amodra@bigpond.net.au>
9792
9793         * calls.c (load_register_parameters): When shifting reg sized values
9794         to the msb, move the value to a reg first.
9795
9796 2003-07-29  Geoffrey Keating  <geoffk@apple.com>
9797
9798         * cppfiles.c (stack_file): Leave filename as "" rather than "<stdin>".
9799         * line-map.h (linemap_add): Update comments.
9800         * line-map.c (linemap_add): Update comments, interpret zero-length
9801         filename as "<stdin>".
9802
9803 2003-07-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9804
9805         * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.
9806
9807 2003-07-29  Zack Weinberg  <zack@codesourcery.com>
9808
9809         * c-decl.c (last_function_parm_vars, current_function_parm_vars):
9810         New static variables.
9811         (struct c_scope): Add parms and warned_forward_parm_decls
9812         fields; remove parm_order.
9813         (storedecls, storetags): Delete.
9814         (poplevel): Also clear bindings on the parms chain.
9815         (pushdecl): Handle forward declarations of parameters, and
9816         chain PARM_DECLs on the parms list, not the names list.
9817         (lookup_name_current_level): Check for PARM_DECLs on the parms
9818         list too.
9819         (push_parm_decl): Don't update parm_order.
9820         (clear_parm_order): Rename mark_forward_parm_decls.  Issue the
9821         warning, only once per parameter list, and set TREE_ASM_WRITTEN
9822         on the decls here.  Then move the forward decls to the names list.
9823         (grokparms): Set last_function_parm_vars.
9824         (get_parm_info): Don't use gettags or getdecls.  No need to
9825         extract non-parms from the parms list, or reorganize the parms
9826         list.  Feed nonparms back in the TREE_TYPE of the list node
9827         returned.  Issue only one error per parameter list for "void"
9828         appearing more than once in said parameter list.  Collapse
9829         parmlist_tags_warning into this function to avoid double scan
9830         of tags list.
9831         (start_function): Set current_function_parm_vars.
9832         (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope
9833         directly.  Get non-parms from current_function_parm_vars; no
9834         need to extract them from the parms chain.  Properly bind tags
9835         in the new scope.
9836         (store_parm_decls_oldstyle): No need to extract non-parameters
9837         from the parms chain, nor to store them back afterward.  Move
9838         declaration to top of function, restructure code reordering
9839         DECL_ARGUMENTS.
9840         (store_parm_decls): No need to save and restore warn_shadow.
9841         * c-parse.in: Don't call parmlist_tags_warning nor
9842         clear_parm_order.  Call mark_forward_parm_decls when forward
9843         parm decls are encountered.
9844         * c-tree.h: Prototype mark_forward_parm_decls; not
9845         clear_parm_order or parmlist_tags_warning.
9846
9847 2003-07-29  Geoffrey Keating  <geoffk@apple.com>
9848
9849         * c-common.c (allow_pch): Remove.
9850         * c-common.h (allow_pch): Remove.
9851         (c_common_no_more_pch): Declare.
9852         * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate.
9853         * c-pch.c: Include hosthooks.h.
9854         (c_common_valid_pch): Don't check allow_pch.
9855         (c_common_read_pch): Clear valid_pch to prevent reading PCH files.
9856         (c_common_no_more_pch): New.
9857         * ggc-common.c: Include hosthooks.h.
9858         (gt_pch_save): Call gt_pch_get_address.
9859         (gt_pch_restore): Call gt_pch_use_address.
9860         * hooks.c (hook_voidp_size_t_null): New.
9861         (hook_bool_voidp_size_t_false): New.
9862         * hooks.h (hook_voidp_size_t_null): New.
9863         (hook_bool_voidp_size_t_false): New.
9864         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New.
9865         (HOST_HOOKS_GT_PCH_USE_ADDRESS): New.
9866         (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS,
9867         HOST_HOOKS_GT_PCH_USE_ADDRESS.
9868         * hosthooks.h (struct host_hooks): Add gt_pch_get_address,
9869         gt_pch_use_address.
9870         * doc/hostconfig.texi (Host Common): Document
9871         HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS.
9872         * Makefile.in (c-pch.o): Depend on hosthooks.h.
9873         (ggc-common.o): Likewise.
9874
9875         * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define.
9876         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define.
9877         (pch_address_space): New.
9878         (darwin_rs6000_gt_pch_get_address): New.
9879         (darwin_rs6000_gt_pch_use_address): New.
9880
9881 2003-07-29  Neil Booth  <neil@daikokuya.co.uk>
9882
9883         PR preprocessor/11569
9884         PR preprocessor/11649
9885         * Makefile.in (LIBCPP_DEPS): Add HASHTAB_H.
9886         * cppfiles.c: Completely rewritten.
9887         * c-incpath.c (free_path, remove_duplicates, heads, tails, add_path):
9888         struct cpp_path is now struct cpp_dir.
9889         (remove_duplicates): Don't simplify path names.
9890         * c-opts.c (c_common_parse_file): cpp_read_next_file renamed
9891         cpp_stack_file.
9892         * cpphash.h: Include hashtab.h.
9893         (_cpp_file): Declare.
9894         (struct cpp_buffer): struct include_file is now struct _cpp_file,
9895         and struct cpp_path is now struct cpp_dir.  Rename members.
9896         (struct cpp_reader): Similarly.  New members once_only_files,
9897         file_hash, file_hash_entries, quote_ignores_source_dir,
9898         no_search_path, saw_pragma_once.  Remove all_include_files and
9899         max_include_len.  Make some members bool.
9900         (_cpp_mark_only_only): Renamed from _cpp_never_reread.
9901         (_cpp_stack_file): Renamed from _cpp_read_file.
9902         (_cpp_stack_include): Renamed from _cpp_execute_include.
9903         (_cpp_init_files): Renamed from _cpp_init_includes.
9904         (_cpp_cleanup_files): Renamed from _cpp_cleanup_includes.
9905         * cppinit.c (cpp_create_reader): Initialize no_search_path.  Update.
9906         (cpp_read_next_file): Rename and move to cppfiles.c.
9907         (cpp_read_main_file): Update.
9908         * cpplib.c (run_directive): Update for renamed members.
9909         (do_include_common, _cpp_pop_buffer): Update.
9910         (do_import): Undeprecate #import.
9911         (do_pragma_once): Undeprecate.  Use _cpp_mark_file_once_only.
9912         * cpplib.h: Remove file_name_map_list.
9913         (cpp_options): Remove map_list.
9914         (cpp_dir): Rename from cpp_path.  New datatype for name_map.
9915         (cpp_set_include_chains, cpp_stack_file, cpp_included): Update.
9916
9917 2003-07-29  Phil Edwards  <pme@gcc.gnu.org>
9918
9919         * Makefile.in:  Make stamp-objdir safe for parallel builds.
9920
9921 2003-07-29  Phil Edwards  <pme@gcc.gnu.org>
9922
9923         * Makefile.in (stmp-docobjdir):  New target; ensure $docobjdir exists.
9924         (info):  Depend on stmp-docobjdir.
9925
9926 2003-07-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9927
9928         * configure: Regenerate.
9929
9930 2003-07-29  Jan Hubicka  <jh@suse.cz>
9931
9932         PR C++/11131
9933         * tree-inline.c (expand_call_inline): Always call inlinable_function_p
9934         in !unit-at-a-time mode.
9935
9936 2003-07-28  Geoffrey Keating  <geoffk@apple.com>
9937
9938         * c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect
9939         main function.
9940
9941 2003-07-28  Mark Mitchell  <mark@codesourcery.com>
9942
9943         PR c++/11667
9944         * c-common.c (shorten_compare): Take into account differences
9945         between C and C++ representation for enumeration types.
9946         * tree.h (set_min_and_max_values_for_integral_type): Declare.
9947         * stor-layout.c (set_min_and_max_values_for_integral_type): New
9948         function, broken out from ...
9949         (fixup_signed_type): ... here and ...
9950         (fixup_unsigned_type): ... here.
9951
9952 2003-07-28  Zack Weinberg  <zack@codesourcery.com>
9953
9954         * c-decl.c: Update commentary, adjust blank lines throughout.
9955         (struct c_scope): Fix indentation.  Reorder members so
9956         outer-context pointers come first, booleans last.
9957         (duplicate_decls, define_label): Use a 'locus' variable for
9958         diagnostic locations in a few more places.
9959         (warn_if_shadowing): Un-split a conditional that fits on one line.
9960         (c_init_decl_processing): No need to clear current_scope and
9961         current_function_scope.
9962         (start_decl): Merge if/else if statements with same action.
9963         (push_parm_decl): Rename old_immediate_size_expand to use
9964         save_foo convention; save/restore around entire function.
9965         (grokdeclarator): Remove unnecessary braces.
9966
9967 2003-07-28  Hans-Peter Nilsson  <hp@bitrange.com>
9968             Michael Culbertson  <Michael.J.Culbertson@wheaton.edu>
9969
9970         * c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn
9971         when warn_declaration_after_statement.  Call pedwarn_c90, not
9972         pedwarn.  Correct message: it's "ISO C90", not "ISO C89".
9973         * c-common.c (warn_declaration_after_statement): Define.
9974         * c-common.h (warn_declaration_after_statement): Declare.
9975         * c.opt (Wdeclaration-after-statement): New.
9976         * c-errors.c (pedwarn_c90): New function.
9977         * c-opts.c (c_common_handle_option) <case
9978         OPT_Wdeclaration_after_statement>: New.
9979         * c-tree.h (pedwarn_c90): Declare.
9980         * doc/invoke.texi (Option Summary): Document
9981         -Wdeclaration-after-statement.
9982         (Warning Options): Ditto.
9983
9984 2003-07-28  Jan Hubicka  <jh@suse.cz>
9985
9986         * i386.md (memory attribute) Avoid accessing uninitialized memory
9987         for ishift1 type instructions.
9988
9989 2003-07-28  Jakub Jelinek  <jakub@redhat.com>
9990
9991         * configure.in (--enable-checking): Add fold category.
9992         (ENABLE_FOLD_CHECKING): Define if requested.
9993         * configure: Rebuilt.
9994         * config.in: Rebuilt.
9995         * doc/install.texi: Document it.
9996         * fold-const.c: Include md5.h.
9997         [ENABLE_FOLD_CHECKING] (fold): Define to fold_1.
9998         [ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed,
9999         print_fold_checksum): New functions.
10000
10001         * fold-const.c (fold): Never modify argument passed to fold, instead
10002         change a copy and return it.
10003         * convert.c (convert_to_integer): Likewise.
10004
10005 2003-07-27  Nathanael Nerode  <neroden@gcc.gnu.org>
10006
10007         * fixinc/fixinc.svr4: Remove dead code.  Remove now-unnecessary
10008         cleanup of junk after #else and #endif directives.  Collapse repeated
10009         clauses into for statment.
10010
10011         * fixinc/fixincl.sh: GNU C -> GCC.  Add usage comment.
10012
10013 2003-07-27  Zack Weinberg  <zack@codesourcery.com>
10014
10015         * c-decl.c (struct c_scope): Remove keep_if_subblocks field.
10016         (keep_next_if_subblocks): Rename next_is_function_body.
10017         (pushlevel): Adjust commentary.  Always set ->keep on the
10018         outermost level of a function.  Don't set ->keep_if_subblocks.
10019         (poplevel): Adjust commentary.  Don't look at ->keep_if_subblocks.
10020         (store_parm_decls): Adjust to match.
10021         (finish_function): Adjust to match.
10022         Call poplevel with all three arguments zero.
10023
10024         * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle):
10025         New functions split out of store_parm_decls.
10026         Avoid unnecessary work. Use local variables consistently.
10027         (store_parm_decls): Likewise.
10028
10029         (finish_function): No need to set functionbody flag on call to
10030         poplevel.
10031         (struct language_function): Remove scope field.
10032         (c_push_function_context, c_pop_function_context): No need to
10033         save and restore current_scope.
10034
10035 2003-07-27  Nathan Sidwell  <nathan@codesourcery.com>
10036
10037         * doc/extend.texi (Deprecated Features): Implicit typename is
10038         gone. Default args on types is going.
10039
10040 2003-07-26  J"orn Rennecke <joern.rennecke@superh.com>
10041
10042         * Makefile.in (ifcvt.o): Depend on target.h
10043         * ifcvt.c (target.h): Include.
10044         (if_convert): Don't call mark_loop_exit_edges if we can't
10045         modify jumps.
10046
10047 2003-07-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10048
10049         * doc/install.texi (Testing): Adjust required versions of DejaGnu.
10050
10051 2003-07-26  Richard Henderson  <rth@redhat.com>
10052
10053         PR inline-asm/11676
10054         * cse.c (count_reg_usage): Handle asm_operands properly.
10055
10056 2003-07-26  Roger Sayle  <roger@eyesopen.com>
10057
10058         * builtins.def (DEF_FALLBACK_BUILTIN): Delete.
10059         (DEF_EXT_FALLBACK_BUILTIN): Delete.
10060         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using
10061         the regular DEF_EXT_LIB_BUILTIN macro.
10062         (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using
10063         the regular DEF_LIB_BUILTIN macro.
10064         (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED,
10065         BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED,
10066         BUILT_IN_FWRITE_UNLOCKED): Declare using the regular
10067         DEF_EXT_LIB_BUILTIN macro.
10068
10069         * c-decl.c (duplicate_decls): Remove code to handle builtin
10070         functions prototyped without an argument list.
10071
10072 2003-07-26  Danny Smith  <dannysmith@users.sourceforge.net>
10073
10074         * config/i386/winnt.c: Revert 2003-07-08 change.
10075         (i386_pe_section_type_flags): Remove error_with_decl here too.
10076
10077 2003-07-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10078
10079         * config/arm/pe.c (arm_mark_dllimport): Don't use xxx_with_decl.
10080         * config/mcore/mcore.c (mcore_mark_dllimport): Likewise.
10081         * config/v850/v850.c (v850_handle_data_area_attribute): Likewise.
10082         (v850_handle_data_area_attribute): Likewise.
10083
10084 2003-07-26  Geoffrey Keating  <geoffk@apple.com>
10085
10086         * varasm.c (output_constant_def_contents): Use
10087         ASM_DECLARE_CONSTANT_NAME if defined.
10088         * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME.
10089         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized
10090         objects get at least one byte to prevent assembler problems.
10091         (ASM_DECLARE_CONSTANT_NAME): New.
10092
10093         * Makefile.in (libbackend.o): Remove options_.h.
10094         (mostlyclean): Likewise.
10095
10096         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
10097         insert a label at the end of an function under Mach-O.
10098
10099         * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test.
10100
10101 2003-07-25  Aldy Hernandez  <aldyh@redhat.com>
10102
10103         * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer
10104         equality.
10105         (spe_init_builtins): Declare __ev64_opaque__ as a builtin type.
10106
10107         * config/rs6000/spe.h: Remove __ev64_opaque__ definition.
10108
10109 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10110
10111         * doc/passes.texi (Passes): Mention pretty-printing and
10112         diagnostic files.
10113
10114 2003-07-25  Nathan Sidwell  <nathan@codesourcery.com>
10115
10116         * doc/extend.texi (Function Attributes): GNU C++ does now allow
10117         unused parameter decls.
10118         (Attribute Syntax): GNU C++ does not allow label attributes to be
10119         after the ':'.
10120
10121 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10122
10123         * objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl.
10124         (objc_declare_class): Likewise.
10125         (error_with_ivar): Likewise.
10126         (start_class): Likewise.
10127         (warn_with_method): Likewise.
10128
10129 2003-07-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10130
10131         Remove pedwarn_with_decl, warning_with_decl and error_with_decl
10132         from GCC.
10133         * calls.c (try_to_integrate): Don't use xxx_with_decl.
10134         (expand_call): Likewise.
10135         * dwarfout.c (output_reg_number): Likewise.
10136         * expr.c (expand_expr): Likewise.
10137         * function.c (assign_temp): Likewise.
10138         (uninitialized_vars_warning): Likewise.
10139         (setjmp_args_warning): Likewise.
10140         (expand_function_end): Likewise.
10141         * stmt.c (fixup_gotos): Likewise.
10142         (warn_about_unused_variables): Likewise.
10143         (expand_end_bindings): Likewise.
10144         * stor-layout.c (layout_decl): Likewise.
10145         (place_field): Likewise.
10146         * toplev.c (check_global_declarations): Likewise.
10147         (rest_of_handle_inlining): Likewise.
10148         (default_tree_printer): New function.
10149         (general_init): Initialize diagnostic machinery before routing
10150         signals to the ICE machinery.  Set default tree printer.
10151         * toplev.h (pedwarn_with_decl): Remove declaration.
10152         (warning_with_decl): Likewise.
10153         (error_with_decl): Likewise.
10154         (pedwarn): Remove attribute for the time being.
10155         * tree-inline.c (expand_call_inline): Don't use xxx_with_decl.
10156         * varasm.c (named_section): Likewise.
10157         (make_decl_rtl): Likewise.
10158         (assemble_variable): Likewise.
10159         (merge_weak): Likewise.
10160         (declare_weak): Likewise.
10161
10162         * diagnostic.h: Move non-diagnostic stuff into pretty-print.h.
10163         * diagnostic.c: Move non-diagnostic stuff into pretty-print.c.
10164         (format_with_decl): Remove.
10165         (diagnostic_for_decl): Likewise.
10166         (pedwarn_with_decl): Likewise.
10167         (warning_with_decl): Likewise.
10168         (error_with_decl): Likewise.
10169         (diagnostic_initialize): Adjust.
10170         (diagnostic_count_diagnostic): Likewise.
10171         (announce_function): Likewise.
10172         (lhd_print_error_function): Likewise.
10173         (diagnostic_report_current_module): Likewise.
10174         (default_diagnostic_starter): Likewise.
10175         (diagnostic_report_diagnostic): Likewise.
10176         (default_diagnostic_finalizer): Likewise.
10177         (verbatim): Likewise.
10178         (error): Likewise.
10179         (warning): Likewise.
10180         * opts.c (common_handle_option): Likewise.
10181         * pretty-print.c: New file.
10182         * c-pretty-print.h (pp_base): Override.
10183         * c-pretty-print.c: Adjust use of macros throughout.
10184         (pp_buffer): New macro.
10185         (pp_newline): Likewise.
10186         * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy.
10187         * Makefile.in (DIAGNOSTIC_H): New variable.
10188         (c-errors.o): Use it.
10189         (c-objc-common.o): Likewise.
10190         (c-common.o): Likewise.
10191         (c-opts.o): Likewise.
10192         (c-format.o): Likewise.
10193         (diagnostic.o): Likewise.
10194         (opts.o): Likewise.
10195         (toplev.o): Likewise.
10196         (rtl-error.o): Likewise.
10197         (dwarf2out.o): Likewise.
10198         (jump.o): Likewise.
10199         (pretty-print.o): New rule.
10200
10201 2003-07-24  Roger Sayle  <roger@eyesopen.com>
10202
10203         * builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from
10204         front-end builtins to normal builtins, using DEF_LIB_BUILTIN.
10205         (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed
10206         from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN.
10207         (DEF_FRONT_END_LIB_BUILTIN): Delete.
10208         (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete.
10209         (BUILT_IN_FWRITE_UNLOCKED): Wrap long line.
10210
10211         * builtins.c (build_string_literal): New function to construct
10212         a char* pointer to a string literal.
10213         (expand_builtin_fputs): Change 2nd argument from "int ignore" to
10214         "rtx target" to be consistent with other expand_builtin_* functions.
10215         Change 3rd argument from "int unlocked" to "bool unlocked".
10216         (expand_builtin_printf): Rewrite of c_expand_builtin_printf from
10217         c-common.c to avoid front-end dependencies.  Optimize printf("")
10218         as a no-op when the result isn't required.  Handle embedded NULs
10219         in format string.
10220         (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf
10221         from c-common.c to avoid front-end dependencies.  Likewise, optimize
10222         fprintf(fp,"") as a no-op when the result isn't required, evaluating
10223         fp for side-effects.  Handle embedded NULs in format string.
10224         (expand_builtin_sprintf): Fix typo.
10225         (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not
10226         optimizing.  Adjust calls of expand_builtin_fputs to match the API
10227         change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using
10228         expand_builtin_printf.  Likewise, expand BUILT_IN_FPRINTF_UNLOCKED
10229         and BUILT_IN_FPRINTF using expand_builtin_fprintf.
10230
10231         * c-common.c (is_valid_printf_arglist): Delete.
10232         (c_expand_builtin): Delete.
10233         (c_expand_builtin_printf): Moved to builtins.c. Delete.
10234         (c_expand_builtin_fprintf): Moved to builtins.c.  Delete.
10235         (c_expand_expr): No longer treat CALL_EXPRs specially.
10236         (CALLED_AS_BUILT_IN): Delete.
10237
10238 2003-07-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10239
10240         PR optimization/11631
10241         * gcse.c (store_motion): Connect infinite loops to exit.
10242
10243 2003-07-24  Jason Merrill  <jason@redhat.com>
10244
10245         * tree.h (boolean_type_node): Move from C/C++/Java frontends.
10246         (boolean_true_node, boolean_false_node): Likewise.
10247         (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}.
10248         * tree.c (build_common_tree_nodes): Init boolean_type_node.
10249         (build_common_tree_nodes_2): Init boolean_{true,false}_node.
10250         * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE.
10251         * c-common.h (truthvalue_type_node): Renamed from boolean_type_node.
10252         (truthvalue_true_node): Renamed from boolean_true_node.
10253         (truthvalue_false_node): Renamed from boolean_false_node.
10254         * c-decl.c: Just set truthvalue_* to integer_*.
10255         * c-*.[ch]: s/boolean/truthvalue/.  s/c_bool/boolean/.
10256
10257 2003-07-24  Roger Sayle  <roger@eyesopen.com>
10258
10259         * c-decl.c (match_builtin_function_types): New subroutine of
10260         duplicate_decls to test whether a redeclaration of a builtin
10261         function is suitably close, i.e. the return type and all of
10262         the argument types have the same modes as the builtin expects.
10263         (duplicate_decls): Fuzzy type matching for builtin functions
10264         moved to match_builtin_function_types.
10265
10266 2003-07-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10267
10268         * cfgloopmanip.c (duplicate_loop_to_header_edge): Update irreducible
10269         flag correctly.
10270
10271 2003-07-24  Zack Weinberg  <zack@codesourcery.com>
10272
10273         * c-decl.c: Search-and-replace change 'binding level' to
10274         'scope' in commentary.
10275         (struct binding_level): Now struct c_scope.
10276         (current_binding_level): Now current_scope.
10277         (free_binding_level): Now scope_freelist.
10278         (current_function_level): Now current_function_scope.
10279         (global_binding_level): Now global_scope.
10280         (make_binding_level): Now make_scope.
10281         (pop_binding_level): Now pop_scope.
10282
10283 2003-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10284
10285         * configure.in (libgcc_visibility): Add missing whitespace.
10286
10287 2003-07-24  Richard Henderson  <rth@redhat.com>
10288
10289         * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0,
10290         __gcc_personality_v0.
10291
10292 2003-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10293
10294         * Makefile.in: Replace pwd by ${PWD_COMMAND}.
10295
10296 2003-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10297
10298         * doc/invoke.texi (-fprofile-arcs, -ftest-coverage): Update
10299         documentation missed from my 2003-07-09 patch.
10300
10301 2003-07-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10302
10303         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Set patch level to 0 if
10304         it's not provided.
10305         * configure: Rebuild.
10306
10307 2003-07-24  Steven Bosscher  <steven@gcc.gnu.org>
10308
10309         PR c/10602
10310         * c-typeck.c (type_lists_compatible_p): Do not compare
10311         arguments if one of them is an error_mark_node
10312
10313 2003-07-24  Alan Modra  <amodra@bigpond.net.au>
10314
10315         * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline
10316         if current_function_calls_eh_return.
10317
10318 2003-07-23  Mark Mitchell  <mark@codesourcery.com>
10319
10320         * doc/c-tree.texi (OFFSET_TYPE): Update description.
10321
10322 2003-07-23  Bob Wilson  <bob.wilson@acm.org>
10323
10324         * config/xtensa/crti.asm (_init, _fini): Increase frame size to 64.
10325         * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3,
10326         __umodsi3, __modsi3): Increase frame size to 32.
10327
10328 2003-07-23  Geoffrey Keating  <geoffk@apple.com>
10329
10330         * config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack
10331         prototype.
10332
10333 2003-07-23  Mark Mitchell  <mark@codesourcery.com>
10334
10335         * doc/c-tree.texi (Types): Update documentation for OFFSET_TYPE.
10336
10337         PR optimization/10679
10338         * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS.
10339
10340 2003-07-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10341
10342         PR target/11607 and PR target/11516
10343         * pa.md (extzv, extv, insv): Revert latter half of last patch.
10344
10345 2003-07-22  Mark Mitchell  <mark@codesourcery.com>
10346
10347         * fold-const.c (force_fit_type): Handle OFFSET_TYPE.
10348         * varasam.c (output_constant): Likewise.
10349
10350 2003-07-22  Kazu Hirata  <kazu@cs.umass.edu>
10351
10352         * alias.c: Fix comment formatting.
10353         * c-common.c: Likewise.
10354         * c-decl.c: Likewise.
10355         * c-opts.c: Likewise.
10356         * combine.c: Likewise.
10357         * cpplib.c: Likewise.
10358         * diagnostic.c: Likewise.
10359         * dojump.c: Likewise.
10360         * final.c: Likewise.
10361         * fold-const.c: Likewise.
10362         * gcc.c: Likewise.
10363         * gcse.c: Likewise.
10364         * ggc-page.c: Likewise.
10365         * jump.c: Likewise.
10366         * loop.c: Likewise.
10367         * mips-tfile.c: Likewise.
10368         * recog.c: Likewise.
10369         * regclass.c: Likewise.
10370         * regmove.c: Likewise.
10371         * tree.c: Likewise.
10372         * tree.h: Likewise.
10373
10374 2003-07-22  Per Bothner  <pbothner@apple.com>
10375
10376         * line-map.c (add_line_map):  Handle invalid LEAVE request.
10377         Fixes PR preprocessor/11361.
10378
10379 2003-07-22  Per Bothner  <pbothner@apple.com>
10380
10381         * diagnostic.c.(diagnostic_report_current_module):  Update to match
10382         2003-06-05 changes to push_srcloc and pop_srcloc.
10383
10384 2003-07-22  Wolfgang Bangerth  <bangerth@dealii.org>
10385
10386         * doc/trouble.texi: Better document two-stage name lookup.
10387
10388 2003-07-22  Eric Christopher <echristo@redhat.com>
10389
10390         * config/s390.c (s390_valid_pointer_mode): New.
10391         (TARGET_VALID_POINTER_MODE): Use.
10392         (s390_emit_prologue): Add tpf profiling hooks.
10393         (s390_emit_epilogue): Ditto.
10394         * config/s390.h (MASK_TPF): New.
10395         (TARGET_TPF): Use.
10396         (POINTERS_EXTEND_UNSIGNED): Define.
10397         * config/s390.md (ptr_extend): New pattern.
10398
10399 2003-07-22  Zack Weinberg  <zack@codesourcery.com>
10400
10401         * hashtable.c (approx_sqrt): Make static.
10402         * hashtable.h: Don't prototype approx_sqrt.
10403         * line-map.c (init_line_maps): Rename linemap_init.
10404         (free_line_maps): Rename linemap_free.
10405         (add_line_map): Rename linemap_add.
10406         (lookup_line): Rename linemap_lookup.
10407         (print_containing_files): Rename linemap_print_containing_files.
10408         * linemap.h: Update to match.
10409
10410         * cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to
10411         linemap routines to use new names.
10412
10413 2003-07-16  Nathan Sidwell  <nathan@codesourcery.com>
10414
10415         * c-common.c (handle_packed_attribute): Don't pack a struct via a
10416         typedef. Propagate packedness from a main variant.
10417
10418 2003-07-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10419
10420         * Makefile.in (install-common): Add dependency on installdirs.
10421
10422 2003-07-21  Alexandre Oliva  <aoliva@redhat.com>
10423
10424         * c-common.c (c_common_type_for_mode): Return integer types for
10425         pointer modes.
10426
10427 2003-07-22  Geoffrey Keating  <geoffk@apple.com>
10428
10429         * c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here.
10430         (finish_decl): Call maybe_apply_pragma_weak here.
10431         (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before
10432         TREE_PUBLIC and TREE_STATIC are decided.
10433         (start_function): Move call to maybe_apply_pragma_weak.  Check that
10434         DECL_ASSEMBLER_NAME isn't set too early.
10435
10436         * cpplex.c (_cpp_process_line_notes): Mention option name in
10437         trigraphs warning.
10438
10439 2003-07-22  Kazu Hirata  <kazu@cs.umass.edu>
10440
10441         * combine.c (if_then_else_cond): Simplify the comparison of
10442         rtx against -1, 0, and 1.
10443         * loop.c (check_dbra_loop): Likewise.
10444         * optabs.c (emit_conditional_move): Likewise.
10445         (emit_conditional_add): Likewise.
10446         * config/i386/i386.md (*movsi_or): Likewise.
10447         (*movdi_or_rex6): Likewise.
10448
10449 2003-07-22  Jan Hubicka  <jh@suse.cz>
10450
10451         * cgraphunit.c (cgraph_finalize_compilation_unit): Remove redundant if.
10452
10453 2003-07-21  Neil Booth  <neil@daikokuya.co.uk>
10454
10455         * cppfiles.c (open_file_pch): Don't put unused entries in the
10456         splay tree.  Remove dead code.
10457
10458 2003-07-21  Geoffrey Keating  <geoffk@apple.com>
10459
10460         * c-common.h (num_in_fnames): Declare.
10461         (c_static_assembler_name): Move from here...
10462         * c-tree.h (c_static_assembler_name): ... to here.
10463         * c-opts.c: Don't include langhooks-def.h.
10464         (c_static_assembler_name): Move to c-decl.c.
10465         (num_in_fnames): Make externally visible.
10466         * c-decl.c: Include langhooks-def.h.
10467         (c_static_assembler_name): Move from c-opts.c.
10468         * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H).
10469         (c-opts.o): Remove $(LANGHOOKS_DEF_H).
10470
10471         * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME
10472         when it's not needed.
10473
10474 2003-07-21  Jakub Jelinek  <jakub@redhat.com>
10475
10476         * config/rs6000/rs6000.h (machine_function): Add ra_need_lr.
10477         * config/rs6000/rs6000.c (rs6000_return_addr): Set it.
10478         (rs6000_emit_prologue): Save FPRs inline if set.
10479
10480 2003-07-21  H.J. Lu <hongjiu.lu@intel.com>
10481
10482         * config/ia64/ia64.md (prefetch): Support predicate.
10483
10484 2003-07-21  Josef Zlomek  <zlomekj@suse.cz>
10485
10486         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Use tablejump_p.
10487         * rtlanal.c (tablejump_p): Use next_active_insn for finding the jump
10488         table.
10489
10490 2003-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
10491
10492         PR optimization/11536
10493         * unroll.c (loop_iterations): Do not replace a register holding
10494         the final value by its equivalent before the loop if it is not
10495         invariant.
10496
10497 2003-07-21  Dave Fluri  <dave.fluri@onlink.net>
10498
10499         * doc/extend.texi: Fixes to spelling, grammar, and diction.
10500
10501 2003-07-21  Ben Elliston  <bje@wasabisystems.com>
10502
10503         * doc/invoke.texi (Optimize Options): Replace "it's" with "its".
10504         (V850 Options): Spelling fixes.
10505
10506 2003-07-20  Lisa M. Goldstein  <opus@gnu.org>
10507
10508         * doc/invoke.texi: Fixes to style, grammar and diction.
10509
10510 2003-07-20  Roger Sayle  <roger@eyesopen.com>
10511
10512         * builtins.def (BUILT_IN_ALLOCA): Remove "#if SMALL_STACK" form.
10513         * system.h (SMALL_STACK): Poison obsolete target macro.
10514         * doc/tm.texi (SMALL_STACK): Remove target macro documentation.
10515
10516 2003-07-20  Phil Edwards  <pme@gcc.gnu.org>
10517
10518         * configure.in:  Cache the results of testing for cmp's capabilities.
10519         * configure:  Regenerate.
10520
10521 2003-07-20  Mark Mitchell  <mark@codesourcery.com>
10522
10523         PR debug/11279
10524         * dwarf2out.c (gen_enumeration_type_die): Remember that
10525         enumerators can be unsigned.
10526
10527 2003-07-19  Zack Weinberg  <zack@codesourcery.com>
10528
10529         * c-decl.c (named_labels, shadowed_labels, label_level_chain)
10530         (push_label_level, pop_label_level): Kill.
10531         (struct binding_level): Rename level_chain to outer.
10532         Add outer_function field.  Change parm_flag, function_body,
10533         keep, keep_if_subblocks to 1-bit bitfields of type bool.
10534         (current_function_level): New variable.
10535         (keep_next_level_flag, keep_next_if_subblocks): Change type to bool.
10536         (keep_next_level, declare_parm_level, warn_if_shadowing):
10537         Update to match.
10538         (struct language_function): Kill named_labels, shadowed_labels fields.
10539         (c_init_decl_processing, start_function, c_push__function_context)
10540         (c_pop_function_context): No need to muck with named_labels nor
10541         shadowed_labels.
10542
10543         (make_binding_level): No need to clear the structure here.
10544         (pop_binding_level): Always operate on current_binding_level.
10545         Update current_function_level if necessary.
10546         (pushlevel): Don't clear named_labels.  Update current_function_level
10547         if necessary.  Use "true" and "false" where appropriate.
10548         (poplevel): Diagnose labels defined but not used, or vice
10549         versa, and clear out label-meanings leaving scope, while
10550         walking down the decls list, for all binding levels.
10551         Handle LABEL_DECLs appearing in the shadowed list.
10552         pop_binding_level takes no arguments.
10553         (pushdecl_function_level): Use current_function_level.
10554
10555         (make_label, bind_label): New static functions.
10556         (declare_label): New exported function.
10557         (lookup_label, define_label): Rewritten for new data structure.
10558         (shadow_label): Kill.
10559
10560         * c-tree.h: Prototype declare_label; don't prototype
10561         push_label_level, pop_label_level, nor shadow_label.
10562         * c-parse.in: Remove all calls to push_label_level and
10563         pop_label_level.  Use declare_label for __label__ decls.
10564
10565         * doc/extend.texi: Clarify that __label__ can be used to
10566         declare labels with local scope in any nested block, not
10567         just statement expressions.  Cross-reference nested functions
10568         section from local labels section.
10569
10570 2003-07-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10571
10572         * sched-rgn.c (find_rgns): Initialize current_edge correctly.
10573
10574 2003-07-19  Phil Edwards  <pme@gcc.gnu.org>
10575
10576         * doc/makefile.texi (restrap, profiledbootstrap):  Document targets.
10577
10578 2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10579
10580         * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c
10581         fixinc/server.c objc/objc-act.c: Remove unnecessary casts.
10582
10583 2003-07-19  Ulrich Weigand  <uweigand@de.ibm.com>
10584
10585         * config/s390/s390.c (legitimize_pic_address): Access local symbols
10586         relative to the GOT instead of relative to the literal pool base.
10587         (s390_output_symbolic_const): Handle new GOT-relative accesses.
10588         * config/s390/s390.md ("call"): Access local functions and PLT stubs
10589         relative to the GOT instead of relative to the literal pool base.
10590         ("call_value"): Likewise.
10591         ("call_value_tls"): Likewise.
10592
10593         * config/s390/s390.c (s390_chunkify_start): Remove pool anchor
10594         reloading.  Support LTREL_BASE / LTREL_OFFSET construct.
10595         (s390_chunkify_finish): Likewise.
10596         (s390_chunkify_cancel): Likewise.
10597         (s390_reorg): Adapt caller.
10598         (find_base_register_in_addr,
10599         find_base_register_ref, replace_base_register_ref): Delete.
10600         (find_ltrel_base, replace_ltrel_base): New functions.
10601         (find_constant_pool_ref): Handle LTREL_BASE unspecs.
10602         (s390_decompose_address): Handle LTREL_BASE unspecs.  Optimize
10603         base vs. index register usage.
10604         (struct constant_pool): Remove 'anchor'.
10605         (s390_add_anchor): Delete.
10606         (s390_dump_pool): Remove anchor handling.
10607         * config/s390/s390.md ("reload_anchor"): Remove.
10608
10609         * config/s390/s390.c (s390_split_branches): Use LTREL_BASE/OFFSET.
10610         (s390_load_got): New function.  Use LTREL_BASE/OFFSET.
10611         (s390_emit_prologue): Use it.
10612         * config/s390/s390.md ("builtin_longjmp", "builtin_setjmp_setup",
10613         "builtin_setjmp_receiver"): Cleanup.  Use s390_load_got.  Do not
10614         hard-code register 14.
10615         * config/s390/s390-protos.h (s390_load_got): Declare.
10616
10617         * config/s390/s390.c (NR_C_MODES, constant_modes, gen_consttable):
10618         Support TImode constants.
10619         * config/s390/s390.md ("consttable_ti"): New.
10620         ("consttable_si", "consttable_di"): Handle TLS symbols correctly.
10621
10622         * config/s390/s390.md (UNSPEC_LTREL_OFFSET, UNSPEC_LTREL_BASE,
10623         UNSPEC_GOTENT, UNSPEC_GOT, UNSPEC_GOTOFF, UNSPEC_PLT, UNSPEC_PLTOFF,
10624         UNSPEC_RELOAD_BASE, UNSPECV_POOL, UNSPECV_POOL_START, UNSPECV_POOL_END,
10625         UNSPECV_POOL_QI, UNSPECV_POOL_HI, UNSPECV_POOL_SI, UNSPECV_POOL_DI,
10626         UNSPECV_POOL_TI, UNSPECV_POOL_SF, UNSPECV_POOL_DF, UNSPECV_MAIN_POOL):
10627         New symbolic constants.
10628         ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
10629         "consttable_sf", "consttable_df", "pool_start_31", "pool_end_31",
10630         "pool_start_64", "pool_end_64", "reload_base_31", "reload_base_64",
10631         "pool", "literal_pool_31", "literal_pool_64"): Cleanup.  Use
10632         symbolic UNSPEC values.
10633         * config/s390/s390.c (larl_operand, s390_short_displacement,
10634         bras_sym_operand, s390_cannot_force_const_mem,
10635         s390_delegitimize_address, s390_decompose_address,
10636         legitimize_pic_address, s390_output_symbolic_const,
10637         s390_function_profiler): Use symbolic UNSPEC values.
10638
10639 2003-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10640
10641         * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
10642         c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
10643         c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
10644         collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
10645         cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
10646         cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
10647         dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
10648         fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
10649         gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
10650         genemit.c genextract.c genoutput.c genrecog.c gensupport.c
10651         ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
10652         integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
10653         loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
10654         postreload.c prefix.c print-tree.c protoize.c ra-build.c
10655         ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
10656         regmove.c regrename.c reload.c reload1.c reorg.c resource.c
10657         sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
10658         simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
10659         tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
10660         varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
10661         casts.
10662
10663 2003-07-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10664
10665         * c-pragma.c (apply_pragma_weak): Don't use warning_with_decl.
10666         * toplev.h (warning): Remove attribute.
10667
10668 2003-07-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10669
10670         * c-decl.c (c_finish_incomplete_decl): Don't use xxx_with_decl.
10671         (pop_label_level): Likewise.
10672         (duplicate_decls): Likewise.
10673         (implicitly_declare): Likewise.
10674         (shadow_label): Likewise.
10675         (start_decl): Likewise.
10676         (finish_decl): Likewise.
10677         (grokdeclarator): Likewise.
10678         (get_parm_info): Likewise.
10679         (detect_field_duplicates): Likewise.
10680         (finish_struct): Likewise.
10681         (start_function): Likewise.
10682         (store_parm_decls): Likewise.
10683         (finish_function): Likewise.
10684         (c_expand_body_1): Likewise.
10685         (check_for_loop_decls): Likewise.
10686         (merge_translation_unit_decls): Likewise.
10687
10688 2003-07-19  Neil Booth  <neil@daikokuya.co.uk>
10689
10690         * common.opt:  Document --param.
10691         * opts.c (columns, undocumented_msg): New.
10692         (print_help): Get number of columns from environment.  Print
10693         --param help.  Tweak newline handling.
10694         (print_param_help): New.
10695         (print_filtered_help): Better handling of duplicates.  Complain
10696         about undocumented switches.
10697         (print_switch): New.
10698         (wrap_help): Improve wrapping, use COLUMNS.
10699         * opts.sh: Ignore comments in records.
10700         * params.def: Fix typos and remove trailing periods.
10701         * toplev.c (display_help): Don't dump --param help.
10702         * doc/sourcebuild.texi: Update.
10703
10704 2003-07-18  Richard Henderson  <rth@redhat.com>
10705
10706         PR target/11556
10707         * optabs.c (prepare_operand): Fail gracefully instead of abort
10708         if the predicate doesn't satisfy.
10709         (gen_cond_trap): Allow prepare_operand to fail.
10710
10711 2003-07-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10712
10713         * c-common.c: Don't undefine GCC_DIAG_STYLE.
10714         (fname_decl): Don't use xxx_with_decl.
10715         (c_add_case_label): Likewise.
10716         (handle_section_attribute): Likewise.
10717         (handle_alias_attribute): Likewise.
10718         (handle_no_instrument_function_attribute): Likewise.
10719         (handle_no_limit_stack_attribute): Likewise.
10720         * c-objc-common.c (c_tree_printer): Print IDENTIFIER_NODEs.
10721         * c-format.c (gcc_cdiag_char_table): Add '%E' format-specifier.
10722
10723 2003-07-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10724
10725         * Makefile.in (ifcvt.o): Add cfgloop.h.
10726         * basic-block.h (EDGE_LOOP_EXIT): New flag.
10727         * cfgrtl.c (rtl_verify_flow_info_1): Handle it correctly.
10728         * ifcvt.c: Include cfgloop.h.
10729         (mark_loop_exit_edges): New static function.
10730         (if_convert): Call it.
10731         (find_if_header): Ignore branches out of loops.
10732
10733 2003-07-18  Kazu Hirata  <kazu@cs.umass.edu>
10734
10735         * combine.c (simplify_comparison): Don't share rtx when converting
10736         (ne (and (not X) 1) 0) to (eq (and X 1) 0).
10737
10738 2003-07-18  David Edelsohn  <edelsohn@gnu.org>
10739
10740         * config/rs6000/aix.h (AGGREGATE_PADDING_FIXED): Define.
10741         (AGGREGATES_PAD_UPWARD_ALWAYS): Define.
10742         (MUST_PASS_IN_STACK): Define.
10743         (BLOCK_REG_PADDING): Define.
10744
10745 2003-07-18  Richard Henderson  <rth@redhat.com>
10746
10747         * cfgrtl.c (force_nonfallthru_and_redirect): Use tablejump_p
10748         to skip the addr_vec.
10749
10750 2003-07-18  Alexandre Oliva  <aoliva@redhat.com>
10751
10752         * combine.c (combinable_i3pat): Don't forbid occurrences of
10753         i2dest or i1dest in inner_dest if inner_dest is a mem.
10754
10755 2003-07-18  Jan Hubicka  <jh@suse.cz>
10756
10757         * cgraph.c (cgraph_remove_node): Clear the hash table slot.
10758
10759 2003-07-17  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR target/11087
10762         * loop.c (basic_induction_var): Check if convert_modes emitted any
10763         instructions. Remove them and return 0 if so.
10764
10765 2003-07-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
10766
10767         PR optimization/11083
10768         * toplev.c (rest_of_handle_addresof): Rename into
10769         rest_of_handle_addressof.  Delete unreachable blocks
10770         if dead edges were purged after the addressof pass.
10771
10772 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
10773
10774         * Makefile.in, configure, configure.in: Remove handling of
10775         lang-options.h and options_.h.
10776         * toplev.c (struct lang_opt, documented_lang_options): Remove.
10777         (display_help): Don't use documented_lang_options.
10778
10779 2003-07-17  Zack Weinberg  <zack@codesourcery.com>
10780
10781         * c-decl.c (pushdecl_function_level): Make static, return nothing.
10782         (kept_level_p): Fold into poplevel.
10783         (undeclared_variable): Moved here from c-typeck.c.  Export.
10784         * c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines.
10785         (undeclared_variable): Prototype here.  Don't prototype
10786         kept_level_p nor pushdecl_function_level.
10787         * c-parse.in: Change first argument to poplevel from
10788         "kept_level_p()" to "KEEP_MAYBE".
10789         * c-typeck.c (undeclared_variable): Moved to c-decl.c.
10790
10791 2003-07-17  Roger Sayle  <roger@eyesopen.com>
10792
10793         * simplify-rtx.c (simplify_rtx): Use simplify_gen_binary to swap
10794         commutative operands instead of modifying the RTL in-place.
10795
10796 2003-07-17  Mark Mitchell  <mark@codesourcery.com>
10797
10798         PR optimization/11557
10799         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK
10800         unless we know which function is being called.
10801
10802 2003-07-17  Roger Sayle  <roger@eyesopen.com>
10803
10804         * cse.c (fold_rtx): Use swap_commutative_operands_p to determine
10805         whether to reorder the operands of a commutative binary operator.
10806
10807 2003-07-17  Roger Sayle  <roger@eyesopen.com>
10808
10809         * fold-const.c (const_binop): Avoid performing the FP operation at
10810         compile-time, if either operand is NaN and we honor signaling NaNs,
10811         or if we're dividing by zero and either flag_trapping_math is set
10812         or the desired mode doesn't support infinities.
10813         (fold_initializer): New function to fold an expression ignoring any
10814         potential run-time exceptions or traps.
10815         * tree.h (fold_initializer): Prototype here.
10816         * c-typeck.c (build_binary_op): Move to the end of the file so
10817         that intializer_stack is in scope.  If constructing an initializer,
10818         i.e. when initializer_stack is not NULL, use fold_initializer to
10819         fold expressions.
10820         * simplify-rtx.c (simplify_binary_operation): Likewise, avoid
10821         performing FP operations at compile-time, if they would raise an
10822         exception at run-time.
10823
10824 2003-07-17  Geoffrey Keating  <geoffk@apple.com>
10825
10826         PR 11498
10827         * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H).
10828         (langhooks.o): Add $(GGC_H), gt-langhooks.h.
10829         (GTFILES): Add langhooks.c.
10830         (gt-langhooks.h): New.
10831         * c-common.h (c_static_assembler_name): Prototype.
10832         * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define.
10833         * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define.
10834         * c-opts.c: Include langhooks-def.h.
10835         (c_static_assembler_name): New.
10836         * langhooks.c: Include ggc.h.  Include gt-langhooks.h.
10837         (var_labelno): New.
10838         (lhd_set_decl_assembler_name): Give static objects with context
10839         unique names.
10840         * varasm.c (var_labelno): Delete.
10841         (make_decl_rtl): Don't change the assembler name once it's set.
10842
10843         * c-opts.c (this_input_filename): New.
10844         (finish_options): Take new parameter, name of file being compiled.
10845         Update callers.  Set this_input_filename.
10846         (push_command_line_include): Use this_input_filename not
10847         main_input_filename.
10848
10849 2003-07-17  Neil Booth  <neil@daikokuya.co.uk>
10850
10851         * Makefile.in: Depend .pot generation on options.c.
10852         * po/exgettext: Add an extra_files variable containing additional
10853         files to scan.
10854
10855 2003-07-17  Zack Weinberg  <zack@codesourcery.com>
10856
10857         * objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to
10858         c_write_global_declarations.
10859
10860         * c-decl.c: Fix typos in several comments.  Remove all
10861         #if 0 blocks; reindent as needed.  Remove unused argument
10862         to declare_parm_level; all callers changed.
10863         * c-parse.in: Update calls to declare_parm_level.  Avoid
10864         issuing a double warning in some circumstances.
10865         * c-typeck.c: Update calls to declare_parm_level.
10866         * c-tree.h: Update prototype of declare_parm_level.
10867
10868         * c-pragma.c (apply_pragma_weak): Don't complain about a
10869         redundant #pragma weak.
10870
10871         * objc/objc-act.c (forward_declare_categories,
10872         build_selector_reference_decl, build_class_reference_decl,
10873         build_objc_string_decl, synth_forward_declarations,
10874         build_protocol_reference): Set TREE_PUBLIC on synthetic
10875         forward decl to 0, consistent with eventual definition.
10876         Correct comments to match.
10877
10878         * fixinc/inclhack.def (solaris_mutex_init_2): Escape braces
10879         in regexp that don't form a range expression.
10880         * fixinc/fixincl.def: Regenerate.
10881
10882 2003-07-17  Richard Henderson  <rth@redhat.com>
10883
10884         PR target/10907
10885         * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end
10886         even with !TARGET_CONST_GP.
10887         (ia64_function_ok_for_sibcall): Reject non-local functions.
10888
10889 2003-07-17  Steven Bosscher  <steven@gcc.gnu.org>
10890
10891         * c-common.c (c_estimate_num_insns_1): Don't handle
10892         METHOD_CALL_EXPR.
10893         * expr.c (safe_from_p): Likewise.
10894         * gengtype.c (adjust_field_tree_exp): Likewise.
10895         * stmt.c (warn_if_unused_value): Likewise
10896         * tree.c (first_rtl_op): Likewise.
10897         * tree.def: Don't define METHOD_CALL_EXPR.
10898         * java/lang.c (java_estimate_num_insns_1): Don't handle
10899         METHOD_CALL_EXPR.
10900
10901 2003-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
10902
10903         PR other/11466
10904         * doc/invoke.texi (SPARC Options): Document "-mlittle-endian"
10905         and its restrictions for the SPARC64 port.
10906         Move the entry of "-mimpure-text" before that of "-mv8".
10907
10908 2003-07-17  Eric Botcazou <ebotcazou@libertysurf.fr>
10909             Phil Edwards <phil@jaj.com>
10910
10911         * doc/install.texi (*-*-solaris2*): Document the step-by-step
10912         procedure to bootstrap and install.
10913         Document the preference for the legacy Sun tools in /usr/bin
10914         over the POSIX tools in /usr/xpg4/bin for the build process.
10915
10916 2003-07-17  Neil Booth  <neil@daikokuya.co.uk>
10917
10918         * c.opt: Document Uncodumented; use it.  Document ObjC options.
10919         * opts.c (print_filtered_help): Skip undocumented switches.
10920         * opts.h (CL_UNDOCUMENTED): New.
10921         * opts.sh: Handle Undocumented.
10922         * toplev.c (documented_lang_options): Prevent its becoming empty.
10923 objc:
10924         * lang-options.h: Remove.
10925
10926 2003-07-16  Ulrich Weigand  <uweigand@de.ibm.com>
10927
10928         * loop.c (check_ext_dependent_givs): Pass const struct loop *
10929         instead of struct loop_info * as argument.  Accept BIVs with
10930         increment +/- 1 provided there is a friendly exit test against
10931         a loop-invariant value.
10932         (strength_reduce): Adapt call to check_ext_dependent_givs.
10933
10934 2003-07-16  J"orn Rennecke <joern.rennecke@superh.com>
10935             Con Bradley <con.bradley@superh.com>
10936
10937         * sh-protos.h (sh_get_pr_initial_val): Declare.
10938         * sh.c (regno_reg_class): Make its elements type enum reg_class.
10939         (output_stack_adjust): Remove emit_fn argument.  Add epilogue_p
10940         and live_regs_mask arguments.  Changed all callers.
10941         (save_schedule_s): New structure.
10942         (save_schedule): New typedef.
10943         (scavenge_reg, sh5_schedule_saves, sh5_schedule_saves): New functions.
10944         (calc_live_regs): For TARGET_SHMEDIA, use leaf_function_p.
10945         In interrupts handlers, also save registers that are usually
10946         partially saved, and make sure there is at least one general purpose
10947         register saved if a target register needs saving.
10948         Add casts in comparisons to avoid warnings.
10949         (sh_media_register_for_return): return -1 for interrupt handlers.
10950         (MAX_SAVED_REGS, MAX_TEMPS): New defines.
10951         (sh_expand_prologue): Use sh5_schedule_saves.  Check that any temp
10952         registers used are available.
10953         Set RTX_FRAME_RELATED_P where appropriate.
10954         Add an REG_FRAME_RELATED_EXPR for r0 + offset addressing.
10955         (sh_expand_epilogue, sh_set_return_address): Use sh5_schedule_saves.
10956         (initial_elimination_offset): Likewise.
10957         * sh.h (DWARF_CIE_DATA_ALIGNMENT): Set to -4.
10958         (LOCAL_ALIGNMENT, GENERAL_REGISTER_P): Add casts to avoid warnings.
10959         (FP_REGISTER_P): Add casts to fix broken handling of unsigned REGNO.
10960         (XD_REGISTER_P, TARGET_REGISTER_P): Likewise.
10961         (HARD_REGNO_CALL_PART_CLOBBERED): Also yield nonzero for r15,
10962         and for target registers.
10963         (RETURN_IN_MEMORY): Add parentheses to avoid warnings.
10964         (regno_reg_class): Make its elements type enum reg_class.
10965         (CONSTRAINT_LEN): Don't use isdigit.
10966         (FUNCTION_ARG_REGNO_P): Add casts to avoid warnings.
10967         (FUNCTION_ARG): Add parentheses to avoid warnings.
10968         (RETURN_ADDR_RTX): Use sh_get_pr_initial_val.
10969         (RETURN_ADDR_OFFSET): Define to -1 for TARGET_SH5.
10970         (SH_DBX_REGISTER_NUMBER): Add casts to avoid warnings.
10971         (EH_RETURN_DATA_REGNO): Use unsigned constants to avoid warnings.
10972         * sh.md (xordi3+1): Remove unused variable regno.
10973         (return_media): Check that tr0 is available before using it.
10974
10975 2003-07-16  Neil Booth  <neil@daikokuya.co.uk>
10976
10977         * c.opt: Document more options.
10978
10979 2003-07-16  Roger Sayle  <roger@eyesopen.com>
10980
10981         * combine.c (subst): Also handle (subreg (const_double ...)) case
10982         if created by a substitution, by using the original inner mode.
10983
10984 2003-07-16  Roger Sayle  <roger@eyesopen.com>
10985
10986         * simplify-rtx.c (simplify_replace_rtx): Convert constant comparisons
10987         to MODE_FLOAT constants if FLOAT_STORE_FLAG_VALUE is defined.
10988         (simplify_rtx): Likewise.  Simplify (lo_sum (high X) X) as X.
10989
10990 2003-07-16  Andrew Pinski  <pinskia@physics.uc.edu>
10991
10992         * doc/install.texi (--without-headers): New.
10993
10994         Partial Fix PR/10129
10995         * config/darwin.c (machopic_function_base_name): Only Return "<pic base>".
10996         (machopic_output_function_base_name): New; print the true pic label.
10997         (machopic_classify_ident): Pic Base is always a defined data.
10998         * config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label.
10999         * config/darwin-proto.h (machopic_output_function_base_name): Prototype.
11000
11001         * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant
11002         if they are not floating point registers.
11003
11004         PR c/10962
11005         * ggc.h: Add header guards.
11006         * c-decl.c (finish_struct): Sort fields if
11007         number greater than 15 and there are no
11008         anonymous structs/unions.
11009         * c-common.h: Include ggc.h.
11010         (sorted_fields_type): New struct.
11011         (field_decl_cmp): New prototype.
11012         (resort_sorted_fields): New prototype.
11013         (DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro.
11014         * c-tree.h: (lang_type): Use pointer to sorted_fields_type
11015         as s, removing other fields.
11016         * c-typeck.c (lookup_field): Use s in lang_type.
11017         These were mostly moved from cp/class.c:
11018         * c-common.c (field_decl_cmp): New static function.
11019         (field_decl_cmp): New function.
11020         (resort_sorted_fields): New function.
11021
11022 2003-07-16  Geoffrey Keating  <geoffk@apple.com>
11023
11024         * config/darwin.c (machopic_select_section): Use decl_readonly_section
11025         to do most of the work.
11026
11027 2003-07-16  Hans-Peter Nilsson  <hp@bitrange.com>
11028
11029         * config/mmix/mmix-protos.h: Convert prototypes to ISO C90.
11030         * config/mmix/mmix.c: Convert functions to ISO C90.
11031         (mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak
11032         formatting.
11033         (mmix_get_hard_reg_initial_val): Tweak section head comment.
11034
11035 2003-07-16  J"orn Rennecke <joern.rennecke@superh.com>
11036
11037         * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK.
11038
11039 2003-07-16  Jakub Jelinek  <jakub@redhat.com>
11040
11041         * unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
11042         (uw_update_context_1): Use it.
11043         * config/rs6000/rs6000.c (insn_after_throw): Remove.
11044         (rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
11045         in parent frame if _Unwind_* called directly instead of through
11046         .plt.
11047         (rs6000_emit_eh_toc_restore): Remove.
11048         (rs6000_emit_prologue): Update stack pointer before doing any saving
11049         if current_function_calls_eh_return.  Generate unwind info for $r2.
11050         (rs6000_emit_epilogue): Restore stack pointer after doing all
11051         restoring if current_function_calls_eh_return.  Restore $r2.
11052         * config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
11053         * config/rs6000/rs6000.md (eh_return): Remove call to
11054         rs6000_emit_eh_toc_restore.
11055         * config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
11056         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.
11057
11058 2003-07-15  Jakub Jelinek  <jakub@redhat.com>
11059
11060         * expr.c (emit_block_move): Don't move anything if size is const 0.
11061         (clear_storage): Test against const0_rtx instead of comparing INTVAL
11062         against 0.
11063
11064 2003-07-15  David S. Miller  <davem@redhat.com>
11065
11066         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only
11067         emit nop if the last real insn is CALL_INSN.
11068
11069 2003-07-16  Danny Smith  <dannysmith@users.sourceforge.net>
11070
11071         * config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define
11072         as "nul".
11073         * config/i386/xm-mingw32.h: Change GNU CC to GCC.
11074
11075 2003-07-16  Danny Smith  <dannysmith@users.sourceforge.net>
11076
11077         * config/i386/winnt.c (associated_type): Artificial methods are not
11078         affected by the import/export status of their class unless they are
11079         COMDAT.
11080         (i386_pe_dllimport_p): Do not mark artificial methods as dllimport.
11081
11082         * config/i386/winnt.c: Fix GCC copyright comment.
11083
11084 2003-07-16  Gabriel Dos Reis  <gcc@integrable-solutions.net>
11085
11086         PR c++/11531
11087         * diagnostic.c (diagnostic_report_diagnostic): Don't ICE if we're
11088         not recursing on hard error.
11089         (diagnostic_for_decl): Likewise.
11090         * diagnostic.def: Rearrange.
11091
11092 2003-07-15  J"orn Rennecke <joern.rennecke@superh.com>
11093
11094         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes):
11095         If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode.
11096
11097 2003-07-15  J"orn Rennecke <joern.rennecke@superh.com>
11098             Richard Henderson  <rth@redhat.com>
11099
11100         * unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table
11101         to decide if to access a _Unwind_Ptr or a _Unwind_Word.
11102         (_Unwind_SetGR): Likewise.
11103         (_Unwind_GetPtr, _Unwind_SetSpColumn): New functions.
11104         (Unwind_SpTmp): New typedef.
11105         (uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr.
11106         (uw_update_context): Use _Unwind_GetPtr.
11107         (init_dwarf_reg_size_table): Move above uw_init_context_1.
11108         (uw_init_context_1): Initialize dwarf_reg_size_table if necessary.
11109         Use _Unwind_SetSpColumn.
11110         (uw_install_context_1): Don't initialize dwarf_reg_size_table.
11111         Use _Unwind_GetPtr.
11112
11113 2003-07-15  Neil Booth  <neil@daikokuya.co.uk>
11114
11115         * c.opt: Document more options.
11116         * toplev.c (documented_lang_options): Remove all local help strings.
11117
11118 2003-07-15  Mark Mitchell  <mark@codesourcery.com>
11119
11120         PR debug/11473
11121         * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of
11122         base classes.
11123
11124 2003-07-15  Kazu Hirata  <kazu@cs.umass.edu>
11125
11126         PR target/10795
11127         * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't
11128         swap comparison operands if doing so would generate an
11129         unrecognizable insn.
11130
11131 2003-07-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
11132
11133         PR optimization/11320
11134         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
11135         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
11136         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
11137         current_sched_info->compute_jump_reg_dependencies. Record which
11138         registers are used and which registers are set by the jump.
11139         Clear deps->reg_conditional_sets after a barrier.
11140         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
11141         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
11142         (init_deps): Initialize reg_conditional_sets.
11143         (free_deps): Clear reg_conditional_sets.
11144         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
11145         Mark registers live on entry of the fallthrough block and conditionally
11146         set as set by the jump. Mark registers live on entry of non-fallthrough
11147         blocks as used by the jump.
11148         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
11149         Mark new parameters as unused.
11150
11151 2003-07-15  Richard Sandiford  <rsandifo@redhat.com>
11152
11153         * doc/invoke.texi: Resync MIPS -march documentation.
11154
11155 2003-07-15  Richard Sandiford  <rsandifo@redhat.com>
11156
11157         * config/mips/mips.h (PROCESSOR_R9000): New processor_type.
11158         (TARGET_MIPS9000, TUNE_MIPS9000): New macros.
11159         (GENERATE_MULT3_SI): True for TARGET_MIPS9000.
11160         * config/mips/mips.c (mips_cpu_info_table): Add rm9000 entry.
11161         (mips_rtx_costs): Adjust integer multiplication costs for the rm9000.
11162         (mips_issue_rate): Handle PROCESSOR_R9000.
11163         (mips_use_dfa_pipeline_interface): Likewise.
11164         * config/mips/9000.md: New file.
11165         * config/mips/mips.md: Include it.
11166         (define_attr cpu): Add r9000.
11167         (mulsi3_mult3): Use "mul" for rm9000 code.
11168
11169 2003-07-15  Stan Cox  <scox@redhat.com>
11170
11171         * config/mips/mips.h (PROCESSOR_R7000): New processor_type.
11172         (TARGET_MIPS7000, TUNE_MIPS7000): New macros.
11173         (GENERATE_MULT3_SI): True for TARGET_MIPS7000.
11174         * config/mips/mips.c (mips_cpu_info_table): Add rm7000 entry.
11175         (mips_rtx_costs): Adjust integer multiplication costs for the rm7000.
11176         (mips_issue_rate): Handle PROCESSOR_R7000.
11177         (mips_use_dfa_pipeline_interface): Likewise.
11178         * config/mips/7000.md: New file.
11179         * config/mips/mips.md: Include it.
11180         (define_attr cpu): Add r7000.
11181         (mulsi3_mult3): Use "mul" for rm7000 code.
11182
11183 2003-07-15  Richard Sandiford  <rsandifo@redhat.com>
11184
11185         * config/mips/mips.md (define_attr type): Add condmove.  Use it for
11186         the conditional move patterns.
11187         * config/mips/5400.md (ir_vr54_move): Rename to ir_vr54_condmove.
11188         Check for condmove type.
11189         (ir_vr54_arith): Add move type.
11190         * config/mips/5500.md (ir_vr55_move, ir_vr55_arith): Likewise.
11191         * config/mips/sr71k.md (ir_sr70_move, ir_sr70_arith): Likewise.
11192
11193 2003-07-15  Neil Booth  <neil@daikokuya.co.uk>
11194
11195         * c-opts.c (print_help): Remove.
11196         (c_common_handle_option): Don't handle --help.
11197         * c.opt: Document some options.
11198         (--help): Remove.
11199         * opts.c (print_filtered_help): New.
11200         (print_help): Use it.
11201
11202 2003-07-14  Geoffrey Keating  <geoffk@apple.com>
11203
11204         * c-common.c (c_common_type_for_mode): Handle V4DFmode.
11205         * tree.c: (build_common_tree_nodes_2): Likewise.
11206         * tree.h (enum tree_index): Add TI_V4DF_TYPE.
11207         (V4DF_type_node): New.
11208
11209         * c-opts.c (push_command_line_include): Don't free deferred_opts,
11210         we'll need it.
11211         (finish_options): Reset init_cursor.
11212
11213 2003-07-15  Kazu Hirata  <kazu@cs.umass.edu>
11214
11215         * expr.c (expand_assignment): Remove an unused argument
11216         SUGGEST_REG.
11217         * expr.h: Update the prototype.
11218         * function.c: Update the callers.
11219         * stmt.c: Likewise.
11220
11221 2003-07-14  Mark Mitchell  <mark@codesourcery.com>
11222
11223         PR debug/11098
11224         * integrate.c (copy_decl_for_inlining): Do not mark copied decls
11225         as DECL_ABSTRACT.
11226
11227 2003-07-14  Nathanael Nerode  <neroden@gcc.gnu.org>
11228
11229         * fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass
11230         with __cplusplus, not "we must use the C++ compiler's type"
11231         * fixinc/inclhack.def (void_null): Note that Interix needs this.
11232         * fixinc/fixincl.x: Regenerate.
11233
11234 2003-07-14  Geoffrey Keating  <geoffk@apple.com>
11235
11236         * unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects
11237         and unseen_objects from the global data before calling
11238         __deregister_frame_info_bases.
11239         (examine_objects): Insert objects into the seen_objects list,
11240         not unseen_objects.
11241         (_Unwind_Find_FDE): Always unlock the global object lists, even if
11242         we couldn't allocate a data structure to put in it.
11243
11244         * objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking.
11245         (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend.
11246         (SET_TYPE_PROTOCOL_LIST): New.
11247         * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST.
11248         (get_object_reference): Likewise.
11249
11250 2003-07-14  Jan Hubicka  <jh@suse.cz>
11251
11252         * cfglayout.c (locator_file): Break out from ....
11253         (insn_file): ... here.
11254         (locator_line): Break out from ....
11255         (insn_line): ... here.
11256         * rtl.h (locator_file, locator_line): Declare.
11257         (final_start_function): Set proper line/file info.
11258
11259 2003-07-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11260
11261         * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is
11262         handled by pp_c_cast_expression.
11263
11264 2003-07-14  Richard Sandiford  <rsandifo@redhat.com>
11265
11266         * config/mips/mips.c (mips_expand_prologue): Use a single insn to
11267         allocate 32768 bytes of stack.  Use addition rather than subtraction
11268         when a single insn is enough.
11269         * config/mips/mips.md: Remove insns and splitters for subtracting
11270         constants.
11271         (subsi3): Only accept register operands.
11272         (subsi3_internal): Likewise.  Use for TARGET_MIPS16 as well.
11273         (subdi3_internal_3, subsi3_internal_2): Likewise.
11274         (casesi): Use expand_binop to subtract the lower bound.
11275
11276 2003-07-14  Richard Sandiford  <rsandifo@redhat.com>
11277
11278         * config/mips/mips.c (mips_in_small_data_p): Don't handle
11279         TARGET_MIPS16 specially.
11280
11281 2003-07-14  Richard Sandiford  <rsandifo@redhat.com>
11282
11283         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Use
11284         mips_output_aligned_bss.
11285         * config/mips/linux.h: Likewise.
11286         * config/mips/mips-protos.h (mips_output_aligned_bss): Declare.
11287         * config/mips/mips.c (mips_output_aligned_bss): New function.
11288
11289         * config/mips/elf.h (DBX_DEBUGGING_INFO): Delete.
11290         * config/mips/elf64.h: Likewise.
11291
11292         * config/mips/elf.h (ASM_DECLARE_OBJECT_NAME): Use
11293         mips_declare_object_name.
11294         (ASM_FINISH_DECLARE_OBJECT): Likewise mips_finish_declare_object.
11295         * config/mips/elf64.h: As for elf.h.
11296         * config/mips/iris6.h: Likewise.
11297         * config/mips/linux.h (ASM_DECLARE_OBJECT_NAME): As for elf.h.
11298         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Remove unnecessary
11299         do...while (0) block.
11300         * config/mips/mips-protos.h (mips_declare_object_name): Declare.
11301         (mips_finish_declare_object): Declare.
11302         * config/mips/mips.c (mips_declare_object_name): New function.
11303         (mips_finish_declare_object): New function.
11304
11305         * config/mips/elf.h (SBSS_SECTION_ASM_OP): Delete.
11306         * config/mips/linux.h: Likewise.
11307
11308         * config/mips/mips.c (inside_function): Delete.
11309         (file_in_function_warning, ignore_line_number): Delete.
11310         (mips_output_filename): Don't warn about changing filenames within
11311         a function.
11312         (mips_output_lineno): Update accordingly.
11313         (mips_output_function_prologue): Don't reset the deleted variables.
11314         * config/mips/mips.h (inside_function): Delete.
11315         (file_in_function_warning, ignore_line_number): Delete.
11316
11317         * config/mips/elf.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Remove undefs.
11318         * config/mips/elf64.h: Likewise.
11319         * config/mips/openbsd.h: Likewise.
11320         * config/mips/iris5.h (OBJECT_FORMAT_COFF): Remove undefs.
11321         * config/mips/linux.h: Likewise.
11322         * config/mips/mips.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Delete.
11323         (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB): Delete.
11324
11325         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Add mips/sdb.h
11326         to the list of include files when using gas.
11327         (mips*el-*-openbsd*, mips*-*-openbsd*): Add mips/sdb.h unconditionally.
11328         * config/mips/elf.h: Remove #undef SDB_DEBUGGING_INFO.
11329         * config/mips/elf64.h: Likewise.
11330         * config/mips/iris5.h: Likewise.
11331         * config/mips/linux.h: Likewise.
11332         * config/mips/iris5gas.h (SDB_DEBUGGING_INFO): Remove definition.
11333         * config/mips/mips.h (PREFERRED_DEBUGGING_TYPE): Likewise.
11334         (SDB_DEBUGGING_INFO, sdb*, SDB_ALLOW_*, PUT_SDB*): Move to...
11335         * config/mips/sdb.h: ...this new file.
11336
11337 2003-07-14  Douglas Rupp  <rupp@gnat.com>
11338
11339         * fixinc/server.c (server_setup): Don't use non-POSIX NULL first
11340         argument to getcwd; use fixed buffer instead.
11341
11342 2003-07-14  Nathanael Nerode  <neroden@gcc.gnu.org>
11343
11344         * fixinc/mkfixinc.sh: Treat OpenBSD normally.
11345         * fixinc/fixinc.wrap: Delete.
11346
11347 2003-07-14  Dan Nicolaescu  <dann@ics.uci.edu>
11348
11349         * ggc-page.c (extra_order_size_table): Insns have 9 slots. Regs
11350         don't have 2.
11351
11352 2003-07-14  Dan Nicolaescu  <dann@ics.uci.edu>
11353
11354         * ggc-page.c (struct globals): Add new fields to keep track of the
11355         total allocated memory and overhead.
11356         (ggc_print_statistics): Print them.
11357         (ggc_alloc): Keep track of the total allocated memory and the
11358         overhead.
11359
11360         * tree.c (dump_tree_statistics): Increase spacing.
11361         (enum tree_node_kind): Move to ...
11362         * tree.h (enum tree_node_kind): ... here.
11363         (tree_node_counts, tree_node_sizes): Declare.
11364
11365 2003-07-14  James A. Morrison  <ja2morri@student.math.uwaterloo.ca>
11366
11367         * doc/include/texinfo.tex: Upgrade to texinfo 4.6.
11368
11369 2003-07-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11370
11371         PR optimization/11440
11372         * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or
11373         SIGN_EXTRACT SETs.
11374
11375 2003-07-14  Alan Modra  <amodra@bigpond.net.au>
11376
11377         * doc/tm.texi (BLOCK_REG_PADDING): Describe.
11378         * expr.h (struct locate_and_pad_arg_data): Add where_pad.
11379         (emit_group_load, emit_group_store): Adjust declarations.
11380         Remove most occurrences of #ifdef TREE_CODE.
11381         * expr.c (emit_group_load): Add "type" param, and use
11382         BLOCK_REG_PADDING to determine need for a shift.  Optimize non-
11383         aligned accesses if !SLOW_UNALIGNED_ACCESS.
11384         (emit_group_store): Likewise.
11385         (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust
11386         emit_group_load and emit_group_store calls.
11387         * calls.c (store_unaligned_arguments_into_pseudos): Tidy.  Use
11388         BLOCK_REG_PADDING to determine whether we need endian_correction.
11389         (load_register_parameters): Localize vars.  Handle shifting of
11390         small values to the correct end of regs.  Adjust emit_group_load
11391         call.
11392         (expand_call, emit_library_call_value_1): Adjust emit_group_load
11393         and emit_group_store calls.
11394         * function.c (assign_parms): Set mem alignment for stack slots.
11395         Adjust emit_group_store call.  Store values at the "wrong" end
11396         of regs to the stack.  Use BLOCK_REG_PADDING.
11397         (locate_and_pad_parm): Save where_pad.
11398         (expand_function_end): Adjust emit_group_load call.
11399         * stmt.c (expand_value_return): Adjust emit_group_load call.
11400         * Makefile.in (calls.o): Depend on $(OPTABS_H).
11401         * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0.
11402         (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define.
11403         (MUST_PASS_IN_STACK): Define.
11404         (BLOCK_REG_PADDING): Define.
11405         * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs.
11406         (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING.
11407         * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs.
11408         (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code.
11409         Act on AGGREGATES_PAD_UPWARD_ALWAYS.
11410
11411 2003-07-13  Aaron W. LaFramboise  <awlaframboise@aol.com>
11412
11413         * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1.
11414
11415 2003-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11416
11417         * expr.c (expand_expr, case COMPONENT_REF): If reg, copy OP0 to MEM
11418         both if OFFSET specified and if result BLKmode for ARRAY_RANGE_REF.
11419
11420 2003-07-13  Nathanael Nerode  <neroden@gcc.gnu.org>
11421
11422         PR other/11123
11423         * toplev.c: Don't cut off option names.
11424
11425 2003-07-13  Andreas Jaeger  <aj@suse.de>
11426
11427         * c-decl.c (link_hash_hash): Avoid warning about casting pointer
11428         to integer of different size.
11429
11430 2003-07-13  Kazu Hirata  <kazu@cs.umass.edu>
11431
11432         * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0)
11433         to (eq (and X 1) 0).
11434
11435 2003-07-13  Andreas Jaeger  <aj@suse.de>
11436
11437         * config.gcc: Add pmmintrin.h for x86_64-*-*.
11438
11439 2003-07-13  Zack Weinberg  <zack@codesourcery.com>
11440
11441         * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H).
11442         (hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency
11443         list.  Move these all together down by cpplib.
11444
11445         * cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining
11446         definition of CPPCHAR_SIGNED_T.
11447
11448         * cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c
11449         * cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c
11450         * line-map.c, mkdeps.c: Don't include coretypes.h or tm.h.
11451
11452         * cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init.
11453         * cppinit.c (cpp_create_reader): Likewise.
11454
11455         * cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line.
11456         * cpptrad.c: Likewise.  All callers changed.
11457         * cpplib.c: All callers changed.
11458         * c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout.
11459         * hashtable.h: Define GTY(x) to nothing here too.
11460
11461 2003-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11462
11463         * stor-layout.c (compute_record_mode): Remove very obsolete test
11464         that forces BLKmode for records with fields crossing word boundary.
11465
11466 2003-07-13  Zack Weinberg  <zack@codesourcery.com>
11467
11468         * Makefile.in: Remove orphan reference to acconfig.h.
11469
11470 2003-07-13  Andreas Jaeger  <aj@suse.de>
11471
11472         * cgraphunit.c: Convert prototypes to ISO C90.
11473
11474 2003-07-13  Nathanael Nerode  <neroden@gcc.gnu.org>
11475
11476         * fixinc/inclhack.def (avoid_wchar_t_type): Use __cplusplus bypass
11477         (for OpenBSD).
11478         * fixinc/fixincl.x: Rebuild.
11479
11480 2003-07-12  Zack Weinberg  <zack@codesourcery.com>
11481
11482         * configure.in: Always define HAVE_AS_GOTOFF_IN_DATA for
11483         i?86-*-*.  Use correct name of cache variable.
11484         * configure: Regenerate.
11485
11486 2003-07-12  Kazu Hirata  <kazu@cs.umass.edu>
11487
11488         * config/alpha/alpha.c: Fix comment typos.
11489         * config/alpha/alpha.md: Likewise.
11490         * config/arm/arm.c: Likewise.
11491         * config/arm/arm.md: Likewise.
11492         * config/arm/lib1funcs.asm: Likewise.
11493         * config/avr/avr.md: Likewise.
11494         * config/arm/README-interworking: Fix typos.
11495
11496 2003-07-12  Kazu Hirata  <kazu@cs.umass.edu>
11497
11498         * c-format.c: Fix comment formatting.
11499         * c-typeck.c: Likewise.
11500         * coverage.c: Likewise.
11501         * cppcharset.c: Likewise.
11502         * cpplib.c: Likewise.
11503         * dbxout.c: Likewise.
11504         * gcov-io.h: Likewise.
11505         * toplev.c: Likewise.
11506
11507 2003-07-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11508
11509         * fixinc/inclhack.def (alpha_sbrk): Note that OpenBSD needs this
11510         fix.
11511
11512 2003-07-12  Zack Weinberg  <zack@codesourcery.com>
11513
11514         * aclocal.m4 (gcc_AC_CHECK_TYPE): Clone of AC_CHECK_TYPE,
11515         uses three-argument AC_DEFINE so no acconfig.h entries are
11516         needed.
11517         (_gcc_COMPUTE_GAS_VERSION): Also provide gcc_cv_gas_vers
11518         which contains the GAS version number as a scaled integer.
11519         (gcc_GAS_VERSION_GTE_IFELSE): Use gcc_cv_gas_vers.  Add
11520         ability to check for ELF assembler.
11521         (gcc_GAS_CHECK_FEATURE): New macro.
11522         * configure.in: Use gcc_AC_CHECK_TYPE.  Rewrite all
11523         assembler feature checks using gcc_GAS_CHECK_FEATURE.
11524         Use three-argument AC_DEFINE everywhere.
11525         * acconfig.h: Deleted.
11526         * config.in, configure: Regenerate.
11527
11528 2003-07-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11529
11530         * fixinc/inclhack.def (struct_sockaddr): Avoid "fixing" sockaddr_in
11531         (on OpenBSD).
11532         * fixinc/fixincl.x: Regenerate.
11533
11534         * fixinc/inclhack.def (gnu_types): Improve comment.
11535
11536 2003-07-12  Andreas Jaeger  <aj@suse.de>
11537
11538         * fp-test.c (main): Use ISO C90 prototype.
11539
11540         * version.c: Remove unneded include of ansidecl.h.
11541
11542         * cgraph.h: Convert prototypes to ISO C90.
11543         * cgraph.c: Likewise.
11544         * fix-header.c: Likewise.
11545         * ra.h: Likewise.
11546         * protoize.c: Likewise.
11547
11548 2003-07-12  Jan Hubicka  <jh@suse.cz>
11549
11550         * cgraphunit.c (cgraph_inlined_into, cgraph_inlined_calees): Fix
11551         warning.
11552
11553 2003-07-12  Jan Hubicka  <jh@suse.cz>
11554                                Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11555
11556         * cgraph.c (cgraph_max_uid): New global variable.
11557         (cgraph_node): Set uid field.
11558         (create_edge): Keep inline flags consistent.
11559         (dump_cgraph): Dump more info.
11560         * cgraph.h (struct cgraph_local_info): Remove inline_many and
11561         can_inline_once; add inlinable, disgread_inline_limits, and self_insn
11562         (struct cgraph_global_info): Add insns, calls, cloned_times,
11563         will_be_output.
11564         (struct cgraph_node): Add uid.
11565         (struct cgraph_edge): Add inline_call.
11566         (cgraph_max_uid, cgraph_inline_p): Declare.
11567         * cgraph.c: Include params.h and fibheap.h
11568         (cgraph_mark_functions_to_inline_once): Kill.
11569         (INSNS_PER_CALL): New constant.
11570         (ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns): New
11571         static variables.
11572         (cgraph_finalize_function): Do not analyze inlining.
11573         (cgraph_finalize_compilation_unit): Set inlining attributes.
11574         (cgraph_mark_functions_to_output): More consistency checks.
11575         (cgraph_optimize_function): Set current_function_decl to NULL.
11576         (cgraph_expand_function): Use new inline flags.
11577         (cgraph_postorder): Expand from cgraph_expand_functions.
11578         (INLINED_TIMES, SET_INLINED_TIMES): New macros.
11579         (cgraph_inlined_into, cgraph_inlined_callees,
11580         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
11581         cgraph_mark_inline, cgraph_check_inline_limits,
11582         cgraph_default_inline_p, cgraph_decide_inling_of_small_functions,
11583         cgraph_decide_inlining, cgraph_inline_p): New functions.
11584         * params.def (PARAM_LARGE_FUNCTION_INSNS, PARAM_LARGE_FUNCTION_GROWTH,
11585         PARAM_INLINE_UNIT_GROWTH): New parameters.
11586         * tree-inline.c (struct inline_data): New field current_decl.
11587         (expand_call_inline): Avoid forward declarations; use
11588         inlinable_function_p.
11589         (optimize_inline_calls): Set id.current_decl.
11590
11591 2003-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
11592
11593         * configure.in: Remove wrongly added definition of
11594         local_prefix.
11595         * configure: Regenerate.
11596
11597 2003-07-11  Dan Nicolaescu  <dann@ics.uci.edu>
11598
11599         * rtl.def (NOTE): Do not use padding.
11600
11601 2003-07-11  Dara Hazeghi  <dhazeghi@yahoo.com>
11602
11603         * doc/install.tex: Update required binutils for i?86-*-linux*
11604
11605 2003-07-11  Richard Henderson  <rth@redhat.com>
11606
11607         * Makefile.in (stage1_build): Force OBJS-onestep=OBJS.
11608
11609 2003-07-11  Mark Mitchell  <mark@codesourcery.com>
11610
11611         * varasm.c (make_decl_rtl): Treat decls with a DECL_CONTEXT of
11612         TRANSLATION_UNIT_DECL as top_level.
11613
11614 2003-07-11  Jakub Jelinek  <jakub@redhat.com>
11615
11616         * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists,
11617         then fall back to cmpstrM.
11618         * builtins.c (expand_builtin_memcmp): Likewise.
11619         * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to...
11620         (s390_expand_cmpmem): ... this.
11621         * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64,
11622         cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed
11623         from cmpstr* patterns.  Rename call to s390_expand_cmpstr
11624         to s390_expand_cmpmem.
11625         * config/s390/s390.c (s390_expand_cmpstr): Rename to...
11626         (s390_expand_cmpstr): ... this.  Rename cmpstr* instructions
11627         to cmpmem*.
11628         * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from
11629         cmpstr* patterns.
11630         * doc/md.texi (cmpstrM): Describe as String compare insn, not
11631         Block compare insn.
11632         (cmpmemM): Add.
11633
11634 2003-07-11  Loren James Rittle  <ljrittle@acm.org>
11635
11636         * config/i386/freebsd.h (SET_ASM_OP): Remove.
11637         (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case.
11638         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER
11639          MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace.
11640
11641 2003-07-11  Richard Henderson  <rth@redhat.com>
11642
11643         * function.c (assign_parms): Don't recombine complex args if
11644         fnargs is unchanged from orig_fnargs.
11645         (split_complex_args): Return args without complex before copying.
11646         Re-layout the modified parameters.
11647
11648 2003-07-11  J"orn Rennecke <joern.rennecke@superh.com>
11649
11650         * regclass.c (choose_hard_reg_mode): Add third argument.
11651         Changed all callers.
11652         * rtl.h (choose_hard_reg_mode): Update declaration.
11653         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes):
11654         Take HARD_REGNO_CALL_PART_CLOBBERED into account.
11655
11656 2003-07-11  Geoffrey Keating  <geoffk@apple.com>
11657
11658         * c-decl.c (finish_decl): Handle 'used' here...
11659         * cgraphunit.c (cgraph_finalize_function): ... and here ...
11660         * c-common.c: (handle_used_attribute): ... not here.
11661
11662         * configure.in (onstep): Support --enable-intermodule.
11663         * Makefile.in (OBJS-common): New.
11664         (OBJS-md): New.
11665         (OBJS-archive): New.
11666         (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive.
11667         (OBJS-onestep): New.
11668         (libbackend.a): Support @onestep@.
11669         (libbackend.o): New.
11670         * configure: Regenerate.
11671
11672         * c-common.h (c_reset_state): New prototype.
11673         (c_parse_file): New prototype.
11674         (finish_file): Move prototype from c-tree.h.
11675         * c-decl.c: Include <hashtab.h>.
11676         (builtin_decls): New.
11677         (current_file_decl): New.
11678         (duplicate_decls): Add extra parameter. Change all callers.  Don't
11679         output duplicate common symbols.
11680         (link_hash_hash): New.
11681         (link_hash_eq): New.
11682         (poplevel): Handle popping of the top level.
11683         (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL.
11684         (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate.
11685         (pushdecl_top_level): Likewise.
11686         (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL.
11687         (c_init_decl_processing): Create TRANSLATION_UNIT_DECL.
11688         (finish_decl): Handle TRANSLATION_UNIT_DECL.
11689         (merge_translation_unit_decls): New.
11690         (c_write_global_declarations): New.
11691         (c_reset_state): New.
11692         (implicitly_declare): Handle TRANSLATION_UNIT_DECL.
11693         * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
11694         * c-objc-common.c (c_cannot_inline_tree_fn): Handle
11695         TRANSLATION_UNIT_DECL.
11696         (c_objc_common_finish_file): Call merge_translation_unit_decls.
11697         * c-opts.c (in_fnames): Rename from in_fname.
11698         (c_common_decode_option): Handle multiple input filenames.
11699         (c_common_post_options): Likewise.
11700         (c_common_parse_file): Likewise; also, call c_parse_file rather than
11701         yyparse.
11702         * c-parse.in: Move cleanup code to c_parse_file.
11703         (free_parser_stacks): Move contents to c_parse_file.
11704         (c_parse_file): New.
11705         * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT
11706         for integer types.
11707         (C_DECL_FILE_SCOPE): New.
11708         (finish_file): Move prototype to c-common.h.
11709         (merge_translation_unit_decls): New prototype.
11710         (comptypes): Add extra parameter to prototype.
11711         (c_write_global_declarations): New prototype.
11712         * c-typeck.c (tagged_types_tu_compatible_p): New.
11713         (function_types_compatible_p): Add extra parameter, change all callers.
11714         (type_lists_compatible_p): Likewise.
11715         (comptypes): Likewise.
11716         (struct tagged_tu_seen): New.
11717         (tagged_tu_seen_base): New.
11718         (build_unary_op): Handle TRANSLATION_UNIT_DECL.
11719         (c_mark_addressable): Remove #if 0 code.
11720         * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add
11721         comment explaining why it shouldn't have to.
11722         * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY
11723         options.
11724         * cppinit.c (cpp_read_next_file): New.
11725         (cpp_read_main_file): Use it.
11726         * cpplib.c (undefine_macros): New.
11727         (cpp_undef_all): New.
11728         * cpplib.h (cpp_read_next_file): Prototype.
11729         (cpp_undef_all): Prototype.
11730         * langhooks-def.h (write_global_declarations): Remove prototype.
11731         * toplev.h (write_global_declarations): Add prototype.
11732         * tree.c (decl_type_context): Use switch statement, handle
11733         TRANSLATION_UNIT_DECL.
11734         * tree.def: Update documentation for TRANSLATION_UNIT_DECL.
11735         (TRANSLATION_UNIT_DECL): New kind of tree.
11736         * tree.h: Update documentation for TRANSLATION_UNIT_DECL.
11737         * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies.
11738         * doc/invoke.texi: Make attempt to document new functionality.
11739
11740         2003-05-19  Per Bothner <bothner@apple.com>
11741
11742         * gcc.c (combine_inputs): New.
11743         (process_command): Set combine_inputs.
11744         (do_spec_1): Handle combine_inputs.
11745         (main): Likewise.
11746
11747 2003-07-10  James E Wilson  <wilson@tuliptree.org>
11748
11749         PR optimization/9745
11750         * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before
11751         loop_insn_emit_before.
11752         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
11753
11754 2003-07-10  Zack Weinberg  <zack@codesourcery.com>
11755
11756         * cppcharset.c: Fix comment.
11757         (iconv_close [!HAVE_ICONV]): #define to (void)0 to prevent warning.
11758         (EILSEQ): #define to EINVAL if not already defined.
11759         (convert_using_iconv): #if out when !HAVE_ICONV.
11760         (init_iconv_desc): Handle !HAVE_ICONV here...
11761         (cpp_init_iconv): ...not here.
11762
11763 2003-07-11  Neil Booth  <neil@daikokuya.co.uk>
11764
11765         * common.opt: More --help messages.
11766         * opts.c (print_help): Use puts().
11767         * toplev.c (f_options): Remove help text.
11768         (display_help): Don't dump f_options.
11769
11770 2003-07-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11771
11772         * fixinc/mkfixinc.sh: Drop reference to unsupported alpha-*-interix*.
11773         Move i?86-*-interix* to the don't-fix list.
11774         * fixinc/fixinc.interix: Delete with extreme prejudice.
11775
11776 2003-07-10  Dara Hazeghi  <dhazeghi@yahoo.com>
11777
11778         PR bootstrap/10758
11779         * doc/install.texi: Document requirements for ia64-*-hpux* target.
11780
11781 2003-07-10  Roger Sayle  <roger@eyesopen.com>
11782
11783         * config/ia64/hpux.h (TARGET_C99_FUNCTIONS): Define.
11784
11785 2003-07-10  Zack Weinberg  <zack@codesourcery.com>
11786
11787         * cppcharset.c (one_utf8_to_cppchar, one_cppchar_to_utf8,
11788         one_utf8_to_utf32, one_utf32_to_utf8, one_utf8_to_utf16,
11789         one_utf16_to_utf8, conversion_loop, convert_utf8_utf16,
11790         convert_utf8_utf32, convert_utf16_utf8, convert_utf32_utf8,
11791         convert_no_conversion, convert_using_iconv): New functions.
11792         (APPLY_CONVERSION): New macro.
11793         (struct conversion, conversion_tab): New data structure.
11794         (init_iconv_desc): Check conversion_tab for a custom conversion
11795         primitive before trying to use iconv.
11796         (convert_cset): Deleted.
11797         (cpp_init_iconv): Use UTF- terminology, not UCS-.
11798         (_cpp_destroy_iconv): Update to match.
11799         (_cpp_valid_ucn): We don't need iconv to implement UCNs.
11800         (convert_ucn): Use one_cppchar_to_utf8 and APPLY_CONVERSION.
11801         (convert_escape, cpp_interpret_string): Use APPLY_CONVERSION.
11802         (_cpp_interpret_string_notranslate): New function, moved here
11803         from cpplib.c.
11804
11805         * cpphash.h (convert_f, struct cset_converter): New types.
11806         (struct cpp_reader): narrow_cset_desc and wide_cset_desc
11807         are now struct cset_converter, not bare iconv_t.
11808         Update prototypes.
11809         * cpplib.c (interpret_string_notranslate): Moved to cppcharset.c;
11810         all callers changed.
11811
11812 2003-07-10  Kelley Cook  <kelleycook@wideopenwest.com>
11813
11814         * Makefile.in (options.h): Depend on Makefile.  Add move-if-change
11815         to opts.sh command line.
11816         * opts.sh: Write to temporary files with a move-if-change at the end.
11817
11818 2003-07-10  Denis Chertykov  <denisc@overta.ru>
11819             Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11820
11821         * combine.c (gen_binary): Handle the CLOBBER rtx and
11822         don't build a binary operation with it.
11823
11824 2003-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11825
11826         * gcse.c (load_kills_store, find_loads, store_killed_in_insn,
11827         store_killed_after, store_killed_before): Keep track of the correct
11828         dependency function to use.
11829
11830 2003-07-10  Steven Bosscher  <steven@gcc.gnu.org>
11831         * toplev.c (do_compile): Don't try to open dump files before
11832         lang_dependent_init initializes dump_base_name.
11833
11834 2003-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11835
11836         * config/arm/arm.c (arm_init_iwmmxt_builtins, arm_expand_builtin):
11837         Use ARRAY_SIZE.
11838         * config/frv/frv.c (frv_expand_builtin): Likewise.
11839         * config/sh/sh.c (sh_media_init_builtins): Likewise.
11840
11841 2003-07-09  Mark Mitchell  <mark@codesourcery.com>
11842
11843         PR c++/10032
11844         * doc/invoke.texi (C++ Dialect Options): Change documentation of
11845         -fpermissive.
11846
11847 2003-07-10  J"orn Rennecke <joern.rennecke@superh.com>
11848
11849         * tm.texi (RETURN_ADDR_OFFSET): Document.
11850
11851 2003-07-10  Nathan Sidwell  <nathan@codesourcery.com>
11852
11853         * gcov-io.h: Update documentation.
11854         (GCOV_UNSIGNED2STRING): New.
11855         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
11856         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
11857         GCOV_TAG_SUMMARY_LENGTH): Adjust.
11858         (GCOV_TAG_BLOCKS_NUM, GCOV_TAG_ARCS_NUM,
11859         GCOV_TAG_COUNTER_NUM): New.
11860         (GCOV_BLOCK_SIZE): Number of words.
11861         (gcov_var): Adjust buffer type.
11862         * gcov-io.c (gcov_write_bytes, gcov_read_bytes): Rename to ...
11863         (gcov_write_words, gcov_read_words): ... here. Take a 4-byte word
11864         count, not byte count.
11865         (gcov_open): Adjust overread init.
11866         (gcov_allocate, gcov_write_unsigned, gcov_write_counter,
11867         gcov_write_string, gcov_write_tag, gcov_write_length,
11868         gcov_write_tag_length): Adjust.
11869         (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
11870         (gcov_sync, gcov_seek): Adjust.
11871         * gcov-dump.c (print_usage): Show gcc version only.
11872         (dump_file): Use GCOV_UNSIGNED2STRING.
11873         (tag_blocks, tag_arcs, tag_counters): Use GCOV_TAG_*_NUM macros.
11874         * gcov.c (print_version): Show gcc version only.
11875         (read_graph_file): Use GCOV_UNSIGNED2STRING. Use
11876         GCOV_TAG_*_NUM macros.
11877         (read_count_file): Use GCOV_UNSIGNED2STRING. Use
11878         GCOV_TAG_COUNTER_LENGTH.
11879         * coverage.c (read_counts_file): Use GCOV_UNSIGNED2STRING.
11880         Use GCOV_TAG_COUNTER_NUM.
11881         * libgcov.c (gcov_version): Use GCOV_UNSIGNED2STRING.
11882         (__gcov_merge_single, __gcov_merge_delta): Use GCOV_CHECK.
11883
11884 2003-07-10  Andreas Schwab  <schwab@suse.de>
11885
11886         * gcov-dump.c (dump_file): Fix missing address operator.
11887
11888 2003-07-10  Kazu Hirata  <kazu@cs.umass.edu>
11889
11890         PR c/11449
11891         * fold-const.c (sign_bit_p): Return EXP if VAL is the sign bit
11892         of HOST_WIDE_INT.
11893         (fold_single_bit_test): If sign_bit_p() fails, assume that the
11894         bit being tested is not a sign bit.
11895
11896 2003-07-10  Kazu Hirata  <kazu@cs.umass.edu>
11897
11898         * config/h8300/h8300.md (a peephole2): New.
11899
11900 2003-07-10  Alexandre Oliva  <aoliva@redhat.com>
11901
11902         2001-12-13  Alexandre Oliva  <aoliva@redhat.com>
11903         * config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker
11904         from ld-linux.so.2 to ld.so.1.
11905         2001-11-18  Alexandre Oliva  <aoliva@redhat.com>
11906         * config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread.
11907         * config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath
11908         nor -Wl,-rpath-link.
11909         (LIB_SPEC): Add -rpath-link if !static.
11910         2001-08-22  Alexandre Oliva  <aoliva@redhat.com>
11911         * config/mn10300/mn10300.c (mn10300_protect_label): New
11912         variable.
11913         * config/mn10300/linux.h (PRINT_OPERAND,
11914         PRINT_OPERAND_ADDRESS): Set it during their execution.
11915         (ASM_OUTPUT_LABELREF): Output `+' before symbol name if
11916         mn10300_protect_label is set.
11917         * config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and
11918         -Wl,-rpath-link.
11919         (LIB_SPEC, STARTFILE_SPEC): Define.
11920         2001-05-11  Alexandre Oliva  <aoliva@redhat.com>
11921         * config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define
11922         FLOAT_BIT_ORDER_MISMATCH.
11923         2001-05-09  Alexandre Oliva  <aoliva@redhat.com>
11924         * config.gcc (am33_2.0-*-linux*): Added.
11925         * config/mn10300/linux.h: New.
11926         * config/mn10300/t-linux: New.
11927
11928 2003-07-10  Andreas Jaeger  <aj@suse.de>
11929
11930         * fold-const.c: Properly wrap prototypes.
11931
11932 2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
11933
11934         2003-06-16  Alexandre Oliva  <aoliva@redhat.com>
11935         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter):
11936         Moved from...
11937         * config/mn10300/mn10300.md (GOTaddr2picreg): ... here.
11938         * config/mn10300/mn10300.h: GTY-declare it.
11939         2003-06-11  Alexandre Oliva  <aoliva@redhat.com>
11940         * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix
11941         prototype.  Use incoming RTL argument.
11942         2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
11943         * config/mn10300/mn10300.md (int_label): Move C statements...
11944         (GOTaddr2picreg): ... here.
11945         2002-08-15  Alexandre Oliva  <aoliva@redhat.com>
11946         * config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move...
11947         * config/mn10300/mn10300.c (mn10300_encode_section_info):
11948         ... here.  New function.
11949         (TARGET_ENCODE_SECTION_INFO): Define to it.
11950         2001-11-04  Alexandre Oliva  <aoliva@redhat.com>
11951         * config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in
11952         pattern name.
11953         (mn10300_loadPC): Define as insn splittable after reload.
11954         2001-05-13  Alexandre Oliva  <aoliva@redhat.com>
11955         * config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them
11956         be defined in .rodata even in PIC, now that the assembler
11957         supports that.
11958         2001-05-09  Alexandre Oliva  <aoliva@redhat.com>
11959         * config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the
11960         symbol take an underscore prefix.
11961         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
11962         * config/mn10300/mn10300-protos.h (legitimate_pic_operand_p,
11963         legitimize_pic_address): Declare.
11964         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark
11965         the PIC register as fixed.
11966         (EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'.
11967         (GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for
11968         PIC.
11969         (LEGITIMATE_PIC_OPERAND_P): Define.
11970         (PIC_OFFSET_TABLE_REGNUM): Define.
11971         (GOT_SYMBOL_NAME): Define.
11972         (SYMBOLIC_CONST_P): Define.
11973         (ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local
11974         symbols.
11975         (MN10300_GLOBAL_P): Test it.
11976         (OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs.
11977         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC.
11978         * config/mn10300/mn10300.c (print_operand): Handle unspec.
11979         (expand_prologue): Set PIC register.
11980         (call_address_operand): Don't match SYMBOL_REFs in PIC.
11981         (legitimize_address): Call legitimize_pic_address.
11982         (legitimize_pic_address): New fn.
11983         (legitimate_pic_operand_p): New fn.
11984         * config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants.
11985         (UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF,
11986         UNSPEC_PLT): New constants.
11987         (pop_pic_reg): New insn.
11988         (movsi): Adjust non-PIC addresses.
11989         (builtin_setjmp_receiver): Restore the PIC register.
11990         (casesi): New insn.
11991         (call): Adjust non-PIC addresses.
11992         (int_label, GOTaddr2picreg): New expands.
11993         (am33_loadPC): New insn.
11994         (mn10300_loadPC): New expand.
11995         (call_next_insn): New insn.
11996         (add_GOT_to_pic_reg): New expand.
11997         (symGOT2reg, symGOT2reg_i): New expands.
11998         (symGOTOFF2reg, symGOTOFF2reg_i): New expands.
11999         (sym2PIC, sym2PLT): New expands.
12000
12001 2003-07-09  Alexandre Oliva  <aoliva@redhat.com>
12002
12003         * config/mn10300/mn10300.h (PREDICATE_CODES): Define.
12004         2001-05-01  Alexandre Oliva  <aoliva@redhat.com>
12005         * config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed
12006         to flag_unsafe_math_optimizations.
12007         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
12008         * config/mn10300/mn10300.c (expand_prologue): Mark
12009         FP-register-saving insns as frame-related.
12010         2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
12011         * config/mn10300/mn10300.c
12012         (mn10300_get_live_callee_saved_regs): Don't search past
12013         LAST_EXTENDED_REGNUM.
12014         (mn10300_gen_multiple_store, store_multiple_operation): Likewise.
12015         * config/mn10300/mn10300.md: Remove excessive line breaks from
12016         `@' output patterns that were accounted as additional
12017         alternatives.
12018         * config/mn10300/mn10300.md, config/mn10300/mn10300.c:
12019         Re-introduce changes accidentally removed in Richard Sandiford's
12020         2000-12-05's patch.
12021         * config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
12022         Re-instate am33-2 lost in merge from net GCC.
12023         2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
12024         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added
12025         floating-point registers.
12026         2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
12027         * config/mn10300/mn10300.md (movdf): Revert some am33-specific
12028         pessimizations that had gone in on 2000-05-08.
12029         2000-06-28  Graham Stott  <grahams@cygnus.co.uk>
12030         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo.
12031         2000-06-22  Graham Stott  <grahams@cygnus.co.uk>
12032         * config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for
12033         operand 0.
12034         * (movhi): Likewise.
12035         * (movsi): Likewise.
12036         * (movsf): Likewise.
12037         * (movdi): Likewise.
12038         * (movdf): Likewise.
12039         2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
12040         * config/mn10300/mn10300.c (fp_regs_to_save): New function.
12041         (can_use_return_insn, initial_offset): Add fp_regs_to_save.
12042         (expand_prologue, expand_epilogue): Save and restore FP regs.
12043         2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
12044         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
12045         2000-05-13  Alexandre Oliva  <aoliva@cygnus.com>
12046         * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3,
12047         subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4):
12048         Do not clobber cc0.
12049         2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
12050         * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2):
12051         Discourage the two-argument, longer opcodes.
12052         (addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument
12053         ones.
12054         * config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New.
12055         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define.
12056         * config/mn10300/mn10300.md (cmpsf): New pattern.
12057         (branch): Test mdep.fpCC and output fbCC.
12058         * config/mn10300/mn10300.c (print_operand): Output conditions.
12059         (notice_cc_update): Recognize fcmp and set mdep.fpCC.
12060         2000-05-10  Alexandre Oliva  <aoliva@cygnus.com>
12061         * config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3,
12062         mulsf3, divsf3): Use the `F' constraint for FP values.
12063         * config/mn10300/mn10300.c (const_1f_operand): New function.
12064         * config/mn10300/mn10300-protos.h (const_1f_operand): Declare.
12065         * config/mn10300/mn10300.md (sqrtsf2): New expand.
12066         (rsqrtsf2): New insn.
12067         2000-05-09  Alexandre Oliva  <aoliva@cygnus.com>
12068         * config/mn10300/mn10300.md (movdf): Oops, I missed it in my
12069         previous check-in.
12070         2000-05-08  Alexandre Oliva  <aoliva@cygnus.com>
12071         * config/mn10300/mn10300.md (abssf2, negdf2): On
12072         TARGET_AM33_2, expand to...
12073         (abssf2_am33_2, negdf2_am33_2): New insns.
12074         (addsf3, subsf3, mulsf3, divsf3): Likewise.
12075         (fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise.
12076         * config/mn10300/mn10300.md (movqi, movhi, movsi, movsf,
12077         movdi, movdf): Added FP regs.
12078         * invoke.texi (-mam33-2, -mno-am33-2): Document.
12079         2000-04-29  Alexandre Oliva  <aoliva@cygnus.com>
12080         * config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM):
12081         New macros.
12082         (REGNO_AM33_2_FP_P): Renamed to...
12083         (REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*.
12084         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
12085         2000-04-27  Alexandre Oliva  <aoliva@cygnus.com>
12086         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP
12087         regs from GENERAL_REGS.
12088         2000-04-27  Alexandre Oliva  <aoliva@cygnus.com>
12089         * config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro.
12090         * config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS.
12091         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS.
12092         2000-04-23  Alexandre Oliva  <aoliva@cygnus.com>
12093         * config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined
12094         as FP_REGS.
12095         2000-04-21  Alexandre Oliva  <aoliva@cygnus.com>
12096         * config/mn10300/mn10300.h (OK_FOR_Q): New macro.
12097         (EXTRA_CONSTRAINT): Added OK_FOR_Q.
12098         * config/mn10300/mn10300.c (secondary_reload_class): Adjust.
12099         * config/mn10300/mn10300.c (print_operand): Support `D' for doubles.
12100         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust.
12101         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added
12102         AM33/2.0 floating-point registers.
12103         (CONDITIONAL_REGISTER_USAGE): Adjust.
12104         (enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS.
12105         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust.
12106         (REG_CLASS_FROM_LETTER): Added `f' and `A'.
12107         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust.
12108         * config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2.
12109         (MULTILIB_DIRNAMES): Likewise.
12110         * config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and
12111         `__AM33_2__' when `-mam33-2' is given.
12112         (TARGET_AM33_2): Define.
12113         (TARGET_SWITCHES): Adjust.
12114         * config/mn10300/mn10300.c (asm_file_start): Print `.am33_2'
12115         when appropriate.
12116
12117 2003-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
12118
12119         * doc/install.texi: Add missing @.
12120
12121 2003-07-09  Bob Wilson  <bob.wilson@acm.org>
12122
12123         * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define.
12124
12125 2003-07-09  Aldy Hernandez  <aldyh@redhat.com>
12126
12127         PR/11144
12128         * config/i386/i386.c (ix86_function_arg_boundary): Remove abort.
12129
12130 2003-07-09  Nathanael Nerode  <neroden@gcc.gnu.org>
12131
12132         PR bootstrap/11043
12133         * config/arc/t-arc: Replace bogus references to "x-crtinit.o",
12134         "x-crtfini.o" with "crtinit.o", "crtfini.o".
12135
12136         * fixinc/inclhack.def (limits_ifndefs): Add select test.
12137         * fixinc/fixincl.x: Rebuild.
12138
12139         * fixinc/inclhack.def (math_exception):  Improve bypass and comment.
12140         * fixinc/fixincl.x: Rebuild.
12141
12142 2003-07-09  Hans-Peter Nilsson  <hp@bitrange.com>
12143
12144         * doc/install.texi (Configuration): Document the valgrind option
12145         to --enable-checking.
12146
12147 2003-07-09  Jan Hubicka  <jh@suse.cz>
12148
12149         * objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
12150
12151 2003-07-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12152
12153         * c-lex.c (cb_ident): Cast cstr.text to const char *.
12154
12155 2003-07-09  Nathan Sidwell  <nathan@codesourcery.com>
12156
12157         * gcov-io.h: Update documentation.
12158         (GCOV_GRAPH_SUFFIX, GCOV_GRAPH_MAGIC): Rename to GCOV_NOTE_SUFFIX,
12159         GCOV_NOTE_MAGIC.
12160         (GCOV_DATA_SUFFIX, GCOV_NOTE_SUFFIX): Update.
12161         (GCOV_DATA_MAGIC, GCOV_NOTE_MAGIC): Make non-palindromic.
12162         (struct gcov_var): Change buffer's type. Add endian flag.
12163         (gcov_open): Remove mode in libgcov.
12164         (gcov_magic): Prototype.
12165         * gcov-io.c (from_file): New.
12166         (gcov_open): Clear endian flag.
12167         (gcov_magic): New.
12168         (gcov_write_bytes, gcov_read_bytes): Return gcov_unsigned_t
12169         pointers.
12170         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
12171         gcov_write_tag, gcov_write_length, gcov_write_tag_length): Update.
12172         (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Update.
12173         * gcov-iov.c (main): Correct cast.
12174         * coverage.c (read_counts_file): Use gcov_magic. Remove endianness
12175         conversion.
12176         (gcov_begin_output): Use GCOV_NOTE_MAGIC.
12177         (coverage_init): Use GCOV_NOTE_SUFFIX.
12178         * libgcov.c (gcov_version_mismatch): Remove endianness conversion.
12179         Rename to gcov_version, and return flag.
12180         (gcov_exit): Use gcov_version.
12181         (__gcov_init): Use gcov_version.
12182         * Makefile.in (coverageexts): Update.
12183         * gcov.c (print_version): Remove endianness conversion.
12184         (create_file_names): Use GCOV_NOTE_SUFFIX.
12185         (read_graph_file): Use gcov_magic.
12186         (read_count_file): Likewise.
12187         * gcov-dump.c (dump_file): Remove endianness conversion, use
12188         gcov_magic.
12189
12190 2003-07-09  Nathan Sidwell  <nathan@codesourcery.com>
12191
12192         * configure.in (BUILD_PREFIX, BUILD_PREFIX_1): Set if enable
12193         coverage is on.
12194         * configure: Regenerated.
12195         * Makefile.in (ALL_CFLAGS): Correct its comment.
12196
12197 2003-07-08  Mark Mitchell  <mark@codesourcery.com>
12198
12199         * fold-const.c (make_range): Do not access operand 1 for a
12200         zero-operand operator.
12201
12202 2003-07-09  Neil Booth  <neil@daikokuya.co.uk>
12203
12204         * toplev.c (warn_dummy, W_options): Die.
12205         (display_help): Don't print W_options.
12206         * common.opt: Add W_options help from toplev.c.
12207
12208 2003-07-09  Andreas Jaeger  <aj@suse.de>
12209
12210         * opts.c (wrap_help): Only pass int arguments as arguments to
12211         printf's '*' modifier.  Change argument of function.
12212
12213 2003-07-08  Matt Kraai  <kraai@alumni.cmu.edu>
12214
12215         * doc/invoke.texi: Fix misspelling of "@item".
12216
12217 2003-07-08  Kazu Hirata  <kazu@cs.umass.edu>
12218
12219         * config/i386/i386.md: Remove an old comment about
12220         NOTICE_UPDATE_CC.
12221
12222 2003-07-09  Jan Hubicka  <jh@suse.cz>
12223
12224         * cgraph.c (cgraph_node_name): New function.
12225         (dump_cgraph): Use it.
12226         * cgraph.h (cgraph_dump_file): Declare.
12227         (cgraph_node_name): Declare.
12228         * cgraphunit.c: Include timevar.h
12229         (cgraph_finalize_compilation_unit): Use timevar; reorganize dumps.
12230         (cgraph_optimize_function): Use TV_INTEGRATION.
12231         (cgraph_mark_local_functions): reorganize dumps.
12232         (cgraph_mark_functions_to_inline_once): Likewise.
12233         (cgraph_optimize): Likewise; use timevar.
12234         * timevar.def (TV_CGRAPH, TV_CGRAPHOPT): New.
12235         * toplev.c (dump_file_index): Add DFI_cgraph.
12236         (dump_file_info): Likewise.
12237         (cgraph_dump_file): New global variable.
12238         (do_compile): Open and close cgraph dump.
12239         * invoke.texi (-d): Document new flag; renumber.
12240
12241 2003-07-08  Roger Sayle  <roger@eyesopen.com>
12242
12243         PR c/11370
12244         * calls.c (emit_call_1): Don't bother popping the arguments off of
12245         the stack after a noreturn function call;  The adjustment is dead.
12246         (expand_call): Likewise.
12247
12248 2003-07-08  Geoffrey Keating  <geoffk@apple.com>
12249
12250         * expr.c (MOVE_MAX_PIECES): Move from here...
12251         * defaults.h (MOVE_MAX_PIECES): ... to here.
12252
12253 2003-07-08  Matt Kraai  <kraai@alumni.cmu.edu>
12254
12255         * Makefile.in (stage1-start): Handle an empty SUBDIRS.
12256
12257 2003-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12258
12259         * genattr.c (internal_dfa_insn_code): Don't prototype.
12260         * genattrtab.c (attr_desc): Add `static_p' field.
12261         (expand_units): Make blockage range and ready cost functions
12262         static.
12263         (write_attr_get): Don't add extern prototypes in C file.  Mark
12264         static functions as appropriate.
12265         (find_attr, make_internal_attr): Initialize static_p.
12266         * genattrtab.h (ATTR_STATIC): New macro.
12267         * genautomata.c (output_internal_reset_func): Mark output function
12268         as inline.
12269         (make_internal_dfa_insn_code_attr): Mark output function as static.
12270
12271 2003-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12272
12273         * genattrtab.h: Add new macros for attr `special' flags.
12274         * genattrtab.c (attr_desc): Reorder/resize fields better.
12275         Use attr `special' macros in all calls to make_internal_attr.
12276         * genautomata.c: Likewise.
12277
12278 2003-07-09  Jan Hubicka  <jh@suse.cz>
12279
12280         * c-common.c (c_estimate_num_insns_1): New static function.
12281         (c_estimate_num_insns): New global function.
12282         * c-common.h (DECL_NUM_STMTS): Rename to...
12283         (DECL_ESTIMATED_INSNS): ... this.
12284         (c_estimate_num_insns): Declare.
12285         * c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS.
12286         * c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.
12287         * c-semantics.c (add_stmt): Do not account statements.
12288         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS):
12289         New.
12290         * langhooks.h (lang_hooks_for_tree_inlining): Add
12291         estimate_num_insns
12292         * params.def (max-inline-insns-auto, max-inline-insns-auto): set
12293         to 100.
12294         (max-inline-insns): set to 300.
12295         (min-inline-insns): set to 10.
12296         * tree-inline.c (struct inline_data): Rename inlined_stmts to
12297         inlined-insns.
12298         (INSNS_PER_STMT): Kill.
12299         (inlinable_function_p): Compute and store body size.
12300         (expand_call_inline): Likewise.
12301         (optimize_inline_calls): Likewise.
12302
12303 2003-07-08  James E Wilson  <wilson@tuliptree.org>
12304
12305         PR target/10021
12306         * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF,
12307         loop over new variable t2 instead of t.
12308
12309 2003-07-08  Danny Smith  <dannysmith@users.sourceforge.net>
12310
12311         PR bootstrap/11455
12312         * config/i386/winnt.c: Replace use of error(), warning() with
12313         error_with_decl(), warning_with_decl(),  throughout.
12314
12315 2003-07-08  Neil Booth  <neil@daikokuya.co.uk>
12316
12317         * opts.c (wrap_help): Use unsigned int, not size_t.
12318
12319 2003-07-08  Stephane Carrez  <stcarrez@nerim.fr>
12320
12321         * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define
12322         as .file/.loc directives are incompatible with linker relaxation.
12323
12324 2003-07-08  Zack Weinberg  <zack@codesourcery.com>
12325
12326         * Makefile.in (fixinc.sh): Remove gnu-regex.[ch] from dependencies.
12327         * fixinc/Makefile.in: Remove all references to gnu-regex.[och].
12328         * fixinc/fixfixes.c, fixinc/fixincl.c, fixinc/fixlib.c
12329         * fixinc/fixtests.c: Use xregexec not regexec, xregcomp not regcomp.
12330         * fixinc/fixlib.h: Include xregex.h not gnu-regex.h.
12331         * fixinc/inclhack.def (hpux10_cpp_pow_inline, hpux11_cpp_pow_inline):
12332         Escape { and } characters which are not part of range expressions.
12333         * fixinc/fixincl.x: Regenerate.
12334         * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Delete file.
12335
12336 2003-07-08  Steven Bosscher  <steven@gcc.gnu.org>
12337
12338         PR c/1687
12339         * tree-inline.c (find_alloca_call): Use
12340         walk_tree_without_duplicates, instead of walk_tree.
12341         (find_builtin_longjmp_call): Likewise.
12342         * c-objc-common.c (c_cannot_inline_fn): Likewise.
12343         * c-semantics.c (find_reachable_label): Likewise.
12344
12345 2003-07-08  Jakub Jelinek  <jakub@redhat.com>
12346
12347         PR c/11420
12348         * config/i386/i386.c (ix86_check_movabs): New function.
12349         * config/i386/i386-protos.h (ix86_check_movabs): New prototype.
12350         * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative.
12351         (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions.
12352
12353 2003-07-08  Chris Demetriou  <cgd@broadcom.com>
12354
12355         * Makefile.in (install-po): Cope with empty CATALOGS.
12356
12357 2003-07-08  Richard Sandiford  <rsandifo@redhat.com>
12358
12359         * config/mips/elf64.h (TARGET_ASM_UNIQUE_SECTION): Delete.
12360         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
12361         (SECTION_FUNCTION_TEMPLATE): Delete.
12362         * config/mips/elf.h: As for elf64.h.
12363         (ASM_OUTPUT_ALIGNED_BSS): Use named_section rather than sbss_section.
12364         * config/mips/linux.h: As for elf.h
12365         * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete.
12366         * config/mips/iris6.h (EXTRA_SECTIONS): Delete.
12367         (EXTRA_SECTION_FUNCTIONS): Remove sdata_section.  Remove the handling
12368         of in_sdata from current_section_name and current_section_flags.
12369         * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete.
12370         * config/mips/mips.h (sdata_section, sbss_section): Remove prototypes.
12371         (MASK_GP_OPT, TARGET_GP_OPT): Delete.
12372         (MASK_NO_FUSED_MADD): Use MASK_GP_OPT's old value.
12373         (TARGET_SWITCHES): Neuter gpOPT, gpopt, no-gpOPT and no-gpopt.
12374         (SMALL_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
12375         * config/mips/mips.c (TARGET_IN_SMALL_DATA_P): Override.
12376         (TARGET_SECTION_TYPE_FLAGS): Override if TARGET_IRIX6.
12377         (mips_classify_symbol): Use SYMBOL_REF_SMALL_P.
12378         (override_options): Remove setting of MASK_GPOPT.
12379         (mips_output_external): Use mips_in_small_data_p to check whether a
12380         symbol needs an .extern directive.  Don't emit such directives for
12381         TARGET_EXPLICIT_RELOCS.
12382         (mips_declare_object): Update accordingly.
12383         (mips_select_rtx_section): Call named_section rather than
12384         SMALL_DATA_SECTION.
12385         (mips_select_section): Use default_elf_section_section for everything
12386         except .text string constants.
12387         (mips_in_small_data_p): New function.
12388         (mips_encode_section_info): Remove small data handling.
12389         (mips_unique_section): Delete.
12390         (iris6_section_type_flags): New function.
12391         * doc/tm.texi: Remove documentation of -mgpopt and -mhalf-pic.
12392
12393 2003-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12394
12395         PR Target/11453
12396         * pa.md: Disparage all mtsar constraints.
12397         (extzv, extv, insv): Don't fail on length of {32|64}.
12398
12399 2003-07-08  Zack Weinberg  <zack@codesourcery.com>
12400
12401         * system.h: Poison MAP_CHARACTER.
12402         * config/i370/i370-protos.h (mvs_map_char): Delete.
12403         * config/i370/i370.c (ascebc, ebcasc, mvs_map_char): Delete.
12404         * config/i370/i370.h (MAP_CHARACTER): Delete definition.
12405         (ASM_OUTPUT_ASCII): Don't use MAP_CHARACTER.
12406
12407 2003-07-08  Danny Smith  <dannysmith@users.sourceforge.net>
12408
12409         * toplev.c (randomize): Correct call to time().
12410
12411 2003-07-08  Jakub Jelinek  <jakub@redhat.com>
12412
12413         * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and
12414         REG_EQUIV notes as well.
12415
12416 2003-07-08  Kazu Hirata  <kazu@cs.umass.edu>
12417
12418         * doc/md.texi: Fix the description of addmodecc.
12419
12420 2003-07-07  Zack Weinberg  <zack@codesourcery.com>
12421
12422         * Makefile.in (top_builddir): Set to "..", not ".".
12423         (INTLLIBS, INTLDEPS): Delete.
12424         (LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted.
12425         (LIBDEPS): Add $(LIBICONV_DEP).
12426         (LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV).
12427         (INCLUDES): Replace -I../intl with @INCINTL@.
12428         ($(top_builddir)/intl/libintl.a): Delete rule.
12429         (stage2-start, stage3-start, stage4-start, stageprofile-start,
12430         stagefeedback-start): Use $$ for variable to be evaluated by
12431         shell, not make.
12432         * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT,
12433         HAVE_LC_MESSAGES, HAVE_STPCPY): Delete.
12434         * aclocal.m4: sinclude ../config/progtest.m4.  Add
12435         contents of lcmessage.m4 from gettext distro.
12436         * configure.in: Check for wchar.h and setlocale.  Set
12437         LIBICONV_DEP to the empty string and substitute it.
12438         Call AM_LC_MESSAGES.  Delete AC_ARG_ENABLE for --enable-nls;
12439         this is handled elsewhere.  Use ZW_GNU_GETTEXT_SISTER_DIR,
12440         not CY_GNU_GETTEXT.  Clear $LIBICONV if its text is included
12441         in $LIBINTL, to avoid linking it twice.
12442         * configure, config.in: Regenerate.
12443
12444 2003-07-08  Nathanael Nerode  <neroden@gcc.gnu.org>
12445
12446         * fixinc/mkfixinc.sh: Remove winnt support.
12447         * fixinc/fixinc.winnt: Delete with extreme prejudice.
12448
12449 2003-07-08  Neil Booth  <neil@daikokuya.co.uk>
12450
12451         * Makefile.in: Update.
12452         * c-opts.c (c_common_handle_option): opt_text now contains the '-'.
12453         * c.opt: Update documentation.
12454         * common.opt: Add some help text.
12455         * opts.c: Include intl.h.
12456         (wrap_help, print_help): New.
12457         (find_opt, handle_option, common_handle_option): opt_text now
12458         contains the '-'.  Use print_help to output help.
12459         * opts.h (struct cl_option): New member "help".
12460         * opts.sh: Update to handle help text output and to prepend
12461         options with '-'.
12462         * toplev.c (display_help): Remove some help text.
12463
12464 2003-07-07  David Edelsohn  <edelsohn@gnu.org>
12465             Fariborz Jahanian  <fjahanian@apple.com>
12466
12467         * configure.in: Test for PowerPC mfcr field support in assembler.
12468         * config.in, configure: Regenderated.
12469
12470         * config/rs6000/power4.md: Add mfcrf reservation.
12471         * config/rs6000/rs6000-protos.h (mfcr_operation): Declare.
12472         * config/rs6000/rs6000.c (mfcr_operation): Define.
12473         (print_operand): Add 'Q' case for mfcrf.
12474         * config/rs6000/rs6000.h (TARGET_MFCRF): New.
12475         * config/rs6000/rs6000.md (attribute "type"): Add mfcrf.
12476         (movcc_internal1): Emit optional field operand for mfcr and set
12477         "type" attribute appropriately.
12478         (mfcr SCC): Likewise.
12479         (movesi_from_cr_one): New.
12480
12481 2003-07-07  Roger Sayle  <roger@eyesopen.com>
12482
12483         * config/i386/i386.md: Correct check-in of incorrect version.
12484
12485 2003-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12486
12487         * bitmap.c (debug_bitmap_file): Merge uses of HOST_PTR_PRINTF with
12488         adjacent stdio calls.
12489         * c-decl.c (c_print_identifier): Likewise.
12490         * mips-tfile.c (write_varray, write_object, allocate_cluster): Likewise.
12491         * print-rtl.c (print_rtx): Likewise.
12492         * print-tree.c (print_node_brief, print_node): Likewise.
12493         * system.h (HOST_PTR_PRINTF): Ensure we have a literal string.
12494
12495         * configure.in (AC_COMPILE_CHECK_SIZEOF): Check for `void *'.
12496         * config.in, configure: Regenerated.
12497
12498 2003-07-07  Roger Sayle  <roger@eyesopen.com>
12499
12500         PR target/10979
12501         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
12502         Changed to define_expand patterns that copy operand[1] to prevent
12503         it from being clobbered before emitting an atan2?f3_1 insn.
12504         (atan2df3_1, atan2sf3_1, atan2xf_1, atan2tf3_1): New define_insn
12505         patterns that actually specify the behaviour of x87's FPATAN.
12506
12507 2003-07-07  Jakub Jelinek  <jakub@redhat.com>
12508
12509         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Remove bogus
12510         clearing of SYMBOL_FLAG_LOCAL bit.
12511         If vcall_offset fits into signed 16-bit immediate, use
12512         one instruction for both addition and load.
12513
12514 2003-07-07  Neil Booth  <neil@daikokuya.co.uk>
12515
12516         * opts.c (common_handle_option): Correct handling of the
12517         -falign- switches that do and don't take an argument.
12518
12519 2003-07-07  Kazu Hirata  <kazu@cs.umass.edu>
12520
12521         * config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch
12522         today.
12523         (pushhi1_h8300hs): Likewise.
12524
12525 2003-07-07  Andreas Jaeger  <aj@suse.de>
12526
12527         * genextract.c: Convert remaining prototypes to ISO C90.
12528
12529         * cpplex.c (_cpp_free_buff): Convert prototype to ISO C90.
12530         * fold-const.c (fold_single_bit_test): Likewise.
12531         * diagnostic.c (default_diagnostic_finalizer): Likewise.
12532         * cfgrtl.c (rtl_redirect_edge_and_branch): Likewise.
12533
12534         * gengtype.c (write_array): Generate ISO C90 prototypes.
12535
12536         * genflags.c (gen_proto): Generate ISO C90 prototypes.
12537
12538 2003-07-07  Roger Sayle  <roger@eyesopen.com>
12539
12540         PR optimization/11059
12541         * expr.c (can_store_by_pieces): Return true if length is zero.
12542         (store_by_pieces): If length is zero and endp is two, abort,
12543         othwerise, if length is zero and endp is not two, return "to".
12544         (clear_by_pieces): Do nothing if length is zero.
12545         (clear_storage): Do nothing if length is zero.
12546         (store_constructor): Simplify code when size is zero, or the
12547         target has already been cleared.  This avoids emitting a
12548         blockage instruction when initializing empty structures.
12549
12550 2003-07-07  Andreas Jaeger  <aj@suse.de>
12551
12552         * mips-tfile.c: Convert prototypes to ISO C90.
12553         * mips-tdump.c: Convert prototypes to ISO C90.
12554
12555 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12556
12557         * rtl.h (emit_line_note): Take a location_t.
12558         (emit_line_note_force): Remove.
12559         (set_file_and_line_for_statement): Take a location_t.
12560         * tree.g (emit_line_note): Take a location_t.
12561         * emit-rtl.c (emit_line_note): Take a location_t.
12562         (emit_line_note_force): Remove.
12563         * function.c (init_function_start): Adjust emit_line_note call.
12564         (expand_function_end): Use force_next_line_note, not
12565         emit_line_note_force.
12566         * c-parse.in (maybe_type_qual): Adjust emit_line_note calls.
12567         * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt,
12568         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
12569         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt,
12570         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
12571         genrtl_continue_stmt, genrtl_switch_stmt,
12572         genrtl_asm_stmt): Likewise.
12573         * expr.c (expand_expr): Likewise.
12574         * integrate.c (expand_inline_function): Likewise.
12575         * stmt.c (set_file_and_line_for_stmt): Take a location_t.
12576         (expand_decl_init): Adjust emit_line_note call.
12577
12578 2003-07-07  Dale Johannesen  <dalej@apple.com>
12579
12580         * config/rs6000/darwin-tramp.asm:  Fix trampolines.  PR 10900.
12581
12582 2003-07-07  Andreas Jaeger  <aj@suse.de>
12583
12584         * config/i386/i386-protos.h: Convert prototypes to ISO C90.
12585         * config/i386/i386.c: Likewise.
12586
12587 2003-07-07  Kazu Hirata  <kazu@cs.umass.edu>
12588
12589         * config/h8300/h8300.md: Use gen_int_mode instead of
12590         GEN_INT (trunc_int_for_mode (...)).
12591
12592 2003-07-07  Kazu Hirata  <kazu@cs.umass.edu>
12593
12594         * config/h8300/h8300.md (pushqi1_h8300hs): Optimize by pushing
12595         2 bytes and then subtract 2 from the stack pointer.
12596         (pushhi1_h8300hs): Likewise.
12597
12598 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12599
12600         * configure.in (enable_coverage): Remove -DSELF_COVERAGE, add
12601         -frandom-seed.
12602         * configure: Regenerated.
12603         * Makefile.in: Remove extraneous comment.
12604         * toplev.c (randomize): Protect against potential multiple calls.
12605         * doc/invoke.texi (-frandom-seed): Document use for in coverage
12606         files.
12607
12608 2003-07-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12609             Eric Botcazou  <ebotcazou@libertysurf.fr>
12610
12611         PR optimization/11198
12612         * alias.c (objects_must_conflict_p): Return 1 if the types have
12613         the same alias set, not if the alias sets only conflict.
12614
12615 2003-07-07  Andrew Pinski  <pinskia@physics.uc.edu>
12616
12617         * cppcharset.c (ICONV_CONST): Define iff !HAVE_ICONV.
12618         (convert_cset): Change inbuf to type ICONV_CONST char.
12619         * Makefile.in (LIBS): Add LIBICONV.
12620
12621         * doc/invoke.texi (-falign-functions): Document that
12622         when n is zero then a machine-dependent default is used.
12623         (-falign-labels): Document that when n is zero then a
12624         machine-dependent default is used and that -falign-labels =1
12625         is equivalent to -fno-align-labels.
12626         (-falign-loops): Likewise.
12627         (-falign-jumps): Likewise.
12628
12629 2003-07-06  Art Haas  <ahaas@airmail.net>
12630
12631         * f/global.c (ffeglobal_type_string_): Fix obsolete GCC array
12632         initializer syntax.
12633
12634 2003-07-06  James E Wilson  <wilson@tuliptree.org>
12635
12636         PR optimization/9812
12637         * rtl.h (mem_for_const_double): Delete prototype.
12638         * varasm.c (mem_for_const_double): Delete function.
12639         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68kelf.h,
12640         config/m68k/m68kv4.h, config/m68k/netbsd-elf.h
12641         (LEGITIMATE_PIC_OPERAND_P): Delete duplicate definitions.
12642         * config/m68k/m68k.h (LEGITIMATE_CONSTANT_P): Disallow XFmode.
12643         (LEGITIMATE_PIC_OPERAND_P): Delete CONST_DOUBLE tests.
12644         * config/m68k/m68k.md (movxf): Add reload_in_progress guard.  Add
12645         comment about confused support for XFmode constants.
12646
12647 2003-07-07  Jan Hubicka  <jh@suse.cz>
12648
12649         * cfglayout.c (fixup_reorder_chain): Call delete_dead_jumptables.
12650
12651 2003-07-06  Kazu Hirata  <kazu@cs.umass.edu>
12652
12653         * config/h8300/h8300.c: Fix comment typos.
12654         * config/h8300/h8300.md: Likewise.
12655         * config/i386/athlon.md: Likewise.
12656         * config/i386/i386.c: Likewise.
12657         * config/i386/pentium.md: Likewise.
12658         * config/ia64/ia64.c: Likewise.
12659         * config/ia64/itanium1.md: Likewise.
12660         * config/ia64/itanium2.md: Likewise.
12661         * config/m32r/m32r.md: Likewise.
12662         * config/m68hc11/m68hc11.c: Likewise.
12663         * config/mcore/mcore.c: Likewise.
12664         * config/mips/sr71k.md: Likewise.
12665         * config/mips/t-iris5-as: Likewise.
12666         * config/mmix/mmix.h: Likewise.
12667         * config/ns32k/ns32k.h: Likewise.
12668         * config/ns32k/NOTES: Fix a typo.
12669
12670 2003-07-06  Andreas Jaeger  <aj@suse.de>
12671
12672         * stmt.c: Convert remaining prototypes to ISO C90.
12673         * cfglayout.c: Likewise.
12674         * dbxout.c: Likewise.
12675         * gcc.c: Likewise.
12676         * genemit.c: Likewise.
12677
12678         * basic-block.h: Convert prototypes to ISO C90.
12679         * c-parse.in: Likewise.
12680         * c-pragma.h: Likewise.
12681         * c-typeck.c: Likewise.
12682         * cfghooks.h: Likewise.
12683         * cfgloopanal.c: Likewise.
12684         * dbxout.h: Likewise.
12685         * debug.h: Likewise.
12686         * dwarf2asm.h: Likewise.
12687         * gcov.c: Likewise.
12688         * gengtype-lex.l: Likewise.
12689         * sched-int.h: Likewise.
12690         * timevar.c: Likewise.
12691
12692 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
12693
12694         * c-common.h (c_comon_handle_filename,
12695         c_common_missing_arguement): New.
12696         * c-lang.c (LANG_HOOKS_HANDLE_FILENAME,
12697         LANG_HOOKS_MISSING_ARGUMENT): New.
12698         * c-opts.c (missing_arg): Rename c_common_missing_argument,
12699         update to be an appropriate langhook.
12700         (c_common_handle_option): Don't handle filenames.
12701         (c_common_handle_filename): New.
12702         * hooks.c (hook_void_constcharptr,
12703         hook_bool_constcharptr_size_t_false): New.
12704         * hooks.h (hook_void_constcharptr,
12705         hook_bool_constcharptr_size_t_false): New.
12706         * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME,
12707         LANG_HOOKS_MISSING_ARGUMENT): New.
12708         (LANG_HOOKS_INITIALIZER): Update.
12709         * langhooks.h (struct lang_hooks): Add handle_filename and
12710         missing_argument.
12711         * opts.c (handle_option): Don't handle filenames here, but ...
12712         (handle_options): ... here.
12713         (common_handle_option): Don't handle missing arguments here.
12714         * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME,
12715         LANG_HOOKS_MISSING_ARGUMENT): New.
12716
12717 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
12718
12719         * Makfile.in: Remove traces of mbchar.
12720         * c-parse.in (MULTIBYTE_CHARS): Remove.
12721         * config.in (MULTIBYTE_CHARS): Remove.
12722         * configure: Remove --enable-mbchar.
12723         * configure.in: Remove --enable-mbchar.
12724         * mbchar.c, mbchar.h: Remove.
12725         * system.h: Poison MULTIBYTE_CHARS.
12726         * config/linux-aout.h (MULTIBYTE_CHARS): Remove.
12727         * config/linux.h (MULTIBYTE_CHARS): Remove.
12728         * config/svr4.h (MULTIBYTE_CHARS): Remove.
12729         * config/sparc/linux.h (MULTIBYTE_CHARS): Remove.
12730
12731 2003-07-06  Andreas Jaeger  <aj@suse.de>
12732
12733         * varray.c (varray_check_failed): Fix typo.
12734
12735         * unroll.c: Convert prototypes to ISO C90.
12736         * varasm.c: Likewise.
12737         * varray.c: Likewise.
12738         * varray.h: Likewise.
12739         * vmsdbgout.c: Likewise.
12740         * xcoffout.c: Likewise.
12741         * xcoffout.h: Likewise.
12742
12743 2003-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12744
12745         * gcov-io.h: Add a local time stamp.
12746         (struct gcov_info): Add stamp field.
12747         (gcov_truncate): New.
12748         * coverage.c (read_counts_file): Skip the stamp.
12749         (coverage_begin_output): Write the stamp.
12750         (build_gcov_info): Declare and init the stamp.
12751         (coverage_finish): Only unlink data file, if stamp is zero.
12752         * gcov-dump.c (dump_file): Dump the stamp.
12753         * gcov.c (bbg_stamp): New.
12754         (release_structures): Clear bbg_stamp.
12755         (read_graph_file): Read stamp.
12756         (read_count_file): Check stamp.
12757         * libgcov.c (gcov_exit): Check stamp and truncate if needed.
12758
12759 2003-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12760
12761         * tree.h (default_flag_random_seed): Remove.
12762         * toplev.h (local_tick): Declare.
12763         * tree.c (flag_random_seed, default_flag_random_seed): Move to
12764         toplev.c.
12765         (append_random_chars): Don't call default_flag_random_seed.
12766         * toplev.c (flag_random_seed): Define here. Set local_tick.
12767         (local_tick): Define.
12768         (randomize): New, moved from tree.c.
12769         (print_switch_values): Adjust.
12770         (toplev_main): Call randomize.
12771
12772 2003-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12773
12774         * tree.h (crc32_string): Declare.
12775         * tree.c (append_random_chars): Remove.
12776         (crc32_string): New.
12777         (get_file_function_name_long): Use crc32_string here.
12778
12779 2003-07-06  Andreas Jaeger  <aj@suse.de>
12780
12781         * gcc.c: Convert prototypes to ISO C90.
12782         * gcc.h: Likewise.
12783         * gcov-dump.c: Likewise.
12784         * gcov-iov.c: Likewise.
12785         * gcse.c: Likewise.
12786         * genattrtab.h: Likewise.
12787         * ggc.h: Likewise.
12788         * global.c: Likewise.
12789         * graph.c: Likewise.
12790         * graph.h: Likewise.
12791         * hosthooks.h: Likewise.
12792         * hooks.h: Likewise.
12793         * hooks.c: Likewise.
12794         * hashtable.h: Likewise.
12795         * hashtable.c: Likewise.
12796         * haifa-sched.c: Likewise.
12797         * integrate.h: Likewise.
12798         * integrate.c: Likewise.
12799         * input.h: Likewise.
12800         * ifcvt.c: Likewise.
12801         * jump.c: Likewise.
12802         * langhooks-def.h: Likewise.  Add extern to prototypes.
12803         * langhooks.c: Likewise.
12804         * langhooks.h: Likewise.
12805         * lcm.c: Likewise.
12806         * local-alloc.c: Likewise.
12807         * loop-init.c: Likewise.
12808         * loop-unroll.c: Likewise.
12809         * loop-unswitch.c: Likewise.
12810         * loop.c: Likewise.
12811         * loop.h: Likewise. Add extern to prototypes.
12812         * machmode.h: Likewise.
12813         * main.c: Likewise.
12814         * mbchar.c: Likewise.
12815         * mbchar.h: Likewise.
12816         * mkdeps.c: Likewise.
12817         * mkdeps.h: Likewise.
12818         * optabs.c: Likewise.
12819         * optabs.h: Likewise.
12820         * output.h: Likewise.
12821         * gccspec.c: Likwise.
12822         * postreload.c: Likewise.
12823         * prefix.c: Likewise.
12824         * prefix.h: Likewise.
12825         * print-rtl.c: Likewise.
12826         * print-tree.c: Likewise.
12827         * profile.c: Likewise.
12828         * read-rtl.c: Likewise.
12829         * real.c: Likewise.
12830         * real.h: Likewise.
12831         * recog.c: Likewise.
12832         * recog.h: Likewise.
12833         * reg-stack.c: Likewise.
12834         * regclass.c: Likewise.
12835         * regmove.c: Likewise.
12836         * regrename.c: Likewise.
12837         * regs.h: Likewise.
12838         * reload.c: Likewise.
12839         * reload.h: Likewise.
12840         * reload1.c: Likewise.
12841         * reorg.c: Likewise.
12842         * resource.c: Likewise.
12843         * resource.h: Likewise.
12844         * rtl-error.c: Likewise.
12845         * rtl.c: Likewise.
12846         * rtl.h: Likewise.
12847         * rtlanal.c: Likewise.
12848         * sbitmap.c: Likewise.
12849         * sbitmap.h: Likewise.
12850         * scan-decls.c: Likewise.
12851         * scan.c: Likewise.
12852         * sched-deps.c: Likewise.
12853         * sched-ebb.c: Likewise.
12854         * sched-int.h: Likewise.
12855         * sched-rgn.c: Likewise.
12856         * sched-vis.c: Likewise.
12857         * sibcall.c: Likewise.
12858         * simplify-rtx.c: Likewise.
12859         * sreal.c: Likewise.
12860         * sreal.h: Likewise.
12861         * ssa-ccp.c: Likewise.
12862         * ssa-dce.c: Likewise.
12863         * ssa.c: Likewise.
12864         * ssa.h: Likewise.
12865         * stack.h: Likewise.
12866         * stmt.c: Likewise.
12867         * stor-layout.c: Likewise.
12868         * stringpool.c: Likewise.
12869         * target.h: Likewise.
12870         * timevar.c: Likewise.
12871         * timevar.h: Likewise.
12872         * tlink.c: Likewise.
12873         * tracer.c: Likewise.
12874         * tree-inline.c: Likewise.
12875         * tree-inline.h: Likewise.
12876         * tree.c: Likewise.
12877         * tree.h: Likewise.
12878
12879 2003-07-05  Kazu Hirata  <kazu@cs.umass.edu>
12880
12881         * combine.c (nonzero_bits1): Fix a warning.
12882
12883 2003-07-05  Kazu Hirata  <kazu@cs.umass.edu>
12884
12885         * config/h8300/h8300.c (compute_mov_length): Correct the
12886         length of loading CONST0_RTX (SFmode).
12887
12888 2003-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12889
12890         * toplev.c (output_clean_symbol_name): Remove.
12891         * toplev.h (output_clean_symbol_name): Remove.
12892         * config/alpha/alpha.c (unicosmk_output_module_name): Use
12893         lbasename & clean_symbol_name.
12894
12895 2003-07-05  Kazu Hirata  <kazu@cs.umass.edu>
12896
12897         * ggc.h: Follow spelling conventions.
12898         * config/i386/i386.c: Likewise.
12899         * config/i386/winnt.c: Likewise.
12900         * config/rs6000/rs6000.c: Likewise.
12901
12902 2003-07-05  Kazu Hirata  <kazu@cs.umass.edu>
12903
12904         * bt-load.c: Fix comment typos.
12905         * c-incpath.c: Likewise.
12906         * cfg.c: Likewise.
12907         * cfgcleanup.c: Likewise.
12908         * cfgloop.h: Likewise.
12909         * cfgloopmanip.c: Likewise.
12910         * cfgrtl.c: Likewise.
12911         * diagnostic.h: Likewise.
12912         * dwarfout.c: Likewise.
12913         * emit-rtl.c: Likewise.
12914         * et-forest.c: Likewise.
12915         * et-forest.h: Likewise.
12916         * expr.c: Likewise.
12917         * gcse.c: Likewise.
12918         * genattr.c: Likewise.
12919         * jump.c: Likewise.
12920         * langhooks.h: Likewise.
12921         * local-alloc.c: Likewise.
12922         * loop-unroll.c: Likewise.
12923         * loop-unswitch.c: Likewise.
12924         * ra-build.c: Likewise.
12925         * regclass.c: Likewise.
12926         * regmove.c: Likewise.
12927         * rtl.def: Likewise.
12928         * rtlanal.c: Likewise.
12929         * sched-ebb.c: Likewise.
12930         * sched-rgn.c: Likewise.
12931         * simplify-rtx.c: Likewise.
12932         * ssa.c: Likewise.
12933         * tracer.c: Likewise.
12934         * tree.c: Likewise.
12935
12936 2003-07-05  Zack Weinberg  <zack@codesourcery.com>
12937
12938         * cppcharset.c: Use the correct return type for the fallback iconv
12939         macro.
12940
12941 2003-07-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12942
12943         Blame to Jan Hubicka  <jh@suse.cz>
12944         * cfglayout.c (record_effective_endpoints): Split insns before
12945         first basic block correctly.
12946
12947 2003-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12948
12949         * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use
12950         bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS
12951         if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER.
12952
12953 2003-07-05  Andreas Jaeger  <aj@suse.de>
12954
12955         * genattrtab.c (write_attr_get): Revert part of last patch to
12956         always write out a prototype.
12957
12958         * genemit.c (gen_split): Readd lost unused attributes in last
12959         patch.
12960
12961 2003-07-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12962
12963         * cfgloopmanip.c (force_single_succ_latches): Force latch to be
12964         different from header.
12965
12966 2003-07-05  Andreas Schwab  <schwab@suse.de>
12967
12968         * config/m68k/m68k.c: Remove code protected by CRDS.
12969         * config/m68k/m68k.md: Likewise.
12970
12971 2003-07-05  Neil Booth  <neil@daikokuya.co.uk>
12972
12973         PR driver/11417
12974         * c-opts.c (permit_fortran_options): New.
12975         (c_common_init_options): Accept fortran front end options if
12976         it looks like we might be preprocessing Fortran.
12977         (c_common_handle_option): Don't reject switch if permit_fotran_options.
12978
12979 2003-07-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12980
12981         * genattr.c (internal_dfa_insn_code): Output prototype.
12982         * genattrtab.c: Don't output unnecessary decls, output in ISO C.
12983         * genautomata.c: Likewise.
12984         * genconditions.c: Likewise.
12985         * genemit.c: Likewise.
12986         * genextract.c: Likewise.
12987         * gengenrtl.c: Likewise.
12988         * gengtype.c: Likewise.
12989         * genopinit.c: Likewise.
12990         * genoutput.c: Likewise.
12991         * genpeep.c: Likewise.
12992         * genrecog.c: Likewise.
12993
12994 2003-07-04  Zack Weinberg  <zack@codesourcery.com>
12995
12996         * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types.
12997         (struct cpp_options): Add narrow_charset, wide_charset,
12998         bytes_big_endian fields.  Remove EBCDIC field.
12999         (cpp_init_iconv, cpp_interpret_string): New external interfaces.
13000
13001         * cpphash.h: Include <iconv.h> if we have it, otherwise
13002         provide a dummy definition of iconv_t.
13003         (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields.
13004         (_cpp_valid_ucn): Update prototype.
13005         (_cpp_destroy_iconv): New prototype.
13006
13007         * doc/cpp.texi: Document character set handling.
13008         * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=.
13009         * doc/extend.texi: Delete entire section on multiline strings.
13010         Rewrite section on __FUNCTION__ etc now that these are
13011         variables in C.
13012
13013         * cppucnid.tab, cppucnid.pl: New files.
13014         * cppucnid.h: New generated file.
13015         * cppcharset.c: Include cppucnid.h.  Lots of commentary added.
13016         (iconv_open, iconv, iconv_close): Provide dummy definitions
13017         if !HAVE_ICONV.
13018         (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv,
13019         _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn,
13020         emit_numeric_escape, convert_hex, convert_oct, convert_escape,
13021         cpp_interpret_string, narrow_str_to_charconst,
13022         wide_str_to_charconst): New.
13023         (ucn_valid_in_identifier): Use a binary search through the
13024         ucnranges table defined in cppucnid.h, not a long chain of if
13025         statements.
13026         (_cpp_valid_ucn): Add a limit pointer.  Downgrade "universal
13027         character names are only valid in C++ and C99" to a warning.
13028         Issue the "meaning of \[uU] is different in traditional C"
13029         warning here.  Take care not to let iconv see an invalid UCS
13030         value if we get a malformed UCN.  Issue an error if we don't
13031         have iconv.
13032         (cpp_interpret_charconst): Moved here from cpplex.c.  Use
13033         cpp_interpret_string to do the heavy lifting.
13034
13035         * cppinit.c (cpp_create_reader): Initialize bytes_big_endian,
13036         narrow_charset, wide_charset fields of options structure.
13037         (cpp_destroy): Call _cpp_destroy_iconv.
13038         * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn.
13039         (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete.
13040         (cpp_interpret_charconst): Moved to cppcharset.c.
13041         * cpplib.c (dequote_string): Delete.
13042         (interpret_string_notranslate): New.
13043         (do_line, do_linemarker): Use interpret_string_notranslate.
13044
13045         * Makefile.in (cppcharset.o): Depend on cppucnid.h.
13046
13047         * c-common.c (fname_string, combine_strings): Delete.
13048         * c-common.h (fname_string, combine_strings): Delete prototypes.
13049         * c-lex.c (ignore_escape_flag): Delete.
13050         (cb_ident): Use cpp_interpret_string, not lex_string.
13051         (get_nonpadding_token): New function.
13052         (c_lex): Handle Objective-C @-prefixed identifiers and strings here.
13053         Adjust calls to lex_string.  Don't write *value twice.
13054         (lex_string): Now handles string constant concatenation.
13055         Most of the work handed off to cpp_interpret_string.
13056         Call fix_string_type here.
13057         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with
13058         FUNC_NAME, throughout.
13059         (OBJC_STRING): New token type.
13060         (primary:STRING): No need to call fix_string_type here.
13061         (primary:objc_string): Make that OBJC_STRING.
13062         (objc_string nonterminal): Delete.
13063         (yylexname): Delete code to handle fake string constants.
13064         (yylexstring): Delete entirely.
13065         (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING.  No need
13066         to handle CPP_ATSIGN.
13067
13068         * c.opt (-fexec-charset=, -fwide-exec-charset=): New options.
13069         * c-opts.c (missing_arg, c_common_handle_option): Handle
13070         OPT_fexec_charset_ and OPT_fwide_exec_charset_.
13071         (c_common_init): Set cpp_opts->bytes_big_endian, not
13072         cpp_opts->EBCDIC.  Call cpp_init_iconv.
13073         (print_help): Document -fexec-charset= and -fexec-wide-charset=.
13074         (TARGET_EBCDIC): Delete default definition.
13075
13076         * objc/objc-act.c (build_objc_string_object): No need to
13077         handle string constant concatenation.
13078
13079 2003-07-04  Kazu Hirata  <kazu@cs.umass.edu>
13080
13081         * doc/install.texi: Fix typos.
13082         * doc/invoke.texi: Likewise.
13083         * doc/tm.texi: Likewise.
13084
13085 2003-07-04  Kazu Hirata  <kazu@cs.umass.edu>
13086
13087         * config/pa/fptr.c: Fix comment typos.
13088         * config/pa/pa-64.h: Likewise.
13089         * config/pa/pa.c: Likewise.
13090         * config/pa/pa.h: Likewise.
13091         * config/rs6000/603.md: Likewise.
13092         * config/rs6000/7xx.md: Likewise.
13093         * config/rs6000/darwin.h: Likewise.
13094         * config/rs6000/freebsd.h: Likewise.
13095         * config/rs6000/rs6000.c: Likewise.
13096         * config/rs6000/rs6000.md: Likewise.
13097         * config/rs6000/spe.h: Likewise.
13098
13099 2003-07-04  Ulrich Weigand  <uweigand@de.ibm.com>
13100
13101         * config/s390/2064.md: Change GNU CC to GCC.
13102         * config/s390/2084.md: Likewise.
13103         * config/s390/fixdfdi.h: Likewise.
13104         * config/s390/linux.h: Likewise.
13105         * config/s390/s390-modes.def: Likewise.
13106         * config/s390/s390-protos.h: Likewise.
13107         * config/s390/s390.c: Likewise.
13108         * config/s390/s390.h: Likewise.
13109         * config/s390/s390.md: Likewise.
13110         * config/s390/s390x.h: Likewise.
13111
13112 2003-07-04  Jeff Law  <law@redhat.com>
13113
13114         PR c/11428
13115         * expr.c (do_store_flag): Pass in the correct result type
13116         when calling fold_single_bit_test.
13117         * fold-const.c (fold_single_bit_test): Use result_type for the
13118         result when folding a sign bit test.
13119
13120 2003-07-04  Neil Booth  <neil@daikokuya.co.uk>
13121
13122         * opts.c (common_handle_options): Negate sense of -falign- switches.
13123
13124 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
13125
13126         * Makefile.in: Replace PWD with PWD_COMMAND.
13127
13128 2003-07-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13129
13130         * cfgloopanal.c (count_strange_loop_iterations): New static function.
13131         (constant_iterations, count_loop_iterations, simple_loop_exit_p):
13132         Handle strange loops.
13133
13134 2003-07-04  Toon Moene  <toon@moene.indiv.nluug.nl>
13135
13136         * install.texi: Even the g77 manpage is derived from
13137         the full g77 manual.
13138
13139 2003-07-04  Zack Weinberg  <zack@codesourcery.com>
13140
13141         * ABOUT-NLS: Delete.
13142         * intl: Delete entire directory.
13143         * aclocal.m4: Include ../config/gettext.m4.  Delete
13144         AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES,
13145         AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT.
13146         * configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT.
13147         Remove intl/Makefile from all_outputs.
13148         * configure, config.in: Regenerate.
13149         * Makefile.in: Expunge all references to intl subdirectory.
13150         Add -I../intl to INCLUDES.
13151         * intl.h: Include libintl.h if and only if ENABLE_NLS is defined.
13152
13153 2003-07-04  Roger Sayle  <roger@eyesopen.com>
13154
13155         * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define.
13156         * config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise.
13157
13158 2003-07-04  Danny Smith  <dannysmith@users.sourceforge.net>
13159
13160         PR c++/5287, PR c++/7910, PR c++/11021
13161         * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add
13162         dllimport attribute if function is defined at declaration, but
13163         report error instead. Likewise for dllimport'd variable
13164         definitions.  Set implicit TREE_PUBLIC for dllimport'd variables
13165         declared within functions, Report error if dllimport or dllexport
13166         symbol is not global.
13167         (i386_pe_dllimport_p): Ignore dllimport attribute of functions
13168         if defined after declaration or if inlined. Don't allow definition
13169         of static data members of C++ classes. Don't dllimport virtual
13170         methods.
13171         (i386_pe_mark_dllexport): Warn about inconsistent dll attributes.
13172         (i386_pe_mark_dllimport): Remove unnecessary checks.
13173         (i386_pe_encode_section_info): Warn if the dllimport attribute
13174         and symbol prefix have been instantiated and then overridden.
13175
13176         * doc/extend.texi: Document dllimport and dllexport attributes.
13177
13178         * config/i386/winnt.c (i386_pe_output_labelref): Fix indents.
13179
13180 2003-07-03 Uwe Stieber <uwe@kaos-group.de>
13181
13182         * config/kaos.h (CPP_PREDEFINES): Delete.
13183         (TARGET_OS_CPP_BUILTINS): New.
13184
13185 2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13186
13187         * c-aux-info.c: Include toplev.h after c-tree.h.
13188         * c-common.c: Likewise.
13189         (GCC_DIAG_STYLE): Undef.
13190         * c-semantics.c (GCC_DIAG_STYLE): Define.
13191         * c-tree.h (GCC_DIAG_STYLE): Likewise.
13192         * diagnostic.h (inform): Move prototype to toplev.h.
13193         * jump.c: Include diagnostic.h before toplev.h.
13194         * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define.
13195         (warning, error, fatal_error, pedwarn, sorry, inform,
13196         error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG.
13197
13198 2003-07-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13199
13200         * cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies
13201         at all if edge is not specified.
13202         (can_copy_bbs_p, copy_bbs): New.
13203         * cfglayout.h (can_copy_bbs_p, copy_bbs): Declare.
13204         * cfgloop.c (get_loop_body): Comment more precisely.
13205         * cfgloopmanip.c (copy_bbs, record_exit_edges): Removed.
13206         (scale_bbs_frequencies): Fix comment typo.
13207         (can_duplicate_loop_p): Use can_copy_bbs_p.
13208         (duplicate_loop_to_header_edge): Simplify by using copy_bbs.
13209
13210 2003-07-03  Devang Patel <dpatel@apple.com>
13211
13212         * c-opts.c (c_common_parse_file): Remove extra
13213         debug_hooks->start_source_file call.
13214
13215 2003-07-03  Roger Sayle  <roger@eyesopen.com>
13216
13217         * real.c (real_trunc, real_floor, real_ceil): New functions
13218         to implement trunc, floor and ceil respectively.
13219         * real.h (real_trunc, real_floor, real_ceil): Prototype here.
13220         * builtins.c (integer_valued_real_p): New function to test if
13221         a floating point expression has an integer valued result.
13222         (fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as
13223         foo(x) where foo is an integer rounding function.  Similarly,
13224         optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as
13225         (double)(int)x when both foo and bar are integer rounding
13226         functions and we don't need to honor errno.
13227         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil):
13228         New functions to fold trunc, floor and ceil.
13229         (fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*,
13230         fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil
13231         to fold BUILT_IN_CEIL*.
13232         * fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and
13233         the remaining integer rounding functions.
13234
13235 2003-07-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13236
13237         * config/sparc/sparc.c (function_arg_partial_nregs): Use
13238         SPARC_INT_ARG_MAX to determine where to split unnamed
13239         complex FP arguments.
13240
13241 2003-07-03  Jan Hubicka  <jh@suse.cz>
13242
13243         * basic-block.h (create_basic_block, merge_blocks_nomove): Kill.
13244         * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move.
13245         (merge_blocks_move_predecessor_nojumps,
13246          merge_blocks_move_successor_nojumps): Use merge_blocks.
13247         (try_optimize_cfg): Use merge_blocks_move.
13248         * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block.
13249         (merge_blocks_nomove): Rename to rtl_merge_blocks.
13250         (cfg_layout_create_basic_block): New.
13251         (rtl_can_merge_blocks): New.
13252         (cfg_layout_split_block): Do not alloc aux by hand.
13253         * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p,
13254         merge_blocks.
13255         (create_basic_block, can_merge_blocks_p, merge_blocks): New macros.
13256         * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand.
13257         * cfgloopmanip.c (loop_split_edge_with): Likewise.
13258         * ifcvt.c (merge_if_block): Use merge_blocks_nomove.
13259
13260         * basic-block.h (basic_block_def): Add field 'rbi'.
13261         * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited,
13262         find_traces_1_round, copy_bb, connect_traces): Update use of rbi.
13263         * cfg.c (entry_exit_blocks): Add new field.
13264         * cfglayout.c: Include alloc-pool.h;
13265         (cfg_layout_pool): New.
13266         (record_effective_endpoints, fixup_reorder_chain,
13267         fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use
13268         of rbi.
13269         (cfg_layout_initialize_rbi): New function.
13270         (cfg_layout_initialize): Use it.
13271         (cfg_layout_finalize): Clear rbi fields.
13272         * cfglayout.h (RBI): Kill.
13273         (cfg_layout_initialize_rbi): Declare.
13274         * cfgloopmanip.c (copy_bbs): Use rbi.
13275         (record_exit_edges): Likewise.
13276         (duplicate_loop_to_header_edge): Likewise.
13277         * cfgrtl.c (cfg_layout_create_basic_block): Use
13278         cfg_layout_initialize_rbi.
13279         (cfg_layout_split_block): Use rbi.
13280         (cfg_layout_delete_block): Likewise.
13281         * loop-init.c (loop_optimizer_finalize): Likewise.
13282         * loop-unswitch.c (unswitch_loop): Likewise.
13283         * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
13284
13285         * cfgrtl.c: Update comments.
13286         (try_redirect_by_replacing_jump): New argument.
13287         (redirect_branch_edge): Break out from ...
13288         (rtl_redirect_edge_and_branch): ... this one.
13289         (update_cfg_after_block_merging): Break out from ...
13290         (rtl_merge_blocks): ... this one.
13291         (cfg_layout_split_edge): New.
13292         (cfg_layout_merge_blocks): New.
13293         (cfg_layout_can_merge_blocks_p): New.
13294         (cfg_layout_redirect_edge_and_branch): Reorganize.
13295         (cfg_layout_rtl_cfg_hooks): Fill in.
13296         (cfg_layout_delete_block): Kill barriers.
13297         * cfganal.c (can_fallthru): Deal with exit blocks
13298         * cfglayout.c (cfg_layout_function_header): New function
13299         (record_effective_endpoints): Record function header.
13300         (fixup_reorder_chain): Fixup dead jumptables; place header
13301
13302         * basic-block.h (CLEANUP_CFGLAYOUT): New flag.
13303         * bb-reorder.c (cfg_layout_initialize): Update call.
13304         * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru
13305         edges in cfglayout mode.
13306         * cfglayout.c (cleanup_unconditional_jumps): Kill.
13307         (cfg_layout_initialize): Kill agrument loops; use cfgcleanup.
13308         * cfglayout.h (cfg_layout_initialize): Update prototype.
13309         * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill.
13310         * cfgloopmanip.c (loop_split_edge_with): Use split_edge.
13311         * flow.c (propagate_block): Do not crash when basic block ends
13312         by first insn in the chain.
13313         * loop-init.c (loop_optimizer_init):  First enter cfglayout mode; later
13314         do loop discovery.
13315         * tracer.c (tracer): Update call of cfg_layout_initialize.
13316
13317 2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13318
13319         * Makefile.in: Use dependency variables in lieu of explicit
13320         files throughout.
13321
13322 2003-07-03  Steven Bosscher  <steven@gcc.gnu.org>
13323
13324         * rtl.h (ECF_*, flags_from_decl_or_type): Move from here...
13325         * tree.h: ...to here.
13326
13327 2003-07-03  Kazu Hirata  <kazu@cs.umass.edu>
13328
13329         * config/s390/2064.md: Fix comment typos.
13330         * config/s390/2084.md: Likewise.
13331         * config/s390/s390.c: Likewise.
13332         * config/s390/s390.md: Likewise.
13333         * config/sh/sh.c: Likewise.
13334         * config/sh/sh.h: Likewise.
13335         * config/sh/sh.md: Likewise.
13336         * config/sparc/sparc.c: Likewise.
13337         * config/sparc/sparc.h: Likewise.
13338         * config/sparc/sparc.md: Likewise.
13339         * config/stormy16/stormy16.c: Likewise.
13340         * config/stormy16/stormy16.h: Likewise.
13341         * config/stormy16/stormy-abi: Fix a typo.
13342
13343 2003-07-03  Kelley Cook  <kelleycook@wideopenwest.org>
13344
13345         * Makefile.in (ifcvt.o): Depend on OPTABS_H.
13346
13347 2003-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13348
13349         * config/mips/mips.h (save_argv): Delete.
13350
13351 2003-07-03  Roger Sayle  <roger@eyesopen.com>
13352
13353         PR target/10700
13354         * fold-const.c (extract_muldiv_1): There's nothing that can be done
13355         if the expression is a SAVE_EXPR.
13356
13357 2003-07-03  Kazu Hirata  <kazu@cs.umass.edu>
13358
13359         * config/m32r/m32r.c: Fix comment typos.
13360         * config/m68hc11/m68hc11.c: Likewise.
13361         * config/m68hc11/m68hc11.h: Likewise.
13362         * config/m68k/m68k.c: Likewise.
13363         * config/mcore/mcore.c: Likewise.
13364         * config/mcore/mcore.h: Likewise.
13365         * config/mcore/mcore.md: Likewise.
13366         * config/mips/mips.c: Likewise.
13367         * config/mips/mips.h: Likewise.
13368         * config/mips/mips.md: Likewise.
13369         * config/mips/netbsd.h: Likewise.
13370         * config/mn10300/mn10300.c: Likewise.
13371
13372 2003-07-03  Andreas Schwab  <schwab@suse.de>
13373
13374         * dbxout.c (pending_bincls): Move decl down inside
13375         DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO section.
13376
13377 2003-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13378
13379         * rtl.h (NOTE_DATA): Refer to whole union.
13380         * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA.
13381
13382 2003-07-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13383
13384         PR optimization/11381
13385         * simplify-rtx.c (simplify_relational_operation): Check that
13386         two equal operands have no side-effects before simplifying
13387         the comparison.
13388
13389 2003-07-02  Jeff Law  <law@redhat.com>
13390
13391         * expr.c (do_store_flag): Remove special case folding for
13392         single bit tests.  Instead call back into the commonized folder
13393         routine.
13394         * fold-const.c (fold_single_bit_test): New function, mostly
13395         extracted from do_store_flag, with an additional case extracted
13396         from fold.
13397         (fold): Call fold_single_bit_test appropriately.
13398         * tree.h (fold_single_bit_test): Prototype.
13399
13400 2003-07-02  Zack Weinberg  <zack@codesourcery.com>
13401
13402         * system.h: Include filenames.h.
13403         (IS_DIR_SEPARATOR, IS_ABSOLUTE_PATHNAME): Don't define.
13404         (DIR_SEPARATOR, DIR_SEPARATOR_2): If not already defined,
13405         define based on HAVE_DOS_BASED_FILE_SYSTEM.
13406         * config/i386/xm-cygwin.h, config/i386/xm-djgpp.h
13407         * config/i386/xm-mingw32.h: Don't define
13408         HAVE_DOS_BASED_FILE_SYSTEM,
13409         DIR_SEPARATOR, or DIR_SEPARATOR_2.
13410         * doc/hostconfig.texi: Update to match.
13411
13412         * cppfiles.c, gcc.c, gensupport.c, protoize.c,
13413         config/i386/cygwin.h:
13414         Use IS_ABSOLUTE_PATH throughout.
13415         * gcc.c (DIR_UP): Delete, unused.
13416         * protoize.c (IS_SAME_PATH): Define in terms of
13417         FILENAME_CMP.
13418         (is_abspath): Delete.
13419
13420 2003-07-02  Kazu Hirata  <kazu@cs.umass.edu>
13421
13422         * config/i386/emmintrin.h: Fix comment typos.
13423         * config/i386/i386.c: Likewise.
13424         * config/i386/i386.h: Likewise.
13425         * config/i386/sco5.h: Likewise.
13426         * config/ia64/ia64.c: Likewise.
13427         * config/ia64/itanium2.md: Likewise.
13428
13429 2003-07-02  H.J. Lu  <hongjiu.lu@intel.com>
13430
13431         * dbxout.c (pending_bincls): Replace DBX_USE_BINCLS with
13432         DBX_USE_BINCL.
13433         (emit_bincl_stab): Same.
13434         (emit_pending_bincls): Same.
13435
13436 2003-07-02  Kazu Hirata  <kazu@cs.umass.edu>
13437
13438         * config/h8300/h8300.c (compute_mov_length): Fix the length of
13439         loading CONST0_RTX (SFmode).
13440         * config/h8300/h8300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Change
13441         'G' to CONST0_RTX (SFmode).
13442         * config/h8300/h8300.md (movsf_h8300): Change the first
13443         constraint to 'G'.
13444         (movsf_h8300h): Likewise.
13445
13446 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
13447
13448         * c-common.h (c_common_init_options): New prototype.
13449         * c-opts.c (deferred_size): Remove.
13450         (defer_opt): Array is now pre-allocated.
13451         (c_common_init_options): Pre-allocate deferred_opts.  Make
13452         lang_flags unsigned.
13453         (push_command_line_options): Free deferred_opts.
13454         * hooks.c (hook_uint_uint_constcharptrptr_0): New.
13455         * hooks.h (hook_uint_uint_constcharptrptr_0): New.
13456         * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update.
13457         * langhooks.h (struct lang_hooks): New prototype for init_options.
13458         * main.c (main): Cast argv.
13459         * opts.c (handle_option, handle_options): Update prototypes.
13460         (decode_options): save_argc, save_argv are not global.  Constify.
13461         * opts.h (decode_options): New prototype.
13462         * toplev.c (general_init): New protoype.
13463         (save_argv): Make static.
13464         (save_argc): Remove.
13465         (print_switch_values, general_init): Constify.
13466         (toplev_main): Save argv.
13467         * toplev.h (toplev_main): Update prototype.
13468         (save_argc, save_argv): Remove.
13469
13470 2003-07-02  David Edelsohn  <edelsohn@gnu.org>
13471
13472         * dbxout.c (pending_bincls): Guard with DBX_USE_BINCLS.
13473         (emit_bincl_stab): Same.
13474         (emit_pending_bincls): Same.
13475
13476 2003-07-02  Nathan Sidwell  <nathan@codesourcery.com>
13477
13478         PR c++/11072
13479         * ginclude/stddef.h (offsetof): Remove cast to 'char &'. Explain why.
13480
13481 2003-07-02  Andreas Schwab  <schwab@suse.de>
13482
13483         * dbxout.c (pending_bincls): Only define if DBX_DEBUGGING_INFO.
13484
13485 2003-07-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13486
13487         PR optimization/11210
13488         * expr.c (handled_component_p) [NOP_EXPR]: Add ??? note
13489         about the behaviour with regard to bitfields.
13490         * fold-const (decode_field_reference): Record outermost type in
13491         case the expression is a NOP. Strip all NOPs. Set the signedness
13492         to that of the outermost type (if any) when the bitsize is equal
13493         to the size of the type.
13494
13495 2003-07-02  Richard Sandiford  <rsandifo@redhat.com>
13496
13497         * config/mips/mips.md (addsi3): Remove workaround for adds of -32768.
13498         (addsi3_internal, adddi3, adddi3_internal_2): Likewise.
13499         (adddi3_internal_3, addsi3_internal_2): Likewise.
13500
13501 2003-07-02  Richard Sandiford  <rsandifo@redhat.com>
13502
13503         * config/mips/mips.c (machine_function): Add new fields:
13504         ignore_hazard_length_p and all_noreorder_p.
13505         (mips_flag_delayed_branch): New variable.
13506         (override_options): Treat '/' as an operand punctuation character.
13507         Set up mips_flag_delayed_branch.
13508         (print_operand): Handle '/'.
13509         (mips_output_function_prologue): Put the whole function in
13510         .set noreorder and .set nomacro if all_noreorder_p is true.
13511         (mips_output_function_epilogue): End the noreorder/nomacro sequence.
13512         (mips16_optimize_gp): Remove "first insn" parameter.
13513         (mips16_lay_out_constants): New function, split out from mips_reorg.
13514         (mips_avoid_hazard, mips_avoid_hazards): New functions.
13515         (mips_reorg): For mips16 code, call mips16_lay_out_constant
13516         and (optionally) mips16_optimize.  If TARGET_EXPLICIT_RELOCS,
13517         do delayed-branch scheduling followed by hazard detection.
13518         (mips_adjust_insn_length): Only account for hazards if
13519         !ignore_hazard_length_p.
13520         (mips_output_load_label): Add a nop to the o32 sequence if
13521         the target suffers from load delays.
13522         (mips_output_conditional_branch): Add %/ to the end of branches.
13523         (mips_output_division): Fill the branch delay slot with %#.
13524         * config/mips/mips.md: Remove redundant '%*' from mips16 branch
13525         instructions.  End all other %* branches with %/.
13526         (ffssi2, ffsdi2): Fix lengths.
13527         (truncdisi2, truncdihi2, truncdiqi2): Add store attributes.
13528         (fix_truncdfsi2_macro): Turn off .set nomacro if appropriate.
13529         (fix_truncsfsi2_macro): Likewise.
13530         (mov_lwl): Set hazard to "none".
13531         (ashldi3_internal): Fill the branch delay slot with %#.
13532         (ashrdi3_internal, lshrdi3_internal): Likewise.
13533         (exception_receiver): Explicitly set $28.
13534         (hazard_nop): New pattern.
13535
13536 2003-07-02  Jan Hubicka  <jh@suse.cz>
13537
13538         * cgraphunit.c (cgraph_finalize_unit): Set current_function_decl
13539         before calling tree_inlinable_function_p.
13540
13541 2003-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13542
13543         * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5
13544         <internal/stdio_core.h> too.
13545         (stdio_va_list): Apply to IRIX 6.5 <internal/stdio_core.h> and
13546         <internal/wchar_core.h> too.
13547         Substitute va_list uses in inline definition.
13548         * fixinc/fixincl.x: Regenerate.
13549
13550 2003-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13551
13552         * config/mips/iris5.h (SET_FILE_NUMBER): Moved here from iris3.h.
13553         Undef before redefinition.
13554         (LABEL_AFTER_LOC): Likewise.
13555         (DEFAULT_SIGNED_CHAR): Likewise.
13556         (ASM_OUTPUT_ASCII): Moved here from iris4.h.
13557         Fix IRIX spelling.
13558
13559         * config/mips/iris3.h: Remove, unused.
13560         * config/mips/iris4.h: Likewise.
13561
13562         * config/mips/mips.h (STACK_ARGS_ADJUST): Remove, unused.
13563
13564         * config/mips/iris5.h (TARGET_DEFAULT): Move ...
13565         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here to
13566         target_cpu_default.
13567
13568         * config/mips/iris5.h: Move explicit includes ...
13569         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here.
13570
13571         * config/mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT): Move ...
13572         * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to
13573         tm_defines.
13574
13575         * config/mips/iris6.h (TARGET_DEFAULT): Move ...
13576         * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to
13577         target_cpu_default.
13578
13579         * config/mips/iris6.h: Fix IRIX spelling.
13580         (MULTILIB_DEFAULTS): Undef before redefinition.
13581
13582         * config/mips/iris6.h: Move explicit includes ...
13583         * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here.
13584
13585 2003-07-02  Jan Hubicka  <jh@suse.cz>
13586
13587         * cgraph.c (cgraph_mark_needed_node, cgraph_varpool_mark_needed_node,
13588         cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls):
13589         Use next_needed field instead of aux to maintain the queue.
13590         * cgraph.h (cgraph_node): Add next_needed.
13591         (cgraph_varpool_node): Add next_needed; remove aux.
13592         * cgraphunit.c (cgraph_finalize_compilation_unit): Use next_needed.
13593
13594 2003-07-02  Jan Hubicka  <jh@suse.cz>
13595
13596         * cgraphunit.c (cgraph_finalize_function): Set finalized.
13597         (cgraph_finalize_function): Do not examine inlinablility.
13598         (cgraph_finalize_compilation_unit): Do it here.
13599         * cgraph.h (cgraph_local_info): Add finalized field.
13600
13601 2003-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13602
13603         * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *.
13604         (gt_pch_restore): Likewise.
13605
13606 2003-07-01  Kazu Hirata  <kazu@cs.umass.edu>
13607
13608         * config/alpha/alpha.c: Fix comment typos.
13609         * config/alpha/elf.h: Likewise.
13610         * config/arm/arm.c: Likewise.
13611         * config/arm/arm.h: Likewise.
13612         * config/arm/arm.md: Likewise.
13613         * config/arm/t-arm-coff: Likewise.
13614         * config/arm/t-strongarm-pe: Likewise.
13615         * config/arm/xscale-elf.h: Likewise.
13616         * config/avr/avr.h: Likewise.
13617
13618 2003-07-01  Jeff Law  <law@redhat.com>
13619
13620         * stmt.c (any_pending_cleanups): Remove another redundant test.
13621
13622 2003-07-01  David Edelsohn  <edelsohn@gnu.org>
13623             J"orn Rennecke <joern.rennecke@superh.com>
13624
13625         * config/rs6000/rs6000.md (ctr{s,d}i_internal?): Add earlyclobber
13626         for MEM case.
13627
13628 2003-07-01  Devang Patel  <dpatel@apple.com>
13629
13630         * dbxout.c (DBXOUT_DECR_NESTING): Emit pending bincls, if required.
13631         (binclstatus): New.
13632         (struct dbx_file): New members - bincl_status, pending_bincl_name and
13633         prev.
13634         (pending_bincls): New.
13635         (dbxout_init): Initialize new dbx_file members.
13636         (dbxout_start_source_file): Same.
13637         (emit_bincl_stab): New function.
13638         (emit_pending_bincls): Same.
13639         (emit_pending_bincls_if_required): Same.
13640         (dbxout_end_source_file): Emit EINCL stab only if BINCL is  already
13641         processed.
13642         (dbxout_begin_block): Emit pending BINCL stabs.
13643         (dbxout_end_block): Same.
13644         (dbxout_function_decl): Same.
13645         (dbxout_continue): Same.
13646         (dbxout_type): Same.
13647         (dbxout_class_name_qualifiers): Same.
13648         (dbxout_symbol): Same.
13649         (dbxout_symbol_location): Same.
13650         (dbxout_parms): Same.
13651
13652 2003-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13653
13654         * c-semantics.c (genrtl_case_label): Fix format specifier bug.
13655         * cfgrtl.c (rtl_verify_flow_info_1): Likewise.
13656
13657 2003-07-01  Andreas Jaeger  <aj@suse.de>
13658
13659         * fold-const.c: Convert prototypes to ISO C90.
13660         * function.c: Likewise.
13661         * function.h: Likewise.
13662
13663 2003-07-01  Kazu Hirata  <kazu@cs.umass.edu>
13664
13665         * doc/contrib.texi: Fix typos.
13666         * doc/invoke.texi: Likewise.
13667         * doc/passes.texi: Likewise.
13668         * doc/sourcebuild.texi: Likewise.
13669         * doc/tm.texi: Likewise.
13670
13671 2003-07-01  Kazu Hirata  <kazu@cs.umass.edu>
13672
13673         * basic-block.h: Fix comment typos.
13674         * bb-reorder.c: Likewise.
13675         * c-format.c: Likewise.
13676         * cfgcleanup.c: Likewise.
13677         * cfghooks.h: Likewise.
13678         * cfgloop.c: Likewise.
13679         * cfgloopmanip.c: Likewise.
13680         * cfgrtl.c: Likewise.
13681         * cgraph.h: Likewise.
13682         * cgraphunit.c: Likewise.
13683         * combine.c: Likewise.
13684         * convert.c: Likewise.
13685         * dbxout.c: Likewise.
13686         * df.c: Likewise.
13687         * df.h: Likewise.
13688         * diagnostic.c: Likewise.
13689         * dwarf2out.c: Likewise.
13690         * et-forest.h: Likewise.
13691         * flow.c: Likewise.
13692         * fold-const.c: Likewise.
13693         * function.h: Likewise.
13694         * gcov-io.h: Likewise.
13695         * gcov.c: Likewise.
13696         * gcse.c: Likewise.
13697         * genautomata.c: Likewise.
13698         * ggc-common.c: Likewise.
13699         * ggc-page.c: Likewise.
13700         * loop-unroll.c: Likewise.
13701         * loop-unswitch.c: Likewise.
13702         * loop.c: Likewise.
13703         * mips-tfile.c: Likewise.
13704         * optabs.c: Likewise.
13705         * ra-build.c: Likewise.
13706         * ra-colorize.c: Likewise.
13707         * ra-rewrite.c: Likewise.
13708         * ra.h: Likewise.
13709         * regmove.c: Likewise.
13710         * reload.c: Likewise.
13711         * rtlanal.c: Likewise.
13712         * sched-ebb.c: Likewise.
13713         * sched-int.h: Likewise.
13714         * sched-vis.c: Likewise.
13715         * sreal.c: Likewise.
13716         * ssa-ccp.c: Likewise.
13717         * ssa.c: Likewise.
13718         * toplev.c: Likewise.
13719         * tree-inline.c: Likewise.
13720         * value-prof.c: Likewise.
13721         * value-prof.h: Likewise.
13722
13723 2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13724
13725         * rtl.h (emit_line_note_after): Remove.
13726         (emit_note_copy_after, emit_note_copy): New.
13727         * emit-rtl.c (reorder_insns_with_line_notes): Replace
13728         emit_line_note_after with emit_note_copy_after.
13729         (emit_insn_after_with_line_notes): Likewise.
13730         (emit_line_note_after): Kill.
13731         (emit_note_copy_after): New.
13732         (emit_note_copy): New.
13733         * function.c (emit_return_into_block): Use emit_note_copy_after.
13734         (thread_prologue_and_epilogue_insns): Likewise.
13735         * integrate.c (expand_inline_function): Use emit_note_copy.
13736         (copy_insn_list): Likewise.
13737         * unroll.c (copy_loop_body): Likewise.
13738         * cfglayout.c (duplicate_insn_chain): Likewise.
13739
13740 2003-07-01  Nathan Sidwell  <nathan@codesourcery.com>
13741
13742         * c-tree.h (define_label): Replace filename and lineno arguments
13743         with a location_t.
13744         * c-decl.c (poplevel): Adjust define_label call.
13745         (pop_label_level): Likewise.
13746         (define_label): Replace filename and lineno arguments with a
13747         location_t.
13748         (store_parm_decls): Use DECL_SOURCE_LOCATION.
13749         * c-parse.in (label): Adjust define_label call.
13750
13751 2003-07-01  Neil Booth  <neil@daikokuya.co.uk>
13752
13753         * config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h,
13754         config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h,
13755         config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h,
13756         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h,
13757         config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros.
13758
13759 2003-07-01  Andreas Jaeger  <aj@suse.de>
13760
13761         * final.c: Convert prototypes to ISO C90.
13762         * flow.c: Likewise.
13763         * flags.h: Likewise.
13764         * gcov-io.c: Likewise.
13765         * gcov-io.h: Likewise.
13766
13767 See ChangeLog.9 for earlier changes.